2026-04-25-mission-composition-grammar
Mission Composition Grammar — Verb Vocabulary + Affinity Tags
Section titled “Mission Composition Grammar — Verb Vocabulary + Affinity Tags”Status: Draft design for post-v0.1 wave (Notion: GWP-277)
Date: 2026-04-25
Owner: Gameplay Design / PM (GWP-277)
Scope: Defines the Mission Composition Grammar (MCG) — a generative layer that lets the nOSh Mission Board compose narratively coherent multi-phase contracts from any subset of the operator’s cart library. This document specifies the foundation pieces: the phase verb vocabulary, the affinity tag system, and the new mission-contributions cart contribution block. Companion sections (mission shape grammar, genre template library, composition algorithm reference implementation) ship as separate sub-task plans.
Non-scope: No C, no Lisp runtime changes, no emulator source edits. This document defines the design surface — the algorithm reference implementation lives in the engineering sub-task (Notion: GWP-277 → “Engineering: MCG composition algorithm”).
Hardware spec references — this design targets the canonical 80×25 amber grid, 31-key input system, CIPHER-LINE auxiliary OLED, and Pi Zero 2 W firmware described in
CLAUDE.md→ “Canonical Hardware Specification”. Nothing in this doc restates those values.
Augments, does not supersede. This plan extends
2026-04-21-mission-board.md(the Mission Board generator design) anddocs/software/runtime/orchestration.md§Cross-Program Integration. The “hand-authored cross-pair” examples in that section (ICE×BL, ICE×DC, NG×IB, BL×SF) remain valid as worked examples; this plan generalizes them into a procedural grammar that scales past the four-cart launch library.
Why this exists
Section titled “Why this exists”The Capability Model Spec (docs/software/runtime/orchestration.md) describes cross-program integration as a set of hand-authored cartridge pairs. At the four-cart launch library this is fine — there are six pairs and Josh has authored them all. At the full 14-cart library the combinatorics break:
| Library size | Pairs | Triples | Quads |
|---|---|---|---|
| 4 carts | 6 | 4 | 1 |
| 8 carts | 28 | 56 | 70 |
| 14 carts | 91 | 364 | 1,001 |
Hand-authoring 91 pairs is awkward but possible; 364 triples is not. The Mission Board needs a generative grammar that produces coherent multi-phase contracts from any subset of the operator’s library, with payouts and threat scaling against the chain length and cross-cart affinity distance.
This plan does not invalidate hand-authored pairs. They become seed corpus for the genre templates (§4 below); the generator falls back to hand-authored content when the operator’s library is small enough that it covers everything.
Design constraints (carried in from upstream)
Section titled “Design constraints (carried in from upstream)”These are the load-bearing constraints from the existing Capability Model spec that the MCG must respect:
- Cross-program integration is always additive, never subtractive. No mission, no feature, no capability is locked behind another module. The single-cartridge experience is complete. —
orchestration.md§Cross-Program Integration → Design Principle. - Single-cartridge career is complete. ICE Breaker alone delivers a full board, threat 1–6, hundreds of hours. The MCG cannot demand multi-cart minimums. —
orchestration.md§The Capability Curve → One Cartridge. - Multi-phase missions serialize into the existing 256-byte
phase_chaindeck-state slot. No deck-state schema changes for v1 of the MCG. —orchestration.md§Multi-Phase Missions. .kn86v2 container compatibility. New cart contribution block must be a namedMISSION_CONTRIBUTIONSsection parseable by the existing loader (ADR-0006 §Container Format). Extend the vocabulary; don’t break the parser.- Cipher voice composes across phases. The CIPHER-LINE coherence stack (5 slots, persists across cart swaps in deck state) carries narrative continuity through a generated chain. The MCG composer emits a Cipher event stream; the engine narrates. — ADR-0015 +
docs/software/runtime/cipher-voice.md.
§1. Phase verb vocabulary
Section titled “§1. Phase verb vocabulary”Every cart declares which canonical verbs its phase handlers can satisfy. The vocabulary is small and closed — exactly 10 verbs. Closing the set is intentional: it forces every cart to map to a shared semantic surface, and it makes the composition algorithm’s verb-to-cart filter a simple bitmask.
| Verb | Meaning | Example domains |
|---|---|---|
| PENETRATE | Gain access to a defended target. | Network node (ICE Breaker), guarded compartment (Depthcharge), restricted airspace (NIGHTOWL — concept) |
| OBTAIN | Acquire a specific asset and bring it back. | Data (ICE Breaker), cargo (Depthcharge), credentials (any), evidence (Black Ledger) |
| ANALYZE | Interpret, decode, or synthesize information. | Cipher (Cipher Garden), ledger (Black Ledger), market signal (SynthFence), archive (The Vault) |
| DELIVER | Move a payload from A to B. | Package (Pathfinder), data drop (Drift), cargo (Depthcharge) |
| DESTROY | Sabotage, corrupt, or render unusable. | Network asset (ICE Breaker), signal (Shellfire), evidence trail (Black Ledger inverse) |
| OBSERVE | Gather without intervention; passive collection. | Surveillance (Drift), reconnaissance (Depthcharge), tail (Pathfinder) |
| COMMUNICATE | Broadcast, transmit, or contact. | Pirate broadcast (Marty’s Glitch), update push (Relay), dead drop (Drift) |
| MANUFACTURE | Produce a physical or virtual artifact. | Identity (CLONESHOP — concept), compound (SYNAPTIC — concept), graft (WETWARE — concept) |
| NEGOTIATE | Convert influence or social leverage into outcome. | Boardroom (HOSTILE TAKEOVER — concept), street contact (Threshold), party action (Threshold) |
| DECIDE | Strategic commitment; commit to an irrevocable move. | Tactical move (Takezo), territory placement (Nodespace), market position (SynthFence) |
Notes:
- Carts may satisfy multiple verbs. ICE Breaker satisfies
{PENETRATE, OBTAIN, DESTROY, OBSERVE}. Black Ledger satisfies{ANALYZE, OBSERVE}. The Vault satisfies{ANALYZE, OBSERVE}(passively, with:passivemodifier). - Verbs are closed for v1. Adding new verbs requires an ADR. Unrecognized verbs in a cart’s contribution block are dropped at parse time with a load-time warning.
- Cipher Garden is currently unscored against the verb set — its contribution is closer to a modifier than a verb (it raises cipher confidence index in deck state). Treated as
{ANALYZE :passive}for MCG purposes, special-cased in the algorithm. See open question Q1.
§2. Affinity tag system
Section titled “§2. Affinity tag system”Every cart carries a set of affinity tags describing its narrative domain. Tags are how the composition algorithm decides whether two phases can chain coherently — adjacent phases must share at least one affinity OR have a sanctioned cross-affinity transition.
Tag set (v1 — 11 tags)
Section titled “Tag set (v1 — 11 tags)”| Tag | Meaning | Example carts |
|---|---|---|
| DIGITAL | Networks, data, code, virtual systems. | ICE Breaker, Cipher Garden, The Vault, Relay |
| FINANCIAL | Money, ledgers, markets, transactions. | Black Ledger, SynthFence |
| AERIAL | Above-ground, atmospheric, aviation. | NIGHTOWL (concept), Drift (signal-tracking subset) |
| MARITIME | Below-surface, oceanic, coastal. | Depthcharge, Drift |
| BODY | Physical anatomy, wetware, biology. | WETWARE (concept), RECITATION (concept) |
| IDENTITY | Persona, biometrics, social proof, legal. | CLONESHOP (concept), GHOSTLINE (concept), Threshold (party-roles subset) |
| PHYSICAL | Material world, locations, spatial. | NeonGrid, Pathfinder, Threshold, Depthcharge |
| NETWORK | Topology, relationships, social graph. | Nodespace, ICE Breaker, BLACK SUN (concept) |
| CHEMICAL | Substances, formulation, biochemistry. | SYNAPTIC (concept) |
| SOCIAL | Negotiation, influence, manipulation, talk. | Threshold, HOSTILE TAKEOVER (concept), Marty’s Glitch |
| INFORMATION | Records, archives, signals, intelligence. | The Vault, Drift, TRANSMISSION (concept), GARGOYLE (concept) |
Notes:
- Carts typically carry 2–4 tags. ICE Breaker =
{DIGITAL, NETWORK}. NeonGrid ={PHYSICAL}. Black Ledger ={FINANCIAL, INFORMATION}. Pathfinder ={PHYSICAL, MARITIME?, AERIAL?}(multimodal — see open question Q2). - Tag set is mostly closed for v1. Adding a tag requires an ADR or this plan’s promotion to definitive (whichever lands first). The 11 tags above were chosen to cover the existing 14 launch carts plus the 15 brainstormed concepts (see Notion task: “Concept library: 15 candidate cyberpunk cartridges”).
- A cart may carry modifier flags alongside tags:
:passive(cart enables but doesn’t anchor a phase — The Vault, Cipher Garden),:bridge(cart can satisfy a cross-affinity transition that would otherwise be forbidden — WETWARE bridges DIGITAL→BODY).
Cross-affinity transition table (v1)
Section titled “Cross-affinity transition table (v1)”When two adjacent phases in a generated chain do not share an affinity, the algorithm consults this table. If the transition is sanctioned, the chain proceeds with a Cipher narrative bridge fragment. If not, the algorithm rejects the chain and rolls a different cart.
| From → To | Sanctioned? | Narrative justification |
|---|---|---|
| DIGITAL → FINANCIAL | ✅ | Data trail leads to bank records. |
| FINANCIAL → DIGITAL | ✅ | Transaction record leaks credentials. |
| DIGITAL → INFORMATION | ✅ | Extracted data goes to archive. |
| INFORMATION → DIGITAL | ✅ | Archive query reveals an exploitable pattern. |
| DIGITAL → NETWORK | ✅ | Network topology revealed. |
| NETWORK → DIGITAL | ✅ | Strategic position calls for an intrusion. |
| MARITIME → PHYSICAL | ✅ | Sub surfaces; courier picks up cargo. |
| PHYSICAL → MARITIME | ✅ | Courier hands off at the dock. |
| AERIAL → PHYSICAL | ✅ | Drone drop; ground retrieval. |
| PHYSICAL → AERIAL | ✅ | Ground signal calls down a drone. |
| INFORMATION → SOCIAL | ✅ | Intelligence enables a negotiation. |
| SOCIAL → INFORMATION | ✅ | Conversation surfaces a leak. |
| SOCIAL → IDENTITY | ✅ | Social leverage builds a persona. |
| IDENTITY → SOCIAL | ✅ | Forged identity walks into a room. |
| FINANCIAL → SOCIAL | ✅ | Money buys access. |
| SOCIAL → FINANCIAL | ✅ | Negotiation produces a payment. |
| DIGITAL → BODY | ⚠️ requires :bridge cart | Wetware mediation needed (WETWARE bridges). |
| BODY → DIGITAL | ⚠️ requires :bridge cart | Neural extraction to data form. |
| CHEMICAL → BODY | ✅ | Compound administered to subject. |
| BODY → CHEMICAL | ✅ | Biopsy yields compound trace. |
| Anything → INFORMATION | ✅ | The Vault accepts everything as input. |
| INFORMATION → Anything | ⚠️ rep-gated | Archive query alone doesn’t justify acting; only at rep ≥ 15 does the generator allow this fan-out. |
Transitions not listed are forbidden. The algorithm rolls a different cart and re-checks. If the operator’s library cannot satisfy a coherent chain after N rolls, the generator falls back to a shorter shape (see §4 Composition Algorithm step 5).
§3. New cart contribution block: mission-contributions
Section titled “§3. New cart contribution block: mission-contributions”The cart contribution model in docs/software/runtime/orchestration.md already lists six declarable blocks (Program code, Mission templates, Behavior tables, Generation data, cipher-grammar, Per-cartridge save data). This plan adds a seventh:
| Block | Purpose | Consumer |
|---|---|---|
mission-contributions | Verb vocabulary, affinity tag set, modifier flags, sanctioned transition overrides | nOSh runtime Mission Composition Grammar |
Schema
Section titled “Schema”The block is a Lisp s-expression embedded in the cart’s flash, parsed at cartridge load. The format mirrors the cipher-grammar block’s structure (named container section, ADR-0006).
(mission-contributions :verbs (PENETRATE OBTAIN DESTROY OBSERVE) :affinities (DIGITAL NETWORK) :modifiers () :transition-overrides () :payout-bias 1.0 :threat-bias 0)Field reference:
| Field | Type | Required | Default | Meaning |
|---|---|---|---|---|
:verbs | list of verb symbols | ✅ | — | Verbs this cart’s phase handlers can satisfy. Must be drawn from §1 vocabulary. |
:affinities | list of tag symbols | ✅ | — | Affinity tags this cart carries. Must be drawn from §2 set. |
:modifiers | list of modifier symbols | ⬜ | () | :passive, :bridge, or future modifiers. |
:transition-overrides | a-list of (FROM TO) pairs | ⬜ | () | Cart-specific sanctioned transitions beyond §2 table. Used sparingly. |
:payout-bias | float in [0.5, 2.0] | ⬜ | 1.0 | Multiplier applied to phases satisfied by this cart. SynthFence might bias 1.2× for high-stakes domain; Null might bias 0.7× for diagnostic-flavored phases. |
:threat-bias | int in [-2, +2] | ⬜ | 0 | Threat-level adjustment for phases satisfied by this cart. Positive = harder; negative = easier. |
Worked declarations for the four launch carts:
;; ICE Breaker(mission-contributions :verbs (PENETRATE OBTAIN DESTROY OBSERVE) :affinities (DIGITAL NETWORK))
;; NeonGrid(mission-contributions :verbs (PENETRATE OBSERVE DECIDE) :affinities (PHYSICAL))
;; Black Ledger(mission-contributions :verbs (ANALYZE OBSERVE OBTAIN) :affinities (FINANCIAL INFORMATION))
;; Depthcharge(mission-contributions :verbs (PENETRATE OBTAIN OBSERVE DELIVER) :affinities (MARITIME PHYSICAL))Backfilling all 14 launch carts is tracked in Notion: GWP-277 → “Backfill: Declare MCG verbs + affinities on all 14 launch carts”.
Parser behavior
Section titled “Parser behavior”- Block is optional for v1. Carts without
mission-contributionsare excluded from MCG generation; legacy hand-authored cross-pair behavior continues to work for them. The Mission Board logs a load-time INFO event for missing-block carts. - Unknown verb symbols → dropped at parse, load-time warning emitted.
- Unknown affinity symbols → dropped at parse, load-time warning emitted.
- Unknown modifier symbols → ignored silently (forward compatibility).
- Required fields missing → block rejected, cart treated as no-MCG-block (degrade gracefully).
§4. Composition algorithm (sketch)
Section titled “§4. Composition algorithm (sketch)”The full algorithm spec — including topology shapes (MONO/CHAIN/BRANCH/PARALLEL/EPISODIC/NESTED/ESCALATION/ECHO), genre template library (HEIST/EXPOSE/ELIMINATE/EMPIRE/GHOST/REVENGE/DISCOVERY/CONTAGION/COURIER/AUDIT), and the reference C implementation — ships in companion sub-tasks (Notion: GWP-277 sub-tasks 2–4). This section is a sketch so the verb/affinity foundation can be reviewed in context.
Topology shapes — see
2026-04-25-mission-shape-grammar.md. That plan specifies all eight shapes with phase-graph notation, when-to-fire heuristics, payout topology multipliers, 256-bytephase_chainserialization layouts, fallback rules, and cross-shape composition rules. It also bakes in the resolution to this plan’s open question Q3 (cross-affinity transitions are declared per-genre via:allowed-transitions, not by expanding the §2 table).
Input: operator deck state (rep, credits, capability_mask, cipher_seed) loaded cart pool (subset of operator library currently inserted + relay overlay)
1. ROLL GENRE Pick a genre template weighted by reputation tier and recent-genre history (avoid repetition). Each genre carries a verb sequence skeleton. See `2026-04-25-mission-genre-templates.md` for the v1 library of 10 hand-crafted genre templates (HEIST, EXPOSE, ELIMINATE, EMPIRE, GHOST, REVENGE, DISCOVERY, CONTAGION, COURIER, AUDIT) with verb sequences, Cipher voice register biases, payout classes, complication slot pools, and `:allowed-transitions` overrides.
2. INSTANTIATE PHASES For each verb in the genre's skeleton: a. Filter cart pool by verb-satisfiers (carts whose :verbs contains the verb) b. Apply affinity coherence filter against prior phase's cart (shared affinity OR sanctioned cross-affinity transition; consult §2 table) c. Roll one cart from survivors (LFSR-seeded from MissionBoardGen.board_seed) d. If no survivor: emit MISSING_CART_HOOK with the verb + suggested cart (mission appears greyed out on board with hint "PHASE N REQUIRES: <CART>")
3. RESOLVE SUBSTITUTION SLOTS If a phase can be satisfied by multiple carts in operator's library, mark it as a substitution slot. Player picks at acceptance time. (UX: deferred to sub-task 4 engineering; v1 picks the highest-:payout-bias cart automatically.)
4. PAD WITH COMPLICATIONS Roll 0–2 complications from the genre's complication pool. Complications add a sub-objective or a constraint to one of the phases. (Threshold-style social complications, time pressure, cargo damage, etc.)
5. COMPUTE PAYOUT total = sum(phase_base_payout × cart.payout_bias) × topology_multiplier (1.0 for MONO, 1.2 for 2-CHAIN, 1.5 for 3-CHAIN, 2.0 for 4-CHAIN, +0.3 per BRANCH path, etc.) × cross_cart_multiplier (1.0 if all phases same cart; +0.1 per distinct cart; capped at 2.0) × threat_multiplier (1.0 + 0.15 × threat_level)
6. GENERATE CIPHER WRAPPER Emit `mission_generated{contract_id, narrative_seed, genre, phases[]}` into the Cipher event stream. Engine composes brief / inter-phase fragments / closer per its mode-selector rules (Cipher Voice spec).
Output: a MissionInstance ready to be added to the live board.Implementation notes:
- Step 2c’s LFSR seeding uses the board-seed (per
2026-04-21-mission-board.md§Seed advancement rules), not the global cipher_seed. This keeps Cipher’s deck-state seed budget independent of board churn. - Step 4’s complication pool is genre-scoped; a HEIST might roll “alarm tripped early” while a GHOST might roll “biometric spoof degrades at 60% time.”
- Step 6’s payload includes the
narrative_seed(per the existingMissionInstanceshape) so Cipher’s per-contract utterances are reproducible.
§5. Worked example — 4-cart REVENGE chain
Section titled “§5. Worked example — 4-cart REVENGE chain”Operator library: ICE Breaker, Black Ledger, NIGHTOWL (concept), CLONESHOP (concept). Reputation 18 (rep tier 2). Cipher seed 0x8A3F1C04.
Step 1 — Genre roll: REVENGE (weighted up at rep tier 2; not seen in last 6 contracts).
REVENGE skeleton: (research → manufacture → deploy → consequence) mapping to verbs (OBSERVE → MANUFACTURE → DELIVER → ANALYZE).
Step 2 — Instantiate phases:
| Phase | Verb | Survivors after verb filter | Survivors after affinity filter | Picked cart | Domain |
|---|---|---|---|---|---|
| 1 | OBSERVE | ICE Breaker, Black Ledger, (Drift if loaded), (NeonGrid if loaded) | (no prior phase; all pass) | ICE Breaker (LFSR roll) | Compromise corp executive’s email cache |
| 2 | MANUFACTURE | CLONESHOP | DIGITAL → IDENTITY (sanctioned: extracted data → forged persona) | CLONESHOP | Fabricate “former mistress” identity from email cache |
| 3 | DELIVER | NIGHTOWL | IDENTITY → AERIAL (sanctioned: ground signal calls drone, transitive via PHYSICAL) — fails strict check, see note | NIGHTOWL (override via genre template’s allowed transitions) | Drone-drop the dossier at executive’s HOA meeting |
| 4 | ANALYZE | Black Ledger | AERIAL → FINANCIAL (sanctioned via PHYSICAL bridge — also weak, see open question Q3) | Black Ledger | Trace executive’s panic-sale stock dump for resale to a short-seller |
Step 3 — Substitution slots: none (each verb had only one satisfier in the operator’s library).
Step 4 — Complications: roll 1. Picked: “target’s HOA has corporate counter-surveillance” (adds threat +1 to phase 3).
Step 5 — Payout:
phase_base × cart.payout_bias: Phase 1: 800 × 1.0 = 800 (ICE Breaker) Phase 2: 1,200 × 1.0 = 1,200 (CLONESHOP, hypothetical bias) Phase 3: 1,000 × 1.0 = 1,000 (NIGHTOWL, hypothetical bias) Phase 4: 900 × 1.0 = 900 (Black Ledger)sum = 3,900
× topology_multiplier (4-CHAIN): 2.0 → 7,800× cross_cart_multiplier (4 distinct carts): 1.4 → 10,920× threat_multiplier (threat 4 from rep tier + complication): 1.6 → 17,472
Final payout: ¤17,472Step 6 — Cipher wrapper: event emitted; engine composes brief at acceptance, fragment at each cart swap, closer at debrief.
This mission would never have been hand-authored — but it’s coherent, dramatic, and pays well.
§6. Forward compatibility / spec hygiene
Section titled “§6. Forward compatibility / spec hygiene”Per CLAUDE.md Spec Hygiene Rule 3, this plan changes vocabulary used elsewhere in the corpus. Tracked sweep:
-
docs/software/runtime/orchestration.md§Cross-Program Integration — add forward pointer to this plan. (Done in this PR.) -
docs/plans/post-v0.1/2026-04-21-mission-board.md— add cross-reference at top so the mission-board plan reader knows about MCG. (Done in this PR.) - Mission shape grammar — landed 2026-04-25 (GWP-279).
2026-04-25-mission-shape-grammar.mdspecifies all eight topology shapes with serialization, fire heuristics, and fallback rules. Bakes in this plan’s Q3 resolution. -
docs/plans/README.md— add this plan to the index table. (Not done in this PR — the post-v0.1 directory is not enumerated in the parent README; the directory is referenced as a whole.) -
docs/_meta/definitive-articles.md— no change required; WORKING tier docs are not enumerated there. Will register on graduation to DEFINITIVE. -
docs/software/runtime/orchestration.md§Cartridge Contribution Model —mission-contributionsrow added to the block table (GWP-282, 2026-04-25). The runtime wiring still depends on the algorithm sub-task (GWP-277 sub-task 4); the table entry forward-references the working spec until it graduates to DEFINITIVE. - All 14 launch cart specs in
docs/software/cartridges/modules/(plus Threshold, launch-adjacent) —mission-contributionsdeclarations backfilled (GWP-282, 2026-04-25). Coverage matrix confirms every verb except MANUFACTURE and NEGOTIATE has ≥2 satisfiers; under-satisfied verbs and affinity tags (BODY, CHEMICAL, IDENTITY, SOCIAL — currently ≤1 satisfier each in the launch library) are documented in the GWP-282 PR description and remain real coverage gaps that concept carts (HOSTILE TAKEOVER, CLONESHOP, WETWARE, SYNAPTIC) will close in subsequent waves. - Genre template library (10 hand-crafted skeletons) — authored in
2026-04-25-mission-genre-templates.md. Resolves Q1 (passive carts as modifiers, never anchors), Q3 (per-genre:allowed-transitionsoverrides), and Q5 (per-genre Cipher mode bias) from §7 below.
When this plan graduates (via ADR or as a new spec doc under docs/software/runtime/), the deferred items become hard requirements per Spec Hygiene Rule 3.
§7. Open questions
Section titled “§7. Open questions”Q1 — Cipher Garden / The Vault as :passive carts. Both contribute to deck state (cipher confidence index, knowledge index) rather than running phase handlers in the conventional sense. They satisfy ANALYZE :passive for MCG purposes but the algorithm should probably never roll them as a phase anchor — they should always appear as modifiers boosting phases satisfied by other carts. Resolve before sub-task 4 engineering lands.
Q2 — Multi-environment carts (Pathfinder, Drift). Pathfinder operates in {PHYSICAL, MARITIME?, AERIAL?} depending on the route. Drift’s signal-tracking subset is {INFORMATION} but its dead-drop subset is {PHYSICAL, MARITIME}. Should :affinities be a flat list, or should the cart declare per-verb affinity sets? Recommendation: flat list for v1 (simpler parser, simpler algorithm); revisit if the resulting compositions feel imprecise.
Q3 — Indirect transitions (AERIAL → FINANCIAL via PHYSICAL). The §5 worked example bridges AERIAL → FINANCIAL through an unstated PHYSICAL intermediate (“drone delivers dossier; HOA financial spillover”). The transition table (§2) doesn’t sanction this directly. Two options: (a) expand the table with second-order transitions; (b) require genre templates to declare allowed transition overrides. Recommendation: (b) — keeps the table small and pushes narrative judgment into the genre layer where it belongs.
Q4 — Cart pool eligibility during multi-phase chains. §1 of 2026-04-21-mission-board.md notes that contracts requiring an ejected cartridge survive as “locked” rows. Should the MCG generator emit chains requiring carts the operator owns but doesn’t currently have inserted (i.e., the chain assumes Hot Swap)? Recommendation: yes — this is the original Hot Swap design intent. The MISSING_CART_HOOK in step 2d covers carts the operator doesn’t own; carts owned-but-not-inserted produce normal chains with cart-swap prompts at phase boundaries.
Q5 — Cipher mode bias from genre. Should the genre template declare a Cipher mode bias (e.g., REVENGE → biased toward reflect and drift modes; HEIST → biased toward observe)? Resolve in the genre template sub-task (GWP-277 sub-task 3) — affects cipher-grammar’s mode-weight schema.
§8. Acceptance criteria for this plan
Section titled “§8. Acceptance criteria for this plan”- Verb vocabulary defined (§1)
- Affinity tag set + cross-affinity transition table defined (§2)
-
mission-contributionscart contribution block schema defined (§3) - Composition algorithm sketched (§4); reference implementation deferred to engineering sub-task
- Worked example demonstrates a generated 4-cart chain (§5)
- Spec hygiene sweep enumerated (§6)
- Open questions captured (§7)
- Cross-references to companion sub-tasks (Notion: GWP-277)
Related
Section titled “Related”2026-04-21-mission-board.md— the Mission Board generator design this plan extends.docs/software/runtime/orchestration.md— capability model spec; cross-program integration section that this plan generalizes.docs/software/runtime/cipher-voice.md— Cipher voice engine; receivesmission_generatedevents from the composer.docs/adr/ADR-0006-cart-format-v2.md—.kn86container format; this plan adds a new named section (MISSION_CONTRIBUTIONS) within the existing format.docs/adr/ADR-0015-cipher-line-auxiliary-display.md— CIPHER-LINE auxiliary display; the coherence stack carries narrative continuity across MCG-generated chain phase swaps.- Notion parent task: GWP-277 — Design and implement Mission Composition Grammar for procedural multi-phase missions.