Skip to content

DEPTHCHARGE Round 1 Evaluation

Design Director Review | KN-86 Deckline Launch Title

Evaluation Date: April 11, 2026

Overall Score: 42 / 50 — PASS (with required revisions)

Depthcharge demonstrates strong foundational design aligned with the KN-86 capability model and the OODA loop framework. The core concept — a listening game where sound IS the game — is compelling and differentiates it from ICE Breaker’s reflex-tempo sport model. However, 5 specific design gaps prevent this from being a production-ready spec, and 2 blocking issues must be resolved before Round 2.

The spec is 89% complete. The gaps are addressable with focused iteration.


CriterionScoreNotes
1. Structural Completeness4/5All 16 sections present; one section (“Hot Swap Scope Mode” context) underdeveloped
2. OODA/Core Loop Depth5/5Excellent. 10-30s cycles, clear sensory channels, decision points well-articulated
3. System Interaction4/54 systems documented; 5 collision types shown; acoustic masking collision underdeveloped
4. Key Mapping Rigor4/530 keys mapped; numpad convention respected (8/2/4/6 = NSWE); one semantic gap in CAR/CDR overload
5. Cell Architecture5/5All cell types defined with fields and handler signatures; implementation-ready structs
6. Sound Design5/5CRITICAL FOR DEPTHCHARGE: PSG channels assigned, audio events listed, sound carries gameplay info throughout
7. Screen Layout Precision4/57 screens provided with wireframes; all fit 80×25; UI system compliance confirmed; 1 missing layout
8. Cross-Module Integration3/5BLOCKING ISSUE: Hot Swap integration underspecified; multi-phase campaigns not detailed; ICE Breaker relay encounter vague
9. Onboarding Clarity5/5Excellent. 5-minute progression through 10 learnable concepts; no tutorial bloat
10. Target Audience Fit5/5Compelling for adult hobbyists (25-55); depth/complexity well-calibrated; listening game appeals to retrocomputing audience

The spec nails the design intent: sound carries spatial information (Voice 1 = depth via frequency), temporal information (Voice 3 rise rate = closing speed), operational information (echo patterns = environment complexity), and emotional information (tension arcs through pitch/tempo). This is the differentiator from ICE Breaker. Every operator can play audio-only. This is not accessibility — it is the primary design intent. Production-ready.

Depthcharge’s 10-30s cycle creates deliberation — the anti-reflex to ICE Breaker’s 0.5-2s reflex tempo. The spec articulates why listening compounds skill (acoustic signature recognition, threat classification by harmonic content, environmental complexity intuition). The 50-minute Specialist dive walkthrough is a masterclass in emergent gameplay narration. Excellent foundation.

3. Cell Architecture with Concrete Handler Signatures

Section titled “3. Cell Architecture with Concrete Handler Signatures”

All 6 cell types (DIVE_CELL, DEPTH_LEVEL_CELL, TREASURE_CELL, ENEMY_CELL, EQUIPMENT_CELL, HAZARD_CELL) have C struct definitions with function pointers (on_car, on_cdr, on_apply, etc.). An engineer can implement these directly from the spec. Zero ambiguity. Implementation-ready.


1. BLOCKING: Cross-Module Integration (Section 6, “Hot Swap”)

Section titled “1. BLOCKING: Cross-Module Integration (Section 6, “Hot Swap”)”

Current state: § 6 says “The operator can press QUOTE and initiate a physical cartridge swap” if ICE BREAKER relay stations are encountered. The narrative is there, but no implementation detail.

Required specifics:

  • Define exactly when a relay station encounter triggers the swap prompt
  • What data flows between Depthcharge phase handler and ICE Breaker phase handler?
  • How does ICE Breaker’s SCOPED CAPABILITY MODE work in the context of an encrypted relay recovered from the deep? (Does the operator get full ICE BREAKER toolkit, or limited tools?)
  • How long does the swap pause the ocean? (Spec says “half-tempo for ~10 seconds game time” — formalize this)
  • Detailed example: “Operator finds encrypted device at depth 5. Cipher voice: ‘ENCRYPTION CIPHER UNKNOWN. NETWORK INTRUSION CAPABILITY REQUIRED.’ Operator presses QUOTE. Firmware pauses dive (ocean advances 5 seconds game time, not 10). Cartridge swap prompt displays. Operator swaps to ICE BREAKER. Phase chain state is serialized to deck state. ICE BREAKER’s phase handler is called with SCOPED=true and encrypted_device_reference. Operator decrypts. On successful decryption, phase chain is updated, firmware returns to Depthcharge. Operator resumes dive with decryption results.”

