Files
settled-reach/docs/sprints/sprint-10/ci.md
T
jpmschweitzerandClaude Opus 4.6 b4a3784218 docs(sprints): add Sprint 10 Prove briefings
Server (7), client (7), CI (3), audio (1) — 18 tickets total.
Gauntlet expansion, audio wiring, client UX polish, CI pipeline.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 12:12:45 +01:00

3.6 KiB

Sprint 10: Prove — CI Tasks

Goal: Expand the Gauntlet test suite with new rooms and cross-room scenarios, wire the audio architecture end-to-end, and complete client UX polish from Sprint 9 carry-overs — proving the full system holds together.

Branch: ci Agents: Justine (build/deploy), Hoshe (QA review)


New Tickets

# Title Blocked by
#499 Performance baseline tooling (make perf-baseline) #487 (done)
#510 CI pipeline (Gitea Actions YAML, 3-tier)
#515 Bidirectional relationship consistency warning (content validation check 9) #464 (done)

Use db/connectors/ticket show <id> for full details.


Key Decisions

  • decisions/architecture.md — D-030 (testing architecture phases), D-026 (100ms tick budget)
  • decisions/scope.md — D-038 (audio in v0.1 — audio asset presence/absence affects make ci behavior)

Notes

#499 — Performance baseline tooling

  • Existing: Makefile has make pre-pr, make test-server, make test-client targets. The test infrastructure (Sprint 9) is complete. No perf-baseline target exists yet.
  • Deliver: make perf-baseline target. Runs the server benchmark suite, captures tick timing, memory usage, and entity count scaling metrics, outputs results to tests/perf/. The baseline file should be committed and tracked in git so future runs can detect regressions.
  • Integration: Server #500 (content scaling test) feeds into this — coordinate timing so #499 can include the content scaling numbers in the baseline output. If #500 isn't merged, the perf baseline can run with existing content and be updated when #500 lands.

#510 — CI pipeline (Gitea Actions YAML, 3-tier)

  • Existing: make pre-pr exists and is the manual gate. Gitea Actions self-hosted runner is available.
  • Deliver: A Gitea Actions workflow YAML (/.gitea/workflows/ci.yaml or .gitea/workflows/) implementing three tiers:
    • Commit tier: <2min — lint only (make lint-server, make lint-client)
    • PR merge gate: <15min — wraps make pre-pr
    • Nightly: <30min — full build + all tests + content validation
  • Deferred condition: This ticket is backlog-tagged "deferred until lead greenlights." Confirm with Team Leader before starting. If greenlit, coordinate with Tyre on self-hosted runner configuration.
  • Integration: Wraps existing make targets — should require zero changes to those targets.

#515 — Bidirectional relationship consistency warning

  • Existing: Content validation runs via tooling/validate-content. Phase 1-2 checks are complete (#464 done). Check 9 is advisory.
  • Deliver: Advisory warning (non-blocking, not an error) when NPC A has a relationship to NPC B but no reciprocal entry exists in NPC B's relationships. Output format: WARN: NPC 'kael' has relationship to 'sera' but 'sera' has no reciprocal entry. Effort: 0.25d.
  • Non-obvious: One-sided relationships are sometimes intentional (faction member knows of faction leader, not vice versa). The warning is advisory, never a hard failure.

Dependency Chain

#499 (perf baseline) — standalone (server #487 done); benefits from server #500 merging first
#510 (CI pipeline) — standalone; greenlight from lead required before start
#515 (bidirectional warning) — standalone (#464 done)

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(ci): sprint 10 prove — ci" --description "body" --base main --head ci