Ainult leivategelane CRUMBi logost: naeratav leivaviil, mille paremast ülanurgast on hammustus võetud
Tagasi saali

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.

Disain ja arendus · ehitatud AI-kodeerimisagentidega

  • CLIKohalik demo
  • Web StudioKohalik 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

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.

Süsteemikaart · joonistatud avaliku commiti f5e17c0 kooditeede põhjal
CRUMB stuudio süsteemInimene kirjeldab ja juhib mängu Studios ning Studio kirjutab käsud inbox-faili. Coordinator annab inboxi ja transkripti uued sündmused järjekorras reducer-funktsioonile; puhas reducer otsustab oleku ja järgmised mõjud ning ainult dispetšer teeb kõrvalmõjusid. Planneri spetsifikatsioon, Builderi ehitus ja artefaktid, täitmise QA tulemus ja Verifieri verdikt muutuvad kõik transkripti sündmusteks. Verifier saab ainult projitseeritud tõendid ning reducer kontrollib ja parandab selle skoori QA tulemuse vastu: PASS lõpetab seansi, PARTIAL ootab inimest ja kõik muu läheb tagasi ümberkujundamisele või parandamisele.Mänguidee · juhtimineInimene, kohapealpackages/studioSündmuste · artefaktide vaadeKäskude kirjutamine inboxisrc/transcripttranscript.jsonl · append-onlysrc/loop/coordinator.tsSündmustsükkel · taasesitus · jälgiminesrc/reducerOlek → järgmised mõjudVerdikti suunaminesession doneValmis · PASS või peatumise põhjussrc/dispatcher/live.tsMõjude täitmine · toimijate käivitamineKohtuniku sisendi projektsioonmodel-config · presetToimija → rakis · mudelagent actor · CLIPlanner Lead · spetsifikatsioonBuilder · kirjutab mänguartifacts/Mängufailiddispatcher/qa-runner.tsTäitmise QA · kontrollidVerifier actorVerifier · mudeli verdiktsrc/validatorPettusevastane kontroll · skoori parandusInimesed · StudioSündmuste juhtiminetranskript on oleku allikasTööagendid · artefaktidVerifitseerimine · otsus1idee · juhtimine2kasutaja sündmused3redutseerimine järjekorras4mõjud5toimija seadistus6Planneri käivitamine7spec8Builderi käivitamine9failid10ehituse kirje11qa_check12mida käivitatakse13qa.result1qa.result2ainult tõendid3kohtuniku sisend4judge.score5skoor · QA tõendid6parandatud verdikt7valmis1parandatud verdikt2PARTIAL-kontroll3ümberkujundamine · parandamine4valmis5idee · juhtimine1uued sündmused · taasesitus2redutseerimine järjekorras3lugemine · SSE

Ideest mängimiseni