Impact: Without this, multi-phase campaigns involving Depthcharge cannot be implemented. Campaign Economy spec § “Maritime Intelligence” (3-phase: Depthcharge → ICE Breaker → Black Ledger) depends on this.

Effort: ~200 words. Non-negotiable for Round 2 gate.


2. Mission Template Gap: “ENCRYPTED CACHE” Contract Type

Section titled “2. Mission Template Gap: “ENCRYPTED CACHE” Contract Type”

Current state: § 14 defines 3 mission template types: SONAR SWEEP, SALVAGE, EVASION. ICE Breaker defines 6 archetype contracts. Depthcharge should define at least 4-5 to match breadth.

Missing template: A contract where the treasure is an encrypted device that requires Hot Swap to unlock. This bridges to multi-phase campaigns. Add:

### ENCRYPTED CACHE Contract
Objective: Recover encrypted storage device; Hot Swap permitted to decrypt.
Payout: 700 + (decryption_efficiency × 100) credits. Reputation: +2.
Structure:
threat_level: 2–5
target_object: encrypted drive / relay / data core at depth d (1–4)
encryption_hint: "ICE-class encryption detected. NETWORK INTRUSION capability suggested."
recovery_option_1: Passive extraction (safe, but encrypted data is inaccessible, lower payout)
recovery_option_2: Hot Swap to ICE BREAKER, decrypt, return to Depthcharge (higher risk, higher payout)
time_pressure: Decryption window is 10 minutes (if swapped). After 10 minutes without decryption attempt, encryption auto-locks (payout reduced to base).
Win Condition: Return to surface with decrypted cache or extracted encrypted cache.
Example: Operator recovers encrypted relay station core at depth 3. Cipher voice: "Encryption: unknown cipher. Decryption capability not loaded. Option 1: Extract encrypted (200 credits). Option 2: Hot Swap to ICE BREAKER (risky, up to 500 credits if successful)." Operator chooses Hot Swap, swaps cartridges, decrypts, returns. Payout: 500 + (efficiency) = 650 credits. Reputation: +2.

Impact: Without this, Depthcharge contracts feel isolated from the broader ecosystem. Campaign generation needs at least one contract type that encourages cartridge swaps.

Effort: ~150 words. Strongly recommended for Round 2.


3. Key Mapping Semantic Ambiguity: CAR/CDR Overload

Section titled “3. Key Mapping Semantic Ambiguity: CAR/CDR Overload”

Current state: § 13 maps CAR and CDR as:

  • CAR: Descend (depth +1)
  • CDR: Ascend (depth -1)

But the spec also says (§ 1): “Press CAR to drill into next depth level” and “Press CDR to traverse back.” This frames CAR/CDR as list operations on the depth hierarchy, not as generic depth increment/decrement.

The problem: Other modules use CAR/CDR for list traversal (ICE Breaker: CAR = enter node, CDR = next sibling). Depthcharge uses them for unidirectional depth movement (no “sibling depths”). This breaks the Lisp metaphor.

Required clarification:

In Depthcharge, the depth hierarchy is a linear list: depth 0 → depth 1 → depth 2 → … → depth 10. CAR/CDR should be re-semanticized as:

  • CAR: Descend into next depth level (drill deeper into the list)
  • CDR: Ascend to previous depth level (move to previous element of the list)
  • Within a depth level: Use numpad 8/2/4/6 for horizontal traversal (not list operations, pure movement).

This is correct in the spec, but the key mapping table (§ 13) should explicitly state: “Depth is a linear Lisp list. CAR = drill (depth +1). CDR = rest (depth -1). Numpad = lateral movement within depth level (not Lisp operations).”

