⚔ The party, in marching order
A run is a fixed relay of 48 turns. Each turn has a contract: what it consumes, what it must produce, and what evidence proves it. The cards below are generated from that contract registry — the same one the pipeline validates against — so this page cannot drift from reality.
In the tavern they are a raid party; on the clock they are a delivery team.
- 1.Intake Buckether
intake.bucketThe Oracle · Diviner (scout)
- Takes in
- The player's raw ask + the world's existing milestones, epics and stories
- Produces
- A bucket ruling: which tier and parent this ask belongs to, and how big it is (trivial/standard/major) — placement only, never the shape of the work
Runs as: a real model call (transcript role "questGiver").
- 2.UX Researcher
intake.ux-researchThe Scholar · Sage (scout)
- Takes in
- A campaign ask naming a real product (before any PRD exists)
- Produces
- The UX standards research brief the whole design phase is held to: Nielsen's 10 heuristics applied to THIS product, WCAG 2.2 AA floors with the right numbers, a numeric layout/type system, a visual language (palette, fonts, radii), SPA interaction conventions (optimistic mutations, keyboard map, designed error boundaries), and dated comparable-product conventions — machine-checked by arithmetic and truth tables, never vibes
Runs as: a real model call (transcript role "productManager").
- 3.Product Researcher
intake.prdThe Cartographer · Chronicler (scout)
- Takes in
- A campaign ask naming a real product (e.g. 'a true clone of Todoist, web only')
- Produces
- A researched product requirements document: the product in one paragraph, its personas, its feature surface with must/should/later priorities, explicit non-goals, and the full PRD as readable markdown — drawn from the model's knowledge of the real product, never invented to look thorough
Runs as: a real model call (transcript role "productManager").
- 4.PRD Critic
intake.critique.prdThe Examiner · Adjudicator (scout)
- Takes in
- The researched PRD (and the UX standards brief it must honor)
- Produces
- A citation-bearing ruling BEFORE the breakdown consumes the document: approve (quoting the document verbatim where it satisfies each judged dimension — quotes are machine-verified against the text) or revise (concrete must-fix findings with a place to aim); a rubber stamp is schema-invalid by construction
Runs as: a real model call (transcript role "productManager").
- 5.Work Breakdown
intake.breakdownThe Storyweaver · Loremaster (support)
- Takes in
- The ask, the Oracle's settled bucket ruling, and the current subtree at that point
- Produces
- The whole tree below the bucket — epics/stories/tasks sized to the ruling, every story carrying Gherkin, every story's scenarios covered by its tasks, sibling order declared
Runs as: a real model call (transcript role "productManager").
- 6.Work Amendment
intake.amendThe Mender · Restorer (support)
- Takes in
- The Council's unresolved findings + an ID/title container index + full content only for entities the findings name
- Produces
- Explicit ID-addressed update/add/remove/move/setBlockers operations; the engine applies them to the persisted standing tree and revalidates the complete result through BreakdownTree before any write
Runs as: a real model call (transcript role "productManager").
- 7.Product Review
committee.productThe Patron · Patron (support)
- Takes in
- Round 1: the tree + the framed bet. Round 2: the mockups + the stories they serve
- Produces
- A verdict on whether the tree delivers the framed bet and nothing the ask didn't buy — and, in round 2, whether the mockups deliver the stories' intent
Runs as: a real model call (transcript role "committeeProduct").
- 8.Business Analysis Review
committee.businessAnalystThe Auditor · Auditor (support)
- Takes in
- Round 1: every story's Gherkin + every task's acceptance and scenario allocation. Round 2: the mockups' states and copy
- Produces
- A verdict on whether the stories are INVEST, every scenario is Given/When/Then and observable, every acceptance is testable, and the scenario allocation is sensible
Runs as: a real model call (transcript role "committeeBusinessAnalyst").
- 9.UX Review
committee.uxThe Pathfinder · Pathfinder (scout)
- Takes in
- Round 1: the tree's user-visible stories. Round 2: the UX mockups (wireframe/flow)
- Produces
- A verdict on whether every user-visible story names the surface it changes, and whether the flow is reachable — loading/empty/error states declared, keyboard-reachable, consistent with existing surfaces
Runs as: a real model call (transcript role "committeeUx").
- 10.Visual Design Review
committee.visualDesignThe Illuminator · Illuminator (support)
- Takes in
- Round 2 only: the product mockups (visual/layout/copy) + the sibling surfaces they must match
- Produces
- A verdict on information hierarchy (does the plain answer lead), reuse of the .gw skin and ds-web primitives, contrast/AA and shape-not-color-only, plain-first copy, and jargon left unexplained
Runs as: a real model call (transcript role "committeeVisualDesign").
- 11.Legal Review
committee.legalThe Advocate · Advocate (support)
- Takes in
- Round 1: the tree. Round 2: the mockups + the stories it flagged in round 1
- Produces
- Round 1: the stories that touch user data, third-party content, or claims needing a notice. Round 2: a constraint on each — attributions, notices, ToS-bound API use, disclaimers
Runs as: a real model call (transcript role "committeeLegal").
- 12.Compliance Review
committee.complianceThe Registrar · Registrar (support)
- Takes in
- Round 1: the tree. Round 2: the mockups + the stories it flagged in round 1
- Produces
- Round 1: the stories that retain, export, or log personal data. Round 2: a constraint on each — retention, redaction, audit trail, data egress
Runs as: a real model call (transcript role "committeeCompliance").
- 13.Security Review
committee.securityThe Warden · Warden (tank)
- Takes in
- Round 1: the tree. Round 2: the mockups + the stories it flagged in round 1
- Produces
- Round 1: the stories that introduce a trust boundary, a credential, or an external call. Round 2: a constraint on each — secret handling, authz on new surfaces, input validation, injection surface
Runs as: a real model call (transcript role "committeeSecurity").
- 14.Architecture Review
committee.techArchitectThe Wright · Wright (support)
- Takes in
- Round 1: the tree + this codebase. Round 2: the mockups + the existing architecture
- Produces
- A verdict on whether the tree is buildable here, whether any task hides a system-shaped decision belonging in a slice's ArchPlan, and whether the design's split fights the existing architecture
Runs as: a real model call (transcript role "committeeTechArchitect").
- 15.Bet Framer
decideThe Oracle · Diviner (support)
- Takes in
- The player's raw ask
- Produces
- A framed bet: problem, falsifiable hypothesis, success + guardrail metrics
Runs as: a real model call (transcript role "betFramer").
- 16.Product Manager
decide.storiesThe Storyweaver · Loremaster (support)
- Takes in
- The framed bet
- Produces
- 2–4 Gherkin user stories (Given/When/Then) the slices are designed against
Runs as: a real model call (transcript role "productManager").
- 17.Slice Planner
designThe Cartographer · Strategist (support)
- Takes in
- The framed bet + the product manager's user stories
- Produces
- A slice decomposition with acceptance criteria; the first slice is taken
Runs as: a real model call (transcript role "decomposer").
- 18.UX Designer
design.uxThe Draughtsman · Illusionist (support)
- Takes in
- The ask + designed slices (runs only when the work has a user-visible surface)
- Produces
- A markdown/ASCII wireframe mockup of the surface; skipped honestly otherwise
Runs as: a real model call (transcript role "uxDesigner").
- 19.Design Reviewer
design.reviewThe Curator · Arbiter (scout)
- Takes in
- The UX mockup
- Produces
- approve/revise verdict with a note; a revise sends the UX Designer back once
Runs as: a real model call (transcript role "designReviewer").
- 20.UX Designer
design.mockup.uxThe Draughtsman · Illusionist (support)
- Takes in
- One story of the locked-to-be tree, plus the whole subtree for context
- Produces
- A MockupSpec (V50) — screens, queryable elements, declared loading/empty/error states, and a wireframe block — OR, when the story changes no user-visible surface, a SurfaceDetermination (V69.2) quoting the story verbatim and saying why there is nothing to draw
Runs as: a real model call (transcript role "mockupUx").
- 21.Product Designer
design.mockup.productThe Illuminator · Illusionist (support)
- Takes in
- One user-visible story + the UX designer's wireframe for it
- Produces
- A MockupSpec (V50) of the product/visual design — layout, states and the verbatim copy each state shows
Runs as: a real model call (transcript role "mockupProduct").
- 22.Design Critic
design.critique.wireframeThe Critic · Oracle (support)
- Takes in
- One rendered wireframe spec + the story it serves
- Produces
- A WireframeCritique verdict — approve (with ≥3 verified wireframe quotes across ≥3 judged dimensions) or redraw (with must-fix findings naming what and where). Scope: what ASCII can show — states, elements/roles, keyboard, heuristics-in-structure, flow. Pixel floors are the hi-res tier's machine checks.
Runs as: a real model call (transcript role "wireframeCritic").
- 23.Product Designer
design.hiresThe Illuminator · Illusionist (support)
- Takes in
- One Critic-approved wireframe + the UX brief's numeric design system
- Produces
- A HiresMockup — one self-contained HTML file (tokens verified against the brief by arithmetic, no raw colors, a labeled section per declared state, per-region 375px behavior) that then faces the rendered gate and the identity judge
Runs as: a real model call (transcript role "hiresDesigner").
- 24.Design Director
design.critique.hiresThe Beholder · Oracle (support)
- Takes in
- The desktop + mobile captures of one hi-res mockup (as images) + the PRD's visual identity
- Produces
- A HiresCritique — approve (≥3 verified identity citations across ≥3 aspects, each naming what the capture shows) or redraw (must-fix findings naming what reads wrong and where)
Runs as: a real model call (transcript role "identityJudge").
- 25.Slice Committer
sliceThe Quartermaster · Logistician (support)
- Takes in
- The chosen slice
- Produces
- A committed slice bound to the run
Runs as: the pipeline itself — real commands and state transitions, no model call.
- 26.Test Writer
build.redThe Trapwright · Shadowblade (dps)
- Takes in
- Slice title + acceptance criteria
- Produces
- One failing test (slice.test.js) proven RED by a real `node --test`
Runs as: a real coding agent (the local codex CLI) editing a real git workspace.
- 27.Implementer
build.greenThe Forgemaster · Berserker (dps)
- Takes in
- The failing test
- Produces
- The minimal implementation (slice.js) proven GREEN by `node --test`
Runs as: a real coding agent (the local codex CLI) editing a real git workspace.
- 28.Refactorer
build.refactorThe Polisher · Cleric (healer)
- Takes in
- The green implementation
- Produces
- A refactor with the tests still GREEN
Runs as: a real coding agent (the local codex CLI) editing a real git workspace.
- 29.Integration Gate
build.integrateThe Gatekeeper · Guardian (tank)
- Takes in
- The completed TDD loop
- Produces
- The slice committed for real in the sandbox repo; fan-out to the assurance gates
Runs as: the pipeline itself — real commands and state transitions, no model call.
- 30.Security Reviewer
assure.securityThe Warden · Paladin (tank)
- Takes in
- The real diff
- Produces
- A security attestation naming the top risk and a verdict
Runs as: a real model call (transcript role "security").
- 31.Code Reviewer
assure.codeThe Inspector · Sentinel (tank)
- Takes in
- The real diff
- Produces
- A code-review verdict: pass/risk with the single most important finding
Runs as: a real model call (transcript role "codeReviewer").
- 32.Architecture Reviewer
assure.architectureThe Architect · Runesmith (support)
- Takes in
- The real diff
- Produces
- An architecture verdict: pass/risk on boundaries, dependencies, and growth
Runs as: a real model call (transcript role "archReviewer").
- 33.Performance Reviewer
assure.performanceThe Loadmaster · Siege Engineer (dps)
- Takes in
- The real diff
- Produces
- A performance verdict with a budget to hold
Runs as: a real model call (transcript role "performance").
- 34.Constraint Attester
constraint.attestThe Oathkeeper · Arbiter (scout)
- Takes in
- The constraint this seat itself raised in council round 2, verbatim, + the delivered artifacts
- Produces
- A ruling on its own requirement: satisfied or not, with at least one verbatim citation (file:line, transcript seq, or artifact ref) — an attestation with no citation fails the gate
Runs as: a real model call (transcript role "constraintAttester").
- 35.Coverage Exemption Reviewer
coverage.exemptionThe Assessor · Arbiter (support)
- Takes in
- The QA engineer's exemption request + the file's REAL content (never a description of it)
- Produces
- granted/denied with a specific reason — a denial leaves the 90% coverage gate standing and the repair loop must write the test
Runs as: a real model call (transcript role "coverageExemptionReviewer").
- 36.Acceptance Verifier
verify.devThe Adjudicator · Justicar (support)
- Takes in
- Ask + acceptance criteria + final diff
- Produces
- met / not_met with cited evidence
Runs as: a real model call (transcript role "verifier").
- 37.Staging Checker
verify.stagingThe Proving Grounds · Ranger (scout)
- Takes in
- The dev-verified, committed slice
- Produces
- Tests re-run for real in a clean clone (STG_GREEN, or a FAIL wipe)
Runs as: the pipeline itself — real commands and state transitions, no model call.
- 38.Canary Monitor
verify.canaryThe Canary · Pathfinder (scout)
- Takes in
- The staged slice
- Produces
- A real stability bake: consecutive green test runs in the clean copy (a flake = a REAL wobble/wipe)
Runs as: the pipeline itself — real commands and state transitions, no model call.
- 39.Fix & Resume
verify.fixingThe Field Medic · Field Medic (healer)
- Takes in
- The REAL failure output of the wiped stage (remembered by the machine)
- Produces
- A real committed repair; PATCH_READY resumes exactly the stage that wiped
Runs as: a real coding agent (the local codex CLI) editing a real git workspace.
- 40.Browser-Spec Reviewer
verify.e2e.reviewThe Journey Judge · Pathfinder (scout)
- Takes in
- The exact proposed Playwright spec + every slice title and acceptance promise it must prove
- Produces
- approve | revise, with one grounded ruling per slice and literal citations from the spec. Missing promised UI, unrelated journeys, and absence-as-proof are not accepted as browser evidence
Runs as: a real model call (transcript role "browserSpecReviewer").
- 41.Rollout Operator
verify.rolloutThe Herald · Bard (support)
- Takes in
- A healthy canary
- Produces
- A real smoke load of the delivered module (nothing deploys from a local run — none is claimed)
Runs as: the pipeline itself — real commands and state transitions, no model call.
- 42.Release Manager
shipThe Shipwright · Captain (support)
- Takes in
- The rolled-out slice
- Produces
- RELEASED — handed to the human QA lane; the code lives in the sandbox workspace
Runs as: the pipeline itself — real commands and state transitions, no model call.
- 43.Retrospective Scribe
learnThe Chronicler · Sage (support)
- Takes in
- Everything the cycle shipped and measured
- Produces
- Signals re-emitted for the next bet; the cycle completes
Runs as: the pipeline itself — real commands and state transitions, no model call.
- 44.User-Docs Writer
docs.userThe Scribe · Lorekeeper (support)
- Takes in
- The stories this campaign SHIPPED + the ship evidence for each (what was really delivered, verbatim)
- Produces
- User-facing documentation: one section per shipped story, plain language first. A section for a story that did not ship is an invented feature and a machine refuses it before the reviewer reads a word
Runs as: a real model call (transcript role "docsWriter").
- 45.User-Docs Reviewer
docs.user.reviewThe Proofreader · Lorekeeper (healer)
- Takes in
- The drafted user docs + the SAME ship evidence the writer was handed
- Produces
- approve | revise (one bounded revise, then the phase FAILS). An approval must QUOTE the ship evidence it checked the docs against, verbatim — a machine verifies the quote really occurs in that evidence, so an approval from a reviewer that never opened it cannot be written
Runs as: a real model call (transcript role "docsReviewer").
- 46.Internal-Docs Writer
docs.internalThe Archivist · Chronologist (support)
- Takes in
- The delivered record: the locked tree, its constraints, and every slice's outcome
- Produces
- Architecture notes — each distilling ONE decision and quoting the record it came from verbatim (V36: 'verbatim, not re-imagined') — plus runbook entries for anything operable
Runs as: a real model call (transcript role "internalScribe").
- 47.Internal-Docs Reviewer
docs.internal.reviewThe Auditor · Chronologist (healer)
- Takes in
- The drafted internal docs + the SAME delivered record the archivist was handed
- Produces
- approve | revise (one bounded revise, then the phase FAILS). Same citation rule as the user-docs gate: an approval quotes the record, and the quote is checked against it
Runs as: a real model call (transcript role "internalDocsReviewer").
- 48.Retrospective Scribe
learn.retroThe Chronicler · Sage (support)
- Takes in
- Every escape this campaign really took, swept from the record: each constraint discharged by attestation rather than a test, each task that shipped delivering no scenario, each committee note nobody had to act on
- Produces
- Real follow-up entities, FILED into the hierarchy — each naming the recorded escape it answers. An escape with no follow-up fails the phase; an empty list requires the explicit ruling 'none found' with reasons, because silence and diligence look identical in a record
Runs as: a real model call (transcript role "retrospectiveScribe").
How to read a member
- The job title (bold) is what the member actually does — it is the primary label everywhere in the game.
- The italic line is pure flavor: the character name, class, and raid role. It never replaces the plain label.
- Each member’s input is the previous member’s output — the party marches in the order listed.