Files
settled-reach/docs/sprints/sprint-4/copy.md
T
jpmschweitzer 23d9ff0a58 Merge remote-tracking branch 'origin/main' into planning
# Conflicts:
#	CHANGELOG.md
#	content/_meta/README.md
#	content/_meta/npc-authoring-style-guide.md
#	wiki/_templates/cultural-group.md
#	wiki/_templates/institution.md
#	wiki/_templates/star-system.md
#	wiki/characters/devra.md
#	wiki/characters/drin.md
#	wiki/characters/harek.md
#	wiki/characters/lera-sessik.md
#	wiki/characters/maret-korr.md
#	wiki/characters/naia-tamm.md
#	wiki/characters/nils-davan.md
#	wiki/characters/pell.md
#	wiki/characters/renn.md
#	wiki/characters/resha.md
#	wiki/characters/sabel.md
#	wiki/characters/sera-venn.md
#	wiki/characters/torek-lintar.md
#	wiki/characters/voss.md
#	wiki/star-systems/krenn/index.md
2026-03-14 00:24:53 +01:00

8.4 KiB

title, description, type, status, sprint, team
title description type status sprint team
Sprint 4 — Copy Briefing FactId progression text, PC-as-NPC briefs, wiki-to-YAML NPC conversion, monologue pool sprint archived 4 copy

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