Μόνο ο χαρακτήρας του ψωμιού από το λογότυπο του CRUMB: μια χαμογελαστή φέτα ψωμί με μια δαγκωνιά στην πάνω δεξιά γωνία
Επιστροφή στην αίθουσα

CRUMB

Generative Game Studio · Demo

Από μια ιδέα παιχνιδιού μιας γραμμής σε ένα προσχέδιο που παίζεται, με τη δουλειά των πρακτόρων ορατή και ανοιχτή σε παρέμβαση.

Το CRUMB είναι πλαίσιο στούντιο πολλών πρακτόρων για πρωτότυπα casual παιχνιδιών.

Σχεδιασμός και ανάπτυξη · με πράκτορες κώδικα AI

  • CLIΤοπική επίδειξη
  • Studio ιστούΤοπική επίδειξη

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

Οι πράκτορες που χτίζουν ένα παιχνίδι, χωριστά από τα τεκμήρια που το κρίνουν.

Επίδειξη τοπικού στούντιο που περνά μια ιδέα παιχνιδιού μιας γραμμής από προδιαγραφή, build και ελέγχους εκτέλεσης. Κάθε βήμα καταλήγει σε πρακτικό JSONL, ένας καθαρός reducer αποφασίζει τις επόμενες επιδράσεις, και μόνο ο dispatcher εκτελεί παρενέργειες. Το QA εκτέλεσης και η ετυμηγορία του μοντέλου κρατιούνται χωριστά για να αποφασιστεί μεταξύ επιτυχίας, επανασχεδιασμού, επιδιόρθωσης και ανθρώπινης καθοδήγησης.

Αρκεί να περιγράψετε ένα παιχνίδι σε μία γραμμή, και πράκτορες Claude Code, Codex και Gemini CLI συνεργάζονται μέσω Planner → Builder → ντετερμινιστικό QA → Verifier, ενώ το CRUMB Studio δείχνει τα συμβάντα, την πρόοδο και τα τεχνουργήματα και δέχεται παρεμβάσεις σε φυσική γλώσσα.

Επίδειξη που κλωνοποιείτε από το δημόσιο αποθετήριο και τρέχετε τοπικά.

Χάρτης συστήματος · σχεδιασμένος από διαδρομές κώδικα στο δημόσιο commit f5e17c0
Σύστημα στούντιο CRUMBΈνας άνθρωπος προτείνει και καθοδηγεί ένα παιχνίδι από το Studio, και το Studio γράφει εντολές σε ένα inbox. Ο coordinator περνά με τη σειρά τα νέα συμβάντα από το inbox και το πρακτικό στον reducer. Ο καθαρός reducer αποφασίζει την κατάσταση και τις επόμενες επιδράσεις, και μόνο ο dispatcher εκτελεί παρενέργειες. Η προδιαγραφή του Planner, το build και τα τεχνουργήματα του Builder, το αποτέλεσμα του QA εκτέλεσης και η κρίση του Verifier γίνονται όλα συμβάντα του πρακτικού. Ο Verifier λαμβάνει μόνο προβεβλημένα τεκμήρια, και ο reducer ελέγχει και διορθώνει τον βαθμό του με βάση το αποτέλεσμα του QA: το PASS τερματίζει τη συνεδρία, το PARTIAL περιμένει άνθρωπο, και οτιδήποτε άλλο επιστρέφει για επανασχεδιασμό ή επιδιόρθωση.Ιδέα παιχνιδιού · καθοδήγησηΆνθρωπος, τοπικάpackages/studioΠροβολή συμβάντων · τεχνουργημάτωνΕγγραφή εντολών inboxsrc/transcripttranscript.jsonl · append-onlysrc/loop/coordinator.tsΒρόχος συμβάντων · replay · tailsrc/reducerΚατάσταση → επόμενες επιδράσειςΔρομολόγηση ετυμηγορίαςsession doneΤέλος · PASS ή αιτία διακοπήςsrc/dispatcher/live.tsΕκτέλεση επιδράσεων · spawn actorsΠροβολή εισόδου κριτήmodel-config · presetActor → πλαίσιο · μοντέλοagent actor · CLIPlanner Lead · προδιαγραφήBuilder · γράφει το παιχνίδιartifacts/Αρχεία παιχνιδιούdispatcher/qa-runner.tsQA εκτέλεσης · έλεγχοιVerifier actorVerifier · ετυμηγορία μοντέλουsrc/validatorΑντι-εξαπάτηση · διόρθωση βαθμούΆνθρωποι · StudioΈλεγχος συμβάντωντο πρακτικό είναι η πηγή της κατάστασηςΠράκτορες εργασίας · τεχνουργήματαΕπαλήθευση · απόφαση1πρόταση · καθοδήγηση2συμβάντα user3reduce με τη σειρά4επιδράσεις5ρύθμιση actor6εκτέλεση Planner7spec8εκτέλεση Builder9αρχεία10καταγραφή build11qa_check12τι εκτελείται13qa.result1qa.result2μόνο τεκμήρια3είσοδος κριτή4judge.score5βαθμός · τεκμήρια QA6διορθωμένη ετυμηγορία7τέλος1διορθωμένη ετυμηγορία2έλεγχος PARTIAL3επανασχεδιασμός · επιδιόρθωση4τέλος5πρόταση · καθοδήγηση1νέα συμβάντα · replay2reduce με τη σειρά3ανάγνωση · SSE

