Checklists
requirements.md
Specification Quality Checklist: Charter Synthesize Reconciliation
Purpose: Validate specification completeness and quality before proceeding to planning Created: 2026-08-09 Feature: spec.md
Content Quality
- ✅ No implementation details (languages, frameworks, APIs) — behavior-level; code seams named only in context, not in requirements
- ✅ Focused on user value and business needs (no silent loss, no trapped workflow)
- ✅ Written for non-technical stakeholders (domain terms defined in Domain Language)
- ✅ All mandatory sections completed
Requirement Completeness
- ✅ No [NEEDS CLARIFICATION] markers remain (drop-semantics resolved: refuse-with-prune)
- ✅ 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 (P0 spine vs. folded slices; C-003)
- ✅ Dependencies and assumptions identified (folds #2777/#3052; #2772/#2759 landed)
Feature Readiness
- ✅ All functional requirements have clear acceptance criteria
- ✅ User scenarios cover primary flows
- ✅ Feature meets measurable outcomes defined in Success Criteria
- ✅ No implementation details leak into specification
Notes
preserves-and-succeeds; auto_refresh/activate consume it; --prune removes; non-zero refuse narrowed to the manual CLI for genuinely-unpreservable removals. Ledger decision 01KZJV6H7TW63M6ZGNM05XKM2S (supersedes the earlier 01KZJQP5K4C0VGNB53GZZT3QWP refuse-with-prune choice).
model (warn/report), with 2026-05-16-1 retained only as the field-grain precedent.
tests/charter/synthesizer/test_synthesize_node_preservation.py — its library-level preserve-and-succeed assertion is now consistent with the confirmed default (satisfies C-004).
NFR-001/002/003/007, C-001/002, and the Edge Cases. Remaining /plan work: the exact library seam signature/return shape (FR-009), the merged-overlay conflict routing (FR-006), the generate references-parity slice (FR-011), and the full missing-test schedule (fail-closed refusal, --prune, --dry-run, no-op stability, boundary heal, activate, edge-wiring).
- Confirmed design decision (post-spec squad revision): preserve-and-warn — library seam
- Doctrine anchor corrected to ADR
2026-07-26-3+src/doctrine/drg/merge.pyconflict - Red-first reproduction test already committed on the fix branch:
- Post-spec adversarial squad (3 lenses) findings folded into FR-004/006/007/008/009/012/014,