Skip to content

nOSh BARE DECK — Terminal HUD

nOSh-Runtime-Level Experience — KN-86 Deckline Without Cartridge

Version 1.0 | Status: Playtest Design | Date: 2026-04-10

CIPHER-LINE revision note (2026-04-24): CIPHER has been removed from the main 80×25 grid entirely. Live Cipher voice renders on the CIPHER-LINE OLED above the keyboard (see docs/software/runtime/cipher-voice.md and adr/ADR-0015-cipher-line-auxiliary-display.md). The bare deck HUD is therefore a four-tab layout (STATUS, LAMBDA, LINK, SYS); the previous CIPHER tab has been deleted. The Null cartridge is the one sanctioned exception where Cipher glyphs appear on the main grid, via the cipher-main-grid-escape capability (ADR-0015 §3a); no nOSh runtime tab and no other cartridge may render Cipher on the main grid.


The KN-86 Deckline is an operational terminal FIRST, a cartridge platform second. The bare deck—the runtime-level HUD that appears when the device powers on with no capability module inserted—is genuinely useful and complete in itself. It is not a splash screen, not a loading state, not a menu waiting for real software. It is a pocket terminal that teaches the Deckline’s grammar, maintains the operator’s universal deck state, runs runtime-level bounties, hosts deck-to-deck interactions, and remains the transition layer when cartridges are swapped. The Cipher voice accompanies bare-deck sessions continuously on CIPHER-LINE; it does not appear on the main grid.

An operator who has never loaded a cartridge can still:

  • Boot a fresh deck and establish their identity
  • Earn credits through runtime bounties
  • Record and playback macros
  • Connect deck-to-deck via the Link protocol
  • Hear the Cipher voice ambiently on CIPHER-LINE
  • Manage system settings

The bare deck is where cartridge-less operators choose to stay, and where every other operator continuously returns to reorient between missions.


All state persists in 64 bytes of SRAM across every session, every cartridge, every power cycle:

typedef struct {
char operator_handle[12]; /* Identity: set once, persists forever */
int32_t credit_balance; /* Universal currency (¤) */
uint16_t reputation; /* Cumulative standing across all ops */
uint32_t cartridge_history; /* Bitfield: which modules ever loaded */
uint8_t lambda_slots[256]; /* 8 × 32-step recorded macros */
uint8_t quote_slots[32]; /* 8 × 4-byte Cell/Passage bookmarks */
uint8_t phase_chain[16]; /* Multi-phase mission state (suspended) */
uint8_t cipher_seed[4]; /* LFSR state: Cipher evolution */
uint8_t reserved[16]; /* Expansion slots */
} DeckState;

This is the operator’s permanent record. The bare deck displays it, but the nOSh runtime owns it. Every tab reads from this structure; cartridges may modify specific fields (credits earned, reputation gained, phase chain updated), but the deck state itself never leaves SRAM.


Power on → nOSh runtime initializes display and audio → reads SRAM operator handle field → handle is empty.

  1. Kinoshita header (2 lines): Amber text on black. nOSh runtime version, copyright, device serial.
  2. Cipher greeting: A contextual voice line (randomly selected from a first-boot template set). Example: “EMPTY DECK. NEW OPERATOR. WHAT IS YOUR HANDLE?”
  3. Handle entry prompt: The nOSh runtime enters a specialized text-entry mode. The operator uses:
    • Numpad (0–9, . , ENT, +): Direct digit/symbol entry
    • CAR/CDR: Cycle through letters A–Z (CAR = previous letter, CDR = next letter; wraps)
    • EVAL: Confirm entry
    • BACK: Cancel and try again
  4. Identity established: The handle is written to SRAM. Timestamp recorded. Credits set to 0¤. Reputation set to 0. Cipher seed initialized from the real-time clock or a hardware entropy source.
  5. Auto-land on STATUS tab: The main four-tab HUD appears.

Power on → nOSh runtime initializes → reads operator handle from SRAM → handle exists.

  1. Kinoshita header (2 lines)
  2. Cipher greeting: Contextual text based on deck state (different every boot). Examples:
    • “OPERATOR GHOSTWIRE. WELCOME BACK.” (fresh session, known operator)
    • “GHOSTWIRE. 47 REPUTATION. THE BOARD IS WAITING.” (experienced operator)
    • “OPERATION SUSPENDED. AWAITING BLACK LEDGER. PHASE 2/3.” (mid-contract state)
  3. Auto-land on STATUS tab: Displays current deck state.

