forgecraft 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +105 -0
- package/LICENSE +21 -0
- package/README.md +458 -0
- package/dist/chunk-2HFEPXBV.js +2808 -0
- package/dist/chunk-2HFEPXBV.js.map +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +1405 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/index.d.ts +389 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/package.json +64 -0
- package/templates/forge.config.json +11 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to ForgeAI are documented here.
|
|
4
|
+
|
|
5
|
+
## [1.0.0] - 2026-03-15
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- **`forge doctor`** — diagnose setup issues: checks Node, Git, Claude CLI, auth, framework tools, GitHub CLI
|
|
9
|
+
- **`forge diff <v1> [v2]`** — show colorized diff between any two versions, tags, or commits with summary stats
|
|
10
|
+
- **`forge clean`** — reset sprint state (plan, snapshots, designs) while preserving config; `--snapshots` flag for partial clean
|
|
11
|
+
- **`forge export`** — export sprint plan as formatted markdown with checkboxes, dependencies, and progress
|
|
12
|
+
- **Config validation** — validates `forge.config.json` on every command with clear error messages and fix suggestions
|
|
13
|
+
- **Graceful shutdown** — SIGINT/SIGTERM handler saves plan state and commits progress before exit; shows `forge resume` hint
|
|
14
|
+
- **`add-story` in `forge fix`** — when the Orchestrator detects a new feature request, it now actually adds the story to the plan (was a TODO stub)
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- **Pipeline rewrite** — step-by-step Pipeline no longer creates feature branches (was causing merge conflicts); builds on main with per-story commits, matching the AutoPipeline strategy
|
|
18
|
+
- **Framework-aware Orchestrator** — plan generation prompt now includes framework name, language, design support status; example JSON uses the actual configured framework
|
|
19
|
+
- **JSON validation** — plan generation now validates the response has required fields (epics array) and provides clear error messages on malformed JSON
|
|
20
|
+
- **Routing fallback** — `routeUserInput` returns a text answer instead of crashing when the AI returns non-JSON
|
|
21
|
+
- **Regen depth limit** — `runPlanPhase` recursion capped at 5 attempts to prevent stack overflow
|
|
22
|
+
- **Design phase skip** — Pipeline auto-skips design for frameworks without Storybook support (Django)
|
|
23
|
+
- **Review error handling** — Pipeline review phase now catches errors per-story instead of crashing the entire phase
|
|
24
|
+
- **Worker constructor** — all callers updated to use the new `(config, sandboxOpts, mute)` signature
|
|
25
|
+
- **Removed peerDependencies** — `next` and `@storybook/react` removed from package.json (this is a CLI tool, not a library that depends on frameworks)
|
|
26
|
+
- **18 total commands** — up from 14 in v0.3
|
|
27
|
+
- **Version bumped** to 1.0.0
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
- Worker constructor mismatch: Pipeline was calling `new Worker(config)` but Worker requires 2-3 args — runtime crash
|
|
31
|
+
- `forge fix` created feature branches and merge conflicts — now works on main
|
|
32
|
+
- `forge fix` "add-story" action showed success message but never actually added the story to the plan
|
|
33
|
+
- Orchestrator plan prompt hardcoded `"framework": "nextjs"` in example JSON
|
|
34
|
+
- Pipeline review phase had no error handling — one failed review crashed all subsequent reviews
|
|
35
|
+
- `forge init` showed "Coming in v0.4" for Flutter — updated to generic "coming soon"
|
|
36
|
+
- Unused `processingQueue` property removed from AutoPipeline
|
|
37
|
+
|
|
38
|
+
## [0.3.0] - 2026-03-14
|
|
39
|
+
|
|
40
|
+
### Added
|
|
41
|
+
- **React + Vite adapter** — `forge init` now supports React + Vite (TypeScript SPA with Tailwind, React Router, Vite)
|
|
42
|
+
- **Django adapter** — `forge init` now supports Django (Python + DRF + django-cors-headers)
|
|
43
|
+
- **Framework adapter system** — pluggable adapter architecture in `src/core/adapters/` so adding new frameworks is straightforward
|
|
44
|
+
- **`forge map`** — terminal sprint visualization showing stories as a tree with status icons, dependency arrows, progress bar, and git tags
|
|
45
|
+
- **`forge resume`** — resume an interrupted sprint from where it left off, with option to retry blocked stories
|
|
46
|
+
- **Token expiry handling** — Worker and Orchestrator detect auth/token errors (401, expired session), notify the user, and automatically retry after re-authentication (up to 3 attempts, 30s between retries)
|
|
47
|
+
- **Chat queue improvements** — readline no longer conflicts with ora spinners, shows `[queued #N]` confirmation with count, re-shows input hint after each queued message
|
|
48
|
+
- **Progress save on error** — pipeline saves plan state and commits before failing, so no work is lost on crashes or auth expiry
|
|
49
|
+
- **Framework-aware prompts** — Worker build/review/fix prompts now include framework-specific instructions (Next.js App Router, Vite config, Django migrations, etc.)
|
|
50
|
+
|
|
51
|
+
### Changed
|
|
52
|
+
- **State Manager caching** — in-memory cache with mtime validation avoids redundant disk reads; directory creation cache skips repeated `mkdir` calls
|
|
53
|
+
- **Worker memory optimization** — removed `messages[]` array from WorkerResult (was storing every SDK message in memory); only tracks files, errors, usage, summary
|
|
54
|
+
- **Git operation reduction** — branch name caching, repo verification caching, `commitAll` catches "nothing to commit" instead of running a separate `status` check
|
|
55
|
+
- **Version bumped** to 0.3.0
|
|
56
|
+
|
|
57
|
+
### Fixed
|
|
58
|
+
- readline `output: process.stdout` was interfering with ora spinners — now uses `terminal: false`
|
|
59
|
+
- Git `ensureMainBranch` was listing all branches even when already on main
|
|
60
|
+
|
|
61
|
+
## [0.2.0] - 2026-03-13
|
|
62
|
+
|
|
63
|
+
### Added
|
|
64
|
+
- **Autonomous mode** (`forge auto`) — fully autonomous pipeline with no human gates (except review gate after build)
|
|
65
|
+
- **Parallel story execution** — stories grouped by dependency, independent stories built concurrently with `Promise.all`
|
|
66
|
+
- **`forge undo`** — interactive commit selection with `git revert`, conflict handling, story status reset
|
|
67
|
+
- **`forge history`** — version timeline with checkpoints, color-coded activity log
|
|
68
|
+
- **`forge checkout`** — jump to any forge tag or commit hash
|
|
69
|
+
- **Design import** (`forge design --import <path>`) — import screenshots/mockups as design references
|
|
70
|
+
- **GitHub Issues sync** — `GitHubSync` class creates/updates GitHub Issues with labels from sprint plan
|
|
71
|
+
- **Safety caps** — per-mode turn limits (design: 30, build: 50, review: 20, fix: 15) prevent agent loops
|
|
72
|
+
- **Review gate** — pause after build phase with notification sound, user chooses: continue/skip/abort
|
|
73
|
+
- **Live elapsed timer** — `[M:SS]` prefix on all spinner text, 1s interval keeps ticking during agent thinking
|
|
74
|
+
- **Sound notifications** — macOS `afplay`, Linux `paplay`, fallback terminal bell
|
|
75
|
+
- **Auto-generated README** — Worker generates README.md based on plan + actual code after build
|
|
76
|
+
- **GitHub Pages deploy** (`--deploy` flag) — configures next.config for static export + GitHub Actions workflow
|
|
77
|
+
- **`--skip-design`** flag — skip Storybook design phase for faster builds
|
|
78
|
+
- **`--mute`** flag — suppress notification sounds
|
|
79
|
+
- **`--quiet`** flag — spinners only, hide tool details
|
|
80
|
+
- **Auth check** — verifies Claude Code CLI is installed and logged in before running
|
|
81
|
+
- **SEO/assets in prompts** — favicon, og.png, metadata, robots.txt, sitemap.xml, manifest.json
|
|
82
|
+
|
|
83
|
+
### Changed
|
|
84
|
+
- Git strategy: build on `main` with per-story commits + tags (no more feature branches in auto mode — prevents merge conflicts)
|
|
85
|
+
- Token usage display: uses `=` not `+=` for SDK cumulative totals
|
|
86
|
+
|
|
87
|
+
### Fixed
|
|
88
|
+
- Merge conflicts during autonomous mode caused by multiple branches adding same config files
|
|
89
|
+
- Token usage double-counting from SDK result messages
|
|
90
|
+
- Agent infinite loops (now capped by `MODE_MAX_TURNS`)
|
|
91
|
+
|
|
92
|
+
## [0.1.0] - 2026-03-12
|
|
93
|
+
|
|
94
|
+
### Added
|
|
95
|
+
- Initial release
|
|
96
|
+
- Two-agent architecture: Orchestrator (plans, routes, reviews) + Worker (design, build, review, fix modes)
|
|
97
|
+
- Step-by-step pipeline: `forge plan` → `forge design` → `forge build` → `forge review`
|
|
98
|
+
- `forge sprint` — full pipeline with human gates between phases
|
|
99
|
+
- `forge init` — initialize project with framework/model selection
|
|
100
|
+
- `forge status` — show sprint progress
|
|
101
|
+
- `forge fix` — targeted bug fixes and small changes
|
|
102
|
+
- Next.js support with App Router, Tailwind CSS, shadcn/ui
|
|
103
|
+
- Storybook design previews with CSF3 format
|
|
104
|
+
- Git integration with per-story commits, tags, and snapshots
|
|
105
|
+
- `.forge/` directory for state management (plan.json, state.json, snapshots/)
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Joel John
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://img.shields.io/npm/v/forgeai?style=flat-square&color=000" alt="npm version" />
|
|
3
|
+
<img src="https://img.shields.io/badge/node-%3E%3D18-000?style=flat-square" alt="node version" />
|
|
4
|
+
<img src="https://img.shields.io/github/license/joeljohn159/forgeai?style=flat-square&color=000" alt="license" />
|
|
5
|
+
<img src="https://img.shields.io/badge/frameworks-Next.js%20%7C%20React%20%7C%20Django-000?style=flat-square" alt="frameworks" />
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
<h1 align="center">ForgeAI</h1>
|
|
9
|
+
|
|
10
|
+
<p align="center">
|
|
11
|
+
<strong>Ship production apps from a single sentence.</strong><br/>
|
|
12
|
+
An AI orchestration framework that plans, designs, builds, reviews, and deploys software<br/>using a structured multi-agent pipeline — not a chat window.
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<br/>
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
$ forge auto "a personal finance tracker with budget categories, expense logging, and monthly reports"
|
|
19
|
+
|
|
20
|
+
forge auto
|
|
21
|
+
sandbox on · type a message anytime to queue feedback
|
|
22
|
+
|
|
23
|
+
[0:03] Plan ready
|
|
24
|
+
|
|
25
|
+
Personal Finance Tracker · nextjs
|
|
26
|
+
12 stories across 4 epics
|
|
27
|
+
|
|
28
|
+
Layout & Navigation
|
|
29
|
+
[full] App shell with sidebar navigation
|
|
30
|
+
[full] Dashboard landing page
|
|
31
|
+
Expense Management
|
|
32
|
+
[full] Add expense form with categories
|
|
33
|
+
[full] Expense list with filters
|
|
34
|
+
[ui] Category management page
|
|
35
|
+
Budget Tracking
|
|
36
|
+
[full] Budget setup per category
|
|
37
|
+
[ui] Budget vs actual progress bars
|
|
38
|
+
[full] Budget alerts and notifications
|
|
39
|
+
Reports
|
|
40
|
+
[ui] Monthly expense breakdown chart
|
|
41
|
+
[ui] Category pie chart
|
|
42
|
+
[full] Export to CSV
|
|
43
|
+
[full] Date range selector
|
|
44
|
+
|
|
45
|
+
Build · 12 stories
|
|
46
|
+
|
|
47
|
+
[0:15] [1/12] App shell with sidebar navigation · 8 files 2.1k in / 18.4k out
|
|
48
|
+
[0:48] [2/12] Dashboard landing page · 4 files 1.8k in / 12.1k out
|
|
49
|
+
[1:22] parallel: Add expense form, Category management
|
|
50
|
+
[2:01] [3/12] Add expense form with categories · 6 files 2.4k in / 21.0k out
|
|
51
|
+
[2:01] [4/12] Category management page · 3 files 1.2k in / 9.8k out
|
|
52
|
+
...
|
|
53
|
+
|
|
54
|
+
[14:02] Pushed to GitHub
|
|
55
|
+
─────────────────────────────────
|
|
56
|
+
Done in 14m 23s · 12/12 stories
|
|
57
|
+
28.4k in / 198.2k out
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
<br/>
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
<br/>
|
|
65
|
+
|
|
66
|
+
## The Problem
|
|
67
|
+
|
|
68
|
+
Every AI coding tool today works the same way: you type into a chat, the AI writes some code, you paste it in, something breaks, you go back and forth. There is no structure, no planning, no design phase, no review. You are the project manager, the QA engineer, and the glue holding it all together.
|
|
69
|
+
|
|
70
|
+
ForgeAI replaces that entire loop.
|
|
71
|
+
|
|
72
|
+
<br/>
|
|
73
|
+
|
|
74
|
+
## How It Works
|
|
75
|
+
|
|
76
|
+
ForgeAI runs a complete software development pipeline autonomously. One command, six phases, zero copy-pasting.
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
PLAN DESIGN BUILD REVIEW PUSH SHIP
|
|
80
|
+
──── ────── ───── ────── ──── ────
|
|
81
|
+
Break into Generate Implement QA check Auto-push Tag, merge,
|
|
82
|
+
epics & Storybook each story each story, commits & deploy
|
|
83
|
+
stories previews with full auto-fix tags to
|
|
84
|
+
CLI power minor issues GitHub
|
|
85
|
+
|
|
86
|
+
Orchestrator Worker Worker Worker Git Git
|
|
87
|
+
Agent (design mode) (build mode) (review mode) Manager Manager
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Each phase has a clear input, a clear output, and a gate between them. Stories that don't depend on each other build **in parallel**. After everything completes, the project is **automatically pushed to GitHub** (if a remote is configured). The whole thing runs on `main` with per-story commits and tags for easy rollback.
|
|
91
|
+
|
|
92
|
+
<br/>
|
|
93
|
+
|
|
94
|
+
## Quick Start
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# Prerequisites: Node 18+, Claude Code CLI (logged in)
|
|
98
|
+
|
|
99
|
+
# Install globally
|
|
100
|
+
npm install -g forgeai
|
|
101
|
+
|
|
102
|
+
# Create a new project directory
|
|
103
|
+
mkdir my-app && cd my-app
|
|
104
|
+
|
|
105
|
+
# Initialize (choose Next.js, React+Vite, or Django)
|
|
106
|
+
forge init
|
|
107
|
+
|
|
108
|
+
# Build something
|
|
109
|
+
forge auto "a task management app with projects, due dates, and team assignment"
|
|
110
|
+
|
|
111
|
+
# Start the dev server
|
|
112
|
+
forge start
|
|
113
|
+
|
|
114
|
+
# If interrupted, resume where you left off
|
|
115
|
+
forge resume
|
|
116
|
+
|
|
117
|
+
# Fix a bug (supports screenshots)
|
|
118
|
+
forge fix "the sidebar overlaps on mobile" --image screenshot.png
|
|
119
|
+
|
|
120
|
+
# Push to GitHub manually (auto-push happens after forge auto)
|
|
121
|
+
forge push
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
That's it. Come back in 15 minutes to a working app with proper types, responsive design, SEO metadata, favicons, and a README — already pushed to your repo.
|
|
125
|
+
|
|
126
|
+
<br/>
|
|
127
|
+
|
|
128
|
+
## Features
|
|
129
|
+
|
|
130
|
+
### Structured Pipeline, Not a Chat
|
|
131
|
+
Every project goes through Plan, Design, Build, Review, Push. Each phase has specialized prompts, tool permissions, and quality gates. The AI doesn't just write code — it writes code that builds, lints, and type-checks before moving on.
|
|
132
|
+
|
|
133
|
+
### Two-Agent Architecture
|
|
134
|
+
Instead of one monolithic agent or a swarm of disconnected ones, ForgeAI uses two:
|
|
135
|
+
|
|
136
|
+
- **Orchestrator** — The tech lead. Plans the sprint, crafts detailed prompts for each story, routes your feedback, reviews output. Never touches code.
|
|
137
|
+
- **Worker** — The engineer. Same agent, four modes (`design`, `build`, `review`, `fix`), each with different system prompts and tool permissions. Preserves context across the entire build.
|
|
138
|
+
|
|
139
|
+
### Parallel Execution
|
|
140
|
+
Stories are grouped by dependency. Independent stories build concurrently using `Promise.all`, cutting total build time significantly. A 12-story app that takes 45 minutes sequentially finishes in ~15 minutes.
|
|
141
|
+
|
|
142
|
+
### Live Feedback Loop
|
|
143
|
+
Type a message at any point during the build. It gets queued and processed at the next safe point between stories. The Orchestrator classifies your input and routes it:
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
"make the header sticky" → Worker fix mode
|
|
147
|
+
"redesign the settings page" → Worker design mode → build mode
|
|
148
|
+
"the API returns 404 on /expenses" → Worker fix mode (debug)
|
|
149
|
+
"add a dark mode toggle" → New story added to sprint
|
|
150
|
+
"what's the database schema?" → Orchestrator answers directly
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Screenshot-Based Bug Fixing
|
|
154
|
+
Pass a screenshot to `forge fix` and Claude reads the image to understand the visual issue:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
forge fix "the button is cut off on mobile" --image screenshot.png
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Auto-Push to GitHub
|
|
161
|
+
After `forge auto` or `forge resume` completes, commits and tags are automatically pushed to your GitHub remote. No manual `git push` needed. If the push fails, a warning is shown and you can retry with `forge push`.
|
|
162
|
+
|
|
163
|
+
### Safety Caps
|
|
164
|
+
Each worker mode has a maximum turn limit (`design: 30`, `build: 50`, `review: 20`, `fix: 15`). If an agent gets stuck in a loop, it stops gracefully instead of burning through your usage.
|
|
165
|
+
|
|
166
|
+
### Review Gate
|
|
167
|
+
After the build phase completes, ForgeAI pauses and plays a notification sound. You choose: continue to review, skip review, or abort. You're always in control.
|
|
168
|
+
|
|
169
|
+
### Production Defaults
|
|
170
|
+
Every project gets the things most AI tools forget:
|
|
171
|
+
- `favicon.ico`, `icon.svg`, `apple-touch-icon.png`
|
|
172
|
+
- Open Graph image (`og.png`) for social sharing
|
|
173
|
+
- Complete metadata — title, description, OG tags, Twitter cards
|
|
174
|
+
- `robots.txt`, `sitemap.xml`, `manifest.json`
|
|
175
|
+
- `next/image` for all images
|
|
176
|
+
- Auto-generated `README.md` based on what was actually built
|
|
177
|
+
|
|
178
|
+
### Multi-Framework Support
|
|
179
|
+
ForgeAI isn't locked to one framework. Each adapter knows how to scaffold, build, lint, and run a project in its stack:
|
|
180
|
+
|
|
181
|
+
| Framework | Language | Design Phase | Status |
|
|
182
|
+
|-----------|----------|-------------|--------|
|
|
183
|
+
| **Next.js** | TypeScript | Storybook | Stable |
|
|
184
|
+
| **React + Vite** | TypeScript | Storybook | Stable |
|
|
185
|
+
| **Django** | Python | Skipped | Stable |
|
|
186
|
+
| Flutter | Dart | — | Planned |
|
|
187
|
+
|
|
188
|
+
Worker prompts automatically adapt to the framework — Next.js gets App Router instructions, Vite gets SPA routing, Django gets migration commands.
|
|
189
|
+
|
|
190
|
+
### Sprint Resume
|
|
191
|
+
If a build gets interrupted (auth expires, network drops, you close the terminal), your progress is saved. Run `forge resume` to pick up exactly where you left off. Blocked stories can be retried.
|
|
192
|
+
|
|
193
|
+
### Optional GitHub Pages Deploy
|
|
194
|
+
Pass `--deploy` and ForgeAI configures `next.config` for static export and creates a GitHub Actions workflow for automatic deployment.
|
|
195
|
+
|
|
196
|
+
<br/>
|
|
197
|
+
|
|
198
|
+
## Commands
|
|
199
|
+
|
|
200
|
+
### Autonomous Mode (recommended)
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
forge auto "description" # Full autonomous pipeline (auto-pushes to GitHub)
|
|
204
|
+
forge auto "description" --skip-design # Skip Storybook previews (faster)
|
|
205
|
+
forge auto "description" --deploy # Add GitHub Pages deployment
|
|
206
|
+
forge auto "description" --mute # No notification sounds
|
|
207
|
+
forge auto "description" --quiet # Spinners only, no tool details
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Step-by-Step Mode
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
forge init # Initialize ForgeAI in current directory
|
|
214
|
+
forge plan "description" # Generate sprint plan
|
|
215
|
+
forge design # Generate Storybook design previews
|
|
216
|
+
forge build # Build stories sequentially
|
|
217
|
+
forge review # Run QA review on built stories
|
|
218
|
+
forge sprint "description" # Run full pipeline with human gates
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Run & Deploy
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
forge start # Start the dev server (auto-detects framework)
|
|
225
|
+
forge push # Push commits + tags to GitHub
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Utilities
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
forge status # Show current sprint progress
|
|
232
|
+
forge map # Visual sprint map with status + dependencies
|
|
233
|
+
forge diff <v1> [v2] # Show changes between two versions
|
|
234
|
+
forge fix "description" # Fix a bug or make a small change
|
|
235
|
+
forge fix "desc" --image <path> # Fix with a screenshot for visual context
|
|
236
|
+
forge undo # Revert the last agent action
|
|
237
|
+
forge resume # Resume an interrupted sprint (auto-pushes)
|
|
238
|
+
forge history # Show version timeline and activity log
|
|
239
|
+
forge checkout <version> # Jump to a specific version or checkpoint
|
|
240
|
+
forge export # Export sprint plan as markdown
|
|
241
|
+
forge clean # Reset sprint state (keeps config)
|
|
242
|
+
forge doctor # Diagnose setup issues
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
<br/>
|
|
246
|
+
|
|
247
|
+
## Architecture
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
src/
|
|
251
|
+
├── cli/
|
|
252
|
+
│ ├── index.ts # CLI entry point (commander)
|
|
253
|
+
│ └── commands/
|
|
254
|
+
│ ├── auto.ts # forge auto — autonomous mode
|
|
255
|
+
│ ├── resume.ts # forge resume — resume interrupted sprint
|
|
256
|
+
│ ├── start.ts # forge start — start dev server
|
|
257
|
+
│ ├── push.ts # forge push — push to GitHub
|
|
258
|
+
│ ├── init.ts # forge init
|
|
259
|
+
│ ├── plan.ts # forge plan
|
|
260
|
+
│ ├── design.ts # forge design
|
|
261
|
+
│ ├── build.ts # forge build
|
|
262
|
+
│ ├── review.ts # forge review
|
|
263
|
+
│ ├── sprint.ts # forge sprint
|
|
264
|
+
│ ├── status.ts # forge status
|
|
265
|
+
│ ├── map.ts # forge map — visual sprint map
|
|
266
|
+
│ ├── fix.ts # forge fix (supports --image)
|
|
267
|
+
│ ├── undo.ts # forge undo
|
|
268
|
+
│ └── history.ts # forge history + forge checkout
|
|
269
|
+
│
|
|
270
|
+
├── core/
|
|
271
|
+
│ ├── orchestrator/
|
|
272
|
+
│ │ ├── index.ts # Orchestrator agent — plans, routes, reviews
|
|
273
|
+
│ │ └── prompts.ts # Orchestrator system prompt
|
|
274
|
+
│ │
|
|
275
|
+
│ ├── worker/
|
|
276
|
+
│ │ ├── index.ts # Worker agent — executes in 4 modes
|
|
277
|
+
│ │ └── prompts/
|
|
278
|
+
│ │ └── index.ts # Framework-aware mode-specific prompts
|
|
279
|
+
│ │
|
|
280
|
+
│ ├── pipeline/
|
|
281
|
+
│ │ ├── index.ts # Step-by-step pipeline
|
|
282
|
+
│ │ └── auto.ts # Autonomous pipeline (parallel, timer, gates, resume, auto-push)
|
|
283
|
+
│ │
|
|
284
|
+
│ ├── adapters/
|
|
285
|
+
│ │ ├── base.ts # FrameworkAdapter interface
|
|
286
|
+
│ │ ├── nextjs.ts # Next.js adapter
|
|
287
|
+
│ │ ├── react-vite.ts # React + Vite adapter
|
|
288
|
+
│ │ ├── django.ts # Django adapter
|
|
289
|
+
│ │ └── index.ts # Adapter registry + factory
|
|
290
|
+
│ │
|
|
291
|
+
│ ├── git/
|
|
292
|
+
│ │ └── index.ts # Git operations (branch, commit, tag, push)
|
|
293
|
+
│ │
|
|
294
|
+
│ ├── github/
|
|
295
|
+
│ │ └── index.ts # GitHub Issues sync (via gh CLI)
|
|
296
|
+
│ │
|
|
297
|
+
│ └── utils/
|
|
298
|
+
│ ├── config.ts # Config validation
|
|
299
|
+
│ └── sound.ts # Notification sounds (macOS/Linux/fallback)
|
|
300
|
+
│
|
|
301
|
+
├── state/
|
|
302
|
+
│ └── index.ts # State manager (.forge/ directory, cached)
|
|
303
|
+
│
|
|
304
|
+
└── types/
|
|
305
|
+
└── plan.ts # TypeScript types for the entire system
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
<br/>
|
|
309
|
+
|
|
310
|
+
## State & Git
|
|
311
|
+
|
|
312
|
+
ForgeAI tracks everything in a `.forge/` directory inside your repo:
|
|
313
|
+
|
|
314
|
+
```
|
|
315
|
+
.forge/
|
|
316
|
+
├── plan.json # Epics, stories, status, dependencies
|
|
317
|
+
├── state.json # Current phase, queue, history
|
|
318
|
+
├── config.json # Framework, model, preferences
|
|
319
|
+
├── snapshots/ # Pre-action snapshots for undo
|
|
320
|
+
└── designs/ # Design approval metadata
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
Every story gets a commit. Every milestone gets a tag:
|
|
324
|
+
|
|
325
|
+
```
|
|
326
|
+
main ────●────●────●────●────●────●──── HEAD → pushed to origin
|
|
327
|
+
│ │ │ │ │ │
|
|
328
|
+
│ │ │ │ │ └── forge/v0.6-export-csv
|
|
329
|
+
│ │ │ │ └── forge/v0.5-budget-alerts
|
|
330
|
+
│ │ │ └── forge/v0.4-budget-setup
|
|
331
|
+
│ │ └── forge/v0.3-expense-list
|
|
332
|
+
│ └── forge/v0.2-add-expense
|
|
333
|
+
└── forge/v0.1-designs
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
Roll back to any point with `git checkout forge/v0.3-expense-list`.
|
|
337
|
+
|
|
338
|
+
<br/>
|
|
339
|
+
|
|
340
|
+
## Requirements
|
|
341
|
+
|
|
342
|
+
| Requirement | Details |
|
|
343
|
+
|-------------|---------|
|
|
344
|
+
| **Node.js** | v18 or higher |
|
|
345
|
+
| **Claude Code** | Installed and logged in (`npm i -g @anthropic-ai/claude-code && claude login`) |
|
|
346
|
+
| **Git** | Any recent version |
|
|
347
|
+
| **Subscription** | Claude Max, Team, or Enterprise |
|
|
348
|
+
|
|
349
|
+
ForgeAI uses the Claude Agent SDK which authenticates through your Claude Code session. No separate API key needed.
|
|
350
|
+
|
|
351
|
+
<br/>
|
|
352
|
+
|
|
353
|
+
## Configuration
|
|
354
|
+
|
|
355
|
+
After `forge init`, your `forge.config.json` controls:
|
|
356
|
+
|
|
357
|
+
```json
|
|
358
|
+
{
|
|
359
|
+
"framework": "nextjs",
|
|
360
|
+
"model": "sonnet",
|
|
361
|
+
"designPreview": "storybook",
|
|
362
|
+
"autoCommit": true,
|
|
363
|
+
"storybook": {
|
|
364
|
+
"port": 6006
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
<br/>
|
|
370
|
+
|
|
371
|
+
## Comparison
|
|
372
|
+
|
|
373
|
+
| | ChatGPT / Claude Chat | GitHub Copilot | Cursor | **ForgeAI** |
|
|
374
|
+
|---|---|---|---|---|
|
|
375
|
+
| Planning | Manual | None | None | **Automated sprint planning** |
|
|
376
|
+
| Design preview | None | None | None | **Storybook generation** |
|
|
377
|
+
| Build | Copy-paste | Autocomplete | Inline edit | **Full autonomous build** |
|
|
378
|
+
| Review | Manual | None | None | **Automated QA + auto-fix** |
|
|
379
|
+
| Git strategy | Manual | Manual | Manual | **Auto commits + tags + push** |
|
|
380
|
+
| Parallelism | N/A | N/A | N/A | **Dependency-grouped parallel** |
|
|
381
|
+
| Human oversight | Full control | None | Approve/reject | **Stage gates + live feedback** |
|
|
382
|
+
| Bug fix with screenshots | N/A | N/A | N/A | **forge fix --image** |
|
|
383
|
+
| SEO & assets | You remember | You remember | You remember | **Built-in defaults** |
|
|
384
|
+
| Multi-framework | N/A | Any | Any | **Next.js, React, Django** |
|
|
385
|
+
| Resume on failure | Start over | N/A | N/A | **Auto-save + resume** |
|
|
386
|
+
|
|
387
|
+
<br/>
|
|
388
|
+
|
|
389
|
+
## Roadmap
|
|
390
|
+
|
|
391
|
+
**v0.1** — Core pipeline, two-agent architecture, Next.js support
|
|
392
|
+
|
|
393
|
+
**v0.2** — Autonomous mode, parallel execution, undo/history, GitHub sync
|
|
394
|
+
|
|
395
|
+
**v0.3** — React + Vite and Django adapters, `forge map`, `forge resume`
|
|
396
|
+
|
|
397
|
+
**v1.0** — Current
|
|
398
|
+
- 21 CLI commands covering the full development lifecycle
|
|
399
|
+
- 3 framework adapters (Next.js, React + Vite, Django)
|
|
400
|
+
- Framework-aware prompts via pluggable adapter system
|
|
401
|
+
- `forge start` — auto-detect and launch dev server
|
|
402
|
+
- `forge push` — push commits + tags to GitHub
|
|
403
|
+
- `forge fix --image` — screenshot-based bug fixing
|
|
404
|
+
- Auto-push to GitHub after `forge auto` and `forge resume`
|
|
405
|
+
- Graceful shutdown with automatic progress save
|
|
406
|
+
- Config validation with actionable error messages
|
|
407
|
+
- Token expiry handling with auto-retry
|
|
408
|
+
|
|
409
|
+
**v1.1** — Next Up
|
|
410
|
+
- **Flutter adapter** — Dart support with widget-based design previews
|
|
411
|
+
- **Vue.js / Nuxt adapter** — Vue 3 + Composition API + Nuxt 3 SSR support
|
|
412
|
+
- **Svelte / SvelteKit adapter** — Svelte 5 with runes and SvelteKit routing
|
|
413
|
+
- **Test generation phase** — auto-generate unit and integration tests after build (Vitest, pytest, Flutter test)
|
|
414
|
+
- **Custom adapter plugin API** — drop a JS file in `.forge/adapters/` to add your own framework
|
|
415
|
+
|
|
416
|
+
**v1.2** — Planned
|
|
417
|
+
- **Multi-provider support** — swap Claude for OpenAI, Gemini, or local models (Ollama) per agent
|
|
418
|
+
- **Web dashboard** — browser-based sprint monitoring with real-time build progress, token usage charts, and story diffs
|
|
419
|
+
- **CI/CD integration** — GitHub Actions / GitLab CI pipeline generation, auto-run tests on PR, deploy previews
|
|
420
|
+
- **Cost estimation** — token budget planning before sprint starts, per-story cost breakdown, spending alerts
|
|
421
|
+
|
|
422
|
+
**v2.0** — Future
|
|
423
|
+
- **Team collaboration** — multiple users can queue feedback on the same sprint, role-based permissions (lead reviews, dev builds)
|
|
424
|
+
- **Monorepo support** — run separate pipelines for `packages/*` with shared dependency tracking
|
|
425
|
+
- **Visual regression testing** — screenshot comparison between versions, flag UI drift automatically
|
|
426
|
+
- **Database schema generation** — auto-generate migrations, seed data, and ERD diagrams from plan descriptions
|
|
427
|
+
- **Accessibility audit phase** — automated WCAG checks after build, auto-fix common a11y issues
|
|
428
|
+
- **i18n / localization** — generate translation keys and locale files from built UI, support RTL layouts
|
|
429
|
+
- **Plugin system** — community-built pipeline phases (e.g., performance audit, API docs, Docker setup)
|
|
430
|
+
- **Template library** — starter templates for common app types (SaaS dashboard, e-commerce, blog, landing page)
|
|
431
|
+
|
|
432
|
+
<br/>
|
|
433
|
+
|
|
434
|
+
## Contributing
|
|
435
|
+
|
|
436
|
+
```bash
|
|
437
|
+
git clone https://github.com/joeljohn159/forgeai.git
|
|
438
|
+
cd forgeai
|
|
439
|
+
npm install
|
|
440
|
+
npm run build
|
|
441
|
+
npm link # Makes 'forge' available globally
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
Make changes in `src/`, then `npm run build` to test.
|
|
445
|
+
|
|
446
|
+
<br/>
|
|
447
|
+
|
|
448
|
+
## License
|
|
449
|
+
|
|
450
|
+
MIT
|
|
451
|
+
|
|
452
|
+
<br/>
|
|
453
|
+
|
|
454
|
+
---
|
|
455
|
+
|
|
456
|
+
<p align="center">
|
|
457
|
+
Built by <a href="https://github.com/joeljohn159">Joel John</a>
|
|
458
|
+
</p>
|