Skip to content

NeonGrid — 45-Minute First-Session Onboarding Arc

Companion document to neon-grid.md (Module Spec v2.0)

Version 1.0 | April 2026 | Status: Engineering-Ready

Scope. This document specifies the first 45 minutes an operator spends with NeonGrid as their first cartridge — the on-ramp from a virgin Universal Deck State through their first credit payout. It extends, but does not contradict, the existing neon-grid.md §8 (“ONBOARDING: THE FIRST FIVE MINUTES”). §8 covers the embedded tutorial inside the cartridge (Screens 1–9, ~5 minutes); this doc covers the full boot → handle → tutorial → first contract → first wow → handoff arc that gets the operator to a state where another cartridge purchase is the obvious next move.

CIPHER-LINE compliance. All CIPHER fragments below render on the auxiliary OLED (see CLAUDE.md Canonical Hardware Specification and docs/software/runtime/cipher-voice.md). Fragments follow the §1 voice heuristic: clipped, articleless, breath-length. No CIPHER text appears on the main 80×25 grid. Hardware values referenced — display, grid, font, color, processor, audio, key map — are governed by CLAUDE.md and not restated here.


This arc is simultaneously three things, and the design has to satisfy all three without compromise:

  1. The new-operator on-ramp. A real operator — somebody who just unboxed a KN-86, has never touched the Lisp grammar, and has only their bare-deck experience to draw on — must reach a self-sustaining play state in 45 minutes.
  2. The press demo. A reviewer with 30 minutes booked must, in that window, hit a “wow” beat that translates into a sentence in the review.
  3. The marketing capture. Specific timecodes are usable as B-roll / dispatch screen captures — the FLOW STATE breakthrough at minute 38, the first credit payout at minute 32, the handle entry on the bare deck at minute 2.

The 45-minute budget is firm. If the operator hits minute 46 still in the tutorial grid, the arc has failed. Over-scoping the tutorial is the named failure mode.


  • Universal Deck State is virginoperator_handle empty, credit_balance = 0, reputation = 0, cartridge_history = 0x00000000, phase_chain cleared, cipher_seed initialized from hardware entropy at first boot.
  • The operator has read, at most, the printed quick-start card in the Pelican case. They know “press power, follow CIPHER-LINE prompts.” Nothing else.
  • The bare-deck HUD per bare-deck-terminal.md is fully functional and has already taught the four-tab grammar (CDR cycles tabs, CAR enters, BACK returns) during the bare-deck moment that precedes cart insertion.
  • The NeonGrid cartridge (neongrid.lsp, capability bit 0x02) is the cart in hand. The operator inserts it because the printed card says so.
  • CIPHER-LINE voice runs throughout. NeonGrid’s CIPHER vocabulary and biases are declared in neon-grid.md §“CIPHER-LINE Contributions”; this arc adds no new CIPHER vocabulary, only sequencing notes for which fragments emit when.

BeatMinutesTitleTeachesCIPHER Mode BiasMission Template
00:00 – 0:03Bare-deck on-rampHandle entry; cart-insert ritual:bare-deck:cart-swap-lull(none — runtime)
10:03 – 0:12First contract (in-cart tutorial)CAR / CDR / EVAL / INFO / BACK; numpad 2-4-6-8:mission-brief:active-hacktutorial-grid
20:12 – 0:24Deepening — sentry mechanicOBSERVE → LEARN → EXECUTE → VERIFY; INFO sonar:active-hacktutorial-sentry
30:24 – 0:32Sanctioned failure & recoveryBACK as undo; respawn at last checkpoint; reading the threat audio:high-tense:phase-transitiontutorial-sentry (continued)
40:32 – 0:42Mastery — first FLOW STATE flickerTempo; INFO → SONAR/HEATMAP; clean run:active-hack (flow-biased)traverse-w1-001
50:42 – 0:45HandoffCredit payout; reputation seed; “next contract” prompt:debrief:cart-swap-lull(mission board return)

