Files
settled-reach/docs/sprints/sprint-4/ci.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

2.9 KiB

title, description, type, status, sprint, team
title description type status sprint team
Sprint 4 — CI Briefing Pre-commit FactId typo check sprint archived 4 ci

Sprint 4: Feel — CI Tasks

Goal: Content conversion and authoring begins — wiki to YAML, content packs, monologue pool

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

New Tickets

# Title Priority Blocked by
#393 Pre-commit FactId typo check medium

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

Key Decisions

  • decisions/content.md — D-035 (tag taxonomy, FactId references in dialogue/monologue)
  • decisions/architecture.md — D-030 (testability architecture)

Notes

Pre-commit FactId typo check (#393):

Grep-based pre-commit hook validating FactId references in YAML content files against canonical content/global/knowledge/facts.yaml. Cheap v0.1 bridge until full cross-reference validation lands in v0.2 content tooling (C9).

  • What exists:
    • Content schema validation: make validate-content (Sprint 3, #392) — checks YAML structure
    • Canonical facts file: location TBD (either in content/global/knowledge/ or wiki/knowledge/facts.md — coordinate with copy team on migration plan)
    • Pre-commit hook infrastructure: check .git/hooks/ or .husky/ directory (if not present, this ticket creates it)
  • What to deliver: Pre-commit hook script (bash/python) that:
    1. Extracts all FactId references from YAML files in content/ (searches for prerequisite: maps, fact_id: fields, or similar per schema)
    2. Reads canonical FactId list from source of truth file
    3. Fails commit if any referenced FactId is not in canonical list
    4. Prints clear error: "Unknown FactId 'foo_bar' referenced in content/campaigns/.../detective/arrival.yaml line 47"
  • Scope: Structural validation only. Does NOT validate knowledge state progression logic (e.g., "can this FactId actually reach KnowsDetails?"). That's v0.2 semantic validation.
  • Integration: Runs automatically on git commit. Should be fast (<100ms) — this is a hot-path check that authors encounter frequently. Consider caching canonical FactId list.
  • Files: .git/hooks/pre-commit or .husky/pre-commit (create if missing), validation script in tooling/validate-factids.sh or similar

This is a quality-of-life improvement for content authors. Prevents typos from reaching the repo and getting caught only when the game tries to load content.

Dependency Chain

#393 (FactId typo check) → standalone (quality-of-life for content authors)

No blockers. No blocking other tickets. Can be implemented any time during Sprint 4.

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): description" --description "body" --base main --head ci