Checklists

requirements.md

Specification Quality Checklist: Doctrine Tension as First-Class DRG Edges

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

Content Quality

  • ✅ No implementation details (languages, frameworks, APIs) — the Change Surface Map names doctrine schema/model files as the product of the mission, not incidental tech choices; kept at requirement level
  • ✅ Focused on user value and business needs
  • ✅ Written for non-technical stakeholders (operator/pack-author framing in user stories)
  • ✅ All mandatory sections completed

Requirement Completeness

  • ✅ No [NEEDS CLARIFICATION] markers remain — the three squad-escalated decisions (D1 downstream-compat, D2 anti-pattern-node-kind, D3 tension-under-all-active) are RESOLVED via the decision protocol and folded into FR-015 / FR-004 / FR-009 + C-008
  • ✅ 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 (grep-zero, ≤2 findings, coherent=true, 0 drift)
  • ✅ Success criteria are measurable
  • ✅ Success criteria are technology-agnostic (outcome-framed; counts/coherence, not framework internals)
  • ✅ All acceptance scenarios are defined
  • ✅ Edge cases are identified (symmetric drift, non-transitivity, half-reconciled, unmarked reject target, cascade, partial migration)
  • ✅ Scope is clearly bounded (out-of-scope: #2829, #2827)
  • ✅ Dependencies and assumptions identified (ADR 2026-07-21-1, extractor retirement 2026-07-18-1, replaces canonical)

Feature Readiness

  • ✅ All functional requirements have clear acceptance criteria
  • ✅ User scenarios cover primary flows (flag → resolve → migrate → de-noise → parity)
  • ✅ Feature meets measurable outcomes defined in Success Criteria
  • ✅ No implementation details leak into specification beyond the deliberate Change Surface Map

Notes

  • The Change Surface Map is intentional: this is a doctrine-infrastructure mission where the schema/model changes and their propagation across read/write/checkup surfaces ARE the deliverable and the acceptance backbone (per operator instruction).
  • Refined 2026-07-21 after a 4-lens adversarial/enhancement squad. Non-decision findings remediated: fakeable gates tightened (NFR-003 exact set, NFR-001 must-fire), anti-pattern marker home corrected to DRGNode, glossary parity scoped + comparator made a deliverable (A2), migration order pinned (C-006), bulk-edit flagged (C-007), test-blast-radius + freshness canary + cascade-exclusion test added to the checkup surface, correctness invariants promoted to acceptance (INV-001..005), grep scope reconciled (NFR-002/SC-004).
  • Three decisions escalated to the operator (D1/D2/D3) — spec is committed WITH markers pending those answers; not a quality-bar failure.