Total budget: 45 minutes hard. Each beat has a “if not by minute X, the arc has stalled” gate — see §10 Anti-Frustration.


4. BEAT 0 — BARE-DECK ON-RAMP (0:00 – 0:03)

Section titled “4. BEAT 0 — BARE-DECK ON-RAMP (0:00 – 0:03)”

The operator powers on the device. The bare-deck “first boot ever” sequence runs (see bare-deck-terminal.md §BOOT SEQUENCE):

  1. Kinoshita header assembles, ~2 seconds.
  2. CIPHER-LINE first-boot greeting appears on Row 2 of the auxiliary OLED:
    • empty deck. new operator.
    • handle. (Row 4 contextual prompt: “ENTER HANDLE — CAR/CDR cycle, EVAL confirm”)
  3. Handle entry — operator uses CAR/CDR to cycle letters, EVAL to commit. The numpad sits unused; this is intentional. The bare deck teaches CAR/CDR first; the numpad belongs to the cartridge.
  4. STATUS tab lands. Universal Deck State now reads operator_handle = "<HANDLE>", all other fields zero. The capability roster shows six empty slots. Row 23: CARTRIDGE SLOT: EMPTY — AWAITING MODULE.
  5. CIPHER-LINE on STATUS: drift-biased fragment from :bare-deck defaults — e.g. that handle. clean record. (a :drift over the empty cartridge_history bitfield).
  6. Cart insertion. Operator slides the NeonGrid cartridge into the slot. The runtime detects mass-storage mount, reads .kn86 header, validates capability bit 0x02, sets cartridge_history |= 0x02. Row 23 of the bare deck flickers to CARTRIDGE: NEONGRID v2.0 — LOADING.
  7. CIPHER-LINE on cart-load: mode shifts to :cart-swap-lull (drift-dominant per cipher-voice.md §6 Beat Parameter table). One fragment fires before NeonGrid takes over the beat:
    • first one in. (:drift, no event needed; the cart-history bitfield change is the implicit trigger)

By minute 3, the operator has:

  • A handle in SRAM.
  • cartridge_history bit 1 set.
  • Their hands have used CAR, CDR, EVAL — three of the eight grammar keys — at least once each.
  • Heard CIPHER-LINE speak twice.

If handle entry takes longer than 90 seconds, the bare deck fires a single CIPHER fragment as a nudge — take your time. or any handle. — and on the next 60-second silence, prompts the action bar (Row 24) to flash a hint. The operator does not get blocked here. There is no “wrong handle.” Anything 1–12 chars is accepted.


5. BEAT 1 — FIRST CONTRACT (0:03 – 0:12)

Section titled “5. BEAT 1 — FIRST CONTRACT (0:03 – 0:12)”

NeonGrid’s in-cart tutorial begins. This is neon-grid.md §8 Screens 1–6 verbatim — that text is canonical and not duplicated here. This beat contextualizes §8 within the 45-minute budget.

tutorial-grid — a hand-authored, deterministic, single-checkpoint 6×8 maze with no sentries, no hazards, no time limit. This is not drawn from the procedural generator. It is shipped in the cart as static data so the experience is identical for every operator. This is the only NeonGrid grid that is not procedurally generated.

;; tutorial-grid.lsp — static layout, 6 rows × 8 cols
;; @ = spawn (1,1) . = checkpoint (5,6) █ = wall space = passable
(defcart-static tutorial-grid
'("████████"
"█@ █"
"█ ███ █"
"█ █ █"
"█ █ ███"
"█ █ . █"
"█ █"
"████████"))

