Quickstart / Validation — Doctrine, Glossary & Architecture Consolidation
How to verify the consolidated artefacts (maps to NFR-001…004 and the Success Criteria).
Gate checks (run from repo root, on feat/doctrine-glossary-consolidation-01KTNWFC)
# Terminology canon (C-003) — must pass after any prose/glossary edit
pytest tests/architectural/test_no_legacy_terminology.py
# Glossary validity (NFR-003) — all touched seeds
spec-kitty glossary validate glossary/**/*.yaml .kittify/glossaries/*.yaml
# Doctrine health + DRG freshness (NFR-001) — after IC-04/IC-08
spec-kitty doctor doctrine --json # healthy, no skipped profiles
# DRG regeneration is deterministic (IC-08): regenerate twice → identical graph.yaml
# Code quality (NFR-002) — changed paths only
ruff check src/charter src/glossary src/doctrine
mypy src/charter src/glossary src/doctrine
# Architecture (NFR-004) — new ADR follows template; C4 levels render
ls architecture/diagrams/{01_context,02_containers,03_components}
Acceptance walkthroughs (Success Criteria)
- SC-1 / SC-6: apply the new procedure/styleguide to #391 — split, reparent children, close superseded — using only the authored doctrine (IC-09). Record the run in
work/. - SC-2: re-run the epic↔architecture correlation (
work/EPIC_ARCHITECTURE_CORRELATION.md) — zero gaps (Ops ADR landed, IC-05). - SC-3: an
org-charter.yamlwithextends:resolves additively + validates (IC-07). - SC-4: single DRG regeneration command → freshness gate passes deterministically (IC-08).
- SC-5: glossary content refreshed + validates; runtime-scope promotion explicitly deferred (IC-06).
- SC-7 (C-005): grep confirms a single source of truth per surface — no second glossary location, no parallel charter resolver, no duplicated architecture narrative.
Reference-integrity check (bulk-edit IC-01/IC-02)
After the moves, verify no dangling references to old paths:
grep -rIn -e 'architecture/2.x/adr' -e 'architecture/glossary' -e '\.kittify/glossaries' src docs architecture .kittify/charter \
| grep -v occurrence_map.yaml # expect only intended/historical hits
Every old→new path must be in occurrence_map.yaml and verified post-move.