Releases: dngioidev/forge
Release list
v1.1.0
v1.0.0 — the open-source flip
forge v1.0.0 — the open-source flip
forge is now open source under the MIT License. After building the entire platform through its own pipeline across the 0.x line, v1.0.0 marks the point where forge is stable, license-clean, and public: a portable AI delivery pipeline you can install into Claude Code today.
Describe the work as tickets. forge plans it, writes it, reviews it, gates it, and opens the pull request for you to merge — every change ticketed, trailed, and auditable.
Why 1.0, and why now
The 0.x line proved the thesis: an opinionated, mechanical delivery pipeline that an AI host can actually run end-to-end without turning into ad-hoc prompting. v1.0.0 is the commitment that the surface is stable and the project is ready for outside contributors.
Three things made this the moment:
- The pipeline builds itself. Every feature in this repo was ticketed, planned, gated, reviewed, and merged through the same skills forge ships. The README, the gates, and the roster you install are the ones that produced this repo.
- It's license-clean. As of v0.20.0 the dependency tree — npm and Python — is fully permissive, enforced by a
licensegate in CI with zero exceptions. The one non-permissive artifact (an LGPL desktop UI) was retired ahead of the flip. - The irreversible gates are cleared. The two pre-publish blockers that can't be undone once public — a full git-history secret/credential scan and the confidentiality audit — are complete and signed off.
What forge is
A plugin for Claude Code that installs a complete software-delivery pipeline:
- 20 pipeline skills across 5 lanes — front-of-pipeline (
ideate,brainstorm,spike,design,shape), build (plan,execute,execute-agents,deliver,ship,release), care (hotfix,respond,maintain), knowledge (distill,review,investigate), and scale (autopilot,triage,board). Each is a/forge:<skill>command. - A 12-role agent roster — planner, scoper, implementer, test-architect, reviewer, security, designer, design-reviewer, librarian, investigator, devops, second-opinion — each spawned with fresh context and a narrow tool set.
- GitHub Projects board automation with a ticket-trail law: every lifecycle moment is written back to the driving issue. No silent side-work.
- Mechanical ship gates — AC-mapping, plan-drift, doc-sync, test-intent, dep-guard, and license — enforced as scripts, plus an adversarial reviewer + security pass over the whole diff. Fail-closed.
- A learning loop + graph-RAG index — a distill flow that turns journal evidence into approved lessons, and a SQLite/ts-morph structural index that answers reuse and blast-radius questions before new code is written.
The road to 1.0 — headline capabilities
forge:autopilot— clear a board unattended: the full pipeline in a continuous loop, with an auto-triage front door and an automated merge bar that replaces the human PR gate only when every mechanical gate, the reviewer, the security pass, and CI are all green.- Runs on more than one host. The engine is host-agnostic Node. Claude Code is the primary host; Antigravity (
agy) is proven today —forge init --host agyemits a native agy plugin package with zero conversion. (Auto-merge stays Claude-only, by policy.) - The cockpit, re-architected as a permissive local web app — a FastAPI backend on
127.0.0.1(loopback-hardened against DNS-rebinding/CSRF, capability-token gated) serving a browser UI with a real xterm.js terminal over a websocket PTY bridge. Replaces the retired LGPL desktop app. - Resilience for real accounts — GraphQL rate-limit backoff for contributors running forge across multiple repos on one account.
- Safety by construction — a command denylist, PAT-free runner control, and a fail-closed merge bar that is the only sanctioned merge path.
Install
Run these inside Claude Code:
/plugin marketplace add dngioidev/forge
/plugin install forge@forge
/forge:init
/forge:init wires forge into the current project — adopt-vs-create, board setup, status line, hooks. See the install guide.
Prerequisites: Claude Code · Node ≥ 22.13 · pnpm 10.14+ · git + a GitHub account.
Laws worth knowing before you disagree with a gate
Ticket-first, always — silent side-work is forbidden. The owner merges every PR; unattended auto-merge is Claude-only by policy — other hosts stop at a green PR. Gates are mechanical scripts: run them, don't argue with them. "Unknown" is a valid answer.
Contributing
Contributions follow forge's own pipeline. Start with the Contributing guide, and all participation is governed by the Code of Conduct. To report a vulnerability, see SECURITY.md — private reporting, never a public issue.
License
forge is released under the MIT License.
The backlog goes in cold — the PR comes out forged.
v0.20.0
v0.20.0: 4 fixes, 6 features, 4 docs.
Fixes
- alias raw-hex UI values to smithy tokens (#368) (#370) (#368 #370)
- back off + retry on GitHub GraphQL rate limits (#360) (#366) (#360 #366)
- teach the license gate to see the Python dep tree (#349) (#357) (#349 #357)
- bump the README version badge in lockstep with the release (#341) (#341)
Features
- browser UI — split cockpit (#354) (#369) (#354 #369)
- PTY-over-websocket terminal bridge (#353) (#364) (#353 #364)
- harden the loopback backend (DNS-rebinding / CSRF / origin) (#352) (#363) (#352 #363)
- serve the Python cores over a 127.0.0.1 FastAPI backend (#351) (#362) (#351 #362)
- retire PySide6/PyInstaller — remove the LGPL artifact ahead of the web-app rebuild (#355) (#359) (#355 #359)
- add a license-compliance gate (SPDX allowlist) and register it (#345) (#345)
Docs
- cockpit UI split-cockpit visual spec (#354) (#367) (#354 #367)
- document the local-web-app model + reconcile ADR cross-refs (#356) (#365) (#356 #365)
- teach the denylist escalation path in role cards + delivery brief (#358) (#358)
- cockpit re-architecture findings + ADR-0008 (#344) (#348) (#344 #348)
Deploy notes
- Infra changed: no
- Migrations to run: no
v0.19.0
v0.19.0: 6 features, 2 tests, 2 refactoring, 1 docs, 11 fixes.
Features
- add --date override for the changelog/release date (#340) (#340)
- reject empty/garbage commit subjects in a conventions gate (#310) (#328) (#310 #328)
- guard README version-badge drift in the docsync gate (#327) (#327)
- harden forge-core transport — line cap, arg bounds, config teaching (#296) (#299) (#296 #299)
- forge-core MCP server + factored rpc.mjs transport (#288) (#295) (#288 #295)
- forge init --host agy emits the proven agy plugin package (#289) (#293) (#289 #293)
Tests
- cover issues.mjs error + upsertMarkedComment idempotency (#322) (#337) (#322 #337)
- contract-test agy safety shims (agy-deny + agy-capture) (#313) (#325) (#313 #325)
Refactoring
- single-source the denylist escalate message (#321) (#336) (#321 #336)
- single shared shell-segment splitter (#320) (#335) (#320 #335)
Docs
Fixes
- watchdog for the return-then-resume stall (#333) (#333)
- surface persistent poll failures instead of silent catch (#332) (#332)
- wire the runaway backstop (guardTripped) into the loop (#331) (#331)
- enforce the in-session merge-auth preflight in code (#330) (#330)
- gate the live merge through the tested merge bar (#329) (#329)
- sync README version badge to package.json + guard test (#308) (#326) (#308 #326)
- block rm long flags (--recursive --force) in denylist (#324) (#324)
- block pipe-to-shell / eval RCE in denylist (#311) (#323) (#311 #323)
- make forge dispatcher test bash-path portable (#302 dogfood) (#306) (#302 #306)
- board_escalate options bypass + escape decision-comment markdown (#300) (#301) (#300 #301)
- resolve ${CLAUDE_PLUGIN_ROOT} in emitted agy skills/commands (#294) (#298) (#294 #298)
Deploy notes
- Infra changed: no
- Migrations to run: no
v0.18.0
v0.18.0: 9 features, 1 fixes, 2 docs.
Features
- embedded pywinpty terminal + WSL session (#275) (#287) (#275 #287)
- usage/cost/token QtCharts panel (#274) (#286) (#274 #286)
- Claude usage/cost/token data core (#273) (#285) (#273 #285)
- packaging + cross-platform run docs (#268) (#284) (#268 #284)
- install/uninstall a runner service from the UI, secret-safe (#267) (#283) (#267 #283)
- runner control actions + log viewing (#266) (#282) (#266 #282)
- fleet overview screen with mis-target flags (#265) (#281) (#265 #281)
- fleet discovery + status core (#264) (#277) (#264 #277)
- PySide6 app shell + uv scaffold + interop helper (#272) (#276) (#272 #276)
Fixes
- make test-windows PATH-self-sufficient on the stripped self-hosted runner env (#278) (#279) (#278 #279)
Docs
- ADR-0006 accepted — PySide6 desktop cockpit, phased (#263) (#271) (#263 #271)
- managing-the-service cheat-sheet (#269) (#270) (#269 #270)
Deploy notes
- Infra changed: no
- Migrations to run: no
v0.17.1
v0.17.0
v0.17.0: 6 fixes, 5 features, 1 tests, 4 docs, 1 chores.
Fixes
- give the LocalSystem NSSM service gh on PATH + logging (#258) (#259) (#258 #259)
- -InstallService no longer aborts on a fresh install (#256) (#257) (#256 #257)
- auto-pin current actions/runner version + SHA at scaffold, warn on staleness (#249) (#249)
- distinct concurrency group for verify.runner.yml variant (#248) (#248)
- back off on build/container failure, not just mint (#247) (#247)
- make docker compose build/config succeed without a JIT config (#246) (#246)
Features
- service-install tooling for the supervisors (systemd --user + NSSM) (#255) (#255)
- add forge:runner-check adoption-readiness preflight (#250) (#250)
- runner-health check (ADR-0005 AC4, #225) (#231) (#225 #231)
- forge.json runner block + validation + docs (#226) (#230) (#226 #230)
- scaffold local self-hosted runner + private-only refusal (#224) (#229) (#224 #229)
Tests
Docs
- adoption guide + known-issues runbook (#243) (#244) (#243 #244)
- accept ADR-0005 local self-hosted runner (AC1 sign-off) (#180) (#228) (#180 #228)
- public-facing README + repo description/topics pass (#213) (#218) (#213 #218)
- add OSS community health files (#217) (#217)
Chores
Deploy notes
- Infra changed: no
- Migrations to run: no
v0.16.0
v0.16.0: 4 docs, 13 fixes, 2 features, 1 chores, 1 tests.
Docs
- re-init is a real fix for bare-node blank bar (§1/§2) (#208) (#208)
- wire SKILL to the forge-ci / forge-decisions monitors (#169) (#196) (#169 #196)
- fix stale skill/role counts and dead shell-windows link (#168) (#195) (#168 #195)
- remove stale Console daemon section (ADR-0003) (#194) (#194)
Fixes
- verify Status field actually moved after close.mjs mutation (#207) (#207)
- add .catch to isMain entrypoints so real I/O errors exit cleanly (#206) (#206)
- readJson returns null only for ENOENT, propagates real I/O errors (#185) (#205) (#185 #205)
- wire statusline with absolute node path, not bare
node(#203) (#203) - verify the Status field actually moved to Done after a done-move (#178) (#200) (#178 #200)
- quote-safe title idempotency lookup — no duplicate on quoted titles (#199) (#199)
- spec kill-switch names the situation gate, not removed forge-control (#193) (#193)
- kill-switch names the real situation gate, not removed forge-control (#191) (#191)
- document in-session merge-authorization requirement + run-start preflight (#179) (#190) (#179 #190)
- delivery-subagent brief must watch CI to green in-run and merge same run (#189) (#189)
- recognize localized (non-English) AC headings in readiness (#176) (#188) (#176 #188)
- exclude umbrella types (program/epic) from selectNext (#187) (#187)
- crash-safe run-ledger — atomic writeJson + guarded reader (#184) (#184)
Features
- expose statusline/agy/review CLIs; document monitors exclusion (#198) (#198)
- add self-audit documentation for plugin v0.15.0
Chores
Tests
Deploy notes
- Infra changed: no
- Migrations to run: no