Samo lik kruha iz logotipa CRUMB: nasmiješena kriška kruha s odgriženim gornjim desnim kutom
Natrag u dvoranu

CRUMB

Generative Game Studio · Demo

Od ideje za igru u jednom retku do igrivog nacrta, s radom agenata na vidiku i mogućnošću intervencije.

CRUMB je višeagentni studijski okvir za izradu prototipova casual igara.

Dizajn i razvoj · izrađeno s AI agentima za programiranje

  • CLILokalni demo
  • Web StudioLokalni demo

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

Agenti koji grade igru, odvojeni od dokaza koji je prosuđuju.

Lokalni studijski demo koji ideju za igru u jednom retku vodi kroz provjere specifikacije, builda i izvođenja. Svaki korak završava u JSONL transkriptu, čisti reducer određuje sljedeće učinke, a nuspojave izvodi samo dispatcher. QA izvođenja i presuda modela drže se odvojeno kako bi se odlučilo između prolaza, redizajna, popravka i ljudskog upravljanja.

Igra se predloži u jednom retku, a agenti Claude Code, Codex i Gemini CLI surađuju kroz Planner → Builder → deterministički QA → Verifier, dok CRUMB Studio prikazuje događaje, napredak i artefakte te prima intervencije na prirodnom jeziku.

Demo koji se klonira iz javnog repozitorija i pokreće lokalno.

Karta sustava · nacrtano prema putovima koda na javnom commitu f5e17c0
Studijski sustav CRUMBČovjek u Studiju predlaže igru i upravlja njome, a Studio zapisuje naredbe u inbox. Coordinator redom prosljeđuje nove događaje iz inboxa i transkripta reduceru; čisti reducer određuje stanje i sljedeće učinke, a nuspojave izvodi samo dispatcher. Specifikacija Plannera, build i artefakti Buildera, rezultat QA-a izvođenja i prosudba Verifiera postaju događaji transkripta. Verifier prima samo projicirane dokaze, a reducer provjerava i ispravlja njegovu ocjenu prema rezultatu QA-a: PASS završava sesiju, PARTIAL čeka čovjeka, a sve ostalo vraća se na redizajn ili popravak.Ideja za igru · upravljanjeČovjek, lokalno pokretanjepackages/studioPrikaz događaja · artefakataZapis naredbi u inboxsrc/transcripttranscript.jsonl · append-onlysrc/loop/coordinator.tsPetlja događaja · reprodukcija · tailsrc/reducerStanje → sljedeći učinciUsmjeravanje presudesession doneGotovo · PASS ili razlog zaustavljanjasrc/dispatcher/live.tsIzvođenje učinaka · spawn akteraProjekcija ulaza sucamodel-config · presetAkter → okvir · modelagent actor · CLIPlanner Lead · specifikacijaBuilder · piše igruartifacts/Datoteke igredispatcher/qa-runner.tsQA izvođenja · provjereVerifier actorVerifier · presuda modelasrc/validatorZaštita od obmane · ispravak ocjeneLjudi · StudioUpravljanje događajimatranskript je izvor stanjaRadni agenti · artefaktiVerifikacija · odluka1ideja · upravljanje2događaji user3reduce redom4učinci5postav aktera6pokretanje Plannera7spec8pokretanje Buildera9 datoteke · Builder · piše igru → Datoteke igre910zapis builda11qa_check12što se pokreće13qa.result1qa.result2samo dokazi3ulaz suca4judge.score5ocjena · dokazi QA-a6ispravljena presuda7gotovo1ispravljena presuda2provjera PARTIAL3redizajn · popravak4gotovo5ideja · upravljanje1novi događaji · reprodukcija2reduce redom3čitanje · SSE

Od ideje do igre