Why it matters: Module authors need clarity. If CAR/CDR are overloaded, other modules might incorrectly apply depth-navigation semantics to non-linear lists.

Effort: ~100 words. Essential for SDK consistency.


4. Audio Event Triggering: Missing Formal Specification

Section titled “4. Audio Event Triggering: Missing Formal Specification”

Current state: § 5 lists audio events (descent, ping, treasure detection, threat escalation, etc.) with frequencies and durations, but lacks a formal trigger/timing table.

Example problem: When exactly does Voice 2 (Active Ping Echo) fade out? The spec says “Echo returns with delay… close contact: high-frequency echo, 100ms delay” but doesn’t specify:

  • Does the echo continue to resonate after 100ms, or is it a single impulse?
  • If multiple contacts, how are echoes mixed?
  • When does Voice 2 “silence out” to let Voice 1 and Voice 3 dominate?

Required addition: Formalize a PSG audio state machine:

AUDIO STATE MACHINE (Voice 1, Voice 2, Voice 3 priority scheduling)
State: PASSIVE_SONAR
Voice 1: Ambient depth tone (frequency = depth map)
Voice 2: Silence
Voice 3: Threat proximity tone (frequency = distance to nearest threat)
Transitions: → ACTIVE_PING_OUTGOING on LINK keypress
State: ACTIVE_PING_OUTGOING
Voice 1: Fade to background (−6dB)
Voice 2: 2000Hz ping burst (50ms)
Voice 3: Fade to background (−6dB)
Transitions: → ACTIVE_PING_ECHO after 50ms
State: ACTIVE_PING_ECHO
Voice 1: Background
Voice 2: Echo returns (delays 100-400ms based on distance), 500ms total duration
Voice 3: Background
Transitions: → PASSIVE_SONAR after 500ms
State: THREAT_ESCALATION
Voice 1: Ambient tone (maintained)
Voice 2: Fade to silence
Voice 3: Rise in frequency, accelerating pulse rate
Duration: Until threat is no longer a threat
Transitions: Preempts PASSIVE_SONAR and ACTIVE_PING_* states
(Add similar states for: EQUIPMENT_DEPLOYMENT, TORPEDO_INBOUND, DIVE_BRIEFING, EXTRACTION_SUCCESS, HULL_BREACH)

Impact: Without this, emulator implementation has to reverse-engineer audio behavior from narrative. Clarity reduces implementation time and ensures audio carries consistent information.

Effort: ~300 words (state machine table format). Strongly recommended.


5. Rival Drone AI Progression: Hidden Stat Exposure Path Undefined

Section titled “5. Rival Drone AI Progression: Hidden Stat Exposure Path Undefined”

Current state: § 9 defines “Rival Operator AI Progression” across rep levels (0-9: simple, 10-19: adaptive, etc.). But the transition points are vague.

Missing specification:

  • At what exact rep values do rival behaviors change? (e.g., “Rep 10 exactly, or Rep 10+?”)
  • How does a rival “study the operator’s acoustic signature”? What data does it retain across dives?
  • Does a rival drone remember the operator’s previous tactics if they re-encounter in a future dive?
  • What is the player feedback when rival AI level increases? (Audio cue? Narrative cue? Silent increase?)

Required clarification: Add a Rival Progression Table:

