Files
settled-reach/docs/sprints/sprint-4/copy.md
T
jpmschweitzerandClaude Opus 4.6 e8263e209e refactor(data): rename Krenn to Van Maanen's Star
System S-057 assigned to real star GJ 35 (Van Maanen's Star, DG white
dwarf at 13.9 ly). Renamed across all content, server code, docs,
decisions, wiki lore, and config files. 224 files updated.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 00:23:26 +01:00

8.2 KiB

Sprint 4: Feel — Copy Tasks

Goal: Content conversion and authoring begins — wiki to YAML, content packs, monologue pool

Branch: copy Agents: Mellanie (author), Paula (narrative), Gestalt (systems)

Carry-over from Sprint 3

# Title Status Notes
#405 Interaction prompt — client extensible prompt system in_progress Client team ticket. Stig has this; copy team dependency only.

New Tickets

# Title Priority Blocked by
#373 Add smuggler-perspective FactId progression text high —
#383 NPC-format briefs for both PCs — Concept A v0.1 high —
#398 Wiki → YAML content conversion (Sova NPCs) high —
#399 Monologue content pool — minimum viable (~200 lines) high —
#301 Wiki taxonomy and structure — full future-ready schema medium —
#319 Van Maanen's Star wiki entry — first star system medium #301
#378 Create environmental text examples file medium #319
#395 News ticker headline pool medium —

Use db/connectors/ticket show <id> for full details.

Key Decisions

  • decisions/content.md — D-032 (separate monologue pools per character), D-034 (THE FRIEND pattern), D-035 (converged tag taxonomy), D-036 (Sova Transit District setting), D-037 (contraband specification)
  • decisions/architecture.md — D-028 (dialogue architecture — tagged line pools)
  • Workshop outputs: docs/workshops/content-gap-analysis_v0_1/SUMMARY.md, TICKETS.md

Open Questions to Resolve Early

None. All blockers for Sprint 4 copy work resolved in Sprint 3. #261 (Dual Lens Authoring Guide), #382 (Smuggler voice card), #381 (PC-as-NPC spec), and #385-#386 (content infrastructure) are all done.

Notes

