ATM

EXECUȚIE

Proiecție și traversă la execuție

RuntimeBinding unește SemanticMap cu starea curentă; ThinkingMapTraversal verifică mișcările locale și emite un rezultat inspectabil.

Secvența operațională

  1. 1.Încarcă structura domeniului.
  2. 2.Leagă starea, rolul și dovezile curente.
  3. 3.Proiectează numai candidații locali.
  4. 4.Verifică porțile, TTL-ul și limitele buclei.
  5. 5.Returnează un rezultat tipizat.
semantic_map + runtime_binding
            ↓
     local decision slice
            ↓
 deterministic guard check
            ↓
 typed traversal outcome

Trei uși, nu una

„Rulează un pas" nu înseamnă un singur apel. Sunt trei, cu grade diferite de libertate. step() e calea largă, operațională — poate întoarce 6 din cele 10 rezultate declarate. attempt_transition(), care chiar înfăptuiește o mișcare deja anunțată, e mult mai îngust: doar ABSTAIN, COLLECT_EVIDENCE sau CONTINUE. attempt_bridge() — trecerea între contexte — e cel mai strâns dintre toate: se verifică întâi un contract de fidelitate (licență de substituție față de nivelul de risc), și doar dacă acela e satisfăcut se schimbă starea. Fără licență, la risc ridicat, rezultatul e ESCALATE, nu o eroare tăcută.

Ce citește modelul, de fapt

Modelul nu primește o poveste — primește un slice(): mișcarea propusă, decizia porții, dovezile disponibile și cele lipsă, rolurile, un can_fire boolean, motivele exacte pentru care nu poate trage („blockers"), și un contract de răspuns pe care modelul trebuie să-l completeze el însuși — pretenția, domeniul, baza, ce e permis să spună, ce nu, cui. Sistemul calculează partea structurală. Modelul contribuie doar partea de limbaj.

Un detaliu care contează dacă chiar citești JSON-ul: gate.decision nu e numele din Python al enum-ului, e valoarea lui — GateDecision.ABSTAIN ajunge la model ca șirul "insufficient", DEGRADE ca "partial". Modelul citește mereu string-ul serializat, niciodată numele intern.