Ideest saab spetsifikatsioon, ehitus ja täitmise QA käivitus. Iga samm läbib transkripti; toimijad üksteist ei kutsu.

  1. Mänguidee · juhtimineKäivitus · hinnang: idee · juhtimineKäskude kirjutamine inboxipackages/studio

    Üherealine mänguidee ja loomulikus keeles juhtimine sisestatakse Studiosse, mis kirjutab käsud inboxi. Studio ei muuda kunagi transkripti otse.

  2. Käskude kirjutamine inboxipackages/studioAndmed: kasutaja sündmusedSündmustsükkel · taasesitus · jälgiminesrc/loop/coordinator.ts

    Coordinator loeb inboxi käsud ja salvestab need transkripti kasutaja sündmustena.

  3. Sündmustsükkel · taasesitus · jälgiminesrc/loop/coordinator.tsKäivitus · hinnang: redutseerimine järjekorrasOlek → järgmised mõjudsrc/reducer

    Reaalajas sündmused redutseeritakse järjekorrast ükshaaval, hoides iga sündmuse mõjud järjestuses; edastamine ise käib asünkroonselt.

  4. Olek → järgmised mõjudsrc/reducerKäivitus · hinnang: mõjudMõjude täitmine · toimijate käivitaminesrc/dispatcher/live.ts

    Reducer on puhas funktsioon, mis otsustab ainult oleku ja järgmised mõjud: eesmärk valib Planneri, spetsifikatsioon Builderi, ehitus qa_check-kontrolli.

  5. Toimija → rakis · mudelmodel-config · presetKäivitus · hinnang: toimija seadistussrc/dispatcher/live.ts

    Milline rakis, mudelipakkuja ja mudel toimijat käivitab, lahendatakse järjekorras CLI lipp > config > preset > ambient > fallback. Toimija ei ole fikseeritud mudelipakkuja.

  6. Mõjude täitmine · toimijate käivitaminesrc/dispatcher/live.tsKäivitus · hinnang: Planneri käivitaminePlanner Lead · spetsifikatsioonagent actor · CLI

    Dispetšer käivitab Planneri projitseeritud sisendiga. Tingimuslik uurimine jätkub Planneri uurimisplaani ja tõendite üleandmise kaudu ning on sellel kaardil kokku volditud.

  7. Planner Lead · spetsifikatsioonagent actor · CLIAndmed: spectranscript.jsonl · append-onlysrc/transcript

    Planneri spetsifikatsioon muutub transkripti sündmuseks ja reducer valib selle põhjal Builderi. Toimijad üksteist ei kutsu.

  8. Mõjude täitmine · toimijate käivitaminesrc/dispatcher/live.tsKäivitus · hinnang: Builderi käivitamineBuilder · kirjutab mänguagent actor · CLI

    Dispetš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.

  9. Builder · kirjutab mänguagent actor · CLIAndmed: failidMängufailidartifacts/

    Builder kirjutab sisendfaili, lähtekoodi ja ressursid artefaktidena.

  10. Builder · kirjutab mänguagent actor · CLIAndmed: ehituse kirjetranscript.jsonl · append-onlysrc/transcript

    Ehituse sündmus ja artifact.created salvestatakse transkripti koos artefakti identiteediga.

  11. Mõjude täitmine · toimijate käivitaminesrc/dispatcher/live.tsKäivitus · hinnang: qa_checkTäitmise QA · kontrolliddispatcher/qa-runner.ts

    Pä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.

  12. Mängufailidartifacts/Andmed: mida käivitatakseTäitmise QA · kontrolliddispatcher/qa-runner.ts

    Täitmise QA käivitab tegeliku artefakti koodi- ja brauserikontrollidega. 120-sekundiline vaikimisi ajalõpp on konfiguratsiooniväärtus.

  13. Täitmise QA · kontrolliddispatcher/qa-runner.tsAndmed: qa.resulttranscript.jsonl · append-onlysrc/transcript

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

  1. Täitmise QA · kontrolliddispatcher/qa-runner.tsAndmed: qa.resulttranscript.jsonl · append-onlysrc/transcript

    Edu või tõrke korral salvestatakse tulemus süsteemi qa.result-sündmusena. Isegi kui kontroll viskab erindi, salvestatakse tulemus tõrkeväljadega.

  2. transcript.jsonl · append-onlysrc/transcriptAndmed: ainult tõendidKohtuniku sisendi projektsioonsrc/dispatcher/live.ts

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

  3. Kohtuniku sisendi projektsioonsrc/dispatcher/live.tsAndmed: kohtuniku sisendVerifier · mudeli verdiktVerifier actor

    Dispetšer käivitab Verifieri projitseeritud sisendiga.

  4. Verifier · mudeli verdiktVerifier actorAndmed: judge.scoretranscript.jsonl · append-onlysrc/transcript

    Verifieri verdikt salvestatakse judge.score-sündmusena. See on mudeli hinnang, mitte fakt täitmise kohta.

  5. Olek → järgmised mõjudsrc/reducerKäivitus · hinnang: skoor · QA tõendidPettusevastane kontroll · skoori parandussrc/validator

    judge.score-sündmuse korral annab reducer selle pettusevastasele kontrollile koos QA tulemuse, Builderi mudelipakkuja ning uurimisplaani ja -tõenditega.

  6. Pettusevastane kontroll · skoori parandussrc/validatorAndmed: parandatud verdiktVerdikti suunaminesrc/reducer

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

  7. Verdikti suunaminesrc/reducerAndmed: valmisValmis · PASS või peatumise põhjussession done

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

  1. Pettusevastane kontroll · skoori parandussrc/validatorAndmed: parandatud verdiktVerdikti suunaminesrc/reducer

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

  2. Verdikti suunaminesrc/reducerKäivitus · hinnang: PARTIAL-kontrollMänguidee · juhtimine

    PARTIAL ootab inimese kontrolli.

  3. Verdikti suunaminesrc/reducerKäivitus · hinnang: ümberkujundamine · parandaminesrc/dispatcher/live.ts

    Verdiktidest FAIL ja REJECT läheb Critical tagasi Plannerile ümberkujundamiseks ning Important või Minor Builderile parandustagasisidena, kõik dispetšeri mõjudena käivitatuna.

  4. Verdikti suunaminesrc/reducerAndmed: valmisValmis · PASS või peatumise põhjussession done

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

  5. Mänguidee · juhtimineKäivitus · hinnang: idee · juhtimineKäskude kirjutamine inboxipackages/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.

  1. transcript.jsonl · append-onlysrc/transcriptAndmed: uued sündmused · taasesitusSündmustsükkel · taasesitus · jälgiminesrc/loop/coordinator.ts

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

  2. Sündmustsükkel · taasesitus · jälgiminesrc/loop/coordinator.tsKäivitus · hinnang: redutseerimine järjekorrasOlek → järgmised mõjudsrc/reducer

    Reaalajas sündmused redutseeritakse järjekorrast ükshaaval, hoides iga sündmuse mõjud järjestuses; edastamine ise käib asünkroonselt.

  3. transcript.jsonl · append-onlysrc/transcriptVaatlus · aruanne: lugemine · SSESündmuste · artefaktide vaadepackages/studio

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