v0.3.1 — Backfill End-to-End: Feature-First Scoping, Feature-Map Governance & Trust-Zone Graduation
Prospec v0.3.1
v0.3.0 opened the door to brownfield backfill — /prospec-backfill-spec could
extract a behavioral draft from existing code. But the draft hit a wall: the forward-path
verify gates new-code quality, so a backfill spec recording existing behavior could
never reach verified, and archive only accepts verified. v0.3.1 completes the
loop. Backfill now scopes by feature vertical-slice instead of by module, a new
feature-map.yaml index governs the feature→module edge deterministically, and a 4th
scale: backfill mode plus /prospec-promote-backfill lets brownfield specs graduate
end-to-end into the trust zone through an honest, lightweight path.
111 files changed · +2,447 / −4,330 · 2 merged PRs (#38–#39)
The net-negative diff is a legacy spec-folder consolidation, not a feature removal.
✨ Headline features
scale: backfill — brownfield specs graduate end-to-end (new)
A 4th scale value (a light scale, symmetric to quick) plus a /prospec-promote-backfill
skill closes the backfill journey: extract → promote → verify → archive. Promote
produces only proposal + delta-spec + metadata — no hollow plan.md / tasks.md,
since backfill records existing code with no forward work to schedule. verify re-points
its primary graded dimension to spec-fidelity (every REQ's AC must resolve to its cited
file:line); pre-existing code-quality [MUST] violations are recorded as informational
tech debt rather than failing the grade. Provenance binding gates the relaxation on a
backfill-draft.md being present, so new code can't masquerade as backfill to skip the
tested-functions gate. (PR #39)
Feature-first backfill scoping (BL-039)
/prospec-backfill-spec now extracts and scans by feature vertical-slice (WHAT) across
contributing modules, not by module (WHERE). A two-pass gather-by-module → cluster-by-feature
flow cites file:line per traced edge; cross-module event/outbound edges become acceptance
criteria only when both ends are traced (otherwise [NEEDS CLARIFICATION] / Deferred);
infrastructure modules are never feature targets. (PR #38)
feature-map.yaml + deterministic coverage governance (BL-040)
A new feature-map.yaml index records the feature→module edge that module-map.yaml
can't answer, written automatically by archive (bootstrap-once, no-clobber). Two new drift
checks ship with it (DRIFT_CHECK_IDS 5 → 7): dangling-prefix (REQ-prefix legality,
warn) and feature-modules (self-validating feature→module edge, fail), both gated
on the index existing. Backfill Phase 4 coverage becomes a deterministic set-difference once
the index is present. (PR #38)
🗂️ Knowledge & spec-history cleanup
- Archive-summary convergence (BL-041) — spec-history summaries now land in a
date-prefixedspecs/_archived-history/{YYYY-MM-DD}-{change-name}.md, name-aligned with
the.prospec/archive/folder and drift-excluded. An explicit copy step was added to
prospec-archivePhase 3 (previously buried only in the reference). (PR #38) - Legacy spec-folder consolidation — the
001-prospec-mvp-cli/spec-kit folder and five
_archived-capabilities/specs were collapsed into date-prefixed summaries and removed
(full content preserved in git history).specs/root is now justproduct.md+
MIGRATION.md;_archived-history/is uniformly date-prefixed, with no stray folders. (PR #38)
🧪 Quality & tests
- The suite grew 1,622 → 1,696 tests (unit 1,100 / contract 539 / integration 17 / e2e 40);
all new contract assertions are mutation-verified. prospec checkis 7/7 PASS — the two new feature-map checks pass on prospec itself.- Each change was built dogfood-style through prospec's own SDD workflow
(story → plan → tasks → implement → review → verify → archive), reaching review-clean +
verify grade S / A.
📊 Compared to v0.3.0
| v0.3.0 | v0.3.1 | |
|---|---|---|
| Tests | 1,622 | 1,696 |
| Backfill flow | extract draft only | extract → promote → verify → archive (end-to-end) |
scale values |
quick · standard · full | + backfill (4) |
| Backfill scoping | by module (WHERE) | by feature vertical-slice (WHAT) |
| Feature→module index | — | feature-map.yaml + 2 deterministic checks |
| Drift checks | 5 | 7 |
| Spec history | flat root + legacy folders | date-prefixed _archived-history/ |
⬆️ Upgrade notes
Run prospec agent sync to pick up the new /prospec-promote-backfill skill and the
updated /prospec-backfill-spec, /prospec-verify, and /prospec-archive templates.
feature-map.yaml is optional and additive — the two new drift checks stay skipped
until you bootstrap an index (via archive), so existing projects keep working unchanged.