RIVAL OPERATOR AI PROGRESSION TABLE
Rep 0–9: NOVICE
Behavior: Simple patrol patterns (fixed waypoints)
Detection: Reacts to active sonar pings only (5–10s delay)
Memory: No persistent memory across dives
Feedback: No explicit indication to player
Threat difficulty: 1 (easily evaded)
Encounter probability: 30% of Tier 1 contracts
Rep 10–14: JOURNEYMAN
Behavior: Adaptive patrol (adjusts path based on operator location hints)
Detection: Reacts to active sonar AND loud equipment deployment (3–5s delay)
Memory: Remembers last 3 operator maneuver patterns within a single dive
Feedback: Cipher voice: "Rival operator is learning your tactics. Change course."
Threat difficulty: 2
Encounter probability: 50% of Tier 2–3 contracts
Rep 15–19: SPECIALIST
Behavior: Predictive positioning (anticipates operator destination based on sonar history)
Detection: Reacts to active sonar, loud equipment, AND cargo manifest estimation (2–3s delay)
Memory: Builds acoustic profile of operator across multiple dives
Feedback: Cipher voice: "Rival operator has studied your recent operations. Expect aggressive tactics."
Threat difficulty: 3
Encounter probability: 70% of Tier 3–4 contracts
Rep 20–29: EXPERT
Behavior: Psychological tactics (deploys false alarms, baits operator into revealing position)
Detection: Real-time threat response (<2s delay); anticipates evasion maneuvers
Memory: Full tactical profile persists across multiple sessions
Feedback: Audio signature change (rival's sonar ping timbre becomes recognizable and distinct)
Threat difficulty: 4
Encounter probability: 80% of Tier 4–5 contracts
Rep 30+: LEGENDARY
Behavior: Tactical duels (equivalent to player skill level; outcome depends on moment-to-moment decisions)
Detection: Real-time (<0.5s); predictive model of operator behavior
Memory: Evolving opponent model; learns from every encounter
Feedback: Explicit rival pilot name appears in briefing ("Rival: CASSIOPEIA, Threat Level 5")
Threat difficulty: 5 (challenging)
Encounter probability: 100% of Tier 5–6 contracts (endgame rivals)

Impact: Without this, rival encounters feel arbitrary. With it, the progression becomes a mechanic the player feels.

Effort: ~200 words. Recommended for Round 2.


Blocking Issues (Must Resolve Before Round 2)

Section titled “Blocking Issues (Must Resolve Before Round 2)”

BLOCKING ISSUE 1: Cross-Module Integration Underspecified (§ 6, § 14 Missing Template)

Section titled “BLOCKING ISSUE 1: Cross-Module Integration Underspecified (§ 6, § 14 Missing Template)”

Severity: BLOCKING
Why: Campaign Economy spec defines “Maritime Intelligence” (3-phase: Depthcharge → ICE Breaker → Black Ledger) as Archetype 2. This campaign is impossible to implement without detailed Hot Swap semantics and at least one Depthcharge mission template that triggers a swap.

Resolution path:

  1. Expand § 6 with formal Hot Swap data-flow specification (see Improvement #1).
  2. Add “ENCRYPTED CACHE” mission template to § 14 (see Improvement #2).
  3. Define phase chain serialization format for multi-phase campaigns.

Estimated effort: 2-3 hours focused writing. Non-optional for production.


BLOCKING ISSUE 2: Sound Design Implementation Gap (§ 5 Audio State Machine)

Section titled “BLOCKING ISSUE 2: Sound Design Implementation Gap (§ 5 Audio State Machine)”

Severity: BLOCKING (for emulator implementation)
Why: § 5 is narrative and beautiful, but the PSG state machine is implicit, not explicit. The emulator coder has to reverse-engineer audio behavior from 15 pages of prose. This introduces implementation ambiguity and risk of audio inconsistency.

Example: When the operator is diving (descent animation) AND hears a threat proximity tone rising (rival approaching), which voice has priority? Does Voice 1 fade? Does Voice 3 overlay? Spec says both things happen, but not how.

Resolution path:

  1. Formalize a PSG state machine showing voice priority and mixing rules (see Improvement #4).
  2. Define falloff curves (how quickly do past states fade out? Are they crossfaded or abrupt-switched?).
  3. Specify concurrency rules: Can two audio events trigger simultaneously? If so, how are they mixed?

Estimated effort: 3-4 hours (including PSG simulation verification). Strongly blocking for emulator.


Minor Issues (Non-Blocking, Polish Recommendations)

Section titled “Minor Issues (Non-Blocking, Polish Recommendations)”
  1. Screen 3 (Depth Chart) shows N-S axis only. What about E-W cross-sections? Add one for completeness (5-minute addition).

  2. Proficiency Metrics (§ 9) mention “Acoustic Signature (Hidden Stat)” at Rep 15+ visibility. Add a sample stat table showing example values at each rep level (10 minutes).

  3. Linked Play (§ 10) describes asymmetric OPERATOR vs. SURFACE_HUNTER roles. Consider adding a 3rd role variant: RIVAL_DRONE_OPERATOR (both players pilot submersibles, symmetric competition). Optional for Phase 2.

  4. Cell Architecture (§ 12) shows struct definitions, but handler function signatures are incomplete. Add void (*on_numpad)(SystemState *sys, CellBase *cell, uint8_t key) signature to DEPTH_LEVEL_CELL and clarify parameter passing for movement context.


RequirementDepthcharge ComplianceStatus
Row 0 = header (bright, module name + context)✓ Confirmed in all 7 screensPASS
Rows 1-21 = content✓ ConfirmedPASS
Row 22 = action bar (dim, key hints)✓ Confirmed in all screensPASS
Row 23 = status line (inverse, nOSh-runtime-owned)✓ ConfirmedPASS
Progress bars (10-segment blocks)Not shown in current screensMinor gap
Property list dot-leadersNot shown (cargo manifest uses simpler format)Not required
Selection lists with cursorImplicit (equipment selection menu)Acceptable
Split-pane layoutsNot used (design intent: single-focus sonar scope)Acceptable
SDL Extensions used: stdlib_render_header(), stdlib_render_action_bar(), stdlib_set_status_metric(), stdlib_draw_bar()Implied, not explicitAcceptable

Verdict: Depthcharge is UI Design System Compliant. Minimal use of SDL extensions is acceptable (Depthcharge’s focus is audio, not visual widgets).


Input System Architecture (KN-86-Input-System-Architecture.md)

Section titled “Input System Architecture (KN-86-Input-System-Architecture.md)”
KeyDefault SemanticDepthcharge UseCompliance
CARDrill/enterDescend (depth +1)✓ Compliant (Lisp metaphor: drill into list)
CDRTraverse next siblingAscend (depth -1)✓ Compliant (Lisp metaphor: rest of list)
CONSConstruct pairNot used in DepthchargeAcceptable (module-specific)
NILDiscard/cancelAbort dive, surface✓ Compliant
LAMBDARecord macroEmergency evasion maneuver⚠️ Ambiguous (not a macro recording; a tactical action)
INFOInspectActivate sonar scope, Cipher assist✓ Compliant
EVALExecute/commitConfirm action✓ Compliant
QUOTEBookmarkInitiate cartridge swap⚠️ Ambiguous (bookmark vs. deferral)
APPLYDeploy toolDeploy equipment✓ Compliant
BACKNavigate up(implicit in CAR/CDR; not primary navigation)✓ Acceptable (depth is linear, no explicit “back”)
LINKInitiate linkActive sonar ping⚠️ Semantically loose (LINK usually means network connection)
SYSSystem menuHold 2s for emergency blow✓ Compliant
Numpad 8/2/4/6Data entryCardinal movement (N/S/W/E)✓ Compliant (matches Depthcharge’s movement-first design)

Verdict: Depthcharge is mostly compliant. Three keys (LAMBDA, QUOTE, LINK) have semantics that stretch beyond their default Lisp-inspired meanings. This is acceptable for module-specific design, but the semantic gap should be documented in the cartridge grammar reference.


Capability Model Integration (KN-86-Capability-Model-Spec.md)

Section titled “Capability Model Integration (KN-86-Capability-Model-Spec.md)”
AspectDepthcharge ComplianceStatus
Cartridge provides mission templates✓ Implicit in § 14; formalize with MISSION_DEFINE macroPASS
Phase handler dispatch✓ Implicit in § 1 (OODA cycles); needs formal handler signaturesACCEPTABLE
Universal Deck State integration✓ Reputation, cartridge_history used (§ 9 rival progression); credits payout (§ 14)PASS
Cross-module integration (cartridge_history bits)✓ § 1 hints at ICE Breaker relay encounters; needs detail (BLOCKING ISSUE 1)NEEDS WORK
Cipher voice domain vocabularyImplied (§ 1, 8, 9 Cipher lines); needs formal vocabulary tableACCEPTABLE
Multi-phase mission support (Hot Swap)✓ Described narratively; needs formal phase chain format (BLOCKING ISSUE 2)NEEDS WORK

Verdict: Depthcharge integrates with the capability model. Two areas (cross-module detail and formal Cipher vocabulary) need iteration for Round 2.


Campaign Economy Integration (KN-86-Campaign-Economy-Spec.md)

Section titled “Campaign Economy Integration (KN-86-Campaign-Economy-Spec.md)”
Campaign ArchetypeDepthcharge RoleSpec Completeness
CORPORATE ESPIONAGE (2-phase)Not primary (Black Ledger focus)N/A
MARITIME INTELLIGENCE (3-phase)PRIMARY (Archetype 2)⚠️ BLOCKING: Depthcharge specs not detailed enough to support this campaign
SIGNAL HUNT (3-phase)Potential (Depthcharge could provide sonar data for Shellfire phase 1)⚠️ Underdeveloped
SUPPLY CHAIN SABOTAGE (3-phase)Not directly involvedN/A
STRATEGIC TAKEOVER (3-phase)Not directly involvedN/A
FULL OPERATION (4-phase)Potential role (Phase 1 or 2)⚠️ Underdeveloped
COUNTER-INTELLIGENCE RUN (2-phase)Not applicableN/A
VAULT DEEP DIG (2-phase)Potential (Depthcharge op after Vault research phase)⚠️ Underdeveloped

Verdict: Maritime Intelligence campaign (the headline 3-phase campaign involving Depthcharge) cannot be implemented without resolving BLOCKING ISSUE 1 (cross-module integration detail).


PASS — with required revisions

Depthcharge is a strong, differentiated design that delivers on its promise: a listening game where sound IS the game, and OODA cycles run at contemplation tempo (10-30s), not reflex tempo (0.5-2s).

Path to Round 2:

  1. ✓ Resolve BLOCKING ISSUE 1: Hot Swap integration detail + ENCRYPTED CACHE template (2-3 hours)
  2. ✓ Resolve BLOCKING ISSUE 2: Audio state machine formalization (3-4 hours)
  3. ✓ Implement Improvements #1-5 (targeted additions, ~30 minutes each)
  4. ✓ Document Input System semantic overloads (LAMBDA, QUOTE, LINK) in cartridge grammar guide

Gate criteria for Round 2:

  • Multi-phase campaigns involving Depthcharge must be plannable from the spec
  • PSG implementation must have zero ambiguity in state transitions and voice mixing
  • All 30 keys must have unambiguous per-cell semantics

Estimated revision effort: 15-20 hours focused work. Achievable in one sprint cycle.

Production readiness (post-Round 2): Estimated 85%. Core gameplay loop is solid. Ecosystem integration needs iteration.


Appendix: Quick Reference for Reviewer Notes

Section titled “Appendix: Quick Reference for Reviewer Notes”
  • Sound design as mechanic (Voice 1 = depth, Voice 3 = threat, Voice 2 = sonar feedback)
  • OODA loop clarity and pacing philosophy
  • Cell architecture implementation-ready
  • Onboarding progression (5 minutes, 10 concepts)
  • Session emotional arcs (Apprentice vs. Specialist dives)
  • Linked Play asymmetric design (Operator vs. Surface Hunter)
  • Hot Swap phase chain data flow (BLOCKING)
  • Audio state machine (BLOCKING)
  • Rival AI progression table (clarity)
  • Mission template variety (one template bridges to campaigns)
  • Cipher voice vocabulary formal spec
  • Audio-first design is differentiator but requires expert implementation (no margin for error in PSG state machine)
  • Operator AI progression is emergent learning curve (if hidden stats are revealed too early or inconsistently, immersion breaks)
  • Rival drones as “learning opponents” could frustrate novices if difficulty curve isn’t smooth

Despite two blocking issues, the spec demonstrates architectural coherence with the broader KN-86 ecosystem, clear design intent (listening game, not visual puzzle), implementation-ready cell structures, and strong differentiation from ICE Breaker. The blocking issues are resolvable in <24 hours of focused writing, not fundamental design flaws.