Per neon-grid.md §8, in order:

  1. CIPHER-LINE coaches the first three actions (this is a specific override of the default mode selector for this beat; see §11). Fragment sequence:
    • On screen 4 (operator instructed to press CAR): try CAR. (:annotate, :routine)
    • After first CAR: good. CAR drilled in. (:annotate, :result-success)
    • On CDR prompt: now CDR.
    • After first CDR: traversed.
    • On EVAL prompt: EVAL. commit.
    • After first numpad-4 movement (screen 6): west. one cell.
  2. After the first checkpoint is collected (~minute 11), CIPHER-LINE steps back — mode selector returns to default :active-hack distribution. From this point onward, CIPHER does not coach. It observes.
  3. INFO is introduced but not required in Beat 1. The cart-bottom Row 24 action bar shows [INFO: details]; the curious operator who presses it sees the SONAR/HEATMAP overlay (no sentries to read, but the layout shows what the overlay is). This plants Beat 2.

The operator has used: CAR, CDR, EVAL, BACK, numpad 2-4-6-8, INFO. They have not yet seen NIL, ATOM, EQ, APPLY, CONS, QUOTE, LAMBDA. Those are deferred — most to post-arc, some never (NeonGrid uses the eight core keys plus INFO; ATOM, EQ, NIL appear in advanced contracts only — see neon-grid.md §13 Key Mapping Table).

By minute 12: first checkpoint collected. proficiency_gained ≥ 2 (one checkpoint = +2 per neon-grid.md §2). Cart’s internal tutorial_screen_index reaches Screen 6 completion.

If the operator has not collected the checkpoint by minute 10, CIPHER fires one nudge: west. then south. (:annotate, route hint, :routine) — the literal solution. We do not let them stall the tutorial maze. This is allowed because (a) it’s hand-authored, deterministic, and we know the solution, and (b) the failure mode for a stalled tutorial is the operator putting the device down.


6. BEAT 2 — DEEPENING: GRID NAVIGATION CORE (0:12 – 0:24)

Section titled “6. BEAT 2 — DEEPENING: GRID NAVIGATION CORE (0:12 – 0:24)”

The cart advances to neon-grid.md §8 Screens 7–9 — sentry introduction. Continuing the same in-cart tutorial flow.

tutorial-sentry — a hand-authored, deterministic, two-checkpoint 8×8 maze with one sentry on a fixed 4-cell horizontal patrol (e.g. (5,2) → (5,5) → (5,2)). The sentry’s patrol is visible from the spawn cell. The operator can watch it for 8 game-turns before they move. There are no hazards.

(defcart-static tutorial-sentry
'("██████████"
"█@ . █" ;; checkpoint 1 at (1,5)
"█ ████ █"
"█ █"
"█ ████ █"
"█S █" ;; sentry patrols (5,1)→(5,4)
"█ ████ █"
"█ . █" ;; checkpoint 2 at (7,5)
"██████████"))

The sentry follows the state machine in neon-grid.md §3 (CALM → CAUTIOUS → ALERT → ENGAGED) but is in CALM state on entry with detection range = 4 cells (default). The path geometry guarantees the operator can reach both checkpoints without entering the detection radius — if they read the patrol.

  1. OBSERVE-LEARN-EXECUTE-VERIFY loop, lived for the first time. The grid is small enough that one full cycle is feasible, slow enough that a beginner’s 5–15 second decision is not penalized.
  2. INFO surfaces the SONAR/HEATMAP view. Row 24 action bar: [INFO: sonar]. Pressing INFO reveals the patrol prediction overlay. This is the moment the cart goes from “small maze game” to “spatial reasoning instrument.” First-press of INFO during this beat is the memorable beat for press demos.
  3. Audio teaches distance. YM2149 Voice 1 plays the threat ambient drone (neon-grid.md §5). On entry the operator hears the 200Hz baseline; as they approach the sentry, frequency rises. This is the first time the operator’s ears do navigation work.
  4. CIPHER reflects, doesn’t coach. Mode selector at default :active-hack distribution (0.60 / 0.20 / 0.05 / 0.00 / 0.15). Fragments emit on movement and contact events:
    • On first INFO press: sonar. (:annotate, :routine)
    • On entering sentry detection range (CAUTIOUS): bearing. closer. (:observe, :tense)
    • On exiting detection range: clear. (:annotate, :result-success)
    • On checkpoint 1 collected: silent — :silent mode selected to honor the success without crowding it.
    • On checkpoint 2 collected: both. (:annotate, :significant) — the affect tag promotes this fragment to memory-store stickiness for later :reflect recall.