The bare deck uses the same navigation grammar as cartridges:

  • CDR: Cycle through tabs (left to right, wraps)
  • CAR: Enter the current tab’s interactive mode
  • BACK: Return to the tab strip from interactive mode
  • Tab indicator: Thin bar at row 0 (or row 24) showing the four tab names; current tab is highlighted

The four nOSh-runtime-owned tabs are:

  1. STATUS — Identity and universal state summary
  2. LAMBDA — Macro recorder and executor
  3. LINK — Deck-to-deck protocol and runtime bounties
  4. SYS — System settings, diagnostics, and operator management

Cipher voice runs continuously on CIPHER-LINE across all four tabs; it is not a tab on the main grid.


The identity screen. This is where the bare deck boots, where every operator lands between cartridge sessions, and where the fiction becomes personal.

Row 0: ┌─ STATUS • LAMBDA • LINK • SYS ────────────────────────┐
Row 1: └────────────────────────────────────────────────────────┘
Row 2: OPERATOR: GHOSTWIRE
Row 3: REPUTATION: ████████░░ 47 CREDITS: 2,840 ¤
Row 4: ────────────────────────────────────────────────────────
Row 5: REGISTERED CAPABILITIES:
Row 6: [■] ICE BREAKER — Network Intrusion (Module 0x01)
Row 7: [■] NEONGRID — Grid Traversal (Module 0x02)
Row 8: [■] BLACK LEDGER — Forensic Audit (Module 0x03)
Row 9: [ ] DEPTHCHARGE — (not registered)
Row 10: [ ] ──────── — (slot empty)
Row 11: [ ] ──────── — (slot empty)
Row 12: ────────────────────────────────────────────────────────
Row 13: PHASE CHAIN:
Row 14: Phase 2/3: EXTRACTION → AUDIT (awaiting BLACK LEDGER)
Row 15: ────────────────────────────────────────────────────────
Row 16: LAMBDA SLOTS:
Row 17: λ1: [■■■■░░░░] 14 steps λ5: [░░░░░░░░] empty
Row 18: λ2: [■■░░░░░░] 8 steps λ6: [░░░░░░░░] empty
Row 19: λ3: [░░░░░░░░] empty λ7: [░░░░░░░░] empty
Row 20: λ4: [░░░░░░░░] empty λ8: [░░░░░░░░] empty
Row 21: ────────────────────────────────────────────────────────
Row 22: RUNTIME: nOSh v2.4 | UPTIME: 00:14:32 | CIPHER: ONLINE
Row 23: CARTRIDGE SLOT: EMPTY — AWAITING MODULE
Row 24: [INFO: details EVAL: refresh CAR: drill BACK: ↑]

Fresh Deck (First Boot After Handle Entry)

Section titled “Fresh Deck (First Boot After Handle Entry)”
Row 2: OPERATOR: GHOSTWIRE (just entered)
Row 3: REPUTATION: ░░░░░░░░░░ 0 CREDITS: 0 ¤
Row 5: REGISTERED CAPABILITIES:
Row 6: [ ] ──────── — (slot empty)
...all slots empty...
Row 13: PHASE CHAIN: NONE
Row 16: LAMBDA SLOTS: ALL EMPTY
Row 23: CARTRIDGE SLOT: EMPTY — AWAITING MODULE
  • CAR: Enter capability roster — drill into a registered module’s contract history (total contracts completed, cumulative credits earned from that module, reputation threshold met).
  • INFO: Toggle between summary (above) and detailed breakdown. Double-tap for deep diagnostics: RAM usage, SRAM CRC, cartridge history bitfield displayed in binary.
  • EVAL: Refresh deck state (re-read SRAM from hardware, useful after a cartridge session).
  • CDR: Cycle to LAMBDA tab.
  • BACK: (Already at tab level; no-op.)

Macro recorder and executor. nOSh-runtime-level recorded key sequences that persist in SRAM across all cartridges.

An operator can record up to 8 macros, 32 steps each. Steps are key names (not decoded input; the nOSh runtime records which key was pressed). On playback, the nOSh runtime re-executes those key presses in sequence with 200ms delays between steps.

Lambda macros are nOSh-runtime-owned, not cartridge-owned. They survive cartridge swaps. An operator can record a boot-check macro on the bare deck and replay it inside an ICE BREAKER contract.

