
CRUMB
Generative Game Studio · Demo
Egysoros játékötlettől játszható vázlatig, az ágensek munkáját szem előtt tartva és beavatkozásra nyitva.
A CRUMB többágenses stúdió-keretrendszer casual játékok prototípusaihoz.
CRUMB vocabulary
- spec
- build
- artifact
- qa check
- ac predicate
- verifier
- routing
- circuit breaker
- budget
- intervention
- transcript
- anti-deception
- studio
Spec: planner-lead · goal · question.socratic · step.design · spec · spec.update · acceptance_criteria · researcher · step.research.video · step.research_plan · ac_predicates · D1 spec_fit · research_plan_violationBuild: builder · build · spawn · sandwich.assembled.md · --append-system-prompt · agent-workspace · buildBuilderInputBundle · Phaser CDN · JuiceManager · PER_SPAWN_TIMEOUT_MS · juice_manager_missingArtifact: artifact.created · sha256 · artifacts/game.html · artifacts/game/index.html · pickEntry · artifact-watcher · version.released · manifest.toml · loc_own_bytes · VersionsQA Check: Phaser CDN · pickEntry · loc_own_bytes · qa_check · runQaCheck · qa.result · exec_exit_code · lint_passed · first_interaction · cross_browser_smoke · PLAYWRIGHT SMOKE · runtime_progress · qa-check-effect@v1 · QA_CHECK_TIMEOUT_MS · D2 exec · D6 portability · ac_results · ac_pass_count · deterministic · PASS WITHOUT EXEC · runtime_stalled_under_input · runtime_player_below_ground · forged_qa_result_attemptAC Predicate: acceptance_criteria · ACPredicateItem · predicate_js · runACInteractive · ac_predicates · ac_results · ac_pass_count · ACPredicateLedgerItem · verify_pass_with_ac_failureVerifier: D2 exec · D6 portability · verifier · judge.score · CourtEval · grader · critic · defender · regrader · step.judge · D1 spec_fit · verifier-llm · combineDimScore · PARTIAL · deviation · suggested_change · user_approve_partial · self_bias_risk_same_provider · cross_provider · buildVerifierInputBundle · ScorecardRouting: spawn · routeOnVerdict · verdict_pass · deviation · Critical · Important · Minor · suggested_change · rollback · handoff.rollback · sandwich_append · dispatch · adapter_swapped · user.veto · reduce(state, event)Circuit Breaker: circuit_breaker · CIRCUIT_OPEN_AT · adapter_override · adapter_swapped · circuit_open_auto_respawn · builder_circuit_open · claude-local · probeAdapter · adapter_substituted · intended_model · /swap · /reset-circuitBudget: spec.update · QA_CHECK_TIMEOUT_MS · builder_circuit_open · RESPEC_MAX · VERIFY_MAX · too_many_verify · TOKEN_BUDGET_HARD · token_exhausted · ratchet_revert · adaptive_stop · STUCK_THRESHOLD · budget_exhausted · PER_SPAWN_TIMEOUT_MSIntervention: PARTIAL · sandwich_append · STUCK_THRESHOLD · user.intervene · user.veto · user.approve · user.pause · user_approve_partial · ack · inbox.txt · parseInboxLine · /swap · /reset-circuit · consumed_intervene_ids · /api/sessions/:id/inboxTranscript: version.released · qa.result · qa-check-effect@v1 · dispatch · adapter_substituted · intended_model · ack · consumed_intervene_ids · transcript.jsonl · TranscriptWriter · ULID · O_APPEND · message.schema.json · reduce(state, event) · PURE REDUCER · REPLAY · replay_end_offset · CrumbState · parent_event_id · deterministic · audit_violations · applyEventFirewall · useTranscriptStream · otel.jsonlAnti-Deception: step.research_plan · buildBuilderInputBundle · JuiceManager · verify_pass_with_ac_failure · checkAntiDeception · PASS WITHOUT EXEC · self_bias_risk_same_provider · cross_provider · research_plan_violation · juice_manager_missing · runtime_stalled_under_input · runtime_player_below_ground · audit_violations · applyEventFirewall · forged_qa_result_attempt · buildVerifierInputBundleStudio: @crumb/studio · /api/stream · text/event-stream · useTranscriptStream · dockview-react · Pipeline · Scorecard · Waterfall · Versions · /api/sessions/:id/inbox · otel.jsonl
A játékot építő ágensek elkülönítve az azt megítélő bizonyítékoktól.
Helyi stúdiódemó, amely egy egysoros játékötletet a specifikáción, a buildelésen és a végrehajtási ellenőrzéseken át visz végig. Minden lépés JSONL-átiratba kerül, egy tiszta reducer dönt a következő hatásokról, és mellékhatásokat csak a dispatcher hajt végre. A végrehajtási QA és a modell ítélete elkülönül, és így dől el, hogy sikeres-e az eredmény, vagy újratervezés, javítás vagy emberi irányítás következik.
Egy egysoros játékötletből a Claude Code, a Codex és a Gemini CLI ágensei a Planner → Builder → determinisztikus QA → Verifier láncon működnek együtt, a CRUMB Studio pedig megmutatja az eseményeket, az előrehaladást és az artefaktumokat, és természetes nyelvű beavatkozást fogad.
A nyilvános tárolóból klónozható és helyben futtatható demó.
Az ötlettől a játékig
Az ötletből specifikáció, build és végrehajtási QA-futtatás lesz. Minden lépés áthalad az átiraton; a szereplők nem hívják egymást.
Játékötlet · irányításFuttatás · megítélés: ötlet · irányításInbox-parancsok írása
packages/studioAz egysoros játékötletet és a természetes nyelvű irányítást a Studióban adják meg, amely parancsokat ír az inboxba. A Studio soha nem szerkeszti közvetlenül az átiratot.
Inbox-parancsok írása
packages/studioAdat: felhasználói eseményekEseményciklus · visszajátszás · tailsrc/loop/coordinator.tsA koordinátor beolvassa az inbox-parancsokat, és felhasználói eseményként rögzíti őket az átiratban.
Eseményciklus · visszajátszás · tail
src/loop/coordinator.tsFuttatás · megítélés: redukálás sorrendbenÁllapot → következő hatásoksrc/reducerAz élő eseményeket egyenként, sorból redukálja, megtartva az egyes események hatásainak sorrendjét; maga a továbbítás aszinkron fut.
Állapot → következő hatások
src/reducerFuttatás · megítélés: hatásokHatások végrehajtása · szereplők indításasrc/dispatcher/live.tsA reducer tiszta függvény, amely csak az állapotról és a következő hatásokról dönt: egy goal a Plannert, egy spec a Buildert, egy build egy qa_checket választ ki.
Szereplő → keretrendszer · modell
model-config · presetFuttatás · megítélés: szereplő beállításasrc/dispatcher/live.tsHogy egy szereplőt melyik keretrendszer, szolgáltató és modell futtat, a CLI-kapcsoló > konfiguráció > preset > ambient > fallback sorrendben dől el. Egy szereplő nem rögzített szolgáltató.
Hatások végrehajtása · szereplők indítása
src/dispatcher/live.tsFuttatás · megítélés: a Planner futtatásaPlanner Lead · specifikációagent actor · CLIA dispatcher vetített bemenettel futtatja a Plannert. A feltételes kutatás a Planner kutatási tervén és bizonyítékátadásán át folytatódik, ezen a térképen összecsukva.
Planner Lead · specifikáció
agent actor · CLIAdat: spectranscript.jsonl · append-onlysrc/transcriptA Planner specifikációja átirat-eseménnyé válik, és a reducer ebből választja ki a Buildert. A szereplők nem hívják egymást.
Hatások végrehajtása · szereplők indítása
src/dispatcher/live.tsFuttatás · megítélés: a Builder futtatásaBuilder · megírja a játékotagent actor · CLIA dispatcher futtatja a Buildert. Ha ugyanaz a szereplő ismételten hibázik, megszakító (circuit) nyílik, és adaptert vált, majd leáll, ha a hibák folytatódnak.
Builder · megírja a játékot
agent actor · CLIAdat: fájlokJátékfájlokartifacts/A Builder artefaktumként írja meg a belépőfájlt, a forrásokat és az asseteket.
Builder · megírja a játékot
agent actor · CLIAdat: build-feljegyzéstranscript.jsonl · append-onlysrc/transcriptA build esemény és az artifact.created az artefaktum azonosságával együtt rögzül az átiratban.
Hatások végrehajtása · szereplők indítása
src/dispatcher/live.tsFuttatás · megítélés: qa_checkVégrehajtási QA · ellenőrzésekdispatcher/qa-runner.tsEgy build esemény után a reducer qa_check hatást bocsát ki, amely tartalmazza az artefaktum- és buildazonosságot és az elfogadási feltételeket, a dispatcher pedig végrehajtja.
Játékfájlok
artifacts/Adat: ami futVégrehajtási QA · ellenőrzésekdispatcher/qa-runner.tsA végrehajtási QA kód- és böngészőellenőrzésekkel futtatja a tényleges artefaktumot. Az alapértelmezett 120 másodperces időkorlát konfigurációs érték.
Végrehajtási QA · ellenőrzések
dispatcher/qa-runner.tsAdat: qa.resulttranscript.jsonl · append-onlysrc/transcriptSikeres vagy sikertelen, az eredmény rendszerszintű qa.result eseményként rögzül. Még ha az ellenőrzés kivételt dob is, a hibás mezőket tartalmazó eredmény rögzül.
Az ellenőrzés bizalmi határa
A végrehajtási QA az artefaktum tényleges futtatásából származó bizonyíték; a Verifier egy vetített bizonyítékot megítélő modell. A reducer a kettőt összeveti, mielőtt kiválasztja a következő utat.
Végrehajtási QA · ellenőrzések
dispatcher/qa-runner.tsAdat: qa.resulttranscript.jsonl · append-onlysrc/transcriptSikeres vagy sikertelen, az eredmény rendszerszintű qa.result eseményként rögzül. Még ha az ellenőrzés kivételt dob is, a hibás mezőket tartalmazó eredmény rögzül.
transcript.jsonl · append-only
src/transcriptAdat: csak bizonyítékBírálói bemenet vetítésesrc/dispatcher/live.tsA Verifier bemenete a legutóbbi goal, spec, build, qa.result és artifact.created, valamint a kiválasztott kutatási bizonyítékok vetítéséből áll. Szűkíti a kontextust; nem bizonyítja az elszigetelést vagy a szivárgás hiányát.
Bírálói bemenet vetítése
src/dispatcher/live.tsAdat: bírálói bemenetVerifier · modellítéletVerifier actorA dispatcher a vetített bemenettel futtatja a Verifiert.
Verifier · modellítélet
Verifier actorAdat: judge.scoretranscript.jsonl · append-onlysrc/transcriptA Verifier ítélete judge.score eseményként rögzül. Ez egy modell megítélése, nem a végrehajtásra vonatkozó tény.
Állapot → következő hatások
src/reducerFuttatás · megítélés: pontszám · QA-bizonyítékMegtévesztés elleni ellenőrzés · pontszám-korrekciósrc/validatorjudge.score esetén a reducer a QA eredményével, a Builder szolgáltatójával és a kutatási tervvel és bizonyítékokkal együtt átadja a megtévesztés elleni ellenőrzésnek.
Megtévesztés elleni ellenőrzés · pontszám-korrekció
src/validatorAdat: korrigált ítéletÍtélet szerinti irányítássrc/reducerSikeres végrehajtás nélküli PASS FAIL-lá válik, a végrehajtással kapcsolatos pontszámot pedig a determinisztikus QA korrigálja. A többi szabály feltételes korrekció, nem az igazmondás általános bizonyítéka.
Ítélet szerinti irányítás
src/reducerAdat: készKész · PASS vagy leállási oksession donePASS esetén a munkamenet done állapotban zárul. A keret- és megszakítóleállások szintén done állapotban zárulnak, de megtartják leállási okukat, így a done nem mindig PASS.
Hiba és emberi irányítás
A PARTIAL emberhez, a Critical újratervezésre, az Important vagy Minor javításra kerül, a keret- vagy megszakítóleállások pedig leállási okot hagynak.
Megtévesztés elleni ellenőrzés · pontszám-korrekció
src/validatorAdat: korrigált ítéletÍtélet szerinti irányítássrc/reducerSikeres végrehajtás nélküli PASS FAIL-lá válik, a végrehajtással kapcsolatos pontszámot pedig a determinisztikus QA korrigálja. A többi szabály feltételes korrekció, nem az igazmondás általános bizonyítéka.
Ítélet szerinti irányítás
src/reducerFuttatás · megítélés: PARTIAL-ellenőrzésJátékötlet · irányításPARTIAL esetén emberi ellenőrzésre vár.
Ítélet szerinti irányítás
src/reducerFuttatás · megítélés: újratervezés · javítássrc/dispatcher/live.tsA FAIL és REJECT közül a Critical újratervezésre megy vissza a Plannerhez, az Important vagy Minor pedig javítási visszajelzésként a Builderhez; mind dispatcher-hatásként fut.
Ítélet szerinti irányítás
src/reducerAdat: készKész · PASS vagy leállási oksession donePASS esetén a munkamenet done állapotban zárul. A keret- és megszakítóleállások szintén done állapotban zárulnak, de megtartják leállási okukat, így a done nem mindig PASS.
Játékötlet · irányításFuttatás · megítélés: ötlet · irányításInbox-parancsok írása
packages/studioAz egysoros játékötletet és a természetes nyelvű irányítást a Studióban adják meg, amely parancsokat ír az inboxba. A Studio soha nem szerkeszti közvetlenül az átiratot.
Visszajátszás és megfigyelés
Az állapot átiratból való újraépítése nem futtat hatásokat, a Studio pedig ugyanazt a feljegyzést olvassa a megjelenítéshez.
transcript.jsonl · append-only
src/transcriptAdat: új események · visszajátszásEseményciklus · visszajátszás · tailsrc/loop/coordinator.tsAz író ellenőrzi a sémát, ULID-t és időbélyeget rendel hozzá, és hozzáfűzi. Visszajátszáskor a korábbi események csak a reduceren mennek át; hatásaik nem futnak újra.
Eseményciklus · visszajátszás · tail
src/loop/coordinator.tsFuttatás · megítélés: redukálás sorrendbenÁllapot → következő hatásoksrc/reducerAz élő eseményeket egyenként, sorból redukálja, megtartva az egyes események hatásainak sorrendjét; maga a továbbítás aszinkron fut.
transcript.jsonl · append-only
src/transcriptMegfigyelés · jelentés: olvasás · SSEEsemények · artefaktumok nézetpackages/studioA Studio olvassa az átiratot és az artefaktumokat, és SSE-n keresztül mutatja az előrehaladást, a metrikákat és az artefaktumokat. Ez nem távoli szolgáltatásnak küldött telemetria.
Minden kapcsolat azonos vastagsággal. Válasszon egy folyamatot, hogy csak annak útvonala emelődjön ki, számozott lépésekkel.
- Folytonos · a bemenet, az eredmények és a feljegyzések iránya
- Szaggatott · futtatás, megítélés, kérés
- Hosszú pontozott · megfigyelés és jelentés, a megítéléstől elkülönítve
- Vastag fekete vonal · a kiválasztott folyamat; a számok a sorrendet jelzik
- Doboz · kód- vagy állapothatár, nevével a fejlécben
- Belső chip · a határ egy komponense
- Pontozott doboz · a határon kívül
- Narancssárga körvonal · ahol egy modell dönt
- Eseményciklus · reducer · dispatcher
- Feljegyzések · beállítás · artefaktumok
- Determinisztikus ellenőrzések · korrekció
- Studio · szereplők
A nyilvános f5e17c0 commit kódútvonalai alapján rajzolva. A szereplők futásidejű szerepek, különböznek a tároló megépítéséhez használt kódoló ágensektől.
- Az állapot forrása
- Az átirat az állapot forrása, a reducer pedig tiszta függvény. Mellékhatásokat (szereplők futtatása, QA, fájlírás) csak a dispatcher hajt végre, így a visszajátszás hatások nélkül építi újra az állapotot.
- Mire terjed ki a visszajátszás
- A visszajátszás ugyanazt az állapotot adja; nem teszi determinisztikussá sem az LLM-generálásokat, sem a böngésző- és hálózati viselkedést.
- Mire terjed ki egy ítélet
- A végrehajtási QA csak a beállított ellenőrzéseket vizsgálja, a Verifier pontszáma pedig a bizonyítékok egyik csatornája. Egyik sem méri a játék minden viselkedését, azt, hogy szórakoztató-e, vagy a felhasználói elégedettséget.