By minute 24: both checkpoints collected. INFO pressed at least twice. proficiency_gained ≥ 6 (2 checkpoints + ~2 prediction-accuracy ticks). cipher.memory_store contains at least one :significant-tagged event.


7. BEAT 3 — SANCTIONED FAILURE & RECOVERY (0:24 – 0:32)

Section titled “7. BEAT 3 — SANCTIONED FAILURE & RECOVERY (0:24 – 0:32)”

This is the most carefully designed beat. It is the moment the arc could lose the operator. It is also the moment the arc earns its emotional weight.

The cart spawns the operator into Wave 1, Level 1 of the procedural generator — the first non-tutorial grid. 16×10 cells, 1 sentry, 3 checkpoints, no hazards. The mission template is traverse-w1-001. However, the seed is rigged: this specific contract uses a fixed seed (0xN3G1NEG1) that produces a layout where the fastest route to checkpoint 2 takes the operator through the sentry’s CAUTIOUS detection range at full alert.

Why a rigged seed? Pure procedural generation is too random for a 45-minute on-ramp — some seeds give a 30-second clear, some give a 6-minute fight. Beat 3 needs a consistent failure-then-recovery shape, so the first procedural seed is deterministic. From contract #2 onward (post-arc), seeds are organic.

The operator, fresh from the sentry-clear of Beat 2, attempts the obvious route. They get caught. The sentry transitions CAUTIOUS → ALERT → ENGAGED. They are forced into the cell. Mission aborts. Per neon-grid.md §3, they respawn at the start (no checkpoint collected yet). Reputation penalty is suppressed for this contract only — traverse-w1-001 carries a :tutorial-grace flag that zeros the failure cost. The operator does not lose reputation. They lose ~30 seconds.

  1. Failure is information, not punishment. The sentry’s detection cascade played out audibly (Voice 1 climbed to 600Hz then 1600Hz). The operator now has felt the threat curve in their body.
  2. INFO before EXECUTE. The implicit lesson: pressing INFO before committing to a route would have shown the sentry’s patrol prediction. This lesson is taught by letting them fail, then succeed when they use INFO on the retry.
  3. BACK as undo, in spirit. Mid-attempt, before the lethal step, the operator can press BACK to retreat one cell. BACK does not undo a sentry’s move, but it undoes the operator’s last commitment. This is the first time BACK matters in NeonGrid — Beats 1–2 didn’t require it.
  4. CIPHER does the emotional work. Mode bias shifts to :high-tense during the ENGAGED chase (0.45 / 0.25 / 0.00 / 0.00 / 0.30 — drift suppressed, silence rises). Fragments:
    • On ALERT entry: seen. (:observe, :tense)
    • On ENGAGED entry: silent — :silent mode forced. The voice goes quiet at the worst moment. This is the design.
    • On caught (mission abort): cost us. (:annotate, :result-failure :significant)
    • On respawn: again. with sonar. (:annotate, :routine) — this is the only place in the arc where CIPHER edges back into coaching, and it does it in three words.
  5. The retry succeeds. Operator presses INFO, reads the patrol, takes the longer-but-clear route. Collects checkpoint 1, then 2, then 3. Mission complete. CIPHER on contract clear: clean. that one. (:reflect — pulls the just-failed :significant event from memory store, contrasts present with past — this is the canonical reflect use case from cipher-voice.md §5.3).

By minute 32: traverse-w1-001 complete on retry (with or without the failure — some operators read the SONAR overlay first time; that’s fine, they skip the failure beat and arrive early). proficiency_gained ≥ 12. First contract completion event written to deck state. First credit payout — Wave 1 base payout is 50¤ (per neon-grid.md §11 wave-select screen). credit_balance: 0 → 50.

  • Failure cost is zero for traverse-w1-001. Reputation unchanged. No proficiency penalty.
  • One failure max. If the operator fails the same contract twice, the cart auto-fires CIPHER hint: INFO. before move. (:annotate, the hint they need). Third failure triggers Row 24 action-bar text-prompt with the exact key sequence. This is graceful degradation — we never let them grind.
  • The credit payout is the trophy. Minute 32 is when the operator’s brain stamps “this is real.” The 50¤ on STATUS tab is the receipt of an earned thing.