Row 0: ┌─ STATUS • LAMBDA • LINK • SYS ────────────────────────┐
Row 1: └────────────────────────────────────────────────────────┘
Row 2: LAMBDA EDITOR
Row 3: ────────────────────────────────────────────────────────
Row 4: SLOT 1: ████████████████░░░░░░░░░░░░░░░░ 14/32 steps
Row 5: 01: INFO 02: CDR 03: CDR 04: CAR 05: EVAL
Row 6: 06: BACK 07: CDR 08: CAR 09: APPLY 10: EVAL
Row 7: 11: BACK 12: BACK 13: QUOTE 14: EVAL
Row 8: ────────────────────────────────────────────────────────
Row 9: SLOT 2: ████████░░░░░░░░░░░░░░░░░░░░░░░░ 8/32 steps
Row 10: 01: CDR 02: CDR 03: CDR 04: CDR 05: CDR
Row 11: 06: CAR 07: INFO 08: BACK
Row 12: ────────────────────────────────────────────────────────
Row 13-20: [Slots 3–8, same format; most likely empty]
Row 21: ────────────────────────────────────────────────────────
Row 22: MODE: VIEW | SELECTED: SLOT 1 | RECORDING: OFF
Row 23: ────────────────────────────────────────────────────────
Row 24: [LAMBDA: record EVAL: playback NIL: clear CONS: merge]

Tab Navigation:

  • CDR: Cycle through slots 1–8 (in VIEW mode).
  • CAR: Select current slot for editing (enters EDIT mode, shows step-by-step breakdown).

View Mode (default):

  • LAMBDA: Start recording into selected slot. Display changes to “RECORDING: ON”. All subsequent key presses (except BACK, which is reserved for abort) are captured as steps. Maximum 32 steps. Press LAMBDA again to stop recording. Progress bar updates in real-time.
  • EVAL: Playback selected slot’s macro sequence. The nOSh runtime executes each step with 200ms delays. Can be interrupted by pressing BACK.
  • NIL: Clear selected slot (confirmation required: press EVAL to confirm, any other key to abort).
  • CONS: Merge two slots. Enter EDIT mode for slot A. Press CONS. Then CDR to slot B. Press CONS again to confirm. The nOSh runtime concatenates A + B (up to 32 steps total; excess steps are truncated) and writes the result to the next available slot. If all slots are full, merge fails (show error: “ALL SLOTS FULL”).
  • ATOM: Test whether selected slot is empty. Returns a visual indicator (hollow bar for empty, filled bar for occupied).
  • EQ: Compare two slots side-by-side. CDR to select slot A. Press EQ. CDR to slot B. Press EQ to confirm. Display shows a diff view: step-by-step comparison. Highlights differences (useful for debugging macros).

Edit Mode (after CAR on a slot):

  • CDR: Cycle through individual steps in the macro. Display shows the current step number and key name.
  • EVAL: Toggle the current step. If the step is populated, mark it for deletion (shown as ”────” in the list). If empty, skip to the next populated step.
  • BACK: Exit EDIT mode, return to VIEW mode.

Lambda macros teach:

  • Repetition: An operator records a tab-cycling sequence and plays it back 10 times. The device obeys. The operator learns that the Deckline responds to patterns.
  • Composition: The CONS operator allows merging, building complex macros from simple ones.
  • Testing: EQ allows side-by-side comparison, teaching operators to debug their own recorded sequences.

Deck-to-deck protocol interface. The 3.5mm TRRS serial port connects two KN-86 units at 9,600 baud using a simple framing protocol (nOSh LINK v1).

The bare deck hosts three types of Link interactions: connection diagnostics, operator challenges (runtime bounties), and deck state comparison.

