Tikai maizes tēls no CRUMB logotipa: smaidoša maizes šķēle ar nokostu augšējo labo stūri
Atpakaļ uz zāli

CRUMB

Generative Game Studio · Demo

No vienas rindas spēles idejas līdz spēlējamam melnrakstam, ar aģentu darbu redzamu un atvērtu iejaukšanās iespējai.

CRUMB ir vairāku aģentu studijas ietvars vienkāršu spēļu prototipēšanai.

Dizains un izstrāde · veidots ar AI kodēšanas aģentiem

  • CLILokāla demonstrācija
  • Web StudioLokāla demonstrācija

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ģenti, kas veido spēli, nošķirti no pierādījumiem, pēc kuriem to vērtē.

Lokāla studijas demonstrācija, kas vienas rindas spēles ideju ved cauri specifikācijai, būvēšanai un izpildes pārbaudēm. Katrs solis nonāk JSONL transkriptā, tīra reducer funkcija nosaka nākamos efektus, un tikai dispečers izpilda blakusefektus. Izpildes QA un modeļa verdikts tiek turēti atsevišķi, lai izvēlētos starp izturēšanu, pārprojektēšanu, labošanu un cilvēka vadību.

Aprakstiet spēli vienā rindā, un Claude Code, Codex un Gemini CLI aģenti sadarbojas secībā Planner → Builder → deterministisks QA → Verifier, kamēr CRUMB Studio rāda notikumus, progresu un artefaktus un pieņem iejaukšanos dabiskajā valodā.

Demonstrācija, ko klonē no publiskā repozitorija un palaiž lokāli.

Sistēmas karte · veidota pēc publiskā komita f5e17c0 koda ceļiem
CRUMB studijas sistēmaCilvēks Studio apraksta spēli un vada to, un Studio ieraksta komandas inbox failā. Coordinator secīgi nodod jaunos notikumus no inbox un transkripta reducer funkcijai; tīrais reducer nosaka stāvokli un nākamos efektus, un tikai dispečers izpilda blakusefektus. Planner specifikācija, Builder būvējums un artefakti, izpildes QA rezultāts un Verifier spriedums — visi kļūst par transkripta notikumiem. Verifier saņem tikai projicētus pierādījumus, un reducer pārbauda un labo tā vērtējumu pret QA rezultātu: PASS beidz sesiju, PARTIAL gaida cilvēku, un viss pārējais atgriežas pārprojektēšanai vai labošanai.Spēles ideja · vadībaCilvēks, lokālipackages/studioNotikumu · artefaktu skatsKomandu ierakstīšana inboxsrc/transcripttranscript.jsonl · append-onlysrc/loop/coordinator.tsNotikumu cikls · atkārtota atskaņošana · sekošanasrc/reducerStāvoklis → nākamie efektiVerdikta maršrutēšanasession donePabeigts · PASS vai apstāšanās iemeslssrc/dispatcher/live.tsEfektu izpilde · aktoru palaišanaTiesneša ievades projekcijamodel-config · presetAktors → ietvars · modelisagent actor · CLIPlanner Lead · specifikācijaBuilder · raksta spēliartifacts/Spēles failidispatcher/qa-runner.tsIzpildes QA · pārbaudesVerifier actorVerifier · modeļa verdiktssrc/validatorMaldināšanas novēršana · vērtējuma labojumsCilvēki · StudioNotikumu vadībatranskripts ir stāvokļa avotsDarba aģenti · artefaktiVerifikācija · lēmums1ideja · vadība2lietotāja notikumi3reducēšana secīgi4efekti5aktora iestatīšana6palaist Planner7spec8palaist Builder9faili10būvējuma ieraksts11qa_check12kas tiek palaists13qa.result1qa.result2tikai pierādījumi3tiesneša ievade4judge.score5vērtējums · QA pierādījumi6labots verdikts7pabeigts1labots verdikts2PARTIAL pārbaude3pārprojektēšana · labošana4pabeigts5ideja · vadība1jauni notikumi · atkārtota atskaņošana2reducēšana secīgi3nolasīšana · SSE

No idejas līdz spēlei

