
CRUMB
Generative Game Studio · Demo
Üherealisest mänguideest mängitava mustandini, agentide töö nähtaval ja sekkumiseks avatud.
CRUMB on mitmeagendiline stuudiorakis lihtsate mängude prototüüpimiseks.
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
Mängu ehitavad agendid, lahus tõenditest, mille põhjal seda hinnatakse.
Kohalik stuudiodemo, mis viib üherealise mänguidee läbi spetsifikatsiooni, ehituse ja täitmiskontrollide. Iga samm jõuab JSONL-transkripti, puhas reducer-funktsioon otsustab järgmised mõjud ja ainult dispetšer teeb kõrvalmõjusid. Täitmise QA-d ja mudeli verdikti hoitakse lahus, et valida läbimise, ümberkujundamise, parandamise ja inimese juhtimise vahel.
Kirjelda mängu ühe reaga ning Claude Code'i, Codexi ja Gemini CLI agendid teevad koostööd järjekorras Planner → Builder → deterministlik QA → Verifier, samal ajal kui CRUMB Studio näitab sündmusi, edenemist ja artefakte ning võtab vastu loomulikus keeles sekkumist.
Demo, mis kloonitakse avalikust repositooriumist ja käivitatakse kohapeal.
Ideest mängimiseni
Ideest saab spetsifikatsioon, ehitus ja täitmise QA käivitus. Iga samm läbib transkripti; toimijad üksteist ei kutsu.
Mänguidee · juhtimineKäivitus · hinnang: idee · juhtimineKäskude kirjutamine inboxi
packages/studioÜherealine mänguidee ja loomulikus keeles juhtimine sisestatakse Studiosse, mis kirjutab käsud inboxi. Studio ei muuda kunagi transkripti otse.
Käskude kirjutamine inboxi
packages/studioAndmed: kasutaja sündmusedSündmustsükkel · taasesitus · jälgiminesrc/loop/coordinator.tsCoordinator loeb inboxi käsud ja salvestab need transkripti kasutaja sündmustena.
Sündmustsükkel · taasesitus · jälgimine
src/loop/coordinator.tsKäivitus · hinnang: redutseerimine järjekorrasOlek → järgmised mõjudsrc/reducerReaalajas sündmused redutseeritakse järjekorrast ükshaaval, hoides iga sündmuse mõjud järjestuses; edastamine ise käib asünkroonselt.
Olek → järgmised mõjud
src/reducerKäivitus · hinnang: mõjudMõjude täitmine · toimijate käivitaminesrc/dispatcher/live.tsReducer on puhas funktsioon, mis otsustab ainult oleku ja järgmised mõjud: eesmärk valib Planneri, spetsifikatsioon Builderi, ehitus qa_check-kontrolli.
Toimija → rakis · mudel
model-config · presetKäivitus · hinnang: toimija seadistussrc/dispatcher/live.tsMilline rakis, mudelipakkuja ja mudel toimijat käivitab, lahendatakse järjekorras CLI lipp > config > preset > ambient > fallback. Toimija ei ole fikseeritud mudelipakkuja.
Mõjude täitmine · toimijate käivitamine
src/dispatcher/live.tsKäivitus · hinnang: Planneri käivitaminePlanner Lead · spetsifikatsioonagent actor · CLIDispetšer käivitab Planneri projitseeritud sisendiga. Tingimuslik uurimine jätkub Planneri uurimisplaani ja tõendite üleandmise kaudu ning on sellel kaardil kokku volditud.
Planner Lead · spetsifikatsioon
agent actor · CLIAndmed: spectranscript.jsonl · append-onlysrc/transcriptPlanneri spetsifikatsioon muutub transkripti sündmuseks ja reducer valib selle põhjal Builderi. Toimijad üksteist ei kutsu.
Mõjude täitmine · toimijate käivitamine
src/dispatcher/live.tsKäivitus · hinnang: Builderi käivitamineBuilder · kirjutab mänguagent actor · CLIDispetšer käivitab Builderi. Kui sama toimija ikka ja jälle ebaõnnestub, rakendub kaitselüliti ja vahetab adapteri ning kui tõrked jätkuvad, töö peatub.
Builder · kirjutab mängu
agent actor · CLIAndmed: failidMängufailidartifacts/Builder kirjutab sisendfaili, lähtekoodi ja ressursid artefaktidena.
Builder · kirjutab mängu
agent actor · CLIAndmed: ehituse kirjetranscript.jsonl · append-onlysrc/transcriptEhituse sündmus ja artifact.created salvestatakse transkripti koos artefakti identiteediga.
Mõjude täitmine · toimijate käivitamine
src/dispatcher/live.tsKäivitus · hinnang: qa_checkTäitmise QA · kontrolliddispatcher/qa-runner.tsPärast ehituse sündmust väljastab reducer qa_check-mõju, mis kannab artefakti ja ehituse identiteeti ning vastuvõtutingimusi, ja dispetšer käivitab selle.
Mängufailid
artifacts/Andmed: mida käivitatakseTäitmise QA · kontrolliddispatcher/qa-runner.tsTäitmise QA käivitab tegeliku artefakti koodi- ja brauserikontrollidega. 120-sekundiline vaikimisi ajalõpp on konfiguratsiooniväärtus.
Täitmise QA · kontrollid
dispatcher/qa-runner.tsAndmed: qa.resulttranscript.jsonl · append-onlysrc/transcriptEdu või tõrke korral salvestatakse tulemus süsteemi qa.result-sündmusena. Isegi kui kontroll viskab erindi, salvestatakse tulemus tõrkeväljadega.
Verifitseerimise usalduspiir
Täitmise QA on tõend artefakti tegelikust käivitamisest; Verifier on mudel, mis hindab projitseeritud tõendeid. Reducer ühitab need kaks enne järgmise tee valimist.
Täitmise QA · kontrollid
dispatcher/qa-runner.tsAndmed: qa.resulttranscript.jsonl · append-onlysrc/transcriptEdu või tõrke korral salvestatakse tulemus süsteemi qa.result-sündmusena. Isegi kui kontroll viskab erindi, salvestatakse tulemus tõrkeväljadega.
transcript.jsonl · append-only
src/transcriptAndmed: ainult tõendidKohtuniku sisendi projektsioonsrc/dispatcher/live.tsVerifieri sisend projitseeritakse viimasest eesmärgist, spetsifikatsioonist, ehitusest, qa.result- ja artifact.created-sündmusest ning valitud uurimistõenditest. See kitsendab konteksti; see ei tõenda isolatsiooni ega lekete puudumist.
Kohtuniku sisendi projektsioon
src/dispatcher/live.tsAndmed: kohtuniku sisendVerifier · mudeli verdiktVerifier actorDispetšer käivitab Verifieri projitseeritud sisendiga.
Verifier · mudeli verdikt
Verifier actorAndmed: judge.scoretranscript.jsonl · append-onlysrc/transcriptVerifieri verdikt salvestatakse judge.score-sündmusena. See on mudeli hinnang, mitte fakt täitmise kohta.
Olek → järgmised mõjud
src/reducerKäivitus · hinnang: skoor · QA tõendidPettusevastane kontroll · skoori parandussrc/validatorjudge.score-sündmuse korral annab reducer selle pettusevastasele kontrollile koos QA tulemuse, Builderi mudelipakkuja ning uurimisplaani ja -tõenditega.
Pettusevastane kontroll · skoori parandus
src/validatorAndmed: parandatud verdiktVerdikti suunaminesrc/reducerPASS ilma eduka täitmiseta muutub FAIL-iks ja täitmisega seotud skoor parandatakse deterministliku QA järgi. Ülejäänud reeglid on tingimuslikud parandused, mitte üldine tõestus tõesuse kohta.
Verdikti suunamine
src/reducerAndmed: valmisValmis · PASS või peatumise põhjussession donePASS lõpetab seansi olekuga done. Eelarve- ja kaitselüliti peatumised lõpevad samuti olekuga done, kuid säilitavad peatumise põhjuse, seega ei ole done alati PASS.
Tõrge ja inimese juhtimine
PARTIAL läheb inimesele, Critical ümberkujundamisele, Important või Minor parandamisele ning eelarve- või kaitselüliti peatumised jätavad peatumise põhjuse.
Pettusevastane kontroll · skoori parandus
src/validatorAndmed: parandatud verdiktVerdikti suunaminesrc/reducerPASS ilma eduka täitmiseta muutub FAIL-iks ja täitmisega seotud skoor parandatakse deterministliku QA järgi. Ülejäänud reeglid on tingimuslikud parandused, mitte üldine tõestus tõesuse kohta.
Verdikti suunamine
src/reducerKäivitus · hinnang: PARTIAL-kontrollMänguidee · juhtiminePARTIAL ootab inimese kontrolli.
Verdikti suunamine
src/reducerKäivitus · hinnang: ümberkujundamine · parandaminesrc/dispatcher/live.tsVerdiktidest FAIL ja REJECT läheb Critical tagasi Plannerile ümberkujundamiseks ning Important või Minor Builderile parandustagasisidena, kõik dispetšeri mõjudena käivitatuna.
Verdikti suunamine
src/reducerAndmed: valmisValmis · PASS või peatumise põhjussession donePASS lõpetab seansi olekuga done. Eelarve- ja kaitselüliti peatumised lõpevad samuti olekuga done, kuid säilitavad peatumise põhjuse, seega ei ole done alati PASS.
Mänguidee · juhtimineKäivitus · hinnang: idee · juhtimineKäskude kirjutamine inboxi
packages/studioÜherealine mänguidee ja loomulikus keeles juhtimine sisestatakse Studiosse, mis kirjutab käsud inboxi. Studio ei muuda kunagi transkripti otse.
Taasesitus ja vaatlus
Oleku taastamine transkriptist ei käivita mõjusid ning Studio näitab sama kirjet seda lugedes.
transcript.jsonl · append-only
src/transcriptAndmed: uued sündmused · taasesitusSündmustsükkel · taasesitus · jälgiminesrc/loop/coordinator.tsKirjutaja valideerib skeemi, määrab ULID-i ja aja ning lisab sündmuse lõppu. Taasesitusel varasemad sündmused ainult redutseeritakse; nende mõjusid uuesti ei käivitata.
Sündmustsükkel · taasesitus · jälgimine
src/loop/coordinator.tsKäivitus · hinnang: redutseerimine järjekorrasOlek → järgmised mõjudsrc/reducerReaalajas sündmused redutseeritakse järjekorrast ükshaaval, hoides iga sündmuse mõjud järjestuses; edastamine ise käib asünkroonselt.
transcript.jsonl · append-only
src/transcriptVaatlus · aruanne: lugemine · SSESündmuste · artefaktide vaadepackages/studioStudio loeb transkripti ja artefakte ning näitab SSE kaudu edenemist, mõõdikuid ja artefakte. See ei ole kaugteenusesse saadetav telemeetria.
Kõik ühendused sama kaaluga. Vali voog, et tõsta esile ainult selle tee koos nummerdatud sammudega.
- Pidevjoon · sisendi, tulemuste ja kirjete suund
- Kriipsjoon · käivitus, hinnang, päring
- Pikad punktid · vaatlus ja aruandlus, hinnangust eraldi
- Paks must joon · valitud voog; numbrid näitavad järjekorda
- Kast · koodi või oleku piir, nimi päises
- Sisemine silt · selle piiri komponent
- Punktiirjoonega kast · sellest piirist väljas
- Oranž kontuur · koht, kus mudel otsustab
- Sündmustsükkel · reducer · dispetšer
- Kirjed · seadistus · artefaktid
- Deterministlikud kontrollid · parandus
- Studio · toimijad
Joonistatud avaliku commiti f5e17c0 kooditeede põhjal. Toimijad on käitusaegsed rollid, eraldi kodeerimisagentidest, millega see repositoorium ehitati.
- Oleku allikas
- Transkript on oleku allikas ja reducer on puhas funktsioon. Ainult dispetšer teeb kõrvalmõjusid (toimijate käivitamine, QA, failide kirjutamine), seega taasesitus ehitab oleku uuesti üles ilma mõjudeta.
- Mida taasesitus hõlmab
- Taasesitus annab sama oleku; see ei muuda LLM-i genereeringuid ega brauseri ja võrgu käitumist deterministlikuks.
- Mida verdikt hõlmab
- Täitmise QA kontrollib ainult konfigureeritud kontrolle ning Verifieri skoor on üks tõendikanal. Kumbki ei mõõda kogu mängu käitumist, lõbusust ega kasutaja rahulolu.