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

5.1 KiB

title, description, type, status, sprint, team
title description type status sprint team
Sprint 5 — Client Briefing Interaction prompt carry-over, UI microcopy joint work sprint archived 5 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:

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