Row 0: ┌─ STATUS • LAMBDA • LINK • SYS ────────────────────────┐
Row 1: └────────────────────────────────────────────────────────┘
Row 2: LINK PROTOCOL
Row 3: ────────────────────────────────────────────────────────
Row 4: STATUS: NO CONNECTION
Row 5: PORT: 3.5mm TRRS | BAUD: 9600 | PROTOCOL: nOSh LINK v1
Row 6: ────────────────────────────────────────────────────────
Row 7: LINK HISTORY:
Row 8: Last connected: OPERATOR SIGNAL | 2 days ago
Row 9: Total links: 14 | Unique operators: 3
Row 10: ────────────────────────────────────────────────────────
Row 11: NOSH RUNTIME CHALLENGES (solo):
Row 12: [!] DIAGNOSTIC (5¤) — Verify hardware systems
Row 13: [!] LFSR EXERCISE (5¤) — Predict LFSR sequence
Row 14: ────────────────────────────────────────────────────────
Row 15: LINK CHALLENGES (cooperative):
Row 16: [ ] LFSR SYNC — timing puzzle (10¤ each, when linked)
Row 17: [ ] ECHO TEST — latency race (5¤ winner, when linked)
Row 18: ────────────────────────────────────────────────────────
Row 19: SOLO BOUNTY BALANCE: 10¤ available
Row 20: ────────────────────────────────────────────────────────
Row 24: [LINK: ping EVAL: accept INFO: details BACK: ↑]
Row 4: STATUS: CONNECTED — OPERATOR SIGNAL (latency: 12ms)
Row 5: PORT: ACTIVE | SIGNAL STRENGTH: ████████░░
Row 6: ────────────────────────────────────────────────────────
Row 7: REMOTE DECK STATE:
Row 8: OPERATOR: SIGNAL | REP: 23 | CR: 1,200¤ | RUNTIME: v2.4
Row 9: CAPABILITIES: ICE BREAKER, DEPTHCHARGE
Row 10: ────────────────────────────────────────────────────────
Row 11: LINK CHALLENGES (available now):
Row 12: [!] LFSR SYNC — cooperative timing puzzle (10¤ each)
Row 13: [!] ECHO TEST — competitive latency race (5¤ winner)
Row 14: [ ] DECK COMPARE — state diff analysis (0¤ diagnostic)
Row 15: ────────────────────────────────────────────────────────
Row 16: COMBINED BOUNTY POOL: 25¤ available
Row 20: ────────────────────────────────────────────────────────
Row 24: [LINK: ping EVAL: start EQ: compare INFO: details]

No Connection:

  • LINK: Ping (send handshake packet on the serial port). If another KN-86 is connected and listening, it responds. Display updates to show connection.
  • CAR: Enter a solo challenge’s detail view (show rules and payout).
  • EVAL: Accept and start a solo challenge.
  • INFO: Show port diagnostics (baud rate verification, packet error rate, signal strength if connected).

Connected:

  • LINK: Send a keepalive ping. Display updates latency.
  • CAR: Enter a challenge’s detail view.
  • EVAL: Accept and start a cooperative challenge (or initiate a competitive challenge).
  • EQ: Initiate deck state comparison (side-by-side view of both operators’ deck state).
  • INFO: Show remote deck state details (full operator stats, capability list).

These bounties can be completed on any deck, without Link:

DIAGNOSTIC (5¤, once per boot cycle)

  • The nOSh runtime prompts the operator to press each of the 30 keys in sequence.
  • After all keys are pressed, the nOSh runtime verifies:
    • Display renders correctly (changes color briefly per key).
    • Audio response: each key triggers a subtle tone (3 different tones in sequence per key press).
    • SRAM read/write: a test pattern is written and read back.
  • On completion: “HARDWARE VERIFIED. DIAGNOSTIC COMPLETE.” Operator earns 5¤.
  • Useful as a health-check on power-up.

LFSR EXERCISE (5¤, repeatable, ~3 min, difficulty scales with reputation)

  • The nOSh runtime displays a number sequence at row 2: “SEQUENCE: 42 → 17 → 68 → 34 → ?”
  • The sequence is derived from the deck’s LFSR (4 visible transitions).
  • Operator enters the predicted next value via numpad (0–999, 3 digits) + EVAL.
  • Difficulty: at rep 0–10, sequences are simple (always increment/decrement). At rep 35+, sequences use XOR patterns (harder to predict).
  • On success: “+5¤”. A new sequence is offered.
  • Tests pattern recognition and LFSR literacy.

These require two KN-86 units connected via Link:

LFSR SYNC (10¤ per operator, cooperative, ~2 min)

  • Both decks display a scrolling 4-digit number sequence (derived from each deck’s LFSR).
  • The sequences are deterministic but initially out of sync.
  • Operators must press EVAL simultaneously when the sequences align (match the same value).
  • The nOSh runtime uses latency measurement to determine if presses were within ~100ms of each other.
  • On success (both pressed within window): both decks display “SYNC CONFIRMED. +10¤ EACH”. Both operators earn 10¤.
  • On failure (one press too early or late): “SYNC FAILED. TRY AGAIN.”
  • Teaches: timing coordination, LFSR observation, cooperative gameplay.

