
CRUMB
Generative Game Studio · Demo
Tek satırlık bir oyun fikrinden oynanabilir bir taslağa, ajanların çalışması görünür ve müdahaleye açık hâlde.
CRUMB, gündelik oyun prototiplemesi için çok ajanlı bir stüdyo düzeneğidir.
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
Oyunu kuran ajanlar, onu yargılayan kanıttan ayrı tutulur.
Tek satırlık bir oyun fikrini şartname, derleme ve yürütme kontrollerinden geçiren yerel bir stüdyo tanıtımı. Her adım bir JSONL dökümüne düşer, saf bir reducer sonraki etkileri belirler ve yan etkileri yalnızca dispatcher gerçekleştirir. Yürütme QA'sı ve modelin hükmü; geçiş, yeniden tasarım, onarım ve insan yönlendirmesi arasında karar vermek için ayrı tutulur.
Tek satırda bir oyun önerin; Claude Code, Codex ve Gemini CLI ajanları Planner → Builder → deterministik QA → Verifier üzerinden iş birliği yapar, CRUMB Studio da olayları, ilerlemeyi ve artefaktları gösterir ve doğal dilde müdahaleyi kabul eder.
Herkese açık depodan klonlayıp yerelde çalıştırdığınız bir tanıtım.
Fikirden oyuna
Bir fikir şartnameye, derlemeye ve bir yürütme QA çalıştırmasına dönüşür. Her adım dökümden geçer; actor'ler birbirini çağırmaz.
Oyun fikri · yönlendirmeÇalıştırma · yargı: öner · yön verInbox komutlarını yaz
packages/studioTek satırlık bir oyun fikri ve doğal dilde yönlendirme Studio'ya girilir; Studio komutları inbox'a yazar. Studio dökümü asla doğrudan düzenlemez.
Inbox komutlarını yaz
packages/studioVeri: user olaylarıOlay döngüsü · replay · tailsrc/loop/coordinator.tsCoordinator inbox komutlarını okur ve dökümde user olayları olarak kaydeder.
Olay döngüsü · replay · tail
src/loop/coordinator.tsÇalıştırma · yargı: sırayla reduce etDurum → sonraki etkilersrc/reducerCanlı olaylar bir kuyruktan tek tek reduce edilir ve her olayın etkileri sırasıyla korunur; dispatch'in kendisi eşzamansız çalışır.
Durum → sonraki etkiler
src/reducerÇalıştırma · yargı: etkilerEtkileri çalıştır · actor'leri spawn etsrc/dispatcher/live.tsReducer yalnızca durumu ve sonraki etkileri belirleyen saf bir fonksiyondur: bir goal Planner'ı, bir spec Builder'ı, bir build bir qa_check'i seçer.
Actor → düzenek · model
model-config · presetÇalıştırma · yargı: actor kurulumusrc/dispatcher/live.tsBir actor'ü hangi düzenek, sağlayıcı ve modelin çalıştıracağı CLI bayrağı > yapılandırma > preset > ambient > fallback sırasıyla çözülür. Bir actor sabit bir sağlayıcı değildir.
Etkileri çalıştır · actor'leri spawn et
src/dispatcher/live.tsÇalıştırma · yargı: Planner'ı çalıştırPlanner Lead · şartnameagent actor · CLIDispatcher Planner'ı yansıtılmış girdiyle çalıştırır. Koşullu araştırma Planner'ın araştırma planı ve kanıt devriyle sürer; bu haritada katlanmıştır.
Planner Lead · şartname
agent actor · CLIVeri: spectranscript.jsonl · append-onlysrc/transcriptPlanner'ın şartnamesi bir döküm olayına dönüşür ve reducer ondan Builder'ı seçer. Actor'ler birbirini çağırmaz.
Etkileri çalıştır · actor'leri spawn et
src/dispatcher/live.tsÇalıştırma · yargı: Builder'ı çalıştırBuilder · oyunu yazaragent actor · CLIDispatcher Builder'ı çalıştırır. Aynı actor başarısız olmaya devam ederse bir circuit açılır ve adaptörü değiştirir; hatalar sürerse durur.
Builder · oyunu yazar
agent actor · CLIVeri: dosyalarOyun dosyalarıartifacts/Builder giriş dosyasını, kaynakları ve varlıkları artefakt olarak yazar.
Builder · oyunu yazar
agent actor · CLIVeri: derleme kaydıtranscript.jsonl · append-onlysrc/transcriptBuild olayı ve artifact.created, artefaktın kimliğiyle birlikte dökümde kaydedilir.
Etkileri çalıştır · actor'leri spawn et
src/dispatcher/live.tsÇalıştırma · yargı: qa_checkYürütme QA'sı · kontrollerdispatcher/qa-runner.tsBir build olayından sonra reducer artefakt ve build kimliğini ve kabul koşullarını taşıyan bir qa_check etkisi yayar ve dispatcher onu çalıştırır.
Oyun dosyaları
artifacts/Veri: ne çalışırYürütme QA'sı · kontrollerdispatcher/qa-runner.tsYürütme QA'sı gerçek artefaktı kod ve tarayıcı kontrolleriyle çalıştırır. 120 saniyelik varsayılan zaman aşımı bir yapılandırma değeridir.
Yürütme QA'sı · kontroller
dispatcher/qa-runner.tsVeri: qa.resulttranscript.jsonl · append-onlysrc/transcriptBaşarılı ya da başarısız, sonuç bir system qa.result olayı olarak kaydedilir. Kontrol bir istisna fırlatsa bile başarısız alanları içeren bir sonuç kaydedilir.
Doğrulamanın güven sınırı
Yürütme QA'sı artefaktı gerçekten çalıştırmaktan gelen kanıttır; Verifier ise yansıtılmış kanıtı yargılayan bir modeldir. Reducer, sonraki yolu seçmeden önce ikisini uzlaştırır.
Yürütme QA'sı · kontroller
dispatcher/qa-runner.tsVeri: qa.resulttranscript.jsonl · append-onlysrc/transcriptBaşarılı ya da başarısız, sonuç bir system qa.result olayı olarak kaydedilir. Kontrol bir istisna fırlatsa bile başarısız alanları içeren bir sonuç kaydedilir.
transcript.jsonl · append-only
src/transcriptVeri: yalnızca kanıtHakem girdisi yansıtmasrc/dispatcher/live.tsVerifier'ın girdisi en son goal, spec, build, qa.result ve artifact.created ile seçilmiş araştırma kanıtından yansıtılır. Bağlamı daraltır; yalıtımı ya da sızıntı olmadığını kanıtlamaz.
Hakem girdisi yansıtma
src/dispatcher/live.tsVeri: hakem girdisiVerifier · model hükmüVerifier actorDispatcher Verifier'ı yansıtılmış girdiyle çalıştırır.
Verifier · model hükmü
Verifier actorVeri: judge.scoretranscript.jsonl · append-onlysrc/transcriptVerifier'ın hükmü bir judge.score olayı olarak kaydedilir. Bu bir modelin yargısıdır, yürütmeye dair bir olgu değil.
Durum → sonraki etkiler
src/reducerÇalıştırma · yargı: puan · QA kanıtıAldatma önleme · puan düzeltmesrc/validatorjudge.score geldiğinde reducer onu QA sonucu, Builder'ın sağlayıcısı ve araştırma planı ile kanıtıyla birlikte aldatma önleme kontrolüne aktarır.
Aldatma önleme · puan düzeltme
src/validatorVeri: düzeltilmiş hükümHüküm yönlendirmesrc/reducerBaşarılı bir yürütme olmadan verilen PASS, FAIL olur ve yürütmeyle ilgili puan deterministik QA'dan düzeltilir. Diğer kurallar koşullu düzeltmelerdir; genel bir doğruluk kanıtı değildir.
Hüküm yönlendirme
src/reducerVeri: bittiBitti · PASS ya da durma nedenisession donePASS oturumu done olarak bitirir. Bütçe ve circuit durmaları da done olarak biter ama durma nedenini korur; dolayısıyla done her zaman PASS değildir.
Hata ve insan yönlendirmesi
PARTIAL bir kişiye, Critical yeniden tasarıma, Important ya da Minor onarıma gider; bütçe ya da circuit durmaları bir durma nedeni bırakır.
Aldatma önleme · puan düzeltme
src/validatorVeri: düzeltilmiş hükümHüküm yönlendirmesrc/reducerBaşarılı bir yürütme olmadan verilen PASS, FAIL olur ve yürütmeyle ilgili puan deterministik QA'dan düzeltilir. Diğer kurallar koşullu düzeltmelerdir; genel bir doğruluk kanıtı değildir.
Hüküm yönlendirme
src/reducerÇalıştırma · yargı: PARTIAL kontrolüOyun fikri · yönlendirmePARTIAL bir kişinin kontrol etmesini bekler.
Hüküm yönlendirme
src/reducerÇalıştırma · yargı: yeniden tasarım · onarımsrc/dispatcher/live.tsFAIL ve REJECT arasında Critical yeniden tasarım için Planner'a, Important ya da Minor düzeltme geri bildirimi olarak Builder'a döner; hepsi dispatcher etkileri olarak çalışır.
Hüküm yönlendirme
src/reducerVeri: bittiBitti · PASS ya da durma nedenisession donePASS oturumu done olarak bitirir. Bütçe ve circuit durmaları da done olarak biter ama durma nedenini korur; dolayısıyla done her zaman PASS değildir.
Oyun fikri · yönlendirmeÇalıştırma · yargı: öner · yön verInbox komutlarını yaz
packages/studioTek satırlık bir oyun fikri ve doğal dilde yönlendirme Studio'ya girilir; Studio komutları inbox'a yazar. Studio dökümü asla doğrudan düzenlemez.
Yeniden oynatma ve gözlem
Durumu dökümden yeniden kurmak hiçbir etkiyi çalıştırmaz ve Studio göstermek için aynı kaydı okur.
transcript.jsonl · append-only
src/transcriptVeri: yeni olaylar · replayOlay döngüsü · replay · tailsrc/loop/coordinator.tsWriter şemayı doğrular, bir ULID ve zaman atar ve ekler. Replay sırasında geçmiş olaylar yalnızca reduce edilir; etkileri yeniden çalıştırılmaz.
Olay döngüsü · replay · tail
src/loop/coordinator.tsÇalıştırma · yargı: sırayla reduce etDurum → sonraki etkilersrc/reducerCanlı olaylar bir kuyruktan tek tek reduce edilir ve her olayın etkileri sırasıyla korunur; dispatch'in kendisi eşzamansız çalışır.
transcript.jsonl · append-only
src/transcriptGözlem · rapor: okuma · SSEOlaylar · artefakt görünümüpackages/studioStudio dökümü ve artefaktları okur ve ilerlemeyi, metrikleri ve artefaktları SSE üzerinden gösterir. Uzak bir hizmete gönderilen telemetri değildir.
Her bağlantı aynı kalınlıkta. Yalnızca yolunu numaralı adımlarla vurgulamak için bir akış seçin.
- Düz çizgi · girdi, sonuç ve kayıtların yönü
- Kesikli · çalıştırma, yargı, istek
- Uzun noktalar · gözlem ve raporlama, yargıdan ayrı
- Kalın siyah çizgi · seçilen akış; numaralar sırayı verir
- Kutu · bir kod ya da durum sınırı, adı başlığında
- İç çip · o sınırın bir bileşeni
- Noktalı kutu · o sınırın dışı
- Turuncu çerçeve · bir modelin karar verdiği yer
- Olay döngüsü · reducer · dispatcher
- Kayıtlar · kurulum · artefaktlar
- Deterministik kontroller · düzeltme
- Studio · actor'ler
Herkese açık f5e17c0 commit'indeki kod yollarından çizildi. Actor'ler çalışma zamanı rolleridir; bu depoyu kurmak için kullanılan kodlama ajanlarından farklıdır.
- Durumun kaynağı
- Döküm durumun kaynağıdır ve reducer saf bir fonksiyondur. Yan etkileri (actor'leri çalıştırmak, QA, dosya yazmak) yalnızca dispatcher gerçekleştirir; bu yüzden yeniden oynatma durumu etkiler olmadan yeniden kurar.
- Yeniden oynatmanın kapsamı
- Yeniden oynatma aynı durumu verir; LLM üretimlerini ya da tarayıcı ve ağ davranışını deterministik yapmaz.
- Hükmün kapsamı
- Yürütme QA'sı yalnızca yapılandırılmış kontrolleri denetler ve Verifier'ın puanı kanıtın tek bir kanalıdır. Hiçbiri oyunun her davranışını, eğlencesini ya da kullanıcı memnuniyetini ölçmez.