Ideja kļūst par specifikāciju, būvējumu un izpildes QA palaidienu. Katrs solis iet caur transkriptu; aktori cits citu neizsauc.

  1. Spēles ideja · vadībaIzpilde · spriedums: ideja · vadībaKomandu ierakstīšana inboxpackages/studio

    Vienas rindas spēles ideja un vadība dabiskajā valodā tiek ievadītas Studio, kas ieraksta komandas inbox. Studio nekad tieši nerediģē transkriptu.

  2. Komandu ierakstīšana inboxpackages/studioDati: lietotāja notikumiNotikumu cikls · atkārtota atskaņošana · sekošanasrc/loop/coordinator.ts

    Coordinator nolasa inbox komandas un reģistrē tās transkriptā kā lietotāja notikumus.

  3. Notikumu cikls · atkārtota atskaņošana · sekošanasrc/loop/coordinator.tsIzpilde · spriedums: reducēšana secīgiStāvoklis → nākamie efektisrc/reducer

    Tiešsaistes notikumi tiek reducēti pa vienam no rindas, saglabājot katra notikuma efektu secību; pati nosūtīšana notiek asinhroni.

  4. Stāvoklis → nākamie efektisrc/reducerIzpilde · spriedums: efektiEfektu izpilde · aktoru palaišanasrc/dispatcher/live.ts

    Reducer ir tīra funkcija, kas nosaka tikai stāvokli un nākamos efektus: mērķis izvēlas Planner, specifikācija — Builder, būvējums — qa_check.

  5. Aktors → ietvars · modelismodel-config · presetIzpilde · spriedums: aktora iestatīšanasrc/dispatcher/live.ts

    Kurš ietvars, modeļu nodrošinātājs un modelis palaiž aktoru, tiek noteikts secībā CLI karodziņš > config > preset > ambient > fallback. Aktors nav fiksēts modeļu nodrošinātājs.

  6. Efektu izpilde · aktoru palaišanasrc/dispatcher/live.tsIzpilde · spriedums: palaist PlannerPlanner Lead · specifikācijaagent actor · CLI

    Dispečers palaiž Planner ar projicētu ievadi. Nosacīta izpēte turpinās caur Planner izpētes plānu un pierādījumu nodošanu, un šajā kartē tā ir sakļauta.

  7. Planner Lead · specifikācijaagent actor · CLIDati: spectranscript.jsonl · append-onlysrc/transcript

    Planner specifikācija kļūst par transkripta notikumu, un reducer pēc tās izvēlas Builder. Aktori cits citu neizsauc.

  8. Efektu izpilde · aktoru palaišanasrc/dispatcher/live.tsIzpilde · spriedums: palaist BuilderBuilder · raksta spēliagent actor · CLI

    Dispečers palaiž Builder. Ja tas pats aktors atkārtoti cieš neveiksmi, nostrādā ķēdes pārtraucējs un nomaina adapteri, bet, ja kļūmes turpinās, darbs tiek apturēts.

  9. Builder · raksta spēliagent actor · CLIDati: failiSpēles failiartifacts/

    Builder ieraksta ieejas failu, pirmkodu un resursus kā artefaktus.

  10. Builder · raksta spēliagent actor · CLIDati: būvējuma ierakststranscript.jsonl · append-onlysrc/transcript

    Būvējuma notikums un artifact.created tiek reģistrēti transkriptā ar artefakta identitāti.

  11. Efektu izpilde · aktoru palaišanasrc/dispatcher/live.tsIzpilde · spriedums: qa_checkIzpildes QA · pārbaudesdispatcher/qa-runner.ts

    Pēc būvējuma notikuma reducer izsūta qa_check efektu, kas nes artefakta un būvējuma identitāti un pieņemšanas nosacījumus, un dispečers to izpilda.

  12. Spēles failiartifacts/Dati: kas tiek palaistsIzpildes QA · pārbaudesdispatcher/qa-runner.ts

    Izpildes QA palaiž faktisko artefaktu ar koda un pārlūka pārbaudēm. 120 sekunžu noklusējuma noildze ir konfigurācijas vērtība.

  13. Izpildes QA · pārbaudesdispatcher/qa-runner.tsDati: qa.resulttranscript.jsonl · append-onlysrc/transcript

    Veiksmes vai kļūmes gadījumā rezultāts tiek reģistrēts kā sistēmas qa.result notikums. Pat ja pārbaude izmet izņēmumu, tiek reģistrēts rezultāts ar kļūmes laukiem.