Ideja postaje specifikacija, build i izvođenje QA-a. Svaki korak prolazi kroz transkript; akteri ne pozivaju jedni druge.

  1. Ideja za igru · upravljanjePokretanje · prosudba: ideja · upravljanjeZapis naredbi u inboxpackages/studio

    Ideja za igru u jednom retku i upravljanje prirodnim jezikom unose se u Studio, koji naredbe zapisuje u inbox. Studio nikad izravno ne uređuje transkript.

  2. Zapis naredbi u inboxpackages/studioPodaci: događaji userPetlja događaja · reprodukcija · tailsrc/loop/coordinator.ts

    Coordinator čita naredbe iz inboxa i zapisuje ih u transkript kao događaje user.

  3. Petlja događaja · reprodukcija · tailsrc/loop/coordinator.tsPokretanje · prosudba: reduce redomStanje → sljedeći učincisrc/reducer

    Živi događaji uzimaju se iz reda jedan po jedan i prolaze kroz reducer, uz očuvan redoslijed učinaka svakog događaja; samo prosljeđivanje izvodi se asinkrono.

  4. Stanje → sljedeći učincisrc/reducerPokretanje · prosudba: učinciIzvođenje učinaka · spawn akterasrc/dispatcher/live.ts

    Reducer je čista funkcija koja određuje samo stanje i sljedeće učinke: goal bira Plannera, spec Buildera, build qa_check.

  5. Akter → okvir · modelmodel-config · presetPokretanje · prosudba: postav akterasrc/dispatcher/live.ts

    Koji okvir, pružatelj i model pokreću aktera razrješava se redom zastavica CLI-ja > config > preset > ambient > fallback. Akter nije fiksni pružatelj.

  6. Izvođenje učinaka · spawn akterasrc/dispatcher/live.tsPokretanje · prosudba: pokretanje PlanneraPlanner Lead · specifikacijaagent actor · CLI

    Dispatcher pokreće Plannera s projiciranim ulazom. Uvjetno istraživanje nastavlja se kroz Plannerov plan istraživanja i predaju dokaza, sklopljene na ovoj karti.

  7. Planner Lead · specifikacijaagent actor · CLIPodaci: spectranscript.jsonl · append-onlysrc/transcript

    Plannerova specifikacija postaje događaj transkripta, a reducer na temelju nje bira Buildera. Akteri ne pozivaju jedni druge.

  8. Izvođenje učinaka · spawn akterasrc/dispatcher/live.tsPokretanje · prosudba: pokretanje BuilderaBuilder · piše igruagent actor · CLI

    Dispatcher pokreće Buildera. Ako isti akter stalno ne uspijeva, circuit se otvara i mijenja adapter, a ako se neuspjesi nastave, zaustavlja se.

  9. Builder · piše igruagent actor · CLIPodaci: datotekeDatoteke igreartifacts/

    Builder zapisuje ulaznu datoteku, izvore i resurse kao artefakte.

  10. Builder · piše igruagent actor · CLIPodaci: zapis buildatranscript.jsonl · append-onlysrc/transcript

    Događaj build i artifact.created zapisuju se u transkript s identitetom artefakta.

  11. Izvođenje učinaka · spawn akterasrc/dispatcher/live.tsPokretanje · prosudba: qa_checkQA izvođenja · provjeredispatcher/qa-runner.ts

    Nakon događaja build reducer emitira učinak qa_check s identitetom artefakta i builda te uvjetima prihvaćanja, a dispatcher ga izvodi.

  12. Datoteke igreartifacts/Podaci: što se pokrećeQA izvođenja · provjeredispatcher/qa-runner.ts

    QA izvođenja pokreće stvarni artefakt uz provjere koda i preglednika. Zadani istek vremena od 120 sekundi vrijednost je konfiguracije.

  13. QA izvođenja · provjeredispatcher/qa-runner.tsPodaci: qa.resulttranscript.jsonl · append-onlysrc/transcript

    Uspjeh ili neuspjeh, rezultat se bilježi kao sistemski događaj qa.result. Čak i ako provjera baci iznimku, bilježi se rezultat s poljima koja nisu prošla.

Granica povjerenja verifikacije

QA izvođenja dokaz je iz stvarnog pokretanja artefakta; Verifier je model koji prosuđuje projicirane dokaze. Reducer ih usklađuje prije odabira sljedećeg puta.

  1. QA izvođenja · provjeredispatcher/qa-runner.tsPodaci: qa.resulttranscript.jsonl · append-onlysrc/transcript

    Uspjeh ili neuspjeh, rezultat se bilježi kao sistemski događaj qa.result. Čak i ako provjera baci iznimku, bilježi se rezultat s poljima koja nisu prošla.

  2. transcript.jsonl · append-onlysrc/transcriptPodaci: samo dokaziProjekcija ulaza sucasrc/dispatcher/live.ts

    Ulaz Verifiera projicira se iz najnovijih goal, spec, build, qa.result i artifact.created uz odabrane dokaze istraživanja. To sužava kontekst; ne dokazuje izolaciju ni izostanak curenja.

  3. Projekcija ulaza sucasrc/dispatcher/live.tsPodaci: ulaz sucaVerifier · presuda modelaVerifier actor

    Dispatcher pokreće Verifiera s projiciranim ulazom.

  4. Verifier · presuda modelaVerifier actorPodaci: judge.scoretranscript.jsonl · append-onlysrc/transcript

    Presuda Verifiera bilježi se kao događaj judge.score. To je prosudba modela, a ne činjenica o izvođenju.

  5. Stanje → sljedeći učincisrc/reducerPokretanje · prosudba: ocjena · dokazi QA-aZaštita od obmane · ispravak ocjenesrc/validator

    Na judge.score reducer ga prosljeđuje provjeri zaštite od obmane zajedno s rezultatom QA-a, Builderovim pružateljem te planom i dokazima istraživanja.

  6. Zaštita od obmane · ispravak ocjenesrc/validatorPodaci: ispravljena presudaUsmjeravanje presudesrc/reducer

    PASS bez uspješnog izvođenja postaje FAIL, a ocjena vezana uz izvođenje ispravlja se prema determinističkom QA-u. Ostala su pravila uvjetni ispravci, a ne opći dokaz istinitosti.

  7. Usmjeravanje presudesrc/reducerPodaci: gotovoGotovo · PASS ili razlog zaustavljanjasession done

    PASS završava sesiju kao done. Zaustavljanja zbog proračuna i circuita također završavaju kao done, ali zadržavaju razlog zaustavljanja, pa done nije uvijek PASS.

