Acquisition Surface: decision brief (GWP-709)
rule. Recorded in ADR-0057; spec
skeleton at ../programs/deck-hub-supply.md. This brief is
the option analysis behind that pick, and the gate doc for the shop-home section of the Deck
Hub spec (GWP-710).
Date: 2026-07-17
Companions: economy-model.md (the acquisition loop this surfaces),
catalog-taxonomy.md (GWP-712: classes, stable IDs, exposure stages),
ADR-0056 (the ownership ledger purchases
deposit into), ADR-0055 (engine-priced
awards; wallet writes are System-tier), ADR-0042
(the closed thirteen-program roster).
1. The decision
Section titled “1. The decision”The economy model’s acquisition loop ends in two designed moments that have no surface today:
- Expose. On debrief, a missing verb, program, or equipment item appears with a price. Debrief fires as a CIPHER-LINE beat on the OLED (ADR-0015); there is no main-grid debrief modal. An OLED line is ephemeral, so the advert needs a persistent place where the exposed item sits with its price.
- Buy. Somewhere the operator browses exposed items (the sims model ~135 catalog entries
across six classes) and converts credits into ownership via
ownership_commit.
This brief decides which surface owns viewing and buying, and rules on when the mission board may regenerate after a purchase (§4). Everything else is already fixed by the companions: the loop shape, the taxonomy, the exposure-stage schema, the ledger, and the pricing authority.
2. The exposure moment (common to every option)
Section titled “2. The exposure moment (common to every option)”Shared plumbing, identical under all four options:
- Mission resolution settles the award (ADR-0055), then the exposure ledger flips the taught
item
hidden -> exposed(GWP-712 §3; run-state, regenerable). - CIPHER emits the advert on the OLED during the
:debriefbeat (a new:catalog-exposedevent type; copy per the CIPHER style guide). - The exposed item is now listed, with a price, on the chosen surface. Row 0 / Row 74 remain firmware-owned; any “new stock” affordance rides the chosen surface’s own rows.
The decision is only where that listing lives.
3. Options
Section titled “3. Options”A. Deck Hub SUPPLY view (shop home inside program #2)
Section titled “A. Deck Hub SUPPLY view (shop home inside program #2)”Deck Hub gains one view beside the character sheet and the loadout: the catalog of exposed
items, priced; EVAL on an item spends and commits. The bench (“what I own”) extends into
“what is on offer,” the seam the GWP-710 spec already reserves.
- For: No roster change. Purchase-to-equip adjacency: buy a verb-tool, slot it, all in one program. The wallet readout the shop spends against already lives here. Bare-deck available.
- Against: Weakest fiction (a store tab in a character screen reads as game furniture unless dressed as a procurement channel). Deck Hub accretes a fourth job (state, loadout, onboarding, now commerce). The advert and the store are two hops apart: debrief happens at the board/OLED, buying happens in Deck Hub.
B. Board debrief overlay (shop moment inside program #1)
Section titled “B. Board debrief overlay (shop moment inside program #1)”Mission resolution returns to the board through a DEBRIEF panel (the ADR-0050 PEEK pattern: a
docked right-hand panel over the feed) showing the settled award plus the newly exposed items;
EVAL buys from the panel. A full catalog list would live behind a board tab.
- For: Tightest teach-by-need loop: the struggle, the advert, and the purchase land on one screen at the moment of pain. Gives the settlement math (ADR-0055 banked rewards, escrow) a main-grid home too.
- Against: Scope-creeps the Mission Board from work discovery into commerce. An overlay cannot carry ~135-item browsing, so a full catalog home is still needed somewhere, which risks two shop surfaces. Sharpest regen coupling: buying happens on the surface that regenerates (§4 stops being optional here).
C. kn9 vendor thread (diegetic fence)
Section titled “C. kn9 vendor thread (diegetic fence)”A :vendor folder in kn9. Exposure arrives as an offer message on the World Engine feed after
debrief; replying to the offer buys.
- For: Maximum diegesis. The fence, the dead drop, the offer that arrives: all native to kn9’s feed model, and the arrival timing IS the exposure moment.
- Against: kn9’s charter excludes economy ownership, and v1 compose is read-mostly by design. Browsing and comparing a six-class catalog through mail threads is poor UX at ~135 items. The bare-deck inbox fattens with engine-authored commerce traffic.
D. New dedicated program (fourteenth roster entry)
Section titled “D. New dedicated program (fourteenth roster entry)”A purpose-built shop program (working name GRAYMARKET), chartered by amending ADR-0042.
- For: Clean scope; a
tabulated-listcatalog is exactly the shared feed-reader shape (kn9 / Mission Board lineage), so construction reuse is high. Room to grow the fence fiction without bending another program’s charter. - Against: Costs the roster amendment ADR-0042 exists to make expensive. Overlaps Deck Hub’s bench and wallet. A fourteenth router tile for a surface visited between missions.
Trade-off table
Section titled “Trade-off table”| Dimension | A. Deck Hub view | B. Board overlay | C. kn9 thread | D. New program |
|---|---|---|---|---|
| Roster cost (ADR-0042) | none | none | none | amendment |
| Teach -> buy adjacency | two hops | same screen | feed arrival | two hops |
| Catalog browsing at ~135 items | good (list view) | poor (overlay) | poor (threads) | good |
| Fiction / diegesis | weak unless dressed | medium | strongest | strong |
| Construction reuse | tabulated-list | ADR-0050 peek | kn9 feed | tabulated-list |
| Host-program scope pressure | high (4th job) | high (commerce on the board) | high (charter conflict) | none (new charter) |
| Purchase-to-equip adjacency | best (bench beside shop) | none | none | none |
| Board regen coupling (§4) | low | highest | low | low |
| Spec/eng surface touched | deck-hub.md (GWP-710 seam) | board + ADR-0050 | kn9.md + feed | new charter + spec + router |
Recommendation (picked by Josh, 2026-07-17)
Section titled “Recommendation (picked by Josh, 2026-07-17)”A, with C as the flavor channel later. Deck Hub owns viewing and buying (the GWP-710 seam
snaps in with no rework); the advert is the CIPHER :catalog-exposed debrief line; a cart may
later enrich the moment with a kn9 handler message pointing at the same SUPPLY entry
(enrich-never-gate, no purchase mechanics in kn9). Option B’s adjacency is real but buys it by
making the board a store; if the two-hop distance proves a felt problem on glass, a Row-74
affordance from the board to Deck Hub SUPPLY closes it without moving the shop.
4. The regen rule (ruled here, recorded in ADR-0057)
Section titled “4. The regen rule (ruled here, recorded in ADR-0057)”Today mission_board.c subscribes its regenerate-on-next-peek dirty flag to six events,
including NOSH_EVENT_UDS_CREDIT_CHANGED (mission_board.c:139). Purchases will publish that
event through the GWP-718 evented setters. Two failures follow:
- Feel. Buy at the debrief, return to the board, and the board you were just reading has
re-minted: same seed, but instance count and payouts shift with
balance_tier. - Probe.
broke_bonusgrants +25% payouts below the broke threshold at generation time. Spending down to the threshold (a cheap consumable) and re-entering the board reprices every contract upward. Shopping becomes a payout lever.
Rule: a purchase never regenerates or reprices the board. The board’s dirty flag drops its
UDS_CREDIT_CHANGED subscription entirely; regeneration triggers are mission resolution
(completed / failed / abandoned), cart-history change, reputation change, and cipher-seed
advance. balance_tier and broke_bonus are therefore evaluated only at those boundaries,
which restores their design intent: relief for an operator left broke by play. Shopping stops
touching the payout math. Ownership-driven eligibility (fixed rule 3: buying a program or
verb widens which templates compose) lands at the same boundaries; the next board after the
next resolution shows the new work, and the debrief advert can say so.
Rejected alternative: pinning displayed contracts while refilling vacancies (a feed-native incremental board). Better long-term model, but it is a board redesign, out of GWP-709’s scope, and ADR-0055’s accepted-snapshot rule already protects the one contract where repricing draws blood.
5. What follows the pick
Section titled “5. What follows the pick”- ADR-0057 records the owner and the regen rule (amending ADR-0042 only if D).
- Spec skeleton for the chosen surface lands beside this brief (or inside
deck-hub.mdif A, through the GWP-710 seam). - Engineering follow-ons: the
:catalog-exposedCIPHER event; the purchase path (ownership_commit+ evented spend); themission_board.csubscription change.