Από την ιδέα στο παιχνίδι

Μια ιδέα γίνεται προδιαγραφή, build και εκτέλεση QA. Κάθε βήμα περνά από το πρακτικό, και οι actors δεν καλούν ο ένας τον άλλο.

  1. Ιδέα παιχνιδιού · καθοδήγησηΕκτέλεση · κρίση: πρόταση · καθοδήγησηΕγγραφή εντολών inboxpackages/studio

    Μια ιδέα παιχνιδιού μιας γραμμής και η καθοδήγηση σε φυσική γλώσσα εισάγονται στο Studio, το οποίο γράφει εντολές στο inbox. Το Studio δεν επεξεργάζεται ποτέ απευθείας το πρακτικό.

  2. Εγγραφή εντολών inboxpackages/studioΔεδομένα: συμβάντα userΒρόχος συμβάντων · replay · tailsrc/loop/coordinator.ts

    Ο coordinator διαβάζει τις εντολές του inbox και τις καταγράφει στο πρακτικό ως συμβάντα user.

  3. Βρόχος συμβάντων · replay · tailsrc/loop/coordinator.tsΕκτέλεση · κρίση: reduce με τη σειράΚατάσταση → επόμενες επιδράσειςsrc/reducer

    Τα ζωντανά συμβάντα περνούν από reduce ένα ένα από μια ουρά, διατηρώντας τη σειρά των επιδράσεων κάθε συμβάντος. Το ίδιο το dispatch εκτελείται ασύγχρονα.

  4. Κατάσταση → επόμενες επιδράσειςsrc/reducerΕκτέλεση · κρίση: επιδράσειςΕκτέλεση επιδράσεων · spawn actorssrc/dispatcher/live.ts

    Ο reducer είναι καθαρή συνάρτηση που αποφασίζει μόνο την κατάσταση και τις επόμενες επιδράσεις: ένα goal επιλέγει τον Planner, ένα spec τον Builder, ένα build ένα qa_check.

  5. Actor → πλαίσιο · μοντέλοmodel-config · presetΕκτέλεση · κρίση: ρύθμιση actorsrc/dispatcher/live.ts

    Ποιο πλαίσιο, πάροχος και μοντέλο τρέχουν έναν actor καθορίζεται με τη σειρά σημαία CLI > ρύθμιση > preset > ambient > fallback. Ένας actor δεν είναι σταθερός πάροχος.

  6. Εκτέλεση επιδράσεων · spawn actorssrc/dispatcher/live.tsΕκτέλεση · κρίση: εκτέλεση PlannerPlanner Lead · προδιαγραφήagent actor · CLI

    Ο dispatcher τρέχει τον Planner με προβεβλημένη είσοδο. Η υπό όρους έρευνα συνεχίζεται μέσω του ερευνητικού σχεδίου του Planner και της παράδοσης τεκμηρίων, που είναι διπλωμένη σε αυτόν τον χάρτη.

  7. Planner Lead · προδιαγραφήagent actor · CLIΔεδομένα: spectranscript.jsonl · append-onlysrc/transcript

    Η προδιαγραφή του Planner γίνεται συμβάν του πρακτικού, και ο reducer επιλέγει από αυτήν τον Builder. Οι actors δεν καλούν ο ένας τον άλλο.

  8. Εκτέλεση επιδράσεων · spawn actorssrc/dispatcher/live.tsΕκτέλεση · κρίση: εκτέλεση BuilderBuilder · γράφει το παιχνίδιagent actor · CLI

    Ο dispatcher τρέχει τον Builder. Αν ο ίδιος actor αποτυγχάνει επανειλημμένα, ανοίγει ένα circuit και αλλάζει τον προσαρμογέα, και σταματά αν οι αποτυχίες συνεχιστούν.

  9. Builder · γράφει το παιχνίδιagent actor · CLIΔεδομένα: αρχείαΑρχεία παιχνιδιούartifacts/

    Ο Builder γράφει το αρχείο εισόδου, τον πηγαίο κώδικα και τα assets ως τεχνουργήματα.

  10. Builder · γράφει το παιχνίδιagent actor · CLIΔεδομένα: καταγραφή buildtranscript.jsonl · append-onlysrc/transcript

    Το συμβάν build και το artifact.created καταγράφονται στο πρακτικό με την ταυτότητα του τεχνουργήματος.

  11. Εκτέλεση επιδράσεων · spawn actorssrc/dispatcher/live.tsΕκτέλεση · κρίση: qa_checkQA εκτέλεσης · έλεγχοιdispatcher/qa-runner.ts

    Μετά από ένα συμβάν build, ο reducer εκπέμπει μια επίδραση qa_check που φέρει την ταυτότητα τεχνουργήματος και build και τις συνθήκες αποδοχής, και ο dispatcher την εκτελεί.

  12. Αρχεία παιχνιδιούartifacts/Δεδομένα: τι εκτελείταιQA εκτέλεσης · έλεγχοιdispatcher/qa-runner.ts

    Το QA εκτέλεσης τρέχει το πραγματικό τεχνούργημα με ελέγχους κώδικα και περιηγητή. Το προεπιλεγμένο χρονικό όριο 120 δευτερολέπτων είναι τιμή ρύθμισης.

  13. QA εκτέλεσης · έλεγχοιdispatcher/qa-runner.tsΔεδομένα: qa.resulttranscript.jsonl · append-onlysrc/transcript

    Επιτυχία ή αποτυχία, το αποτέλεσμα καταγράφεται ως συμβάν system qa.result. Ακόμη κι αν ο έλεγχος προκαλέσει εξαίρεση, καταγράφεται αποτέλεσμα με τα πεδία που απέτυχαν.

