Releases: benwu95/prospec
v0.4.1 — No-Clobber, Completed: Agent-Config User Blocks & `/prospec-upgrade` Path Fixes
Prospec v0.4.1
v0.4.0 made re-running init safe — but the no-clobber promise stopped at the agent config
files. prospec agent sync still overwrote CLAUDE.md / AGENTS.md unconditionally, and
prospec init skipped an existing AGENTS.md entirely — so any hand-written agent
instructions were destroyed or ignored. And the brand-new /prospec-upgrade Skill that 0.4.0
shipped had two path/resolution bugs that made it fail on first real use. v0.4.1 finishes
the no-clobber guarantee (extending the prospec:auto / prospec:user block contract to the
agent config files) and repairs the upgrade path, then brings the deployed skills and config
under version control.
31 source files changed · +745 / −116 · 1 merged PR (#43) · plus prospec-* skills,
AGENTS.md&CLAUDE.mdnow version-controlled
✨ Headline features
User edits in CLAUDE.md / AGENTS.md now survive every command (PR #43)
Agent config files now use the same prospec:auto / prospec:user block contract that
_index.md already relies on. A new mergeManagedDoc(generated, existing) does an in-place
auto-block swap that preserves the user block; a marker-less hand-written file is migrated
into the user block instead of discarded, and the merge is idempotent (two syncs in a row
are byte-identical). agent sync and init both route through it — init now merges the
managed AGENTS.md instead of skipping it, while the curated trust zone (CONSTITUTION.md /
_conventions.md / _index.md) keeps its skip-if-exists guard. So your custom instructions now
survive init / agent sync / quickstart / upgrade. (PR #43)
/prospec-upgrade actually works now — two resolution fixes
The 0.4.0 upgrade Skill couldn't find the latest templates. Step 2 pointed at a root-level
templates/init/ that never exists — the package ships and loads templates from
src/templates/ (because tsc doesn't copy .hbs into dist/); that path is now corrected.
A package-root fallback was added for pnpm link / global installs where
require.resolve can't see the package: derive the root by following $(which prospec) back up
from the bin shim. And a source-repo short-circuit handles dogfooding — when the project's
own package.json name is @benwu95/prospec, use . as the root and skip require.resolve
(which fails on a self-reference with no exports field). (bb0bf25, 8446a8b)
Deployed prospec skills & agent config are now version-controlled
.gitignore now tracks the deployed prospec-* skills under .claude/ and .agents/,
plus AGENTS.md and CLAUDE.md — so changes to generated config are reviewable in git instead
of invisible. (698437d)
🔁 Dogfood
The whole change ran through prospec's own SDD lifecycle
(story → plan → tasks → implement → review → verify → archive → learn) on this repo, reaching
0-critical adversarial review and verify grade S. The DRY follow-up that resolved both
review majors — a shared single-source auto-block helper (hasAutoBlock / replaceAutoBlock)
plus readFileIfExists adopted across the knowledge services — was then promoted to the team
playbook as PB-006 (single-source helper for parallel modules).
🧪 Quality & tests
- The suite grew 1,760 → 1,786 tests — new coverage for the block-merge primitive,
marker-less migration, idempotent re-sync, and theinit/agent syncmerge routes. prospec checkdrift engine 8/8 PASS (0 warn), coverage 96%, typecheck + lint clean.- Real-CLI e2e confirmed: a brownfield
CLAUDE.md/AGENTS.mdis migrated into the user block
and preserved acrossinit → agent sync, idempotent on re-sync.
📊 Compared to v0.4.0
| v0.4.0 | v0.4.1 | |
|---|---|---|
| Tests | 1,760 | 1,786 |
agent sync on CLAUDE.md / AGENTS.md |
unconditional overwrite (loses edits) | auto/user block merge (edits preserved) |
init with an existing AGENTS.md |
skipped entirely | migrated into the user block |
/prospec-upgrade template lookup |
broken (templates/init/, pnpm-link) |
fixed (src/templates/init/ + CLI-shim / self-ref fallbacks) |
| Deployed skills + agent config | gitignored | version-controlled |
| Verify grade | A | S |
⬆️ Upgrade notes
Run prospec agent sync (or any of init / quickstart / upgrade): a marker-less
hand-written CLAUDE.md / AGENTS.md is migrated into the prospec:user block on first
sync, then preserved byte-for-byte on every later sync — keep your custom instructions inside
that user block. If you adopted 0.4.0's /prospec-upgrade, re-sync to pick up the fixed
Skill (prospec agent sync). The trust zone is unchanged — still skip-if-exists.
Merged PRs
- #43 feat: preserve user edits in
CLAUDE.md/AGENTS.mdvia auto/user blocks
v0.4.0 — Safe Re-Init & the Version-Upgrade Path: No-Clobber Init, `prospec upgrade` & Consent-Gated Migration
Prospec v0.4.0
v0.3.x kept hardening the spec flywheel — but two setup-layer gaps could quietly cost you
work. prospec init's idempotency gate only checked .prospec.yaml, then unconditionally
overwrote 7+ files including the curated trust zone (CONSTITUTION.md / _conventions.md /
_index.md). The common move of deleting .prospec.yaml to re-localize triggers therefore
wiped curated content. And once prospec shipped a new version, there was no upgrade
path — nothing to bring an existing project up to date. v0.4.0 closes the data-loss hole
and adds a real, two-stage upgrade path (deterministic CLI + consent-gated Skill), then
dogfoods it on this very repo.
44 files changed · +1,488 / −270 · 1 merged PR (#42)
✨ Headline features
No-clobber init — re-running init never overwrites curated files (P0, BL-044)
prospec init now uses a per-file skip-if-exists guard (matching knowledge-init.service):
it rebuilds only the files that are actually missing and leaves everything you've authored
untouched. The .prospec.yaml-last completion marker is preserved, so re-running init to
recover a missing file is now safe — deleting .prospec.yaml to re-localize triggers can no
longer take the trust zone with it. (PR #42)
prospec upgrade — a deterministic, zero-LLM version-bump command (P1, BL-044)
A new prospec upgrade CLI command records the prospec version in .prospec.yaml
(canonical re-serialize), re-runs agent sync, and prints a migration report. It writes no
docs and is deliberately not in INIT_COMMANDS, so an uninitialized project gets a clean
ConfigNotFound instead of a half-built tree. .prospec.yaml version now means the prospec
version the project uses (a legacy "1.0" is treated as stale and bumped on first upgrade) —
there is no separate prospec_version field. (PR #42)
/prospec-upgrade — the consent-gated migration finisher (P1, BL-044)
The judgment work the CLI can't do safely now lives in a new /prospec-upgrade Skill: it scans
the files prospec init created, compares them to the latest templates, and offers to migrate
any whose format has drifted — asking per file, format-only, never touching your authored
content. It then localizes triggers for any newly-added skills (fill-missing only) and re-runs
agent sync. Like /prospec-quickstart, it's deployed on disk but kept out of the entry
config, so it adds no recurring token cost. (PR #42)
Trigger re-localization without nuking config (P2, BL-044)
agent sync now names the skills missing a skill_triggers entry (partial localization),
and /prospec-quickstart fills only the missing triggers — so you never need to delete
.prospec.yaml to re-localize. /prospec-knowledge-update also gained a Phase 2.5 step that
asks for consent before migrating drifted AI-knowledge format. (PR #42)
🔁 Dogfood: the upgrade path upgraded this repo
After merge, this repo ran the new flow end-to-end: prospec upgrade + /prospec-upgrade
bumped .prospec.yaml version 1.0 → 0.3.2, localized the new /prospec-upgrade
skill's triggers, and left every init-created doc untouched — exactly the no-clobber
guarantee the P0 fix promises.
🧪 Quality & tests
- The suite grew 1,726 → 1,760 tests — new coverage for init recovery, the upgrade
orchestrator, missing-trigger detection,versionsemantics, and the entry-exclusion
contract ({quickstart, upgrade}); new contract assertions are mutation-verified. prospec checkdrift engine is 8/8 PASS (0 warn),verify:skills28/28, coverage 96%.- The change ran dogfood-style through prospec's own SDD workflow
(story → plan → tasks → implement → review → verify → archive), reaching 0-critical
adversarial review and verify grade A.
📊 Compared to v0.3.2
| v0.3.2 | v0.4.0 | |
|---|---|---|
| Tests | 1,726 | 1,760 |
Re-running init |
overwrites 7+ files incl. trust zone | per-file skip-if-exists (no clobber) |
| Version-upgrade path | — | prospec upgrade (CLI) + /prospec-upgrade (Skill) |
.prospec.yaml version |
bootstrap marker ("1.0") |
the prospec version the project uses |
| Re-localizing triggers | delete .prospec.yaml (risked clobber) |
agent sync names gaps · fill-missing only |
| Skills | 16 | 17 (+ /prospec-upgrade) |
⬆️ Upgrade notes
On a version bump, run prospec upgrade then /prospec-upgrade in your AI agent: the
CLI records the new version + re-syncs agents (writing no docs), and the Skill handles
init-doc format migration + new-skill trigger localization with per-file confirmation.
If you only want the new skill wired up, prospec agent sync is enough to pick up
/prospec-upgrade. The init fix is automatic — re-running init is now safe by construction.
Merged PRs
- #42 fix init clobber + add
prospec upgradepath (BL-044)
v0.3.2 — Knowledge-Sync Hardening: Feature-Prefix Archive Fix, README Count Drift & MCP Spec Entry
Prospec v0.3.2
v0.3.1 shipped feature-map.yaml and the feature→module governance checks — but two gaps
remained. A standard/full change whose delta-spec used a feature-prefixed REQ (e.g.
REQ-MCP-*) would silently mis-route at archive: the auto knowledge-update read the prefix
as a module name, missing the real modules and risking a phantom modules/<prefix>/. And the
README's factual counts (e.g. "registers N resources") drifted from the code with nothing to
catch them. v0.3.2 hardens the knowledge-sync flow and mechanizes the count check —
then dogfoods both by archiving the very MCP change that surfaced them.
✨ Headline features
Feature-prefixed REQ knowledge-sync hardening (BL-043)
standard/full changes whose delta-spec uses a feature-prefixed REQ (REQ-MCP-* and
the 10 other non-module prefixes) now resolve affected modules from metadata.related_modules
feature-map.yamlinstead of mistaking the prefix for a module — consistently in both the
archive Entry Gate (skill) and the auto knowledge-update (service). A surgical mint
guard skips a feature-prefix that resolves to no known module (with a warning) rather than
minting a phantommodules/<prefix>/. Module-prefix REQs are unchanged. (PR #40)
readme-counts drift check (BL-043)
A new readme-counts drift check (DRIFT_CHECK_IDS 7 → 8) mechanizes what was a manual
review concern: a count declared in a module README (e.g. "src/x.ts … registers N resources")
is verified against the actual code it names — warn-class, string/template/fenced-block-aware
so it never false-positives. (PR #40)
MCP spec-system entry/index resources (BL-042)
prospec mcp serve now exposes the spec system's entry layer, not just feature details:
knowledge://feature-map (the feature→module routing index) and spec://product (the PRD
entry / 2-minute overview). An external or cold-start agent can grasp the project in one read,
then drill into spec://feature/{name}. buildMcpServer registers 6 → 8 resources; both
are read-only, per-request, realpath-contained. (PR #41)
🔁 Dogfood: the fix validated itself
BL-042's archive was paused at the Entry Gate when its feature-prefixed REQ-MCP-*
mis-routed — which is exactly what surfaced BL-043. After BL-043 merged, BL-042 archived
cleanly through the new feature-prefix fallback (modules derived from related_modules, no
phantom minted), and the new readme-counts check caught and then confirmed the 6 → 8
resource-count sync.
🧪 Quality & tests
- The suite grew 1,696 → 1,726 tests (unit 1,127 / contract 542 / integration 17 / e2e 40);
new contract assertions are mutation-verified. prospec checkis 8/8 PASS on prospec itself (including the newreadme-counts).- Both changes ran dogfood-style through the full SDD workflow
(story → plan → tasks → implement → review → verify → archive), reaching review-clean +
verify grade S / A.
📊 Compared to v0.3.1
| v0.3.1 | v0.3.2 | |
|---|---|---|
| Tests | 1,696 | 1,726 |
| Drift checks | 7 | 8 (+ readme-counts) |
| Feature-prefix REQ at archive | mis-routes (stale / phantom risk) | resolves via related_modules / feature-map |
| README count accuracy | manual review only | deterministic readme-counts check |
| MCP resources | 6 | 8 (+ knowledge://feature-map, spec://product) |
⬆️ Upgrade notes
Run prospec agent sync to pick up the updated /prospec-archive template (standard/full
feature-prefix fallback). The new readme-counts drift check runs automatically in
prospec check; it is warn-class and degrades to skipped without a module-map.yaml,
so existing projects keep working unchanged.
Merged PRs
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.
Merged PRs
v0.3.0 — MCP Truth Layer, Brownfield Backfill & One-Command Onboarding
Prospec v0.3.0
v0.2.1 made the knowledge layer self-sustaining. v0.3.0 opens it up and grounds
it in code: a read-only MCP server lets any agent query project truth — even
without prospec skills installed; brownfield code can now backfill its own behavioral
specs; onboarding collapses to a single command; and planning/implementation can pull
dependency-layer usage knowledge on demand from Context7. Plus a deep source-hardening
pass that doubled the test suite.
192 files changed · +19,440 / −2,227 · 20 merged PRs (#18–#37)
✨ Headline features
prospec mcp serve — read-only MCP truth layer (new)
A stdio MCP server exposes project architecture truth, spec truth, dependency
direction, playbook, and knowledge freshness (the same frozen contract as
prospec check). Any harness's agent can query truth even without prospec skills
installed — the knowledge moat decouples from skill deployment. Per-request re-reads
stay fresh, realpath sandboxing blocks reads outside the repo, and it's purely
additive: when the server isn't running, everything works as before. (BL-033)
Reverse-spec extraction — brownfield WHAT-layer backfill (new)
/prospec-backfill-spec reverse-extracts a behavioral Feature Spec draft from
existing code (source = code, not a design tool) for modules with no spec coverage.
It records behavior, never intent, stages a draft for human verify-and-promote,
and never writes the trust zone. (BL-032)
prospec quickstart — one-command onboarding (new)
Brownfield onboarding collapses into a single command (init + agent sync), then the
agent-side /prospec-quickstart finishes the job — localizing skill triggers and
generating AI Knowledge. (OPT-A4)
On-demand dependency-layer knowledge (Context7)
plan / implement can now optionally inject dependency-layer usage knowledge from
Context7 when third-party libraries are touched — untrusted, graceful, and never
enters the cache-stable prefix. (BL-034)
🔬 Knowledge & scanning
- raw-scan multi-language detection — project scan now detects backend languages
plus C/C++/Swift, beyond the original frontend set. (#33) knowledge init --raw-scan-only— deterministic knowledge re-scan collapsed into
a single flag (introduced asknowledge refresh, then folded intoinit). (#32, #35)
🧪 Quality & hardening
- Self-contained verify/review references — agent-skills heuristics are now vendored
in, soverifyandreviewno longer depend on external skill availability. (#24) - Source five-axis review remediation — 32 confirmed findings fixed across two
rounds. (#26, #27) - Centralized index-column schema, archive sibling-reference fix, and
capability→feature migration cleanup. (#22, #23, #29) - Constitution now requires bulleted commit bodies and aligns git conventions. (#25)
📈 Tests & CI
- v8 coverage wired into CI with a per-PR coverage summary comment. (#34)
- All four coverage metrics raised above 90%; the suite grew 839 → 1,622 tests. (#37)
- README restructured into an onboarding-first funnel. (#19)
📊 Compared to v0.2.1
| v0.2.1 | v0.3.0 | |
|---|---|---|
| Tests | 839 | 1,622 |
| CLI commands | + check · measure |
+ mcp serve · quickstart |
| MCP truth layer | — | read-only stdio server |
| Brownfield specs | — | reverse-spec backfill (/prospec-backfill-spec) |
| Dependency knowledge | — | on-demand Context7 injection |
| raw-scan languages | frontend | + backend · C/C++/Swift |
| Coverage gate | — | >90% (4 metrics) + per-PR CI summary |
⬆️ Upgrade notes
Run prospec agent sync to pick up the new skills (/prospec-backfill-spec,
/prospec-quickstart) and updated templates. Optionally start the truth layer with
prospec mcp serve for any MCP-capable agent.
Merged PRs
- #18 local MCP server (BL-033)
- #19 README onboarding-first funnel
- #20 multi-local MCP server
- #21 skill/source optimization pass (2026-06-13)
- #22 centralize index-column schema
- #23 fix archive sibling reference
- #24 self-contained verify/review references
- #25 require bulleted commit bodies; align git conventions
- #26 remediate src/ five-axis review findings (32 confirmed)
- #27 round-2 source review remediation
- #28 on-demand Context7 dependency-layer knowledge (BL-034)
- #29 capability-to-feature migration cleanup
- #30 prospec quickstart one-command onboarding (OPT-A4)
- #31 reverse-spec extraction for brownfield WHAT-layer (BL-032)
- #32 deterministic
knowledge refreshcommand - #33 raw-scan backend + C/C++/Swift detection
- #34 v8 coverage + per-PR coverage summary
- #35 collapse knowledge refresh into
knowledge init --raw-scan-only - #36 extract input=code reverse-spec into standalone
/prospec-backfill-spec - #37 raise all 4 coverage metrics above 90%
v0.2.1 — Knowledge Flywheel, Drift Checker & Scale-Aware Planning
Prospec v0.2.1
v0.2.0 closed two feedback loops (adversarial review + lesson promotion).
v0.2.1 makes the knowledge layer self-sustaining — lessons are now harvested
automatically at archive time, knowledge ↔ code drift is detected deterministically
in CI, and planning scales itself to the size of the change. Plus a token measurement
harness so prompt-cache claims are measured, not guessed.
✨ Headline features
Knowledge flywheel — archive auto-harvest (new)
/prospec-archive now auto-harvests lessons from each completed change into a
version-controlled ledger (BL-029) — no manual /prospec-learn trigger needed to
collect; promotion still requires explicit human approval. Backed by a new
Constitution Principle 5 (READMEs stay current; SHOULD), so knowledge freshness
is a graded rule, not a habit.
prospec check — deterministic drift checker with CI gate (new)
A new CLI command detects knowledge ↔ code drift deterministically (BL-030) —
stale module READMEs, missing index entries, broken module-map references — and
fails CI when knowledge falls behind the code. Drift stops being something you
notice; it becomes something the pipeline blocks.
Scale-aware task contract (quick mode)
Planning now adapts to change size (BL-004): small changes get a lightweight
fast path instead of the full ceremony, while large changes keep the complete
story → plan → tasks contract. Same gates, right-sized overhead.
🔬 Measurement & performance
prospec measure— a multi-provider token measurement harness with a
read-only report CLI, so context-budget and caching claims are backed by numbers.- Static-first skill startup loading — skill prompts reordered for
cache-stable prefixes, improving prompt-cache hit rates across sessions.
🌐 Language Policy
initnow offers language selection, seeding a Constitution Language Policy
rule (AI-generated docs in your language; code, identifiers, and git commit
messages always in English).
📚 Knowledge & quality gates
- Knowledge-sync gate at archive (BL-038) —
/prospec-archive's Entry Gate now
blocks archiving until module knowledge is synced. - Playbook grew three human-approved rules: PB-001 (structure-aware,
mutation-verified assertions), PB-002 (lifecycle full-path scan),
PB-003 (claim ↔ implementation consistency).
🐞 Fixes
- ANSI color is now disabled for non-TTY stdout (clean output in pipes/CI).
- CI gets its pnpm version from the
packageManagerfield (no drift).
📊 Compared to v0.2.0
| v0.2.0 | v0.2.1 | |
|---|---|---|
| Tests | 549 | 839 |
| CLI commands | init · sync · change · knowledge | + check · measure |
| Lesson collection | manual via /prospec-learn |
auto-harvest at archive |
| Knowledge freshness | verify-time audit | + deterministic CI drift gate |
| Task contract | one-size | scale-aware (quick mode) |
| Constitution | 4 principles | 5 (+ README freshness) |
⬆️ Upgrade notes
Run prospec agent sync to pick up the updated skill templates (scale-aware
contract, archive gates, flywheel harvest). Optionally wire prospec check
into CI as the drift gate.
Merged PRs
- #12 init language selection & Language Policy
- #13 token measurement harness + static-first startup loading
- #14 knowledge-sync gate at archive (BL-038)
- #15 scale-aware task contract / quick mode (BL-004)
- #16 deterministic drift checker with CI gate (BL-030)
- #17 knowledge flywheel — archive auto-harvest (BL-029)
v0.2.0 — Self-Improving SDD: Adversarial Review, Feedback Promotion & Quality Gates
Prospec v0.2.0
First major release of the benwu95/prospec fork,
building on upstream ci-yang/prospec v0.1.5.
v0.1.x gave you a linear SDD pipeline (story → plan → tasks → implement → verify → archive).
v0.2.0 closes two feedback loops on top of it so the workflow doesn't just repeat —
it compounds. Every change now passes through an independent adversarial reviewer, and
recurring lessons promote (human-gated) into versioned team rules. The whole pipeline is
wrapped in objective quality gates.
122 files changed · +5,119 / −8,851 · 10 merged PRs (#2–#11)
✨ Headline features
/prospec-review — Adversarial review → fix loop (new)
An independent, fresh-context reviewer audits the entire change diff between implement
and verify. Only verifier-confirmed, drop-in critical findings are auto-fixed; major
findings are proposed (downgraded to WARN), the rest escalate to you. It's spec-aware —
it checks against delta-spec REQs, dependency direction, and module conventions, which a
generic reviewer can't. The commit boundary stays after verify hits grade S/A, so
implement + review + verify fixes land in one atomic commit (Prospec prompts; never
auto-commits).
/prospec-learn — Feedback promotion pipeline (new)
Collects recurring lessons (session corrections, repeated verify FAILs, recurring review
criticals from the cross-stage quality_log), scores them with an explicit, reproducible
rule (frequency + impact-module count — not a black box), and — only with explicit human
approval — promotes them across three tiers: personal → team _playbook.md → Constitution
rule. Everything is auditable and version-controlled. This is what makes Prospec get
smarter with use, not just bigger.
🛡️ Quality machinery (now across every workflow Skill)
- Output Contract — each Skill self-reports
Met N/M | Overall: PASS|WARN|FAILagainst
objective criteria, so you stop hand-checking artifacts. - Entry / Exit dual gates — preconditions checked before a Skill runs, Constitution
compliance after; WARN/FAIL records persist via a cross-stagequality_logso an
early concern resurfaces downstream. - Executable Constitution —
initseeds rules with RFC-2119 severity
(MUST → FAIL / SHOULD → WARN / MAY → advisory);/prospec-verifygrades against them.
🔌 Agent support & toolchain
- Antigravity CLI replaces Gemini CLI. Antigravity / Codex / GitHub Copilot now unify on
the agents.md open standard — a singleAGENTS.md+.agents/skills/
(Claude Code keepsCLAUDE.md+.claude/skills/). - pnpm-only toolchain on Node ≥ 22.13 (was Node ≥ 20). Installs directly from the GitHub
fork —npm i -g github:benwu95/prospec— with aprepare-script build (npm publish path
removed).
📚 Knowledge & specs
module-map.yamlis now generated duringinit(no longer a manual step)._index.mdgains an aliases column + a shared glossary for better cross-module recall.- Oversized module READMEs are split into sub-modules automatically.
/prospec-verifydimension 4/5 re-scoped to knowledge ↔ code consistency, decoupled
from the feature-spec gate.
🐞 Fixes
- BUG-001 — tech-stack detection is now config-first (respects
.prospec.yamlinstead
of mis-detecting).
📊 Compared to v0.1.5
| v0.1.5 | v0.2.0 | |
|---|---|---|
| Skills | 11 | 13 (+/prospec-review, +/prospec-learn) |
| Tests | 350 | 549 |
| Node | ≥ 20.0.0 | ≥ 22.13.0 |
| AI agents | Claude · Gemini · Copilot · Codex | Claude · Antigravity · Copilot · Codex |
| Install | npm publish | GitHub fork (pnpm-only) |
| Quality gates | — | Output Contract + Entry/Exit + executable Constitution |
| Feedback loops | linear pipeline | + adversarial review + lesson promotion |
⬆️ Upgrade notes
After prospec agent sync, delete the now-unused legacy agent files:
GEMINI.md, .gemini/skills/, .codex/skills/, .github/copilot-instructions.md,
.github/instructions/.
Bump your environment to Node ≥ 22.13 and use pnpm.