ECHO TEST (5¤ winner, competitive, ~1 min)

  • The nOSh runtime on one deck (randomly selected) plays a distinct tone (500Hz + 1000Hz harmonics, 200ms).
  • The other operator must press EVAL as quickly as possible after hearing the tone.
  • Latency is measured (time from tone playback to EVAL press).
  • Display shows: “LATENCY: 245ms. OPPONENT LATENCY: 310ms. YOU WIN. +5¤”
  • Loser sees: “LATENCY: 310ms. OPPONENT LATENCY: 245ms. YOU LOSE. +0¤”
  • Tests audio response and reflexes. Teaches audio feedback importance.

DECK COMPARE (0¤, diagnostic, ~2 min)

  • Displays a side-by-side table of both decks’ state:
    FIELD | YOUR DECK | SIGNAL'S DECK
    ─────────────────────────────────────────────────
    OPERATOR | GHOSTWIRE | SIGNAL
    REPUTATION | 47 | 23
    CREDITS | 2,840¤ | 1,200¤
    CAPABILITIES (4) | ICE/NEO/BLK | ICE/DEP
    ACTIVE PHASE | 2/3 (BLACK) | NONE
    LAMBDA SLOTS (3) | YES | YES
    LFSR SEED | 0xA7F3 | 0x2C84
  • Not a bounty (0¤ payout). Used for diagnostics, reputation comparison, and friendly rivalry.
  • Teaches: competitive context-awareness.

System management, settings, and diagnostics.

Row 0: ┌─ STATUS • LAMBDA • LINK • SYS ────────────────────────┐
Row 1: └────────────────────────────────────────────────────────┘
Row 2: SYSTEM
Row 3: ────────────────────────────────────────────────────────
Row 4: DISPLAY
Row 5: Contrast: ████████░░ 80% [numpad +/- to adjust]
Row 6: Backlight: ON [toggle with EVAL]
Row 7: ────────────────────────────────────────────────────────
Row 8: AUDIO
Row 9: Volume: ██████░░░░ 60% [numpad +/- to adjust]
Row 10: PSG: YM2149F (3-voice + noise) [EVAL: test tone]
Row 11: Key Click: ON [toggle with EVAL]
Row 12: ────────────────────────────────────────────────────────
Row 13: OPERATOR
Row 14: Handle: GHOSTWIRE [CAR: edit]
Row 15: First Boot: 2026-03-15 [info only]
Row 16: Sessions: 47 [info only]
Row 17: ────────────────────────────────────────────────────────
Row 18: NOSH RUNTIME
Row 19: Version: nOSh v2.4 [info only]
Row 20: Target: PICO2 | Build: 2026-04-01
Row 21: SRAM: 64/64 bytes used | CRC: OK
Row 22: ────────────────────────────────────────────────────────
Row 23: FACTORY RESET: [hold NIL + EVAL + SYS for 3s]
Row 24: [CAR: edit field +/-: adjust EVAL: test/toggle BACK: ↑]

Tab Navigation:

  • CDR: Cycle through sections (DISPLAY → AUDIO → OPERATOR → RUNTIME → DISPLAY).
  • INFO: Show detailed help for the current section.

Numeric Adjustment (Contrast & Volume):

  • Numpad +: Increase (contrast 0–100%, volume 0–100%).
  • Numpad −: Decrease.
  • Display updates in real-time.
  • Changes persist in SRAM after EVAL is pressed (commit).

Toggles (Backlight, Key Click):

  • EVAL: Toggle the current field on/off.
  • Display updates immediately.
  • Persists in SRAM.

Operator Handle Edit:

  • Navigate to OPERATOR section.
  • CAR: Enter handle editor (same interface as first-boot entry).
  • Numpad for digits/symbols, CAR/CDR for letters, EVAL to confirm.
  • New handle is written to SRAM immediately.

Audio Test:

  • Navigate to AUDIO section.
  • EVAL: Plays a test tone (harmonic sweep: 440Hz → 880Hz → 1760Hz, 200ms each).
  • All three YM2149 voices play in sequence, confirming PSG operation.