Όριο εμπιστοσύνης της επαλήθευσης

Το QA εκτέλεσης είναι τεκμήριο από την πραγματική εκτέλεση του τεχνουργήματος, ενώ ο Verifier είναι μοντέλο που κρίνει προβεβλημένα τεκμήρια. Ο reducer συμβιβάζει τα δύο πριν επιλέξει την επόμενη διαδρομή.

  1. QA εκτέλεσης · έλεγχοιdispatcher/qa-runner.tsΔεδομένα: qa.resulttranscript.jsonl · append-onlysrc/transcript

    Επιτυχία ή αποτυχία, το αποτέλεσμα καταγράφεται ως συμβάν system qa.result. Ακόμη κι αν ο έλεγχος προκαλέσει εξαίρεση, καταγράφεται αποτέλεσμα με τα πεδία που απέτυχαν.

  2. transcript.jsonl · append-onlysrc/transcriptΔεδομένα: μόνο τεκμήριαΠροβολή εισόδου κριτήsrc/dispatcher/live.ts

    Η είσοδος του Verifier προβάλλεται από τα πιο πρόσφατα goal, spec, build, qa.result και artifact.created μαζί με επιλεγμένα ερευνητικά τεκμήρια. Στενεύει τα συμφραζόμενα, δεν αποδεικνύει απομόνωση ή απουσία διαρροής.

  3. Προβολή εισόδου κριτήsrc/dispatcher/live.tsΔεδομένα: είσοδος κριτήVerifier · ετυμηγορία μοντέλουVerifier actor

    Ο dispatcher τρέχει τον Verifier με την προβεβλημένη είσοδο.

  4. Verifier · ετυμηγορία μοντέλουVerifier actorΔεδομένα: judge.scoretranscript.jsonl · append-onlysrc/transcript

    Η ετυμηγορία του Verifier καταγράφεται ως συμβάν judge.score. Είναι κρίση μοντέλου, όχι γεγονός για την εκτέλεση.

  5. Κατάσταση → επόμενες επιδράσειςsrc/reducerΕκτέλεση · κρίση: βαθμός · τεκμήρια QAΑντι-εξαπάτηση · διόρθωση βαθμούsrc/validator

    Στο judge.score, ο reducer το περνά στον έλεγχο αντι-εξαπάτησης μαζί με το αποτέλεσμα του QA, τον πάροχο του Builder και το ερευνητικό σχέδιο και τα τεκμήριά του.

  6. Αντι-εξαπάτηση · διόρθωση βαθμούsrc/validatorΔεδομένα: διορθωμένη ετυμηγορίαΔρομολόγηση ετυμηγορίαςsrc/reducer

    Ένα PASS χωρίς επιτυχή εκτέλεση γίνεται FAIL, και ο βαθμός που αφορά την εκτέλεση διορθώνεται από το ντετερμινιστικό QA. Οι άλλοι κανόνες είναι διορθώσεις υπό όρους, όχι γενική απόδειξη φιλαλήθειας.

  7. Δρομολόγηση ετυμηγορίαςsrc/reducerΔεδομένα: τέλοςΤέλος · PASS ή αιτία διακοπήςsession done

    Το PASS τερματίζει τη συνεδρία ως done. Οι διακοπές λόγω προϋπολογισμού και circuit τελειώνουν επίσης ως done αλλά κρατούν την αιτία διακοπής, οπότε το done δεν είναι πάντα PASS.

