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>
136 lines
5.1 KiB
Markdown
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
|
|
```
|