Checklists

requirements.md

Specification Quality Checklist: Consolidate the Compiled Charter Bundle

Purpose: Validate specification completeness and quality before proceeding to planning Created: 2026-07-18 Feature: spec.md

Content Quality

  • ✅ No implementation details (languages, frameworks, APIs) — file/line references appear only in the Context/Key Entities as grounding, not as requirement prescriptions
  • ✅ Focused on user value and business needs (maintainers, resolving/parity/freshness paths, operators)
  • ✅ Written for stakeholders (charter/doctrine maintainers)
  • ✅ All mandatory sections completed

Requirement Completeness

  • ✅ No [NEEDS CLARIFICATION] markers remain (the one genuine fork — subsume-vs-absorb — was resolved with the operator: full subsume)
  • ✅ Requirements are testable and unambiguous
  • ✅ Requirement types are separated (Functional / Non-Functional / Constraints)
  • ✅ IDs are unique across FR-###, NFR-###, and C-### entries
  • ✅ All requirement rows include a non-empty Status value
  • ✅ Non-functional requirements include measurable thresholds
  • ✅ Success criteria are measurable
  • ✅ Success criteria are technology-agnostic
  • ✅ All acceptance scenarios are defined
  • ✅ Edge cases are identified
  • ✅ Scope is clearly bounded (Out of Scope + fences to #2772/#2554/#2373)
  • ✅ Dependencies and assumptions identified

Feature Readiness

  • ✅ All functional requirements have clear acceptance criteria (mapped via user stories)
  • ✅ User scenarios cover primary flows (freshness, parity, migration, retirement)
  • ✅ Feature meets measurable outcomes defined in Success Criteria
  • ✅ No implementation details leak into specification requirements

Notes

  • Operator decision recorded: full subsume + authority inversion (ADR 2026-07-18-1). charter.yaml consolidates all four files AND becomes the authoritative structured source; charter.md is a hand-authored curated companion (never resolving, never clobbered); the prose→triad extractor is retired. Delivered in ONE branch/PR (C-006).
  • C-001 flipped: charter.yaml authoritative, charter.md companion (was: charter.md authored). #2772 is folded (FR-007), not out of scope.
  • De-risking recorded in research/charter-authority-inversion-assessment.md: extractor AI-path is dead code (deterministic scrape); prose is display-only for governance; migration is a lossless yaml→yaml fold; answers.yaml provenance-only; config.yaml activated_* sole activation authority.
  • Plan-time follow-through: code-state scout to confirm the consumer surface + the display prose-consumers (context.py/compact.py) + the language tier-3 fallback (FR-009); foldability of #2554/#2373; WP DAG sequenced tidy-first (schema → seed-from-triad → re-point → retire extractor → charter.md companion).