Skip to content

v5.0.0 — SpecForge: Autonomous Spec-Driven & TDD Assembly Line

Choose a tag to compare

@jefmonjor jefmonjor released this 05 Oct 09:02
· 42 commits to main since this release

SpecForge 5 keeps the v4 core and its one rule, verify, don't trust, and brings back what v3 did well: legacy migrations and ready-made projects.

Install

R=https://github.com/jefmonjor/specforge/releases/download/v5.0.0
F=specforge-darwin-arm64   # or darwin-amd64, linux-amd64, linux-arm64
curl -LO $R/$F && curl -LO $R/checksums.txt
sha256sum -c checksums.txt --ignore-missing   # macOS: shasum -a 256 -c …
chmod +x $F && sudo mv $F /usr/local/bin/specforge
specforge version   # specforge v5.0.0 (1165adc, …)

On Windows, download specforge-windows-amd64.exe, rename it to specforge.exe and put it in a folder on your PATH. Then follow the quickstart and the user guide.

What's new in 5.0

🏛 Legacy rewrites, verified

  • legacy scan: a measured inventory of the old code (build, declared Java release, frameworks found from imports) and what each finding means for Java 21.
  • legacy map: the business capabilities of the legacy system, in migration order. Every path:line the agent cites is opened; an invented source sends the document back.
  • spec from-legacy "<capability>": one specification per capability, with the real values and messages, a Legacy sources section, and every oddity in the old code turned into a question for you.
  • The legacy repository is read-only: SpecForge hashes it around every agent turn and refuses any change.
  • A migration gate: the build must declare the target release, and no source may import javax.servlet, Log4j 1, JUnit 3, Vector… ArchUnit checks the layers.

🧰 New projects with the tooling wired

setup --new java|react|python|go, each one installed and run end to end before shipping:

  • java: Java 21 Maven, JUnit 6, AssertJ, ArchUnit layer rules, PMD.
  • react: Vite 7, React 19, strict TypeScript, Vitest 4.0, Testing Library, ESLint, Knip, jscpd, Stryker.
  • python: src/ layout, pytest, Ruff (from the project's .venv).
  • go: go.mod, golangci-lint v2.

🔧 Sharper gates and runners

  • Java lint with PMD; Python uses the .venv's pytest and Ruff; Maven and Gradle wrappers are preferred.
  • The duplication gate counts source code only (a real React run had package-lock.json failing it).
  • Answering a question during plan no longer rejects the plan.
  • Windows: atomic file replacement and test fixes.

📖 Documentation

A README and a user guide that read on a phone, with what you edit and what SpecForge writes, recipes for everyday tasks, and a real Java 6 → 21 migration in docs/DEMO.md.

Full changelog: v3.0.0...v5.0.0