Neuspjeh i ljudsko upravljanje

PARTIAL ide čovjeku, Critical na redizajn, Important ili Minor na popravak, a zaustavljanja zbog proračuna ili circuita ostavljaju razlog zaustavljanja.

  1. Zaštita od obmane · ispravak ocjenesrc/validatorPodaci: ispravljena presudaUsmjeravanje presudesrc/reducer

    PASS bez uspješnog izvođenja postaje FAIL, a ocjena vezana uz izvođenje ispravlja se prema determinističkom QA-u. Ostala su pravila uvjetni ispravci, a ne opći dokaz istinitosti.

  2. Usmjeravanje presudesrc/reducerPokretanje · prosudba: provjera PARTIALIdeja za igru · upravljanje

    PARTIAL čeka provjeru čovjeka.

  3. Usmjeravanje presudesrc/reducerPokretanje · prosudba: redizajn · popravaksrc/dispatcher/live.ts

    Među FAIL i REJECT Critical se vraća Planneru na redizajn, a Important ili Minor Builderu kao povratna informacija za popravak; sve se izvodi kao učinci dispatchera.

  4. Usmjeravanje presudesrc/reducerPodaci: gotovoGotovo · PASS ili razlog zaustavljanjasession done

    PASS završava sesiju kao done. Zaustavljanja zbog proračuna i circuita također završavaju kao done, ali zadržavaju razlog zaustavljanja, pa done nije uvijek PASS.

  5. Ideja za igru · upravljanjePokretanje · prosudba: ideja · upravljanjeZapis naredbi u inboxpackages/studio

    Ideja za igru u jednom retku i upravljanje prirodnim jezikom unose se u Studio, koji naredbe zapisuje u inbox. Studio nikad izravno ne uređuje transkript.

Reprodukcija i opažanje

Ponovna izgradnja stanja iz transkripta ne izvodi učinke, a Studio čita isti zapis kako bi ga prikazao.

  1. transcript.jsonl · append-onlysrc/transcriptPodaci: novi događaji · reprodukcijaPetlja događaja · reprodukcija · tailsrc/loop/coordinator.ts

    Writer provjerava shemu, dodjeljuje ULID i vrijeme te dodaje. Pri reprodukciji prošli događaji samo prolaze kroz reducer; njihovi se učinci ne izvode ponovno.

  2. Petlja događaja · reprodukcija · tailsrc/loop/coordinator.tsPokretanje · prosudba: reduce redomStanje → sljedeći učincisrc/reducer

    Živi događaji uzimaju se iz reda jedan po jedan i prolaze kroz reducer, uz očuvan redoslijed učinaka svakog događaja; samo prosljeđivanje izvodi se asinkrono.

  3. transcript.jsonl · append-onlysrc/transcriptOpažanje · izvješće: čitanje · SSEPrikaz događaja · artefakatapackages/studio

    Studio čita transkript i artefakte te preko SSE-a prikazuje napredak, metrike i artefakte. To nije telemetrija koja se šalje udaljenoj usluzi.

Sve veze iste debljine. Odaberite tijek kako biste istaknuli samo njegov put s numeriranim koracima.

  • Puna crta · smjer ulaza, rezultata i zapisa
  • Isprekidana crta · pokretanje, prosudba, zahtjev
  • Duga točkasta crta · opažanje i izvješćivanje, odvojeno od prosudbe
  • Debela crna crta · odabrani tijek; brojevi daju redoslijed
  • Okvir · granica koda ili stanja, imenovana u zaglavlju
  • Unutarnja pločica · komponenta te granice
  • Točkasti okvir · izvan te granice
  • Narančasti obrub · mjesto gdje model odlučuje
  • Petlja događaja · reducer · dispatcher
  • Zapisi · postav · artefakti
  • Determinističke provjere · ispravak
  • Studio · akteri

Nacrtano prema putovima koda na javnom commitu f5e17c0. Akteri su uloge tijekom izvođenja, različite od agenata za programiranje kojima je izgrađen ovaj repozitorij.

Izvor stanja
Transkript je izvor stanja, a reducer čista funkcija. Nuspojave (pokretanje aktera, QA, pisanje datoteka) izvodi samo dispatcher, pa reprodukcija obnavlja stanje bez učinaka.
Što reprodukcija obuhvaća
Reprodukcija daje isto stanje; ne čini determinističkima generiranja LLM-a ni ponašanje preglednika i mreže.
Što presuda obuhvaća
QA izvođenja provjerava samo konfigurirane provjere, a ocjena Verifiera samo je jedan kanal dokaza. Nijedno ne mjeri svako ponašanje igre, zabavu ni zadovoljstvo korisnika.