8. BEAT 4 — MASTERY: FIRST FLOW-STATE FLICKER (0:32 – 0:42)

Section titled “8. BEAT 4 — MASTERY: FIRST FLOW-STATE FLICKER (0:32 – 0:42)”

Cart returns the operator to NeonGrid’s contract board (cart-internal, not the bare-deck mission board). Two contracts are visible:

  1. traverse-w1-002 — another Wave 1 traverse, different seed, organic this time. 50¤ base payout. Recommended.
  2. flow-w1-001 — Wave 1 FLOW STATE. 5-minute continuous navigation, no errors. 500¤ base payout. Locked behind a soft confirmation: CIPHER fragment not yet. this one's later. if selected. (FLOW STATE is unlocked but not pushed at minute 32.)

The operator picks traverse-w1-002. They run it. They use INFO before each commitment. They clear it cleanly — no failures, no backtracks. They are now playing, not learning.

  1. The OBSERVE-LEARN-EXECUTE-VERIFY loop is now muscle. The operator’s decision time per cell drops from 5–15 seconds to 1–3 seconds.
  2. First flow-state flicker. Per neon-grid.md §4, full FLOW STATE requires proficiency_gained ≥ 20, no corrections, 800–2500ms move interval, variance < 600ms. The operator may not hit all four conditions, but they hit most. The cart fires a flow-state-flicker event — a brief visual cue (Row 0 status: FLOW: detected) and a CIPHER fragment: tempo. holding. (:annotate, :significant). This is the wow beat for press. It is felt as a small breakthrough.
  3. Audio shifts. When the flicker fires, Voice 1 drops to soft hum, Voice 2 picks up the 90 BPM heartbeat per neon-grid.md §4. The operator’s ears confirm what their hands felt.
  4. CIPHER reflects across contracts. On contract clear, mode bias toward :reflect. Sample fragment, drawing from the :significant-tagged failure-recovery memory of Beat 3:
    • last time. cost us. (:reflect, :significant) — the past beat is now usable narrative material.

traverse-w1-002:

  • Wave 1 standard generator (16×10 grid, 1 sentry, 3 checkpoints, no hazards).
  • Organic seed (deck cipher_seed LFSR + contract index).
  • 5-minute time limit (per neon-grid.md §14 TRAVERSE template, Wave 1).
  • Base payout 100¤ (per neon-grid.md §11 wave-select — Wave 1 standard mission rate is +1 rep, 50¤ base; second contract pays slightly higher due to cleared-novice multiplier in §14 payout formula).

By minute 42: second contract complete. credit_balance ≥ 150¤. reputation ≥ 2. proficiency_gained ≥ 18. At least one flow-state-flicker event fired. The operator has now experienced the full NeonGrid loop end-to-end without external instruction.


9. BEAT 5 — POST-ARC HANDOFF (0:42 – 0:45)

Section titled “9. BEAT 5 — POST-ARC HANDOFF (0:42 – 0:45)”

The cart returns the operator to its contract board. CIPHER mode shifts to :debrief (0.20 / 0.35 / 0.30 / 0.05 / 0.10 — annotate + reflect dominate). One fragment fires:

  • the board notices. (:annotate, :significant) — diegetic acknowledgment that reputation is now non-zero.

The operator presses BACK to exit the cart’s contract board → bare deck STATUS tab returns. The handoff moment is here. The bare deck now shows:

OPERATOR: <HANDLE>
REPUTATION: █░░░░░░░░░ 2 CREDITS: 150 ¤
─────────────────────────────────────────
REGISTERED CAPABILITIES:
[■] NEONGRID — Grid Traversal (Module 0x02)
[ ] ──────── — (slot empty)
...

