Files
settled-reach/docs/sprints/sprint-5/client.md
T
jpmschweitzerandClaude Opus 4.6 bccdcfcdcb docs(docs): add frontmatter to all sprint briefings
Standardized YAML frontmatter on all 115 sprint briefing files across
sprints 1-26 with title, description, type, status, sprint number, and
team fields.

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

136 lines
5.1 KiB
Markdown

---
title: "Sprint 5 — Client Briefing"
description: "Interaction prompt carry-over, UI microcopy joint work"
type: sprint
status: archived
sprint: 5
team: "client"
---
# Sprint 5: Live — Client Tasks
**Goal:** Content at scale — FRIEND packs, PC-as-NPC authoring, NPC style guide
**Branch:** `client`
**Agents:** Stig (UI lead), Tyre (integration), Hoshe (testing)
## Carry-over from Sprint 4
| # | Title | Status | Notes |
|---|-------|--------|-------|
| #405 | Interaction prompt — client extensible prompt system | in_progress | Stig actively working, carries into Sprint 5 |
## New Tickets
| # | Title | Blocked by |
|---|-------|------------|
| #409 | UI microcopy | — (joint with copy team) |
Use `db/connectors/ticket show <id>` for full details.
## Key Decisions
- `decisions/architecture.md` — D-020 (Godot client + Rust server via IPC)
- `decisions/scope.md` — D-027 (vertical slice), D-039 (wow moments)
- `decisions/content.md` — D-028 (dialogue architecture), D-035 (tag taxonomy)
## Critical Path
```
#405 (interaction prompt, carry-over) → complete independently
#409 (UI microcopy) → starts when copy delivers strings
```
Client team has light load this sprint — Sprint 4 delivered most client infrastructure. Sprint 5 focus is content authoring (copy team) with client providing integration points.
## Notes
### #405: Interaction prompt — client extensible prompt system (CARRY-OVER)
**What exists:**
- Server-side interaction system with proximity detection (#404, done in Sprint 4)
- Multi-verb `InteractionOptions` server state
- Client rendering infrastructure at `client/scripts/rendering/`
- Protocol types in `client/scripts/protocol/`
**What to deliver:**
- Client-side interaction prompt UI system
- v0.1: single context-sensitive E prompt
- Architecture must support v0.2 multi-verb menu (design for extensibility now, build minimal version)
- Prompt reads `InteractionOptions` from server snapshot
- Visual design: minimalist, diegetic feel (neural insert aesthetic)
- Position: near interactable entity or HUD corner (test both, choose best)
**File location:** New script at `client/scripts/ui/interaction_prompt.gd` or extend existing HUD system
**Integration:** Reads from `ObserverSnapshot` message field `interaction_options`. When non-empty, show prompt. On player input (E key), send `Interact` command to server.
**Gotcha:** This is Sprint 4 in-progress work. Stig should finish architecture in early Sprint 5, then support #409 integration.
---
### #409: UI microcopy (JOINT TICKET)
**What exists:**
- Client UI elements from Sprint 3
- Interaction prompt system (#405, finalizing)
- Constants at `client/scripts/constants.gd`
- Rendering scripts at `client/scripts/rendering/`
**What to deliver:**
- Integration of ~50 UI strings from copy team
- Determine string format (YAML file vs GDScript constants)
- Apply strings to: interaction prompts, knowledge panel labels, relationship state descriptors, HUD labels, tutorial text
- Coordinate with copy team on file format and location
**Workflow:**
1. Early sprint: coordinate with copy team (Mellanie) on format and location
2. Copy team authors strings
3. Client team integrates into UI systems
4. Test in-game, provide feedback to copy if strings don't fit UI constraints
**File location (proposed):** `client/scripts/constants/ui_strings.gd` or load from `content/campaigns/main/_meta/ui-strings.yaml` via content loader
**Integration points:**
- Interaction prompt labels (E to interact, E to talk, E to examine, etc.)
- Knowledge panel headers ("Known Contacts", "Persons of Interest", etc.)
- Relationship state text ("Trusted colleague", "Flagged by case file", etc.)
- HUD labels (time display, location name, pause indicator)
- Tutorial/hint text (if any)
**Gotcha:** UI strings must be brief — HUD space is limited. If copy delivers long strings, client team provides length constraints and copy revises.
---
## Sprint Success Criteria
By end of Sprint 5, client team delivers:
1. **Interaction prompt system complete** (#405) — context-sensitive E prompt working in-game
2. **UI microcopy integrated** (#409) — all 50 strings applied to UI elements, tested in-game
Light sprint for client team. Primary work is finishing #405 carry-over and coordinating #409 integration with copy.
## Testing Notes
Both tickets need in-game validation:
- **#405:** Test interaction prompts with multiple verb types (talk, examine, interact with object). Verify prompt appears/disappears based on proximity. Test visual clarity in fog/non-fog areas.
- **#409:** Test all UI strings in context. Check for text overflow, truncation, readability. Verify tone matches Sova setting (quotidian-with-undertow, working-class pragmatic).
Use existing client test infrastructure (gdUnit4 if applicable, or manual playtesting).
## PR Workflow
When ready to submit, create a PR with `tea` CLI:
```bash
tea pr create \
--repo jpmschweitzer/settled-reach \
--login schweitz \
--title "feat(ui): interaction prompt + UI microcopy" \
--description "Sprint 5 client delivery - see docs/sprints/sprint-5/client.md" \
--base main \
--head client
```