Skip to content

Releases: dngioidev/forge

v1.1.0

Choose a tag to compare

@dngioidev dngioidev released this 05 Aug 10:46

v1.1.0: 1 docs, 1 features, 2 fixes.

Docs

  • session usage-window detection for autopilot self-pause (#378) (#381) (#378 #381)

Features

  • self-pause + auto-continue near the 5h session usage window (#378) (#382) (#378 #382)

Fixes

  • pin the delivery subagent spawn to model: sonnet (#380) (#380)
  • emit plugin-root-relative paths so the emitted package is relocatable (#307) (#377) (#307 #377)

Deploy notes

  • Infra changed: no
  • Migrations to run: no

v1.0.0 — the open-source flip

Choose a tag to compare

@dngioidev dngioidev released this 04 Aug 12:35

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 license gate 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 agy emits 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

Choose a tag to compare

@dngioidev dngioidev released this 04 Aug 10:29

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

Choose a tag to compare

@dngioidev dngioidev released this 01 Aug 20:24

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

Docs

  • narrow denylist header comment to its actual scope (#334) (#334)

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

Choose a tag to compare

@dngioidev dngioidev released this 24 Jul 22:54

v0.18.0: 9 features, 1 fixes, 2 docs.

Features

Fixes

  • make test-windows PATH-self-sufficient on the stripped self-hosted runner env (#278) (#279) (#278 #279)

Docs

Deploy notes

  • Infra changed: no
  • Migrations to run: no

v0.17.1

Choose a tag to compare

@dngioidev dngioidev released this 24 Jul 08:13

v0.17.1: 1 fixes.

Fixes

  • repo-scoped service name + explicit target so one host serves many repos (#260) (#261) (#260 #261)

Deploy notes

  • Infra changed: no
  • Migrations to run: no

v0.17.0

Choose a tag to compare

@dngioidev dngioidev released this 23 Jul 20:31

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

  • raise vitest timeout for the slower self-hosted runner (#251) (#252) (#251 #252)

Docs

Chores

  • OSS gate — full-history secret scan + repeatable tooling (#210) (#216) (#210 #216)

Deploy notes

  • Infra changed: no
  • Migrations to run: no

v0.16.0

Choose a tag to compare

@dngioidev dngioidev released this 23 Jul 03:42

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

  • add MIT LICENSE + license field to manifests (#197) (#197)

Tests

Deploy notes

  • Infra changed: no
  • Migrations to run: no

v0.15.0

Choose a tag to compare

@dngioidev dngioidev released this 21 Jul 12:50

v0.15.0: 1 features.

Features

  • inline-output fix + shared core + read-only ask helper + features.agy (#162) (#163) (#162 #163)

Deploy notes

  • Infra changed: no
  • Migrations to run: no

v0.14.0

Choose a tag to compare

@dngioidev dngioidev released this 21 Jul 12:20

v0.14.0: 1 features.

Features

Deploy notes

  • Infra changed: no
  • Migrations to run: no