CIPHER fragment on bare-deck land: more out there. (:drift, :bare-deck beat) — diegetic invitation to acquire more carts.

The mission board (per bare-deck-terminal.md LINK tab and orchestration.md mission board) shows three runtime bounties — small bare-deck-only contracts the operator can run with NeonGrid still inserted, at low payout. This is intentional. We do not block the operator from continuing to play; we surface that the next expansion is a new cartridge.

The arc ends with a non-terminal closure. The operator has:

  • Earned credits.
  • Earned reputation.
  • Watched their capability roster populate one slot.
  • Heard CIPHER-LINE speak about the bigger world.
  • Been shown that bare-deck bounties exist while not being forced into them.

Engagement does not end. The operator can:

  • Run more NeonGrid contracts (Wave 1 organic seeds, then Wave 2 unlocks at proficiency 20+).
  • Run a bare-deck bounty (LINK tab).
  • Power off and come back tomorrow (the arc is preserved in deck state; nothing is lost).

By minute 45: operator is on the bare deck STATUS tab. Deck state shows real values. The cartridge is still inserted. The operator’s hands are off the keys. Whatever they do next is unforced.


By the end of the arc, the operator can demonstrably:

  1. Recall the four core grammar keys without prompt — CAR, CDR, EVAL, BACK — and the numpad cardinal directions (2-4-6-8). Verifiable: deck-state proficiency_gained ≥ 18 requires successful sequenced use.
  2. Press INFO before commitment when a sentry is on screen. Verifiable: contract #2 clear without ALERT-state entry.
  3. Read CIPHER-LINE peripherally without staring at it. Verifiable: operator’s eye-tracking during a clean contract — main grid receives ≥80% of fixation time. (For internal playtest measurement only; not a runtime metric.)
  4. Identify their handle and credit balance on the bare deck in one glance. Verifiable: STATUS tab is the landing screen.
  5. Articulate, in one sentence, what NeonGrid is. Internal playtest acceptance: “It’s a maze where you read the patrols.” (Or any equivalent phrasing.)

Quantitative deck-state targets at minute 45:

  • operator_handle: set
  • credit_balance: 100–250¤ (band for fast vs. slow first-arc operators)
  • reputation: 2–4
  • cartridge_history: bit 1 set (NeonGrid registered)
  • proficiency_gained (NeonGrid-internal counter): 18–30

11. CIPHER-LINE VOICE ARC ACROSS THE FIVE BEATS

Section titled “11. CIPHER-LINE VOICE ARC ACROSS THE FIVE BEATS”

NeonGrid’s cipher-grammar block in the cart already declares the module’s vocabulary (per neon-grid.md “CIPHER-LINE Contributions”). This arc adds sequencing constraints — which mode dominates which beat — implemented as cipher-mode-biases in the cart’s per-contract block, not as global cart biases (so the bias only applies during the onboarding contracts):

;; cart-internal — applied only when the active contract is one of:
;; tutorial-grid, tutorial-sentry, traverse-w1-001
(cipher-mode-biases-onboarding
(:mission-brief (:annotate +0.10 :observe +0.05)) ;; Beat 1 — coaching tone
(:active-hack (:observe +0.05)) ;; Beat 2 — observation-heavy
(:high-tense (:silent +0.10 :annotate -0.05)) ;; Beat 3 — tense, sparse
(:phase-transition (:reflect +0.10)) ;; Beat 3 retry — connect past to present
(:debrief (:annotate +0.05 :reflect +0.05))) ;; Beat 5 — closure

Per cipher-voice.md §6, biases are clamped at ±0.20 per mode per beat. These deltas are within the cap.

Coaching override (Beat 1 only): Six explicit fragments are emitted via (cipher-emit ...) calls with :override-mode-selector :annotate during the first three coached actions. This is the only explicit override in the arc. From minute 11 onward, the mode selector runs unmodified.

