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.