Skip to content

v0.3.1 — Backfill End-to-End: Feature-First Scoping, Feature-Map Governance & Trust-Zone Graduation

Choose a tag to compare

@benwu95 benwu95 released this 19 Jun 14:10

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 + metadatano 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-prefixed specs/_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-archive Phase 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 just product.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 check is 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.


Merged PRs

  • #38 feature-first backfill + feature-map governance + archive-history cleanup (BL-039 / 040 / 041)
  • #39 scale: backfill mode — graduate brownfield specs end-to-end