Skip to content

Releases: benwu95/prospec

v0.4.1 — No-Clobber, Completed: Agent-Config User Blocks & `/prospec-upgrade` Path Fixes

22 Jun 05:15

Choose a tag to compare

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.md now 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 the init / agent sync merge routes.
  • prospec check drift engine 8/8 PASS (0 warn), coverage 96%, typecheck + lint clean.
  • Real-CLI e2e confirmed: a brownfield CLAUDE.md / AGENTS.md is migrated into the user block
    and preserved across init → 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.md via auto/user blocks

v0.4.0 — Safe Re-Init & the Version-Upgrade Path: No-Clobber Init, `prospec upgrade` & Consent-Gated Migration

21 Jun 23:56

Choose a tag to compare

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.00.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, version semantics, and the entry-exclusion
    contract ({quickstart, upgrade}); new contract assertions are mutation-verified.
  • prospec check drift engine is 8/8 PASS (0 warn), verify:skills 28/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 upgrade path (BL-044)

v0.3.2 — Knowledge-Sync Hardening: Feature-Prefix Archive Fix, README Count Drift & MCP Spec Entry

20 Jun 05:16

Choose a tag to compare

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.

44 files changed · +1,222 / −87 · 2 merged PRs (#40#41)


✨ 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.yaml instead 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 phantom modules/<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 check is 8/8 PASS on prospec itself (including the new readme-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

  • #40 harden feature-prefixed REQ knowledge-sync + readme-counts drift check (BL-043)
  • #41 MCP knowledge://feature-map + spec://product entry resources (BL-042)

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

19 Jun 14:10

Choose a tag to compare

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

v0.3.0 — MCP Truth Layer, Brownfield Backfill & One-Command Onboarding

17 Jun 05:03

Choose a tag to compare

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 as knowledge refresh, then folded into init). (#32, #35)

🧪 Quality & hardening

  • Self-contained verify/review references — agent-skills heuristics are now vendored
    in, so verify and review no longer depend on external skill availability. (#24)
  • Source five-axis review remediation32 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 refresh command
  • #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

12 Jun 09:59

Choose a tag to compare

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.

153 files changed · +8,485 / −621 · 6 merged PRs (#12#17)


✨ 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

  • init now 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 packageManager field (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

08 Jun 16:17

Choose a tag to compare

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|FAIL against
    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-stage quality_log so an
    early concern resurfaces downstream.
  • Executable Constitutioninit seeds rules with RFC-2119 severity
    (MUST → FAIL / SHOULD → WARN / MAY → advisory); /prospec-verify grades against them.

🔌 Agent support & toolchain

  • Antigravity CLI replaces Gemini CLI. Antigravity / Codex / GitHub Copilot now unify on
    the agents.md open standard — a single AGENTS.md + .agents/skills/
    (Claude Code keeps CLAUDE.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 a prepare-script build (npm publish path
    removed).

📚 Knowledge & specs

  • module-map.yaml is now generated during init (no longer a manual step).
  • _index.md gains an aliases column + a shared glossary for better cross-module recall.
  • Oversized module READMEs are split into sub-modules automatically.
  • /prospec-verify dimension 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.yaml instead
    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.


Merged PRs

  • #2 skill-alignment
  • #3 ai-knowledge sub-modules
  • #4 spec-dir migration
  • #5 decouple verify from feature-spec
  • #6 Antigravity CLI
  • #7 install/package (pnpm)
  • #8 module-map generation
  • #9 BUG-001 knowledge opts
  • #10 /prospec-review (BL-037)
  • #11 /prospec-learn (BL-036)