Verifikācijas uzticēšanās robeža

Izpildes QA ir pierādījums no artefakta faktiskas palaišanas; Verifier ir modelis, kas vērtē projicētus pierādījumus. Reducer saskaņo abus, pirms izvēlas nākamo ceļu.

  1. Izpildes QA · pārbaudesdispatcher/qa-runner.tsDati: qa.resulttranscript.jsonl · append-onlysrc/transcript

    Veiksmes vai kļūmes gadījumā rezultāts tiek reģistrēts kā sistēmas qa.result notikums. Pat ja pārbaude izmet izņēmumu, tiek reģistrēts rezultāts ar kļūmes laukiem.

  2. transcript.jsonl · append-onlysrc/transcriptDati: tikai pierādījumiTiesneša ievades projekcijasrc/dispatcher/live.ts

    Verifier ievade tiek projicēta no jaunākā mērķa, specifikācijas, būvējuma, qa.result un artifact.created, kā arī atlasītiem izpētes pierādījumiem. Tā sašaurina kontekstu; tā nepierāda izolāciju vai noplūdes neesamību.

  3. Tiesneša ievades projekcijasrc/dispatcher/live.tsDati: tiesneša ievadeVerifier · modeļa verdiktsVerifier actor

    Dispečers palaiž Verifier ar projicētu ievadi.

  4. Verifier · modeļa verdiktsVerifier actorDati: judge.scoretranscript.jsonl · append-onlysrc/transcript

    Verifier verdikts tiek reģistrēts kā judge.score notikums. Tas ir modeļa spriedums, nevis fakts par izpildi.

  5. Stāvoklis → nākamie efektisrc/reducerIzpilde · spriedums: vērtējums · QA pierādījumiMaldināšanas novēršana · vērtējuma labojumssrc/validator

    Pie judge.score reducer to nodod maldināšanas novēršanas pārbaudei kopā ar QA rezultātu, Builder modeļu nodrošinātāju un izpētes plānu un pierādījumiem.

  6. Maldināšanas novēršana · vērtējuma labojumssrc/validatorDati: labots verdiktsVerdikta maršrutēšanasrc/reducer

    PASS bez veiksmīgas izpildes kļūst par FAIL, un ar izpildi saistītais vērtējums tiek labots pēc deterministiskā QA. Pārējie noteikumi ir nosacīti labojumi, nevis vispārīgs patiesuma pierādījums.

  7. Verdikta maršrutēšanasrc/reducerDati: pabeigtsPabeigts · PASS vai apstāšanās iemeslssession done

    PASS beidz sesiju ar statusu done. Budžeta un ķēdes pārtraucēja apstāšanās arī beidzas ar statusu done, taču saglabā apstāšanās iemeslu, tāpēc done ne vienmēr nozīmē PASS.

Kļūme un cilvēka vadība

PARTIAL nonāk pie cilvēka, Critical — pārprojektēšanā, Important vai Minor — labošanā, un budžeta vai ķēdes pārtraucēja apstāšanās atstāj apstāšanās iemeslu.

  1. Maldināšanas novēršana · vērtējuma labojumssrc/validatorDati: labots verdiktsVerdikta maršrutēšanasrc/reducer

    PASS bez veiksmīgas izpildes kļūst par FAIL, un ar izpildi saistītais vērtējums tiek labots pēc deterministiskā QA. Pārējie noteikumi ir nosacīti labojumi, nevis vispārīgs patiesuma pierādījums.

  2. Verdikta maršrutēšanasrc/reducerIzpilde · spriedums: PARTIAL pārbaudeSpēles ideja · vadība

    PARTIAL gaida cilvēka pārbaudi.

  3. Verdikta maršrutēšanasrc/reducerIzpilde · spriedums: pārprojektēšana · labošanasrc/dispatcher/live.ts

    No FAIL un REJECT Critical atgriežas pie Planner pārprojektēšanai, bet Important vai Minor — pie Builder kā labojumu atgriezeniskā saite; visi tiek izpildīti kā dispečera efekti.

  4. Verdikta maršrutēšanasrc/reducerDati: pabeigtsPabeigts · PASS vai apstāšanās iemeslssession done

    PASS beidz sesiju ar statusu done. Budžeta un ķēdes pārtraucēja apstāšanās arī beidzas ar statusu done, taču saglabā apstāšanās iemeslu, tāpēc done ne vienmēr nozīmē PASS.

  5. Spēles ideja · vadībaIzpilde · spriedums: ideja · vadībaKomandu ierakstīšana inboxpackages/studio

    Vienas rindas spēles ideja un vadība dabiskajā valodā tiek ievadītas Studio, kas ieraksta komandas inbox. Studio nekad tieši nerediģē transkriptu.