Style-control deltas during onboarding contracts:

(cipher-style-deltas-onboarding
(:mission-brief (:terseness -32 :certainty +16)) ;; slightly less telegraphic for Beat 1
(:high-tense (:certainty -32)) ;; Beat 3 — deck loses confidence
(:debrief (:terseness -16))) ;; Beat 5 — softer closure

All deltas within the ±64 cap (cipher-voice.md §8 Cartridge Style Overrides).


12. DIFFICULTY CURVE — REVEALED VS. HIDDEN

Section titled “12. DIFFICULTY CURVE — REVEALED VS. HIDDEN”
MechanicRevealed during arc?First exposure
CAR, CDR, EVAL, BACKYesBeat 1
Numpad 2-4-6-8YesBeat 1
INFO (action-bar / SONAR)YesBeat 1 (planted), Beat 2 (used)
CheckpointsYesBeat 1
Sentry CALM / CAUTIOUS / ALERT / ENGAGEDPartially — operator sees CALM, CAUTIOUS, ALERT, ENGAGED in Beat 3; named in cart manual (out of scope) but not labeled on screenBeat 2 (CALM observed), Beat 3 (full chain)
Audio threat curve (Voice 1 frequency)Yes — felt, not labeledBeat 2
Proficiency counter (proficiency_gained)No — invisible per neon-grid.md §4Never (hidden metric)
Flow-state flickerYes — Row 0 status flashBeat 4
Full FLOW STATE mission templateNo — visible on board, not enteredPost-arc
WAVE 2 / WAVE 3 / WAVE 4No — locked, mentioned on board onlyPost-arc (proficiency-gated)
NIL, ATOM, EQ, APPLY, CONS, QUOTE, LAMBDANoNever in NeonGrid (advanced contracts) or other carts
LINK tab (deck-to-deck multiplayer)No — visible on bare deck, not engagedPost-arc
Audio-only mastery modeNo — proficiency 80+ gatePost-arc (rare)
Versus / spectator modesNoPost-arc

The revealed surface area at minute 45 is intentionally small: the 8 grammar/numpad keys, INFO, the sentry threat curve (audibly felt), and the credit/reputation feedback loop. Everything else stays hidden. This is the point — the arc is a doorway, not a tour.


The arc has four built-in escape hatches for the operator who stalls:

  1. Beat 0 — Handle entry. No wrong handle. CIPHER nudges after 90 seconds. Anything 1–12 chars is accepted. The operator cannot fail handle entry.
  2. Beat 1 — Tutorial maze. Hand-authored, deterministic, single-checkpoint. CIPHER fires the literal route hint at minute 10 if the checkpoint is uncollected. We do not let the tutorial maze stall the arc.
  3. Beat 3 — First procedural contract. traverse-w1-001 is a rigged-seed Wave 1 contract with :tutorial-grace enabled — failure costs zero reputation and zero proficiency. Two failures triggers an INFO hint; three failures triggers an action-bar text prompt with the key sequence. Graceful degradation; never grind.
  4. Beat 4 — Second contract. Organic seed but Wave 1 (the easiest tier). FLOW STATE is offered but soft-gated by CIPHER. The operator who cannot achieve flow-state-flicker still completes the contract and earns credits.

Only Beat 3, and only with zero stake. Failure at Beat 3 is the design — it teaches that INFO before EXECUTE is the move. Failure cost is zero. The recovery is the lesson.

Beats 0, 1, 2, 4, 5. These are scaffolded with deterministic content, hand-authored grids, and CIPHER hints calibrated to fire before the operator gives up. If playtest shows >5% drop-off in any of these beats, the beat itself needs redesign — not the operator.


14. MISSION TEMPLATE / CONTRACT ID INVENTORY