Αποτυχία και ανθρώπινη καθοδήγηση

Το PARTIAL πηγαίνει σε άνθρωπο, το Critical σε επανασχεδιασμό, τα Important ή Minor σε επιδιόρθωση, και οι διακοπές λόγω προϋπολογισμού ή circuit αφήνουν αιτία διακοπής.

  1. Αντι-εξαπάτηση · διόρθωση βαθμούsrc/validatorΔεδομένα: διορθωμένη ετυμηγορίαΔρομολόγηση ετυμηγορίαςsrc/reducer

    Ένα PASS χωρίς επιτυχή εκτέλεση γίνεται FAIL, και ο βαθμός που αφορά την εκτέλεση διορθώνεται από το ντετερμινιστικό QA. Οι άλλοι κανόνες είναι διορθώσεις υπό όρους, όχι γενική απόδειξη φιλαλήθειας.

  2. Δρομολόγηση ετυμηγορίαςsrc/reducerΕκτέλεση · κρίση: έλεγχος PARTIALΙδέα παιχνιδιού · καθοδήγηση

    Το PARTIAL περιμένει έλεγχο από άνθρωπο.

  3. Δρομολόγηση ετυμηγορίαςsrc/reducerΕκτέλεση · κρίση: επανασχεδιασμός · επιδιόρθωσηsrc/dispatcher/live.ts

    Μεταξύ FAIL και REJECT, το Critical επιστρέφει στον Planner για επανασχεδιασμό και τα Important ή Minor στον Builder ως ανατροφοδότηση διόρθωσης, όλα ως επιδράσεις του dispatcher.

  4. Δρομολόγηση ετυμηγορίαςsrc/reducerΔεδομένα: τέλοςΤέλος · PASS ή αιτία διακοπήςsession done

    Το PASS τερματίζει τη συνεδρία ως done. Οι διακοπές λόγω προϋπολογισμού και circuit τελειώνουν επίσης ως done αλλά κρατούν την αιτία διακοπής, οπότε το done δεν είναι πάντα PASS.

  5. Ιδέα παιχνιδιού · καθοδήγησηΕκτέλεση · κρίση: πρόταση · καθοδήγησηΕγγραφή εντολών inboxpackages/studio

    Μια ιδέα παιχνιδιού μιας γραμμής και η καθοδήγηση σε φυσική γλώσσα εισάγονται στο Studio, το οποίο γράφει εντολές στο inbox. Το Studio δεν επεξεργάζεται ποτέ απευθείας το πρακτικό.

