Csak a kenyérfigura a CRUMB-logóból: mosolygó kenyérszelet, a jobb felső sarkából kiharapva
Vissza a terembe

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.

Tervezés és fejlesztés · AI kódoló ágensekkel építve

  • CLIHelyi demó
  • Webes StudioHelyi demó

CRUMB vocabulary

Lens
Game Pipeline
Build
Runtime Verification
Control Plane
Repair
Evidence
  1. spec
  2. build
  3. artifact
  1. qa check
  2. ac predicate
  3. verifier
  1. routing
  2. circuit breaker
  3. budget
  4. intervention
  1. transcript
  2. anti-deception
  3. 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ó.

Rendszertérkép · a nyilvános f5e17c0 commit kódútvonalai alapján
A CRUMB stúdiórendszereEgy ember a Studióból javasol és irányít egy játékot, a Studio pedig parancsokat ír egy inboxba. A koordinátor sorrendben adja át a reducernek az inbox és az átirat új eseményeit; a tiszta reducer dönt az állapotról és a következő hatásokról, mellékhatásokat pedig csak a dispatcher hajt végre. A Planner specifikációja, a Builder buildje és artefaktumai, a végrehajtási QA eredménye és a Verifier ítélete mind átirat-eseménnyé válik. A Verifier csak vetített bizonyítékot kap, a reducer pedig a QA eredményéhez méri és korrigálja a pontszámát: PASS esetén a munkamenet véget ér, PARTIAL esetén emberre vár, minden más újratervezésre vagy javításra megy vissza.Játékötlet · irányításEgy ember, helyben futtatvapackages/studioEsemények · artefaktumok nézetInbox-parancsok írásasrc/transcripttranscript.jsonl · append-onlysrc/loop/coordinator.tsEseményciklus · visszajátszás · tailsrc/reducerÁllapot → következő hatásokÍtélet szerinti irányítássession doneKész · PASS vagy leállási oksrc/dispatcher/live.tsHatások végrehajtása · szereplők indításaBírálói bemenet vetítésemodel-config · presetSzereplő → keretrendszer · modellagent actor · CLIPlanner Lead · specifikációBuilder · megírja a játékotartifacts/Játékfájlokdispatcher/qa-runner.tsVégrehajtási QA · ellenőrzésekVerifier actorVerifier · modellítéletsrc/validatorMegtévesztés elleni ellenőrzés · pontszám-korrekcióEmberek · StudioEseményvezérlésaz állapot forrása az átiratDolgozó ágensek · artefaktumokEllenőrzés · döntés1ötlet · irányítás2felhasználói események3redukálás sorrendben4hatások5szereplő beállítása6a Planner futtatása7spec8a Builder futtatása9fájlok10build-feljegyzés11qa_check12ami fut13qa.result1qa.result2csak bizonyíték3bírálói bemenet4judge.score5pontszám · QA-bizonyíték6korrigált ítélet7kész1korrigált ítélet2PARTIAL-ellenőrzés3újratervezés · javítás4kész5ötlet · irányítás1új események · visszajátszás2redukálás sorrendben3olvasás · SSE

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.

  1. Játékötlet · irányításFuttatás · megítélés: ötlet · irányításInbox-parancsok írásapackages/studio

    Az 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.

  2. Inbox-parancsok írásapackages/studioAdat: felhasználói eseményekEseményciklus · visszajátszás · tailsrc/loop/coordinator.ts

    A koordinátor beolvassa az inbox-parancsokat, és felhasználói eseményként rögzíti őket az átiratban.

  3. Eseményciklus · visszajátszás · tailsrc/loop/coordinator.tsFuttatás · megítélés: redukálás sorrendbenÁllapot → következő hatásoksrc/reducer

    Az é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.

  4. Állapot → következő hatásoksrc/reducerFuttatás · megítélés: hatásokHatások végrehajtása · szereplők indításasrc/dispatcher/live.ts

    A 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.

  5. Szereplő → keretrendszer · modellmodel-config · presetFuttatás · megítélés: szereplő beállításasrc/dispatcher/live.ts

    Hogy 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ó.

  6. Hatások végrehajtása · szereplők indításasrc/dispatcher/live.tsFuttatás · megítélés: a Planner futtatásaPlanner Lead · specifikációagent actor · CLI

    A 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.

  7. Planner Lead · specifikációagent actor · CLIAdat: spectranscript.jsonl · append-onlysrc/transcript

    A 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.

  8. Hatások végrehajtása · szereplők indításasrc/dispatcher/live.tsFuttatás · megítélés: a Builder futtatásaBuilder · megírja a játékotagent actor · CLI

    A 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.

  9. Builder · megírja a játékotagent actor · CLIAdat: fájlokJátékfájlokartifacts/

    A Builder artefaktumként írja meg a belépőfájlt, a forrásokat és az asseteket.

  10. Builder · megírja a játékotagent actor · CLIAdat: build-feljegyzéstranscript.jsonl · append-onlysrc/transcript

    A build esemény és az artifact.created az artefaktum azonosságával együtt rögzül az átiratban.

  11. Hatások végrehajtása · szereplők indításasrc/dispatcher/live.tsFuttatás · megítélés: qa_checkVégrehajtási QA · ellenőrzésekdispatcher/qa-runner.ts

    Egy 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.

  12. Játékfájlokartifacts/Adat: ami futVégrehajtási QA · ellenőrzésekdispatcher/qa-runner.ts

    A 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.

  13. Végrehajtási QA · ellenőrzésekdispatcher/qa-runner.tsAdat: qa.resulttranscript.jsonl · append-onlysrc/transcript

    Sikeres 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.

  1. Végrehajtási QA · ellenőrzésekdispatcher/qa-runner.tsAdat: qa.resulttranscript.jsonl · append-onlysrc/transcript

    Sikeres 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.

  2. transcript.jsonl · append-onlysrc/transcriptAdat: csak bizonyítékBírálói bemenet vetítésesrc/dispatcher/live.ts

    A 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.

  3. Bírálói bemenet vetítésesrc/dispatcher/live.tsAdat: bírálói bemenetVerifier · modellítéletVerifier actor

    A dispatcher a vetített bemenettel futtatja a Verifiert.

  4. Verifier · modellítéletVerifier actorAdat: judge.scoretranscript.jsonl · append-onlysrc/transcript

    A 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.

  5. Állapot → következő hatásoksrc/reducerFuttatás · megítélés: pontszám · QA-bizonyítékMegtévesztés elleni ellenőrzés · pontszám-korrekciósrc/validator

    judge.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.

  6. Megtévesztés elleni ellenőrzés · pontszám-korrekciósrc/validatorAdat: korrigált ítéletÍtélet szerinti irányítássrc/reducer

    Sikeres 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.

  7. Ítélet szerinti irányítássrc/reducerAdat: készKész · PASS vagy leállási oksession done

    PASS 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.

  1. Megtévesztés elleni ellenőrzés · pontszám-korrekciósrc/validatorAdat: korrigált ítéletÍtélet szerinti irányítássrc/reducer

    Sikeres 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.

  2. Ítélet szerinti irányítássrc/reducerFuttatás · megítélés: PARTIAL-ellenőrzésJátékötlet · irányítás

    PARTIAL esetén emberi ellenőrzésre vár.

  3. Ítélet szerinti irányítássrc/reducerFuttatás · megítélés: újratervezés · javítássrc/dispatcher/live.ts

    A 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.

  4. Ítélet szerinti irányítássrc/reducerAdat: készKész · PASS vagy leállási oksession done

    PASS 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.

  5. Játékötlet · irányításFuttatás · megítélés: ötlet · irányításInbox-parancsok írásapackages/studio

    Az 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.

  1. transcript.jsonl · append-onlysrc/transcriptAdat: új események · visszajátszásEseményciklus · visszajátszás · tailsrc/loop/coordinator.ts

    Az í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.

  2. Eseményciklus · visszajátszás · tailsrc/loop/coordinator.tsFuttatás · megítélés: redukálás sorrendbenÁllapot → következő hatásoksrc/reducer

    Az é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.

  3. transcript.jsonl · append-onlysrc/transcriptMegfigyelés · jelentés: olvasás · SSEEsemények · artefaktumok nézetpackages/studio

    A 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.