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-runpreview (normative). Any phase (orforgeend-to-end) runs fully but mutates nothing real: writes are redirected under{FEATURE_DIR}/.forge-dry-run/<phase>/,.forge-status.ymlis untouched, no external side-effects fire, and each phase emits aDRY-RUN-REPORT.mdof what would change. Composes with--ci.- Cross-model code review.
code-review --cross-modelexports the consolidatedgate-review.md+ diff as a portable package, has a different model review it out-of-band, and ingests its findings back into the singleF-NNNnamespace (reviewed_by_modelstamped on the gate). - Parallel implementation.
implement --parallelruns 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-verifyLayer 10 /verify-fullLayer 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.
retrospectivepromotes a lesson that recurs across features into a reusable skill viaskill_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 viaPRODUCT_FORGE_COST_RATE_IN/OUTor--rate-in/out).- Phase-map single source.
docs/schema/phase-map.ymlis the canonical phase set + per-mode applicability matrix; the twoforge.mdtables 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.jsmatchedname: completedanywhere, so a sibling block keyed by phase name falsely marked phases complete → spurious errors + false--strictFAIL. Now scoped to thephases:block. - Layer-count report templates (HIGH).
sync-verify's report still emitted{1-9}/{N}/9after Layer 10 was added — fixed to{1-10}/{N}/{applicable}. - Gate carrier schema.
reviewed_by_model+cross_model_findingsadded to the canonical schema and runtime §6 audit trail. skills_promotedread-back.retrospectivenow 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.zipClaude 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