FactId progression text (#373):

The smuggler and detective experience different knowledge progressions for many facts. Where the detective starts with KnowsNothing and works toward KnowsDetails, the smuggler may start with KnowsSomething or KnowsDetails.

  • What exists: wiki/knowledge/facts.md contains canonical FactId definitions with detective-centric progression text. Entity attribute definitions are at content/global/knowledge/entity-attributes.yaml (task #388 will populate this).
  • What to deliver: Add smuggler-perspective text for all facts where the smuggler's knowledge path differs. Format: add smuggler_perspective field to fact entries. ~15-25 facts need dual-lens treatment based on workshop analysis.
  • Integration: These feed into monologue line prerequisite gates (D-035 monologue tags include prerequisite map).

PC-as-NPC briefs (#383):

When you play the smuggler, the detective exists as an NPC in the world (and vice versa). This ticket creates NPC-format behavior profiles for both characters in their "other mode."

  • What exists: #381 (PC-as-NPC unified spec, done) defines the structural requirements. Character voice cards exist for both PCs.
  • What to deliver: 5-7 routine entries each, reverse dual-lens observation notes (what the other character sees when observing you), basic behavior scripts. These are NPC profiles but don't need full 10-axis depth — PCs are special-case NPCs.
  • Blocks: #401 (PC-as-NPC content authoring — the full line pool) depends on these briefs being written first.

Wiki → YAML conversion (#398):

The 17 Sova NPCs currently exist as wiki markdown profiles. This ticket converts them to engine-readable YAML in content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/npcs/.

  • What exists:
    • Content directory structure: content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/ (created in Sprint 3)
    • YAML schema: content/_schema/npc.schema.yaml (Sprint 3)
    • Wiki profiles: wiki/npcs/*.md (17 NPCs with 10-axis breakdowns, relationship webs, routine sketches)
    • Validation tooling: make validate-content (Sprint 3, #392)
  • What to deliver: One YAML file per NPC following the schema. Includes routine YAML layer (Paula Gap 3 from workshop), triangle fork decision points (Gap 4), location references, relationship metadata.
  • Integration: These NPCs populate templates (#390) and appear in triangles (#391). Blocks #408 (YAML content loader Phase 2 — the server can't load real NPCs until they exist in YAML form).
  • Note: This is mechanical conversion work enriched with the structured layers from the workshop. Not authoring new NPCs — translating existing profiles to the canonical format.

Monologue pool (#399):

Minimum viable monologue content: ~100 lines per character (smuggler + detective), ~200 total.

  • What exists:
    • Directory structure: content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/monologue/detective/ and .../smuggler/ (Sprint 3)
    • Schema: content/_schema/monologue.schema.yaml (Sprint 3, includes all D-035 tags)
    • Authoring guide: #261 (Dual Lens Authoring Guide, done in Sprint 3)
    • Voice cards: smuggler voice card (#382, done)
    • Location catalog: Sova Transit District has 3 social sites (The Terminal, The Last Shift, maintenance corridors)
  • What to deliver: YAML files with categorized lines per location + character. Categories from workshop: arrival observations, NPC routine commentary, environmental flavor, contradiction hints, idle reflections, tutorial/orientation. Each line tagged with D-035 taxonomy: character, trigger, prerequisite (if gated), dual-lens notes.
  • Integration: Server's monologue system (exists, tested in Sprint 2-3) selects lines from these pools based on game state. This is the first real content load.
  • Authoring priority: Follows Mellanie authoring order from workshop — arrival + environmental flavor first (establishes sense of place), then NPC commentary (exercises observation triggers), then knowledge-gated lines (tests prerequisite system).

Environmental text examples (#378):

Create wiki/authoring/environmental-text-examples.md with 4 text types: bar menu, safety notice, news ticker cycle, corridor graffiti. Van Maanen's Star-voiced (working-class pragmatic, freight-logistics culture) with cultural notes + monologue pairings (smuggler + detective perspectives).

  • Blocked by: #319 (Van Maanen's Star wiki entry, now in Sprint 4). Complete #301 → #319 first.
  • Purpose: Reference examples for future content authors. Not consumed by game engine — authoring documentation.

News ticker headlines (#395):

~20 dual-lens headlines for the Meridian news feed at The Last Shift bar. Mix: freight/commodity data, Assembly politics, local infrastructure, sports, Commission advisories.

  • What exists: The Last Shift location is defined. News ticker as environmental element is sketched in location notes.
  • What to deliver: YAML file at content/campaigns/main/systems/van-maanens-star/stations/sova/districts/transit/locations/the-last-shift-ticker.yaml with headline pool. Each headline works as dual-lens monologue trigger (detective sees political context, smuggler sees market/operational intel).
  • Integration: v0.1 may render this as static background text. v0.2 ticker system will cycle headlines. Content is authored dual-lens from day one so the system upgrade is data-driven, not content rewrite.

Dependency Chain

#373 (FactId smuggler text) → standalone (feeds #399 prerequisite content)
#383 (PC-as-NPC briefs) → #401 (PC-as-NPC authoring, Sprint 5)
#398 (Wiki → YAML NPCs) → #408 (server content loader Phase 2)
#399 (Monologue pool) → standalone (first real content load)
#395 (News ticker) → standalone
#301 (Wiki taxonomy) → standalone
#319 (Van Maanen's Star entry) → #301
#378 (Environmental examples) → #319

Critical path: #398 is the blocking ticket for server team's #408. Everything else is parallel.

Parallel work: #373, #383, #399, #395 can all proceed independently.

PR Workflow

When ready to submit, create a PR with tea CLI. All flags are required to avoid TTY prompts (see CLAUDE.md "Gitea access" section):

tea pr create --repo jpmschweitzer/settled-reach --login schweitz --title "feat(content): description" --description "body" --base main --head copy