Αναπαραγωγή και παρατήρηση

Η ανακατασκευή της κατάστασης από το πρακτικό δεν εκτελεί επιδράσεις, και το Studio διαβάζει την ίδια καταγραφή για να τη δείξει.

  1. transcript.jsonl · append-onlysrc/transcriptΔεδομένα: νέα συμβάντα · replayΒρόχος συμβάντων · replay · tailsrc/loop/coordinator.ts

    Ο writer επικυρώνει το σχήμα, αποδίδει ULID και χρόνο, και προσαρτά. Στο replay, τα παλαιά συμβάντα περνούν μόνο από reduce, και οι επιδράσεις τους δεν εκτελούνται ξανά.

  2. Βρόχος συμβάντων · replay · tailsrc/loop/coordinator.tsΕκτέλεση · κρίση: reduce με τη σειράΚατάσταση → επόμενες επιδράσειςsrc/reducer

    Τα ζωντανά συμβάντα περνούν από reduce ένα ένα από μια ουρά, διατηρώντας τη σειρά των επιδράσεων κάθε συμβάντος. Το ίδιο το dispatch εκτελείται ασύγχρονα.

  3. transcript.jsonl · append-onlysrc/transcriptΠαρατήρηση · αναφορά: ανάγνωση · SSEΠροβολή συμβάντων · τεχνουργημάτωνpackages/studio

    Το Studio διαβάζει το πρακτικό και τα τεχνουργήματα και δείχνει πρόοδο, μετρικές και τεχνουργήματα μέσω SSE. Δεν είναι τηλεμετρία που στέλνεται σε απομακρυσμένη υπηρεσία.

Κάθε σύνδεση με το ίδιο πάχος. Επιλέξτε μια ροή για να επισημανθεί μόνο η διαδρομή της, με αριθμημένα βήματα.

  • Συνεχής · κατεύθυνση εισόδου, αποτελεσμάτων και καταγραφών
  • Διακεκομμένη · εκτέλεση, κρίση, αίτημα
  • Μακριές τελείες · παρατήρηση και αναφορά, χωριστά από την κρίση
  • Παχιά μαύρη γραμμή · η επιλεγμένη ροή, οι αριθμοί δίνουν τη σειρά
  • Κουτί · όριο κώδικα ή κατάστασης, με το όνομά του στην κεφαλίδα
  • Εσωτερικό τσιπ · στοιχείο αυτού του ορίου
  • Κουτί με τελείες · εκτός αυτού του ορίου
  • Πορτοκαλί περίγραμμα · σημείο όπου αποφασίζει ένα μοντέλο
  • Βρόχος συμβάντων · reducer · dispatcher
  • Καταγραφές · ρύθμιση · τεχνουργήματα
  • Ντετερμινιστικοί έλεγχοι · διόρθωση
  • Studio · actors

Σχεδιασμένο από διαδρομές κώδικα στο δημόσιο commit f5e17c0. Οι actors είναι ρόλοι του περιβάλλοντος εκτέλεσης, διαφορετικοί από τους πράκτορες κώδικα που χρησιμοποιήθηκαν για την κατασκευή αυτού του αποθετηρίου.

Πηγή της κατάστασης
Το πρακτικό είναι η πηγή της κατάστασης και ο reducer είναι καθαρή συνάρτηση. Μόνο ο dispatcher εκτελεί παρενέργειες (εκτέλεση actors, QA, εγγραφή αρχείων), οπότε η αναπαραγωγή ανακατασκευάζει την κατάσταση χωρίς επιδράσεις.
Τι καλύπτει η αναπαραγωγή
Η αναπαραγωγή δίνει την ίδια κατάσταση. Δεν κάνει ντετερμινιστικές τις παραγωγές LLM ή τη συμπεριφορά του περιηγητή και του δικτύου.
Τι καλύπτει μια ετυμηγορία
Το QA εκτέλεσης ελέγχει μόνο τους ρυθμισμένους ελέγχους, και ο βαθμός του Verifier είναι ένα μόνο κανάλι τεκμηρίων. Κανένα από τα δύο δεν μετρά κάθε συμπεριφορά του παιχνιδιού, τη διασκέδαση ή την ικανοποίηση των χρηστών.