What it is
Forge is a local dashboard for turning one concrete project goal into a reviewable AI-assisted work pass. You choose a repo and a focus. Forge writes the plan, lets an implementer agent patch an iteration branch, runs the configured checks, asks a reviewer agent for a verdict, and saves the branch, diff, logs, cost trail, Discord status card, and report for inspection.
The important word is bounded. Forge is not an autonomous "go ship my app" machine. It automates the mechanical handoff between agents while keeping the acceptance decision with the human.
The public page at forge.jhinx.dev is a static pitch for the current v6 direction. The real dashboard — now a Next.js app over the same Python engine — stays local and private, with a hosted private route (forge-app.jhinx.dev) only for my own authenticated checks.
Why I built it
My manual loop was useful but clunky: plan in one agent, implement in another, review in a third pass, then paste the next round by hand. That made the process slower than it needed to be, and it made evidence easy to lose.
Forge exists to make that loop repeatable. The useful output is not just "tests passed"; it is a branch I can inspect, a verdict I can read, and enough saved context to decide whether the work deserves another pass, a commit, or the trash.
What it does now
- Project configs — each project declares its iteration count, focus, roles, gates, approval mode, and forbidden paths.
- Cross-model roles — planner, implementer, and reviewer can be Claude, Codex, or a dual-review quorum.
- Run artifacts — every run keeps plans, stdout/stderr, diffs, gate logs, reviews, and a final report on disk.
- Dashboard — the local UI shows projects, preflight checks, run status, diffs, live console output, and approval controls.
- Kanade handoff — Kanade reads Forge project and run state and hands off mission-bound runs without writing Forge state directly; status cards flow back the other way through the relay, so the two tools behave like one loop.
- Task board — a multi-agent board turns a queue of bounded goals into an unattended dispatcher that drains work across projects, while the per-run plan / implement / review gates stay intact.
- Persona voices — Forge-local persona records can shape planner, implementer, and reviewer prompts for mission work.
- Cost controls — DeepSeek runs carry estimates, live cost events, and cap-aware halted states.
- Discord relay — a CT-hosted bot posts status-card embeds and routes replies back to the Windows Forge backend.
- Safety rails — dirty trees are refused, forbidden paths are enforced, no-op iterations are recorded honestly, and human approval can pause the loop.
What I learned
- The boring artifact trail is the product. A good run is not just "the gate passed." It is a branch, a diff, a plan, logs, review notes, and enough context to decide whether the branch deserves to live.
- Multiple agents need explicit job boundaries. Planner, implementer, and reviewer prompts have to be narrow, and the code has to guard against read-only roles mutating the tree anyway.
- A local dashboard changes the ergonomics. Watching the run, approval state, and diff in one place turns a pile of subprocesses into a workflow I can actually trust.
- Public demos need a different posture. The useful app is local and private, but the public page can still explain the loop without exposing private repos, auth routes, or live operational state.
Status & next steps
Forge is verified locally with CLI runs, dashboard-triggered runs, chained iterations, human approval, dual-reviewer quorum behavior, a private hosted dashboard route, a persistent CT-hosted Discord relay, and Kanade dogfood runs.
The preview at forge.jhinx.dev is the public product pitch for the v6 direction, not the running app. v6 moved the dashboard off SvelteKit onto Next.js, wired the Kanade↔Forge handoff both ways, and added the multi-agent task board. Open work is practical: land the v6 dashboard, prove a real paid DeepSeek iteration, tighten the Windows background runner, and keep the public page free of private dashboard/source links.