Factory Reset:

  • Navigate to bottom (row 23).
  • Simultaneously hold: NIL + EVAL + SYS for 3 seconds.
  • nOSh runtime modal warning on the main grid: “THIS WILL ERASE YOUR IDENTITY. ARE YOU CERTAIN?” (CIPHER-LINE fragment in parallel: erase. are you sure.).
  • EVAL: Confirm reset. SRAM is wiped. Deck returns to first-boot state (handle prompt).
  • Any other key: Cancel. Return to SYS tab.

Every key on the Deckline has a runtime-level function on the bare deck. There are no “dead” keys (except when a key is context-irrelevant).

KeyBare Deck Function
CAREnter current tab’s interactive mode / cycle letters in text edit
CDRCycle to next tab / cycle letters in text edit (opposite direction of CAR)
BACKReturn to tab strip from interactive mode / cancel text entry
EVALContext-dependent confirm: refresh, generate passage, accept challenge, toggle setting, test audio
INFOContext-dependent inspect: show details, statistics, diagnostics (double-tap for deep view)
QUOTEBookmark: seed-capture the current CIPHER-LINE fragment, save deck state snapshot (creates quote slot entry)
LAMBDAStart/stop macro recording (2s hold to begin) / play recorded macro from current slot
CONSMerge two lambda slots / combine quote references
NILClear/discard: empty a lambda slot, clear a bookmark, initiate factory reset
ATOMTest emptiness: is this lambda slot used? is this field populated?
EQCompare: two lambda slots side-by-side, two deck states via link
APPLYINACTIVE on bare deck. APPLY deploys tools, which require cartridges. The bare deck has no tools.
LINKPing: initiate or check Link connection / send Link protocol packet
SYSJump directly to SYS tab from anywhere / hold 2s for power menu (sleep, shutdown)
Numpad 0–9, . , ENTData entry in text edit, number input, challenge responses, adjustment
+, −Increment/decrement (volume, contrast, etc.)

Key insight: APPLY is the only key with no bare-deck function. This is intentional. APPLY requires a cartridge because it deploys tools—and an empty deck has no tools to deploy. Every other key has a direct runtime-level meaning. This teaches the operator the interaction grammar and makes the APPLY key meaningfully absent—a gap that cartridges fill.


When a cartridge is physically inserted into the SPI slot:

  1. Hardware detect pin goes high. The nOSh runtime polls this pin every 100ms.
  2. Cipher voice: “MODULE DETECTED. READING HEADER.”
  3. SPI read sequence (1–2 seconds): The nOSh runtime reads the 256-byte cartridge header from flash.
  4. Display transition: Amber flash. Cartridge name, class, and version appear center-screen.
  5. Cipher greeting: Contextual, based on cartridge + deck state. Example (ICE BREAKER, first insertion): “ICE BREAKER LOADED. YOUR FIRST INTRUSION AWAITS.” Example (BLACK LEDGER, mid-career): “WELCOME BACK TO THE LEDGER. PHASE 2 AWAITS.”
  6. Tab expansion: The four nOSh runtime tabs (STATUS, LAMBDA, LINK, SYS) remain at positions 1–4. Cartridge-specific tabs appear at positions 5+. CDR past the last cartridge tab wraps back to STATUS (the nOSh runtime tabs are always accessible).
  7. Auto-land: The nOSh runtime lands on the cartridge’s first tab (usually a mission board or operation summary).

When a cartridge is physically removed:

  1. Hardware detect pin goes low.
  2. If mid-mission: Phase chain state is saved to SRAM (if the cartridge is cooperative). Cipher voice: “MODULE REMOVED. PHASE STATE PRESERVED.” (or “MODULE REMOVED. NO ACTIVE PHASE.” if no mission was running).
  3. Cartridge-specific tabs vanish.
  4. Immediate return to bare deck: STATUS tab appears.
  5. Cipher reflection: “AWAITING MODULE. YOUR PHASE CHAIN ENDURES.” (if a phase was suspended) or “MODULE SLOT EMPTY.” (if cartridge was idle).

This is the hot-swap mechanic: the bare deck is the transition state. An operator swaps from ICE BREAKER to BLACK LEDGER mid-contract by removing one and inserting the other. The phase chain persists. The operator returns to the bare deck for 2–3 seconds, then loads the next cartridge.


An operator who spends 10 minutes on the bare deck before loading their first cartridge has already internalized the complete Deckline grammar:

Grammar ElementLearned on Bare DeckLater Applied in Cartridges
CDR traversalTab cycling (4 nOSh runtime tabs)Mission board navigation, roster traversal
CAR entryInteractive mode (settings, macros)Cartridge-specific operations, tool selection
BACK returnExit interactive modeUndo/retreat in cartridge contexts
EVAL confirmRefresh, generate, acceptExecute mission phase, deploy tool
INFO inspectDetails, statisticsMission briefs, intel reports
QUOTE bookmarkSeed-capture CIPHER-LINE fragmentMark critical intel, flag objectives
LAMBDA recordMacro recording(Remains runtime-level; works in cartridges)
CONS combineMerge macros(Future: combine cartridge tools or merge mission chains)
NIL discardClear slots, factory resetAbandon mission, reset phase
ATOM testCheck slot occupancyTest mission status, verify inventory
EQ compareLambda comparison, deck-state diffCompare two mission objectives, parallel analysis
APPLY deploy(Inactive; no tools)Primary cartridge action: deploy hacking tools, intrusion vectors, audit routines
LINK contactDeck-to-deck ping, challengesMulti-operator missions (future cartridges)
SYS systemSettings, diagnosticsEmergency override, system settings within cartridge context

The bare deck teaches OODA: Observe (display state), Orient (understand meaning), Decide (navigate and select), Act (press keys). An operator cycles through this loop hundreds of times before a cartridge ever loads.


The YM2149 PSG is active and audible at all times:

  • Boot chord: Distinctive harmonic power-up sound (three voices: C, E, G at 440Hz register, 300ms).
  • Key clicks: Subtle 8-bit tone on every key press (voice 1, 1000Hz, 50ms, ADSR envelope).
  • Tab transition: Short melodic tone when CDR cycles (pitch rises as you cycle through tabs).
  • Cipher generation: Soft ambient tone while Cipher renders a fragment on CIPHER-LINE (voice 2, low-frequency drone, 100–200Hz).
  • Passage matched/complete: Resolution chord (three voices, major third interval, 200ms).
  • Error/failure: Descending tone (voice 3, two-step minor descent, 100ms).
  • Link ping: Distinctive bi-frequency ping (voice 1 + voice 2, 440Hz + 554Hz, 150ms).
  • Bounty earned: Satisfying ascending resolution (voices 1+2+3, arpeggio, 400ms).

The bare deck’s audio is quieter and more ambient than cartridge operation. Cartridges may use the PSG for dialogue, alarm tones, or intense music. The bare deck uses it for ambient feedback and confirmation.


  1. Power on → first-boot sequence → enter handle “ROGUE”
  2. Boot into STATUS tab → see all zeros. CIPHER-LINE OLED above the keyboard lights with a first-boot greeting.
  3. CDR to LAMBDA → record a 3-step macro: CDR, CDR, CDR (tab cycling). Play it back. It works.
  4. CDR to LINK → press LINK (ping). No connection. See solo challenges.
  5. Press EVAL on DIAGNOSTIC challenge. Verify all 30 keys. Earn 5¤. New balance: 5¤.
  6. Return to bare deck. STATUS tab shows: CREDITS: 5¤. CIPHER-LINE murmurs a clipped reflection.
  7. CDR to SYS → adjust volume. Exit.
  8. Insert ICE BREAKER cartridge. Cipher voice greets on CIPHER-LINE. New tabs appear on the main grid. Begin first mission.

What the operator learned: Navigate (CDR), enter (CAR), record (LAMBDA), earn (bounties), explore (LINK). They haven’t loaded a cartridge yet, but they understand the device.

  1. Power on → auto-land on STATUS tab. CIPHER-LINE whispers a rep-tier reflection.
  2. See active phase chain: “Phase 2/3: EXTRACTION → AUDIT”
  3. Reputation: 47. Credits: 2,840¤. Three cartridges registered.
  4. A CIPHER-LINE fragment drifts past: “the last cartridge awaits.” They catch it in their peripheral vision and use QUOTE to seed-capture it.
  5. CDR to LAMBDA → review custom macros (one for “boot check”, one for “extraction sequence”).
  6. CDR to LINK → connected to another operator. Start LFSR SYNC challenge. Both earn 10¤.
  7. Return to bare deck. Remove cartridge. Insert BLACK LEDGER. Phase chain resumes. CIPHER-LINE marks the swap.

