Skip to content

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


The economy model’s acquisition loop ends in two designed moments that have no surface today:

  1. 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.
  2. 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 :debrief beat (a new :catalog-exposed event 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.

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

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-list catalog 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.
DimensionA. Deck Hub viewB. Board overlayC. kn9 threadD. New program
Roster cost (ADR-0042)nonenonenoneamendment
Teach -> buy adjacencytwo hopssame screenfeed arrivaltwo hops
Catalog browsing at ~135 itemsgood (list view)poor (overlay)poor (threads)good
Fiction / diegesisweak unless dressedmediumstrongeststrong
Construction reusetabulated-listADR-0050 peekkn9 feedtabulated-list
Host-program scope pressurehigh (4th job)high (commerce on the board)high (charter conflict)none (new charter)
Purchase-to-equip adjacencybest (bench beside shop)nonenonenone
Board regen coupling (§4)lowhighestlowlow
Spec/eng surface toucheddeck-hub.md (GWP-710 seam)board + ADR-0050kn9.md + feednew 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_bonus grants +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.

  • 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.md if A, through the GWP-710 seam).
  • Engineering follow-ons: the :catalog-exposed CIPHER event; the purchase path (ownership_commit + evented spend); the mission_board.c subscription change.