Content-focused sprint: FRIEND packs (Kael Davan, Sera Venn), NPC authoring style guide, voice patterns, PC-as-NPC content, UI microcopy, and FactId pre-commit validation. Briefings for copy (6 tickets), client (2), CI (1), plus joint integration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
9.7 KiB
Sprint 5: Live — Joint Integration
Goal: Content at scale — FRIEND packs, PC-as-NPC authoring, NPC style guide
Teams: Copy, Client, CI Agents: All implementation agents
Sprint Overview
Sprint 5 is content-focused with light infrastructure support. The copy team carries the heaviest load — authoring production-level FRIEND NPC content that exercises every content pipeline at full depth. Client and CI teams provide integration and quality assurance.
Team Distribution
| Team | Ticket Count | Load |
|---|---|---|
| Copy | 6 tickets | Heavy (2 FRIEND packs ~75-100 lines each + style guide + voice patterns) |
| Client | 2 tickets | Light (1 carry-over + 1 joint integration) |
| CI | 1 ticket | Light (pre-commit validation hook) |
| Server | 0 tickets | No work (Sprint 4 delivered content loading infrastructure) |
Pre-Sprint Requirements
None. Sprint 5 builds on Sprint 4 deliverables:
- Content directory structure (#385, done)
- Content schema definitions (#386, done)
- YAML content loader Phase 2 (#408, done)
- Interaction system with multi-verb support (#404, done)
- Pause system (#406, done)
- Line previewer CLI (#407, done)
All infrastructure needed for content authoring is in place.
Dependency Graph
Critical path (copy team):
#310 (voice patterns)
├─→ #297 (Kael FRIEND pack)
├─→ #298 (Sera FRIEND pack)
└─→ #379 (style guide, parallel but informed by #310)
#297 + #298 (both FRIEND packs complete)
└─→ #401 (PC-as-NPC authoring)
Parallel tracks:
#405 (interaction prompt, client) → standalone carry-over
#409 (UI microcopy) → copy authors strings, client integrates
#393 (FactId check, CI) → standalone, supports content quality
Cross-Team Integration Points
Copy ↔ Client: UI Microcopy (#409)
Workflow:
- Early sprint: Stig (client) and Mellanie (copy) agree on format (YAML vs GDScript constants)
- Copy team authors ~50 UI strings
- Copy delivers strings to client team (PR or shared file)
- Client integrates strings into UI systems
- Client tests in-game, provides length/fit feedback if needed
- Copy revises if strings don't fit UI constraints
- Final integration tested and merged
Coordination channel: Direct agent-to-agent (Stig ↔ Mellanie)
Copy ↔ CI: FactId Validation (#393)
Workflow:
- Justine (CI) implements pre-commit FactId check
- Copy team reviews canonical FactId list in
content/global/knowledge/ - CI delivers working hook early in sprint
- Copy team uses hook during FRIEND pack authoring (catches typos before commit)
- Copy provides feedback on false positives / naming edge cases
Coordination channel: Direct agent-to-agent (Justine ↔ Mellanie/Paula)
Internal Copy: Voice Patterns Blocker
Blocker: #297 and #298 (FRIEND packs) are blocked by #310 (voice patterns)
Resolution: Mellanie must deliver voice patterns document first. Paula and Gestalt can start profile work (10-axis NPCs, relationship arcs, contradiction scenarios) in parallel, but dialogue authoring waits for voice spec.
Parallel work during voice patterns authoring:
- Paula: 10-axis profiles for Kael and Sera (personality, relationships, wants, secrets, routines)
- Gestalt: relationship phase mapping (comfort→crack→observation→confrontation for Kael, trust→data→recognition→question→contamination for Sera)
- Mellanie: voice patterns for both PCs
Once #310 complete, all three agents author FRIEND dialogue using voice spec.
Sprint Completion Proof
At the end of Sprint 5, the following must be observable:
Content Deliverables
-
Voice patterns document exists at
content/campaigns/main/_meta/voice-patterns.mdor in wiki- Contains speech-level detail for smuggler and detective
- Covers sentence length, contractions, monologue style, stress markers, vocabulary
-
NPC Authoring Style Guide exists at
content/_meta/npc-authoring-style-guide.md- Consolidates tier templates, authoring rules, regional culture, Gestalt constraints
- Usable by future content authors
-
Kael Davan FRIEND pack complete
- Profile YAML at
content/campaigns/main/systems/krenn/sova/sova-transit/npcs/kael-davan.yaml - Dialogue files at
content/campaigns/main/systems/krenn/sova/sova-transit/dialogue/kael-davan-*.yaml - Monologue at
content/campaigns/main/systems/krenn/sova/sova-transit/monologue/smuggler/kael-*.yaml - Total line count: 75-100 hand-authored lines
- Profile YAML at
-
Sera Venn FRIEND pack complete
- Profile YAML at
content/campaigns/main/systems/krenn/sova/sova-transit/npcs/sera-venn.yaml - Dialogue files at
content/campaigns/main/systems/krenn/sova/sova-transit/dialogue/sera-venn-*.yaml - Monologue at
content/campaigns/main/systems/krenn/sova/sova-transit/monologue/detective/sera-*.yaml - Total line count: 75-100 hand-authored lines
- Profile YAML at
-
PC-as-NPC content complete
- Smuggler routine at
content/campaigns/main/systems/krenn/sova/sova-transit/npcs/pc-smuggler.yaml - Detective routine at
content/campaigns/main/systems/krenn/sova/sova-transit/npcs/pc-detective.yaml - Cross-character observation monologue in respective pools
- Total items: ~25 authored pieces
- Smuggler routine at
-
UI microcopy integrated
- ~50 strings authored and applied to client UI
- File at
client/scripts/constants/ui_strings.gdorcontent/campaigns/main/_meta/ui-strings.yaml
Infrastructure Deliverables
-
Interaction prompt system complete (#405)
- Context-sensitive E prompt working in-game
- Reads
InteractionOptionsfrom server snapshot - Tested with multiple interaction types
-
FactId pre-commit check operational (#393)
- Hook installed at
.config/pre-commit/check-fact-ids.shor similar - Tested with valid and invalid FactIds
- Catches typos before commit
- Hook installed at
Validation Tests
Content validation:
# All YAML validates against schema
make validate-content
# Line previewer can load FRIEND pack content
cargo run --bin line-previewer -- content/campaigns/main/systems/krenn/sova/sova-transit/dialogue/kael-davan-trust.yaml
# FactId check passes on all content
.config/pre-commit/check-fact-ids.sh
Client integration:
# Godot client launches without errors
cd client && godot --headless --quit
# UI strings loaded and visible in-game (manual playtest)
Test Plan Alignment (D-030)
Sprint 5 is content-focused, so test emphasis is on content validation rather than simulation systems:
Phase 1 (infrastructure): Already complete from Sprint 4
- Content loader tests (cargo test content::loader)
- YAML schema validation (make validate-content)
Phase 2 (integration): New for Sprint 5
- Line previewer regression tests (verify FRIEND content loads without errors)
- FactId cross-reference validation (pre-commit hook)
- UI string integration tests (gdUnit4 if applicable, or manual validation)
Phase 3 (content quality): Manual validation
- Voice consistency across FRIEND pack lines (human review by Mellanie)
- Dual-lens coherence (Paula reviews cross-character references)
- Tag taxonomy compliance (Gestalt validates tag usage)
Risk Mitigation
Risk: FRIEND packs are massive authoring tasks (~75-100 lines each, all hand-authored). If voice patterns take too long, FRIEND packs might not complete.
Mitigation:
- #310 (voice patterns) is top priority, starts day 1
- Paula begins profile work in parallel (doesn't require voice patterns)
- If FRIEND packs fall behind, #401 (PC-as-NPC) can slip to Sprint 6 without blocking v0.1 wow moments
Risk: UI microcopy might not fit client UI constraints (text too long, tone mismatch).
Mitigation:
- Early coordination between Stig and Mellanie on format and length limits
- Iterative feedback loop (copy delivers, client tests, copy revises if needed)
- Client provides length constraints up front (max characters per label)
Risk: FactId check produces false positives on valid template patterns.
Mitigation:
- Justine coordinates with copy team on edge cases early in sprint
- Initial implementation can be lenient (warnings instead of hard failures)
- Tighten validation after copy team validates against real content
Definition of Done
Sprint 5 is complete when:
- All 8 tickets marked
donein database - All content files committed to
copybranch and validated - All infrastructure code committed to
clientandcibranches - PRs created for all three teams
- Sprint completion proof checklist verified (all 8 observable deliverables present)
- Team Leader reviews FRIEND pack content quality (critical for D-027 criterion #3 and D-039 wow moment #3)
PR Coordination
Three team PRs will be created:
-
Copy team PR (largest):
- Branch:
copy - Scope: voice patterns, style guide, FRIEND packs, PC-as-NPC content, UI strings (YAML if applicable)
- Review focus: content quality, voice consistency, dual-lens coherence
- Branch:
-
Client team PR:
- Branch:
client - Scope: interaction prompt completion, UI microcopy integration
- Review focus: UI functionality, string integration
- Branch:
-
CI team PR:
- Branch:
ci - Scope: FactId pre-commit validation hook
- Review focus: validation correctness, performance
- Branch:
All PRs target main branch. Copy team PR is largest and blocks v0.1 wow moments, so gets priority review.
Notes for Team Leader
Sprint 5 is the critical content sprint. FRIEND packs carry:
- D-027 success criterion #3: "player names an NPC they felt conflicted about"
- D-039 wow moment #3: THE FRIEND's contradiction
- D-034 pattern validation: production-level NPC with full pipeline exercise
Quality bar is high. These NPCs must feel real, conflicted, and memorable. Copy team has full sprint to deliver. If FRIEND packs aren't hitting the emotional bar, extend sprint or adjust scope — this content cannot be rushed.