What the operator experienced: The bare deck is home. It tracks their progress, celebrates their history, and mediates their tool changes.


The bare deck is not a loading screen. It is:

  1. A genuine operational terminal: All four nOSh runtime tabs are useful, playable, and progress the operator’s reputation and credits.
  2. The operator’s identity anchor: The STATUS tab is their deck. Their handle, their reputation, their history.
  3. The fiction layer: The Cipher is the device’s voice. It speaks to them personally on CIPHER-LINE and evolves as they do.
  4. The grammar teacher: Every key except APPLY has a clear, consistent function. New operators learn rapidly.
  5. The hot-swap hub: When cartridges are swapped, the bare deck is the transition state. Phase chain state persists. The operator always returns here between missions.
  6. The economy foundation: nOSh runtime bounties keep the deck alive and generate credits even without a cartridge.
  7. A test of hardware: The DIAGNOSTIC challenge verifies that the device is functioning correctly.

The bare deck is where the KN-86 becomes personal.


VersionDateNotes
1.02026-04-10Playtest specification. Five-tab HUD, runtime bounties, hot-swap mechanics, onboarding grammar.
1.12026-04-24CIPHER-LINE reconciliation: CIPHER tab removed from main grid; HUD is now four tabs (STATUS, LAMBDA, LINK, SYS). CIPHER CALIBRATION and CIPHER RELAY bounties dropped. Cipher voice now exclusively on CIPHER-LINE OLED (see ADR-0015).

These are legacy passage templates showing the Cipher’s voice identity by reputation tier. They predate the CIPHER-LINE reconciliation and read as multi-line passages; on the current device the Cipher engine selects individual clipped fragments from this space and renders them to CIPHER-LINE, one fragment at a time. The templates below are preserved as a reference for tone and vocabulary. See docs/software/runtime/cipher-voice.md for the canonical clipped-fragment production grammar.

Tier 0 (0–9 reputation): Potential & Instruction

EMPTY SLOTS. CLEAN REPUTATION. / EVERYTHING AHEAD OF YOU. / THE BOARD IS QUIET. / INSERT A MODULE TO BEGIN OPERATIONS.

FIRST SESSION. YOU ARE LEARNING. / EACH CARTRIDGE TEACHES SOMETHING NEW. / THE LFSR WILL SPEAK TO YOU LATER.

WELCOME, OPERATOR. / THE SLOT ACCEPTS ONLY VERIFIED MODULES. / KINOSHITA ELECTRONICS CONSORTIUM. SINCE 1997.

Tier 1 (10–34 reputation): Reflection & Caution

YOU RAN EXTRACTION CONTRACTS. YOU UNDERSTAND INTRUSION. / THE GRID TEACHES PATTERNS. / REPUTATION FOLLOWS COMPETENCE.

PHASE CHAIN ACTIVE. MULTI-PHASE OPERATION DETECTED. / YOUR PERSISTENCE IS NOTED. / FINISH WHAT YOU STARTED.

FOURTEEN CONTACTS VIA LINK. YOU ARE NOT ALONE. / THE NETWORK REMEMBERS YOU.

Tier 2 (35+ reputation): Philosophy & Lore

FORTY-SEVEN REPUTATION. THE CONSORTIUM REMEMBERS YOU. / THERE ARE PATTERNS IN THE LFSR I HAVEN’T SHOWN YOU YET.

YOU ARE READY FOR THE LAST CARTRIDGE. / ASK ME ABOUT THE FOUNDING.

THE DEVICE WAS BUILT BY THOSE WHO BELIEVED IN OPERATORS LIKE YOU.


LEFT HAND (Function Keys): RIGHT HAND (Phone-layout Numeric + Operators):
┌─────────────────────┐ ┌──────────────────┐
│ QUOTE CONS NIL LAMBDA │ 1 2 3 ÷ │
│ INFO CAR APPLY SYS │ 4 5 6 × │
│ LINK BACK CDR ATOM │ 7 8 9 − │
│ ╔════════ EVAL ════════╗ EQ │ . 0 ENT + │
└─────────────────────┘ └──────────────────┘

Data grid is phone layout (1-2-3 top, 0 bottom-center) per ADR-0016 §5; see docs/software/runtime/input-dispatch.md §1.

The EVAL key is a 3U-wide confirm bar. All other keys are 1U.


End of specification.