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>
3.6 KiB
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 affectsmake cibehavior)
Notes
#499 — Performance baseline tooling
- Existing:
Makefilehasmake pre-pr,make test-server,make test-clienttargets. The test infrastructure (Sprint 9) is complete. Noperf-baselinetarget exists yet. - Deliver:
make perf-baselinetarget. Runs the server benchmark suite, captures tick timing, memory usage, and entity count scaling metrics, outputs results totests/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-prexists and is the manual gate. Gitea Actions self-hosted runner is available. - Deliver: A Gitea Actions workflow YAML (
/.gitea/workflows/ci.yamlor.gitea/workflows/) implementing three tiers:- Commit tier:
<2min— lint only (make lint-server,make lint-client) - PR merge gate:
<15min— wrapsmake pre-pr - Nightly:
<30min— full build + all tests + content validation
- Commit tier:
- 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
maketargets — 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