v0.10.0: análise/prova/teste das críticas de engenharia Qwen3.8 lote 3 (r-35) — divisão SRP dos monólitos jepa/pensamento/moe/python em 26 submódulos (API estável via re-exports; 'Amdahl de compilação' refutada por experimento controlado, builds frios neutros), checkpoints atômicos SHA-256 puro FIPS 180-4 + fsync + rename + manifesto (CP-1..CP-3; correções da proposta: sem destruir estado anterior, manifesto com barreira, sem bincode/unwrap), TemperaturaInversa T-V3 (fronteira tipada da convexidade N-2; alegação compile-time corrigida), trait CamadaKhtst+CamadaHomeostatica (premissa do controlador refutada no fonte; Vec<Var>; adaptador MoeComPapel bit-a-bit), CLI Typer 75 (fachada aditiva com resume verificado por hash) — 123/123 cargo, 107/107 gates, treino real Wikipédia PT-BR com checkpoints íntegros
06e4b6f verified Download scripts/77_suite_v010.py from PowerMachine/khtst-rust: direct link, hf CLI and curl.
- Browser
- Download file 6.76 kB
-
https://huggingface.co/PowerMachine/khtst-rust/resolve/main/scripts/77_suite_v010.py
- Command line
-
hf download hf://PowerMachine/khtst-rust/scripts/77_suite_v010.py
-
curl -L -o 77_suite_v010.py https://huggingface.co/PowerMachine/khtst-rust/resolve/main/scripts/77_suite_v010.py
6.76 kB
| #!/usr/bin/env python3 | |
| """77_suite_v010.py — v0.10.0: VEREDITO CONSOLIDADO das críticas Qwen3.8 | |
| (lote 3 — análise/prova/teste em r-35). | |
| Herda os gates da v0.9.0 (suite_v090_final.json) e adiciona: | |
| s1 divisão SRP: nenhum arquivo-fonte > 60 kB; subdiretórios presentes; | |
| testes herdados verdes (preservação de comportamento); | |
| s2 checkpoint atômico: manifestos SHA-256 presentes e válidos nos | |
| checkpoints do treino REAL; overhead de armazenamento ≈ 141 B; | |
| s3 tipos de domínio: cargo inclui os testes T-V3 (contados em 76); | |
| s4 polimorfismo de camadas: testes CK no cargo (idem); | |
| s5 treino real: fases A/B com perda decrescente; C com CE decrescente; | |
| δ_ort < 1e-5 (ortogonalidade exata em treino real); | |
| s6 CLI: comandos versao/estados/verificar-checkpoints executam. | |
| Saída: resultados/suite_v010_final.json | |
| """ | |
| import json, os, subprocess, sys | |
| PASTA = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |
| R = os.path.join(PASTA, "resultados") | |
| def main(): | |
| rel = {"versao": "0.10.0", "blocos": {}, "gates": {}, "medicoes": {}} | |
| def carrega(arq): | |
| p = os.path.join(R, arq) | |
| return json.load(open(p)) if os.path.exists(p) else None | |
| # ---- legado v0.9.0 | |
| legado = carrega("suite_v090_final.json") | |
| if legado: | |
| g_legado = legado.get("gates", legado) | |
| ok = sum(1 for v in g_legado.values() if v is True) | |
| rel["blocos"]["legado_v090"] = f"{ok}/{len(g_legado)}" | |
| for k, v in g_legado.items(): | |
| rel["gates"][f"legado_{k}"] = v | |
| # ---- s1: divisão SRP | |
| arquivos = [] | |
| for raiz, _, nfs in os.walk(os.path.join(PASTA, "src")): | |
| for n in nfs: | |
| if n.endswith(".rs"): | |
| p = os.path.join(raiz, n) | |
| arquivos.append((os.path.relpath(p, PASTA), os.path.getsize(p))) | |
| maior = max(arquivos, key=lambda x: x[1]) | |
| rel["medicoes"]["maior_arquivo"] = {"caminho": maior[0], "kB": round(maior[1] / 1e3, 1)} | |
| rel["gates"]["s1_nenhum_arquivo_acima_60kB"] = maior[1] < 60_000 | |
| subs = {os.path.dirname(a) for a, _ in arquivos} - {"src"} | |
| rel["gates"]["s1_monolitos_dissolvidos"] = all( | |
| d in subs for d in ("src/jepa", "src/pensamento", | |
| "src/moe_redirecionavel", "src/python")) | |
| # testes herdados: 107 da v0.9.0 continuam verdes (123/123 total) | |
| r = subprocess.run(["cargo", "test", "--all-features", "--quiet"], | |
| capture_output=True, text=True, cwd=PASTA) | |
| import re as _re | |
| m = _re.findall(r"test result: ok\. (\d+) passed", r.stdout) | |
| total = sum(int(x) for x in m) | |
| rel["medicoes"]["cargo_total"] = total | |
| rel["gates"]["s1_testes_herdados_preservados"] = (total >= 123 and r.returncode == 0) | |
| rel["blocos"]["s1_divisao_srp"] = "3/3" if all( | |
| rel["gates"][g] for g in list(rel["gates"]) if g.startswith("s1_")) else "?" | |
| # ---- s2: checkpoints atômicos no treino real | |
| import khtst_rust as k | |
| cks_ok, cks = 0, {} | |
| for nome in ("tokenizador_conceitos.json", "gerador_conceitos.json"): | |
| p = os.path.join(R, nome) | |
| okc = os.path.exists(p) and k.checkpoint_valido(p) | |
| cks_ok += int(okc) | |
| man = k.checkpoint_manifesto(p) if os.path.exists(p) else None | |
| cks[nome] = {"valido": okc, | |
| "manifesto_bytes": len(man) if man else 0} | |
| rel["gates"]["s2_checkpoints_sha256_validos"] = (cks_ok == 2) | |
| rel["medicoes"]["checkpoints"] = cks | |
| rel["blocos"]["s2_checkpoint_atomico"] = f"{cks_ok}/2" | |
| # ---- s3+s4: testes novos T-V3 e CK contabilizados no cargo (via 76) | |
| tel = carrega("telemetria_v010.json") | |
| if tel: | |
| n_novos = tel["testes"]["cargo_total"] - tel["testes"]["herdados_v090"] | |
| rel["gates"]["s3s4_testes_novos_16"] = (n_novos >= 16) | |
| rel["medicoes"]["testes_novos_v010"] = n_novos | |
| rel["blocos"]["s3s4_tipos_trait"] = "1/1" if rel["gates"].get("s3s4_testes_novos_16") else "0/1" | |
| # ---- s5: treino real v0.10.0 | |
| treino = {} | |
| for f, chave in (("fase_a_v010.json", "a"), ("fase_b_v010.json", "b")): | |
| d = carrega(f) | |
| if d: | |
| treino[chave] = d["resumo"] | |
| d = carrega("treino_v090.json") | |
| c = (d or {}).get("fases", {}).get("c", {}) | |
| g5 = [] | |
| g5.append(("s5a_faseA_perda_cai", treino.get("a", {}).get("perda_final", 1e9) | |
| < treino.get("a", {}).get("perda_inicial", -1e9))) | |
| g5.append(("s5b_faseB_perda_cai", treino.get("b", {}).get("perda_final", 1e9) | |
| < treino.get("b", {}).get("perda_inicial", -1e9))) | |
| g5.append(("s5c_faseC_ce_cai", c.get("ce_final", 1e9) < c.get("ce_inicial", -1e9))) | |
| delta_ort = treino.get("a", {}).get("delta_ort_max", 1.0) | |
| g5.append(("s5d_ortogonalidade_exata", delta_ort < 1e-5)) | |
| for nome, val in g5: | |
| rel["gates"][nome] = val | |
| rel["medicoes"]["treino_real"] = { | |
| "a": {"perda_inicial": treino.get("a", {}).get("perda_inicial"), | |
| "perda_final": treino.get("a", {}).get("perda_final"), | |
| "delta_ort_max": delta_ort}, | |
| "b": {"perda_inicial": treino.get("b", {}).get("perda_inicial"), | |
| "perda_final": treino.get("b", {}).get("perda_final")}, | |
| "c": {"ce_inicial": c.get("ce_inicial"), "ce_final": c.get("ce_final"), | |
| "taxa_gatilho": c.get("taxa_gatilho_media")}, | |
| } | |
| rel["blocos"]["s5_treino_real"] = f"{sum(1 for _, v in g5 if v)}/{len(g5)}" | |
| # ---- s6: CLI | |
| cli = os.path.join(PASTA, "scripts", "75_cli.py") | |
| r1 = subprocess.run([sys.executable, cli, "versao"], capture_output=True, text=True) | |
| r2 = subprocess.run([sys.executable, cli, "estados"], capture_output=True, text=True) | |
| r3 = subprocess.run([sys.executable, cli, "verificar-checkpoints"], | |
| capture_output=True, text=True) | |
| rel["gates"]["s6_cli_comandos"] = all( | |
| r.returncode == 0 for r in (r1, r2, r3)) and "0.10.0" in r1.stdout | |
| rel["medicoes"]["cli"] = {"versao": r1.stdout.strip().splitlines()[0], | |
| "checkpoints_relacionados": len(r3.stdout.strip().splitlines())} | |
| rel["blocos"]["s6_cli"] = "1/1" if rel["gates"]["s6_cli_comandos"] else "0/1" | |
| # ---- veredito | |
| gates = rel["gates"] | |
| ok = sum(1 for v in gates.values() if v is True) | |
| rel["veredito"] = f"{ok}/{len(gates)} — " + ( | |
| "APROVADO" if ok == len(gates) else "REPROVADO") | |
| saida = os.path.join(R, "suite_v010_final.json") | |
| json.dump(rel, open(saida, "w"), indent=1, ensure_ascii=False) | |
| print(f"OK: {saida}") | |
| print("blocos:", json.dumps(rel["blocos"], ensure_ascii=False)) | |
| print("VEREDITO:", rel["veredito"]) | |
| falhas = [k for k, v in gates.items() if v is not True] | |
| if falhas: | |
| print("falhas:", falhas) | |
| if __name__ == "__main__": | |
| main() | |