Atkārtota atskaņošana un novērošana

Stāvokļa atjaunošana no transkripta neizpilda efektus, un Studio rāda to pašu ierakstu, to nolasot.

  1. transcript.jsonl · append-onlysrc/transcriptDati: jauni notikumi · atkārtota atskaņošanaNotikumu cikls · atkārtota atskaņošana · sekošanasrc/loop/coordinator.ts

    Rakstītājs validē shēmu, piešķir ULID un laiku un pievieno notikumu beigās. Atkārtotas atskaņošanas laikā pagātnes notikumi tikai tiek reducēti; to efekti netiek izpildīti vēlreiz.

  2. Notikumu cikls · atkārtota atskaņošana · sekošanasrc/loop/coordinator.tsIzpilde · spriedums: reducēšana secīgiStāvoklis → nākamie efektisrc/reducer

    Tiešsaistes notikumi tiek reducēti pa vienam no rindas, saglabājot katra notikuma efektu secību; pati nosūtīšana notiek asinhroni.

  3. transcript.jsonl · append-onlysrc/transcriptNovērošana · ziņojums: nolasīšana · SSENotikumu · artefaktu skatspackages/studio

    Studio nolasa transkriptu un artefaktus un caur SSE rāda progresu, metrikas un artefaktus. Tā nav telemetrija, kas tiek sūtīta uz attālu pakalpojumu.

Visi savienojumi ar vienādu svaru. Izvēlieties plūsmu, lai izceltu tikai tās ceļu ar numurētiem soļiem.

  • Nepārtraukta · ievades, rezultātu un ierakstu virziens
  • Raustīta · izpilde, spriedums, pieprasījums
  • Gari punkti · novērošana un ziņošana, nošķirti no sprieduma
  • Bieza melna līnija · izvēlētā plūsma; skaitļi norāda secību
  • Rāmis · koda vai stāvokļa robeža, nosaukums galvenē
  • Iekšējā plāksnīte · šīs robežas komponents
  • Punktēts rāmis · ārpus šīs robežas
  • Oranža kontūra · vieta, kur lemj modelis
  • Notikumu cikls · reducer · dispečers
  • Ieraksti · iestatījumi · artefakti
  • Deterministiskas pārbaudes · labojums
  • Studio · aktori

Veidots pēc publiskā komita f5e17c0 koda ceļiem. Aktori ir izpildlaika lomas, kas atšķiras no kodēšanas aģentiem, ar kuriem veidots šis repozitorijs.

Stāvokļa avots
Transkripts ir stāvokļa avots, un reducer ir tīra funkcija. Tikai dispečers izpilda blakusefektus (aktoru palaišanu, QA, failu rakstīšanu), tāpēc atkārtota atskaņošana atjauno stāvokli bez efektiem.
Ko aptver atkārtota atskaņošana
Atkārtota atskaņošana dod to pašu stāvokli; tā nepadara deterministiskus LLM ģenerējumus vai pārlūka un tīkla uzvedību.
Ko aptver verdikts
Izpildes QA pārbauda tikai konfigurētās pārbaudes, un Verifier vērtējums ir viens pierādījumu kanāls. Neviens no tiem nemēra katru spēles uzvedību, jautrību vai lietotāju apmierinātību.