Section titled “14. MISSION TEMPLATE / CONTRACT ID INVENTORY”
Contract IDTemplateGeneratorSeedTime limitBase payoutRep gainFailure costNotes
tutorial-grid(cart-internal tutorial)hand-authored 6×8staticnone00No mission-board entry; in-cart flow only.
tutorial-sentry(cart-internal tutorial)hand-authored 8×8staticnone00In-cart flow only.
traverse-w1-001TRAVERSE Wave 1proceduralfixed 0xN3G15 min50¤+10 (:tutorial-grace)First procedural contract; rigged seed for predictable difficulty curve.
traverse-w1-002TRAVERSE Wave 1proceduralLFSR-organic5 min100¤+1 (+1 if no errors)-1 repSecond contract; standard rules.
flow-w1-001FLOW STATE Wave 1proceduralLFSR-organic5 min500¤+2 (+1 flow bonus)mission restartVisible on Beat 4 board, soft-gated by CIPHER, not expected to be entered during arc.

traverse-w1-001’s :tutorial-grace flag is a new cart-side declaration — added to the cart’s mission template DSL, not a runtime change. Spec note: it suppresses the standard reputation penalty on failure. Other carts may not adopt this flag without a separate design review (it conflicts with the capability-model’s universal economy).


For the 30-minute press demo cut (a marketing-driven subset of the 45-minute arc):

  • Skip Beat 0. Start with handle pre-entered. Cart pre-inserted.
  • Compress Beat 1 to ~5 minutes. Use neon-grid.md §8 Screens 1–6 verbatim.
  • Run Beat 2 in full — this is the INFO/SONAR moment.
  • Run Beat 3 in full — this is the failure-recovery beat that produces the best B-roll.
  • End on Beat 4’s flow-state-flicker — first contract clean, flicker fires, fade.

Press demo target: minute 22 of demo time = flow-state-flicker. This is the screenshot.


16. ACCEPTANCE CRITERIA (FROM THE NOTION TASK)

Section titled “16. ACCEPTANCE CRITERIA (FROM THE NOTION TASK)”

Per GWP-314:

  • Beat-by-beat session script: §§4–9 above.
  • Tutorial grid hand-authored, deterministic, teaches CAR/CDR/EVAL/INFO/BACK in order: §5 Beat 1 (CAR/CDR/EVAL/BACK in Beat 1; INFO planted Beat 1, used Beat 2).
  • Onboarding bounties teach numpad nav, key holds, INFO inspection, BACK as undo, contract acceptance flow: §§5–7. (Note: key-hold dispatch per input-dispatch.md is not exercised in this arc — held-key semantics are deferred to post-arc cartridges. This is a documented scope limit, not an oversight.)
  • CIPHER-LINE coaches first 3 actions then steps back: §5 Beat 1, §11.
  • First contract achievable by 90% of testers without external help: Anti-frustration design §13. (Acceptance metric to be validated in playtest, not authored here.)
  • Session ends with handle prompt + reputation seed + suggested next cartridge: §9 Beat 5. (Handle is prompted at Beat 0 — Notion criterion likely meant “session ends with operator on STATUS showing populated handle / rep / capability” which §9 delivers.)
  • Spec doc location: this file, docs/software/cartridges/modules/neon-grid-onboarding-arc.md.
  • All grid cells, checkpoints, sentries, and contract templates enumerated with seed values: §§5, 6, 7, 14.

Out of scope for this document, but flagged for the next planning cycle:

  1. Post-arc engagement plan — what happens at minute 46 → minute 240 (first session) → first week → month one. Likely a separate gameplay-design task.
  2. Multi-cart handoff arc — the operator’s second cartridge experience (Black Ledger or ICE Breaker, depending on what they buy). Specifically: how does the bare-deck capability roster’s growing population act as a progression carrot? Coordinate with GWP-313 (Corporate Espionage 2-phase campaign).
  3. Playtest acceptance instrument — a structured checklist for measuring “90% complete first contract without external help.” Likely lives in docs/marketing/product-evaluation.md Sprint 4 follow-up.
  4. :tutorial-grace flag spec — mission-template DSL addition referenced in §14. Needs a one-page spec or an inline addition to campaign-economy.md.