Skip to content

v1.7.0 — "Ivysaur"

Latest

Choose a tag to compare

@VaiYav VaiYav released this 13 Jun 16:23
· 2 commits to main since this release

Product Forge v1.7.0 — "Ivysaur"

A full product-lifecycle orchestrator that ships from one repo in two installable forms (SpecKit extension + Claude Code plugin). This release adds seven roadmap features, each executable and guarded by a deterministic lint-docs/doctor check, followed by an independent two-reviewer code review whose findings are folded in.

✨ New

  • --dry-run preview (normative). Any phase (or forge end-to-end) runs fully but mutates nothing real: writes are redirected under {FEATURE_DIR}/.forge-dry-run/<phase>/, .forge-status.yml is untouched, no external side-effects fire, and each phase emits a DRY-RUN-REPORT.md of what would change. Composes with --ci.
  • Cross-model code review. code-review --cross-model exports the consolidated gate-review.md + diff as a portable package, has a different model review it out-of-band, and ingests its findings back into the single F-NNN namespace (reviewed_by_model stamped on the gate).
  • Parallel implementation. implement --parallel runs path-disjoint task groups concurrently (independence proven by the portfolio conflict matrix), reconciled serially under the state-lock with a single human gate. policy §1.1 carve-out (intra-phase only).
  • Constitution↔code drift layer. sync-verify Layer 10 / verify-full Layer 11 re-assert the project architecture constitution (resilience / EDA / layering / security) against the code as a standing check, not just at planning time.
  • Lessons → reusable skills. retrospective promotes a lesson that recurs across features into a reusable skill via skill_manage (Hermes host) — cross-project, cross-session, idempotent.
  • status --cost. Rolls up per-phase token / tool-call telemetry per feature and across the portfolio (dollar cost when a rate is supplied via PRODUCT_FORGE_COST_RATE_IN/OUT or --rate-in/out).
  • Phase-map single source. docs/schema/phase-map.yml is the canonical phase set + per-mode applicability matrix; the two forge.md tables render it and the linter (PHASEMAP rule) enforces agreement — killing the phase-map drift class, mirroring the enum single-source.

🛠 Fixed (independent code review)

A two-reviewer pass (Node-scripts + doc-contract integrity); all findings reproduced and fixed, each lint-rule fix carrying a regression test.

  • Phase-status scope (HIGH). validate-traceability.js matched name: completed anywhere, so a sibling block keyed by phase name falsely marked phases complete → spurious errors + false --strict FAIL. Now scoped to the phases: block.
  • Layer-count report templates (HIGH). sync-verify's report still emitted {1-9} / {N}/9 after Layer 10 was added — fixed to {1-10} / {N}/{applicable}.
  • Gate carrier schema. reviewed_by_model + cross_model_findings added to the canonical schema and runtime §6 audit trail.
  • skills_promoted read-back. retrospective now reads the carrier to drive create-vs-patch idempotency; added to the lint CARRIER registry.
  • Token-telemetry producer. Added the producer hook in runtime §8.1a (host-dependent) and corrected overstated "already captures" wording.
  • Lint-rule precision. LAYER-COUNT no longer false-positives on both-owner lines; SCRIPT-PATH is per-occurrence; PHASEMAP flags empty/word-form cells; cost-report num() handles decimals + thousands separators.

📦 Install

SpecKit extension:

specify extension add product-forge --from https://github.com/VaiYav/speckit-product-forge/archive/refs/tags/v1.7.0.zip

Claude Code plugin:

claude plugin marketplace add VaiYav/speckit-product-forge@v1.7.0
claude plugin install speckit-product-forge@vaiyav-plugins

✅ Quality gate

31 commands · doctor 15 checks green · lint-docs clean (11 consistency rules) · 6 script self-tests (84 assertions) · claude plugin validate ✔.

Full changelog: https://github.com/VaiYav/speckit-product-forge/blob/v1.7.0/CHANGELOG.md
Compare: v1.6.0...v1.7.0