vibe-forge 0.3.12 → 0.8.1
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/.claude/commands/clear-attention.md +63 -63
- package/.claude/commands/compact-context.md +52 -0
- package/.claude/commands/configure-vcs.md +102 -0
- package/.claude/commands/forge.md +218 -171
- package/.claude/commands/need-help.md +77 -77
- package/.claude/commands/update-status.md +64 -64
- package/.claude/commands/worker-loop.md +106 -106
- package/.claude/hooks/worker-loop.js +217 -0
- package/.claude/scripts/setup-worker-loop.sh +45 -45
- package/.claude/settings.json +89 -0
- package/LICENSE +21 -21
- package/README.md +253 -230
- package/agents/aegis/personality.md +303 -269
- package/agents/anvil/personality.md +278 -211
- package/agents/architect/personality.md +260 -0
- package/agents/crucible/personality.md +362 -285
- package/agents/crucible-x/personality.md +210 -0
- package/agents/ember/personality.md +293 -245
- package/agents/flux/personality.md +248 -0
- package/agents/furnace/personality.md +342 -262
- package/agents/herald/personality.md +249 -247
- package/agents/loki/personality.md +108 -0
- package/agents/oracle/personality.md +284 -0
- package/agents/pixel/personality.md +140 -0
- package/agents/planning-hub/personality.md +473 -251
- package/agents/scribe/personality.md +253 -231
- package/agents/slag/personality.md +268 -0
- package/agents/temper/personality.md +270 -0
- package/bin/cli.js +372 -325
- package/bin/dashboard/api/agents.js +333 -0
- package/bin/dashboard/api/dispatch.js +507 -0
- package/bin/dashboard/api/tasks.js +416 -0
- package/bin/dashboard/public/assets/index-BpHfsx1r.js +2 -0
- package/bin/dashboard/public/assets/index-QODv4Zn9.css +1 -0
- package/bin/dashboard/public/index.html +14 -0
- package/bin/dashboard/server.js +645 -0
- package/bin/forge-daemon.sh +477 -775
- package/bin/forge-setup.sh +661 -532
- package/bin/forge-spawn.sh +164 -159
- package/bin/forge.cmd +83 -83
- package/bin/forge.sh +566 -393
- package/bin/lib/agents.sh +177 -177
- package/bin/lib/check-aliases.js +50 -0
- package/bin/lib/colors.sh +44 -44
- package/bin/lib/config.sh +347 -271
- package/bin/lib/constants.sh +241 -171
- package/bin/lib/daemon/budgets.sh +107 -0
- package/bin/lib/daemon/dependencies.sh +146 -0
- package/bin/lib/daemon/display.sh +128 -0
- package/bin/lib/daemon/notifications.sh +273 -0
- package/bin/lib/daemon/routing.sh +93 -0
- package/bin/lib/daemon/state.sh +163 -0
- package/bin/lib/daemon/sync.sh +103 -0
- package/bin/lib/database.sh +357 -224
- package/bin/lib/frontmatter.js +106 -0
- package/bin/lib/heimdall-setup.js +113 -0
- package/bin/lib/heimdall.js +265 -0
- package/bin/lib/json.sh +264 -0
- package/bin/lib/terminal.js +452 -0
- package/bin/lib/util.sh +126 -0
- package/bin/lib/vcs.js +349 -0
- package/config/agent-manifest.yaml +237 -230
- package/config/agents.json +207 -85
- package/config/task-template.md +159 -87
- package/config/task-types.yaml +111 -106
- package/config/templates/handoff-template.md +40 -0
- package/context/agent-overrides/README.md +41 -0
- package/context/architecture.md +42 -0
- package/context/modern-conventions.md +129 -129
- package/context/project-context-template.md +122 -122
- package/docs/agents.md +473 -0
- package/docs/architecture.md +194 -0
- package/docs/commands.md +451 -0
- package/docs/security.md +195 -144
- package/package.json +77 -48
- package/.claude/hooks/worker-loop.sh +0 -141
- package/.claude/settings.local.json +0 -29
- package/agents/forge-master/capabilities.md +0 -144
- package/agents/forge-master/context-template.md +0 -128
- package/agents/forge-master/personality.md +0 -138
- package/agents/sentinel/personality.md +0 -194
- package/context/forge-state.yaml +0 -19
- package/docs/TODO.md +0 -176
- package/docs/npm-publishing.md +0 -95
- package/tasks/review/task-001.md +0 -78
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# Vibe Forge Architecture
|
|
2
|
+
|
|
3
|
+
This document describes the architectural decisions and structure of the Vibe Forge codebase.
|
|
4
|
+
|
|
5
|
+
## Language Strategy
|
|
6
|
+
|
|
7
|
+
Vibe Forge uses a **hybrid Bash/Node.js architecture** with the following rationale:
|
|
8
|
+
|
|
9
|
+
### Bash (Primary for Scripts)
|
|
10
|
+
|
|
11
|
+
The core CLI and daemon are implemented in Bash because:
|
|
12
|
+
|
|
13
|
+
1. **Native shell integration** - Vibe Forge orchestrates terminal sessions and Claude Code processes, which are inherently shell operations
|
|
14
|
+
2. **Unix philosophy** - Small composable scripts that can be debugged, piped, and modified easily
|
|
15
|
+
3. **Transparency** - Users can inspect and modify scripts without build steps
|
|
16
|
+
4. **Git Bash compatibility** - Windows users with Git Bash can run the same scripts
|
|
17
|
+
|
|
18
|
+
Files in Bash:
|
|
19
|
+
- `bin/forge.sh` - Main CLI entry point
|
|
20
|
+
- `bin/forge-setup.sh` - Setup and initialization
|
|
21
|
+
- `bin/forge-spawn.sh` - Terminal spawning orchestration
|
|
22
|
+
- `bin/forge-daemon.sh` - Background daemon for task monitoring
|
|
23
|
+
- `bin/lib/*.sh` - Shared libraries (colors, config, agents, database, json, util)
|
|
24
|
+
|
|
25
|
+
### Node.js (Cross-Platform Utilities)
|
|
26
|
+
|
|
27
|
+
Node.js is used where cross-platform compatibility or complex logic is needed:
|
|
28
|
+
|
|
29
|
+
1. **npx installer** - `bin/cli.js` runs via npx before Vibe Forge is installed
|
|
30
|
+
2. **Terminal detection** - `bin/lib/terminal.js` detects and spawns terminals across Windows/macOS/Linux
|
|
31
|
+
3. **JSON parsing** - All Bash scripts use Node.js for JSON via `bin/lib/json.sh` wrapper
|
|
32
|
+
4. **Claude hooks** - `.claude/hooks/worker-loop.js` runs as Claude Code hook
|
|
33
|
+
5. **Dashboard server** - `bin/dashboard/server.js` provides HTTP + WebSocket for the web UI
|
|
34
|
+
|
|
35
|
+
### Design Principles
|
|
36
|
+
|
|
37
|
+
1. **Single Source of Truth** - Configuration in `config/agents.json`, loaded by both languages
|
|
38
|
+
2. **Node.js for JSON** - All JSON parsing uses `bin/lib/json.sh` which calls Node.js (no jq dependency)
|
|
39
|
+
3. **Bash for orchestration** - Process management, file watching, terminal control
|
|
40
|
+
4. **Thin wrappers** - `forge.cmd` on Windows calls Bash via Git Bash
|
|
41
|
+
|
|
42
|
+
### JSON Handling
|
|
43
|
+
|
|
44
|
+
All JSON operations use the `json.sh` library which provides:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Reading JSON
|
|
48
|
+
value=$(json_read "$file" "key" "default")
|
|
49
|
+
|
|
50
|
+
# Reading multiple keys efficiently
|
|
51
|
+
read -r name status task <<< "$(json_read_multi "$file" name status task)"
|
|
52
|
+
|
|
53
|
+
# Writing JSON
|
|
54
|
+
json_write "$file" "key" "value"
|
|
55
|
+
json_write_bool "$file" "enabled" true
|
|
56
|
+
|
|
57
|
+
# Pretty printing
|
|
58
|
+
json_pretty "$file"
|
|
59
|
+
|
|
60
|
+
# Key existence check
|
|
61
|
+
if json_has_key "$file" "key"; then ...
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
This eliminates the jq dependency while maintaining security (arguments passed to Node.js, not interpolated).
|
|
65
|
+
|
|
66
|
+
## Directory Structure
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
vibe-forge/
|
|
70
|
+
├── agents/ # Agent personality definitions
|
|
71
|
+
│ ├── anvil/
|
|
72
|
+
│ │ └── personality.md
|
|
73
|
+
│ ├── furnace/
|
|
74
|
+
│ └── ...
|
|
75
|
+
├── bin/ # Executables
|
|
76
|
+
│ ├── cli.js # npx entry point (Node.js)
|
|
77
|
+
│ ├── forge.sh # Main CLI (Bash)
|
|
78
|
+
│ ├── forge.cmd # Windows wrapper
|
|
79
|
+
│ ├── forge-setup.sh # Setup script
|
|
80
|
+
│ ├── forge-spawn.sh # Terminal spawning
|
|
81
|
+
│ ├── forge-daemon.sh # Background daemon
|
|
82
|
+
│ ├── dashboard/ # Web dashboard (Node.js)
|
|
83
|
+
│ │ ├── server.js # HTTP + WebSocket server
|
|
84
|
+
│ │ ├── api/ # REST API endpoints
|
|
85
|
+
│ │ │ ├── tasks.js # Task CRUD
|
|
86
|
+
│ │ │ ├── agents.js # Agent status
|
|
87
|
+
│ │ │ └── dispatch.js # Task dispatch
|
|
88
|
+
│ │ └── public/ # Frontend assets
|
|
89
|
+
│ │ ├── index.html # Dashboard UI
|
|
90
|
+
│ │ ├── style.css # Styles (dark mode)
|
|
91
|
+
│ │ └── app.js # Frontend logic
|
|
92
|
+
│ └── lib/ # Shared libraries
|
|
93
|
+
│ ├── agents.sh # Agent resolution
|
|
94
|
+
│ ├── colors.sh # Terminal colors
|
|
95
|
+
│ ├── config.sh # Configuration loading
|
|
96
|
+
│ ├── constants.sh # Constants (fallback)
|
|
97
|
+
│ ├── database.sh # SQLite operations
|
|
98
|
+
│ ├── json.sh # JSON utilities (Node.js based)
|
|
99
|
+
│ ├── terminal.js # Terminal detection (Node.js)
|
|
100
|
+
│ └── util.sh # Utility functions
|
|
101
|
+
├── config/ # Configuration files
|
|
102
|
+
│ ├── agents.json # Agent roster (source of truth)
|
|
103
|
+
│ └── agent-manifest.yaml # Rich documentation (non-normative)
|
|
104
|
+
├── context/ # Runtime context
|
|
105
|
+
│ ├── agent-status/ # Agent status files
|
|
106
|
+
│ └── forge-state.yaml # Current forge state
|
|
107
|
+
├── docs/ # Documentation
|
|
108
|
+
├── tasks/ # Task lifecycle folders
|
|
109
|
+
│ ├── pending/
|
|
110
|
+
│ ├── in-progress/
|
|
111
|
+
│ ├── completed/
|
|
112
|
+
│ └── ...
|
|
113
|
+
└── tests/ # Test suites
|
|
114
|
+
├── unit/ # Jest unit tests (shell functions tested via child_process)
|
|
115
|
+
└── helpers/ # Test utilities
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Data Flow
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
┌──────────────┐ ┌────────────────┐ ┌──────────────┐
|
|
122
|
+
│ CLI Input │ --> │ forge.sh │ --> │ Command │
|
|
123
|
+
│ (user) │ │ (dispatch) │ │ Handler │
|
|
124
|
+
└──────────────┘ └────────────────┘ └──────────────┘
|
|
125
|
+
│
|
|
126
|
+
v
|
|
127
|
+
┌──────────────┐ ┌────────────────┐ ┌──────────────┐
|
|
128
|
+
│ Claude │ <-- │ forge-spawn.sh │ <-- │ Terminal │
|
|
129
|
+
│ Code │ │ + terminal.js │ │ Spawning │
|
|
130
|
+
└──────────────┘ └────────────────┘ └──────────────┘
|
|
131
|
+
│
|
|
132
|
+
v
|
|
133
|
+
┌──────────────┐ ┌────────────────┐ ┌──────────────┐
|
|
134
|
+
│ Tasks │ <-> │ forge-daemon │ <-> │ SQLite │
|
|
135
|
+
│ (files) │ │ (monitor) │ │ Database │
|
|
136
|
+
└──────────────┘ └────────────────┘ └──────────────┘
|
|
137
|
+
^ ^
|
|
138
|
+
│ │
|
|
139
|
+
└─────────────────┬─────────────────────────┘
|
|
140
|
+
│
|
|
141
|
+
v
|
|
142
|
+
┌────────────────────┐
|
|
143
|
+
│ Dashboard Server │ <-- Browser (http://localhost:2800)
|
|
144
|
+
│ (port 2800 🔥) │
|
|
145
|
+
│ + WebSocket /ws │
|
|
146
|
+
└────────────────────┘
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Dashboard Architecture
|
|
150
|
+
|
|
151
|
+
The dashboard is a self-contained Node.js server that provides:
|
|
152
|
+
|
|
153
|
+
1. **Static file serving** - HTML, CSS, JS from `bin/dashboard/public/`
|
|
154
|
+
2. **REST API** - Task management, agent status, dispatch at `/api/*`
|
|
155
|
+
3. **WebSocket** - Real-time updates at `/ws`
|
|
156
|
+
4. **Issue detection** - Stale docs, failing tests, security issues
|
|
157
|
+
|
|
158
|
+
Port **2800** was chosen as the default because it's the operating temperature of a forge in degrees Fahrenheit. 🔥
|
|
159
|
+
|
|
160
|
+
## Future Considerations
|
|
161
|
+
|
|
162
|
+
### Potential Node.js Migration
|
|
163
|
+
|
|
164
|
+
While Option B (hybrid) is the current strategy, a future Node.js migration could provide:
|
|
165
|
+
|
|
166
|
+
1. **Better Windows support** - Native Node.js without Git Bash dependency
|
|
167
|
+
2. **Unified codebase** - Single language to maintain
|
|
168
|
+
3. **Type safety** - TypeScript for larger refactors
|
|
169
|
+
4. **npm ecosystem** - Libraries for terminal control, process management
|
|
170
|
+
|
|
171
|
+
Migration path if pursued:
|
|
172
|
+
1. `src/lib/config.ts` - Configuration management
|
|
173
|
+
2. `src/lib/agents.ts` - Agent resolution
|
|
174
|
+
3. `src/lib/database.ts` - SQLite operations
|
|
175
|
+
4. `src/daemon.ts` - Background daemon
|
|
176
|
+
5. `src/forge.ts` - Main CLI (keeping forge.sh as thin wrapper initially)
|
|
177
|
+
|
|
178
|
+
### Requirements for Migration
|
|
179
|
+
|
|
180
|
+
Before pursuing full Node.js migration:
|
|
181
|
+
- Ensure all Bash-specific functionality can be replicated
|
|
182
|
+
- Maintain transparency (scripts users can inspect)
|
|
183
|
+
- Keep startup time fast (current scripts are instant)
|
|
184
|
+
- Preserve Unix composability where valuable
|
|
185
|
+
|
|
186
|
+
## ADR Summary
|
|
187
|
+
|
|
188
|
+
| Decision | Choice | Rationale |
|
|
189
|
+
|----------|--------|-----------|
|
|
190
|
+
| Primary language | Bash | Native shell integration, transparency |
|
|
191
|
+
| JSON parsing | Node.js via json.sh | Security, cross-platform |
|
|
192
|
+
| Terminal detection | Node.js | Cross-platform compatibility |
|
|
193
|
+
| Windows support | Git Bash + forge.cmd | Maintains Unix-like experience |
|
|
194
|
+
| Configuration | JSON (agents.json) | Machine-readable, single source |
|
package/docs/commands.md
ADDED
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
# Command Reference
|
|
2
|
+
|
|
3
|
+
This document covers all Vibe Forge commands available in Claude Code.
|
|
4
|
+
|
|
5
|
+
## CLI Commands
|
|
6
|
+
|
|
7
|
+
These commands are run from your terminal.
|
|
8
|
+
|
|
9
|
+
### vibe-forge init
|
|
10
|
+
|
|
11
|
+
Initialize Vibe Forge in your project.
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx @sugar-crash-studios/vibe-forge init
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**What it does:**
|
|
18
|
+
- Clones Vibe Forge into `_vibe-forge/`
|
|
19
|
+
- Detects your platform (Windows, macOS, Linux)
|
|
20
|
+
- Finds Git Bash on Windows
|
|
21
|
+
- Validates Claude Code installation
|
|
22
|
+
- Configures terminal preferences
|
|
23
|
+
- Optionally starts the daemon
|
|
24
|
+
- Installs the `/forge` slash command
|
|
25
|
+
- Creates project context file
|
|
26
|
+
|
|
27
|
+
**Options:**
|
|
28
|
+
- `--non-interactive` - Skip prompts, use defaults
|
|
29
|
+
|
|
30
|
+
### vibe-forge update
|
|
31
|
+
|
|
32
|
+
Update Vibe Forge to the latest version.
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npx @sugar-crash-studios/vibe-forge update
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**What it does:**
|
|
39
|
+
- Fetches latest changes from GitHub
|
|
40
|
+
- Preserves your tasks and context files
|
|
41
|
+
- Updates scripts and agent configurations
|
|
42
|
+
|
|
43
|
+
### vibe-forge version
|
|
44
|
+
|
|
45
|
+
Show the installed version.
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npx @sugar-crash-studios/vibe-forge version
|
|
49
|
+
npx @sugar-crash-studios/vibe-forge --version
|
|
50
|
+
npx @sugar-crash-studios/vibe-forge -v
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### vibe-forge help
|
|
54
|
+
|
|
55
|
+
Show help information.
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npx @sugar-crash-studios/vibe-forge help
|
|
59
|
+
npx @sugar-crash-studios/vibe-forge --help
|
|
60
|
+
npx @sugar-crash-studios/vibe-forge -h
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Slash Commands
|
|
66
|
+
|
|
67
|
+
These commands are used inside Claude Code sessions.
|
|
68
|
+
|
|
69
|
+
### /forge
|
|
70
|
+
|
|
71
|
+
Start the Planning Hub (default command).
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
/forge
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**What it does:**
|
|
78
|
+
- Activates the multi-expert planning team
|
|
79
|
+
- Displays the forge council welcome message
|
|
80
|
+
- Prepares for planning and coordination tasks
|
|
81
|
+
|
|
82
|
+
**Output:**
|
|
83
|
+
```
|
|
84
|
+
VIBE FORGE - Planning Hub
|
|
85
|
+
-----------------------------------------------
|
|
86
|
+
|
|
87
|
+
The forge council assembles...
|
|
88
|
+
|
|
89
|
+
Planning Hub - Orchestration & Tasks
|
|
90
|
+
Architect - Technical Design
|
|
91
|
+
Aegis - Security
|
|
92
|
+
Ember - DevOps & Infrastructure
|
|
93
|
+
Pixel - User Experience
|
|
94
|
+
Oracle - Product & Requirements
|
|
95
|
+
Crucible - Quality & Testing
|
|
96
|
+
|
|
97
|
+
Ready to plan, review, or coordinate.
|
|
98
|
+
Use /forge status to check current tasks.
|
|
99
|
+
|
|
100
|
+
What's on the anvil today?
|
|
101
|
+
-----------------------------------------------
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
You can also explicitly start the hub with:
|
|
105
|
+
```
|
|
106
|
+
/forge plan
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### /forge status
|
|
110
|
+
|
|
111
|
+
Display the status dashboard.
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
/forge status
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**What it does:**
|
|
118
|
+
- Reads the current forge state
|
|
119
|
+
- Counts tasks in each status folder
|
|
120
|
+
- Shows active agent statuses
|
|
121
|
+
- Displays attention signals
|
|
122
|
+
|
|
123
|
+
**Output:**
|
|
124
|
+
```
|
|
125
|
+
VIBE FORGE - Status Dashboard
|
|
126
|
+
-----------------------------------------------
|
|
127
|
+
Pending: 3 tasks
|
|
128
|
+
In Progress: 2 tasks
|
|
129
|
+
In Review: 1 task
|
|
130
|
+
Completed: 12 tasks
|
|
131
|
+
|
|
132
|
+
Active Agents:
|
|
133
|
+
Anvil - working on TASK-015
|
|
134
|
+
Furnace - idle
|
|
135
|
+
Crucible - testing TASK-014
|
|
136
|
+
-----------------------------------------------
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### /forge spawn
|
|
140
|
+
|
|
141
|
+
Spawn a worker agent in a new terminal.
|
|
142
|
+
|
|
143
|
+
```
|
|
144
|
+
/forge spawn <agent>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Arguments:**
|
|
148
|
+
- `<agent>` - Agent name or alias (see table below)
|
|
149
|
+
|
|
150
|
+
**Examples:**
|
|
151
|
+
```
|
|
152
|
+
/forge spawn anvil
|
|
153
|
+
/forge spawn frontend # Alias for anvil
|
|
154
|
+
/forge spawn furnace
|
|
155
|
+
/forge spawn backend # Alias for furnace
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Available Agents:**
|
|
159
|
+
|
|
160
|
+
| Agent | Aliases | Role |
|
|
161
|
+
|----------|----------------------|--------------------|
|
|
162
|
+
| anvil | frontend, ui, fe | Frontend Developer |
|
|
163
|
+
| furnace | backend, api, be | Backend Developer |
|
|
164
|
+
| crucible | test, testing, qa | Tester / QA |
|
|
165
|
+
| sentinel | review, reviewer, cr | Code Reviewer |
|
|
166
|
+
| scribe | docs, documentation | Documentation |
|
|
167
|
+
| herald | release, deploy | Release Manager |
|
|
168
|
+
| ember | devops, ops, infra | DevOps |
|
|
169
|
+
| aegis | security, sec, appsec| Security |
|
|
170
|
+
|
|
171
|
+
**Behavior by terminal type:**
|
|
172
|
+
- **Windows Terminal** - Opens a new tab with the agent
|
|
173
|
+
- **Manual mode** - Prints instructions to start the agent
|
|
174
|
+
|
|
175
|
+
### /forge task
|
|
176
|
+
|
|
177
|
+
Create a new task.
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
/forge task [description]
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Arguments:**
|
|
184
|
+
- `[description]` - Optional task description
|
|
185
|
+
|
|
186
|
+
**Examples:**
|
|
187
|
+
```
|
|
188
|
+
/forge task
|
|
189
|
+
/forge task Add user authentication
|
|
190
|
+
/forge task Fix the login button styling
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Interactive mode (no description):**
|
|
194
|
+
- Prompts for task description
|
|
195
|
+
- Asks which agent should handle it
|
|
196
|
+
- Requests priority level (high, medium, low)
|
|
197
|
+
|
|
198
|
+
**Task file location:**
|
|
199
|
+
`tasks/pending/task-XXX.md`
|
|
200
|
+
|
|
201
|
+
### /forge help
|
|
202
|
+
|
|
203
|
+
Show available commands.
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
/forge help
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**Output:**
|
|
210
|
+
```
|
|
211
|
+
VIBE FORGE - Commands
|
|
212
|
+
-----------------------------------------------
|
|
213
|
+
|
|
214
|
+
/forge Start the Planning Hub (default)
|
|
215
|
+
/forge status Show status dashboard
|
|
216
|
+
/forge spawn <agent> Spawn worker in new terminal
|
|
217
|
+
/forge task [desc] Create a new task
|
|
218
|
+
/forge help Show this help
|
|
219
|
+
|
|
220
|
+
Agents (with aliases):
|
|
221
|
+
anvil (frontend, ui, fe) - Frontend Developer
|
|
222
|
+
furnace (backend, api, be) - Backend Developer
|
|
223
|
+
crucible (test, testing, qa) - Tester / QA
|
|
224
|
+
sentinel (review, reviewer, cr) - Code Reviewer
|
|
225
|
+
scribe (docs, documentation) - Documentation
|
|
226
|
+
herald (release, deploy) - Release Manager
|
|
227
|
+
ember (devops, ops, infra) - DevOps
|
|
228
|
+
aegis (security, sec, appsec) - Security
|
|
229
|
+
|
|
230
|
+
-----------------------------------------------
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Worker Commands
|
|
236
|
+
|
|
237
|
+
These commands are used by spawned worker agents.
|
|
238
|
+
|
|
239
|
+
### /worker-loop
|
|
240
|
+
|
|
241
|
+
Start a persistent worker loop.
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
/worker-loop <agent>
|
|
245
|
+
/worker-loop <agent> --max-idle 20
|
|
246
|
+
/worker-loop stop
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**Arguments:**
|
|
250
|
+
- `<agent>` - Agent name to run as
|
|
251
|
+
- `--max-idle N` - Exit after N checks with no tasks (default: 10)
|
|
252
|
+
- `stop` - Stop the current worker loop
|
|
253
|
+
|
|
254
|
+
**What it does:**
|
|
255
|
+
- Puts the worker in persistent mode
|
|
256
|
+
- Worker checks for tasks, completes them, loops back
|
|
257
|
+
- Only exits after max idle checks with no work found
|
|
258
|
+
|
|
259
|
+
**Example:**
|
|
260
|
+
```
|
|
261
|
+
/worker-loop anvil # Start Anvil in persistent loop
|
|
262
|
+
/worker-loop furnace --max-idle 20 # Custom idle limit
|
|
263
|
+
/worker-loop stop # Stop the current loop
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### /update-status
|
|
267
|
+
|
|
268
|
+
Report current status to the dashboard.
|
|
269
|
+
|
|
270
|
+
```
|
|
271
|
+
/update-status <status> [task-id]
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
**Status values:**
|
|
275
|
+
|
|
276
|
+
| Status | Meaning |
|
|
277
|
+
|-----------|--------------------------------------|
|
|
278
|
+
| idle | No current task, ready for work |
|
|
279
|
+
| working | Actively working on a task |
|
|
280
|
+
| blocked | Stuck, needs input |
|
|
281
|
+
| reviewing | Reviewing code or PR |
|
|
282
|
+
| testing | Running tests |
|
|
283
|
+
| waiting | Waiting for external dependency |
|
|
284
|
+
|
|
285
|
+
**Examples:**
|
|
286
|
+
```
|
|
287
|
+
/update-status working TASK-001
|
|
288
|
+
/update-status idle
|
|
289
|
+
/update-status blocked
|
|
290
|
+
/update-status reviewing PR-123
|
|
291
|
+
/update-status testing TASK-001
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### /need-help
|
|
295
|
+
|
|
296
|
+
Signal that human attention is needed.
|
|
297
|
+
|
|
298
|
+
```
|
|
299
|
+
/need-help <reason>
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
**What it does:**
|
|
303
|
+
- Creates an attention file in `tasks/attention/`
|
|
304
|
+
- Rings the terminal bell
|
|
305
|
+
- Shows in the Planning Hub status
|
|
306
|
+
- Triggers toast notification (if daemon running)
|
|
307
|
+
|
|
308
|
+
**Examples:**
|
|
309
|
+
```
|
|
310
|
+
/need-help Need clarification on auth implementation approach
|
|
311
|
+
/need-help Blocked on API design decision - REST vs GraphQL?
|
|
312
|
+
/need-help Tests failing, need guidance on expected behavior
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
### /clear-attention
|
|
316
|
+
|
|
317
|
+
Clear an attention signal after the issue is resolved.
|
|
318
|
+
|
|
319
|
+
```
|
|
320
|
+
/clear-attention <agent>
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**What it does:**
|
|
324
|
+
- Removes the attention file for the specified agent
|
|
325
|
+
- Updates the dashboard to reflect resolution
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## Dashboard Commands
|
|
330
|
+
|
|
331
|
+
The Vibe Forge Dashboard provides a web-based UI for monitoring and managing your forge.
|
|
332
|
+
|
|
333
|
+
### Dashboard Port: 2800
|
|
334
|
+
|
|
335
|
+
The dashboard runs on port **2800** by default - the operating temperature of a forge in degrees Fahrenheit. 🔥
|
|
336
|
+
|
|
337
|
+
This port was chosen because:
|
|
338
|
+
- It's thematic (forges operate at around 2800°F)
|
|
339
|
+
- It doesn't collide with common development ports (3000, 8080, 5000)
|
|
340
|
+
- It doesn't collide with database ports (3306, 5432, 27017)
|
|
341
|
+
- It doesn't collide with other tooling ports (5555, 9000, etc.)
|
|
342
|
+
|
|
343
|
+
### Starting the Dashboard
|
|
344
|
+
|
|
345
|
+
```bash
|
|
346
|
+
# Start the dashboard server
|
|
347
|
+
node bin/dashboard/server.js
|
|
348
|
+
|
|
349
|
+
# Custom port
|
|
350
|
+
node bin/dashboard/server.js --port 3000
|
|
351
|
+
DASHBOARD_PORT=3000 node bin/dashboard/server.js
|
|
352
|
+
|
|
353
|
+
# Custom host (for network access)
|
|
354
|
+
node bin/dashboard/server.js --host 0.0.0.0
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
### Dashboard URL
|
|
358
|
+
|
|
359
|
+
Once running, access the dashboard at:
|
|
360
|
+
- **URL:** `http://localhost:2800`
|
|
361
|
+
- **API:** `http://localhost:2800/api/`
|
|
362
|
+
- **WebSocket:** `ws://localhost:2800/ws`
|
|
363
|
+
|
|
364
|
+
### Dashboard API Endpoints
|
|
365
|
+
|
|
366
|
+
| Endpoint | Method | Description |
|
|
367
|
+
|----------|--------|-------------|
|
|
368
|
+
| `/api/health` | GET | Server health check |
|
|
369
|
+
| `/api/tasks` | GET | List all tasks by status |
|
|
370
|
+
| `/api/tasks/:id` | GET | Get single task details |
|
|
371
|
+
| `/api/tasks` | POST | Create new task |
|
|
372
|
+
| `/api/agents` | GET | List agents with status |
|
|
373
|
+
| `/api/dispatch` | POST | Dispatch agent for an issue |
|
|
374
|
+
|
|
375
|
+
### Configuration
|
|
376
|
+
|
|
377
|
+
Add to `.forge/config.json` (coming soon):
|
|
378
|
+
|
|
379
|
+
```json
|
|
380
|
+
{
|
|
381
|
+
"dashboard": {
|
|
382
|
+
"enabled": true,
|
|
383
|
+
"port": 2800,
|
|
384
|
+
"auto_open": true,
|
|
385
|
+
"host": "localhost"
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
## Daemon Commands
|
|
393
|
+
|
|
394
|
+
Control the background daemon process.
|
|
395
|
+
|
|
396
|
+
### forge daemon start
|
|
397
|
+
|
|
398
|
+
Start the daemon.
|
|
399
|
+
|
|
400
|
+
```bash
|
|
401
|
+
./bin/forge-daemon.sh start
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
### forge daemon stop
|
|
405
|
+
|
|
406
|
+
Stop the daemon.
|
|
407
|
+
|
|
408
|
+
```bash
|
|
409
|
+
./bin/forge-daemon.sh stop
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
### forge daemon status
|
|
413
|
+
|
|
414
|
+
Check daemon status.
|
|
415
|
+
|
|
416
|
+
```bash
|
|
417
|
+
./bin/forge-daemon.sh status
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
## Configuration Commands
|
|
423
|
+
|
|
424
|
+
Manage Vibe Forge settings.
|
|
425
|
+
|
|
426
|
+
### forge config worker-loop
|
|
427
|
+
|
|
428
|
+
Toggle persistent worker mode.
|
|
429
|
+
|
|
430
|
+
```bash
|
|
431
|
+
forge config worker-loop on # Enable for all workers
|
|
432
|
+
forge config worker-loop off # Disable
|
|
433
|
+
forge config worker-loop # Check current status
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
## Shell Scripts
|
|
439
|
+
|
|
440
|
+
Low-level scripts in `_vibe-forge/bin/`.
|
|
441
|
+
|
|
442
|
+
| Script | Purpose |
|
|
443
|
+
|-------------------|-----------------------------------|
|
|
444
|
+
| cli.js | Main entry point for npx commands |
|
|
445
|
+
| forge.sh | Core forge command router |
|
|
446
|
+
| forge-setup.sh | Setup wizard |
|
|
447
|
+
| forge-spawn.sh | Spawn agents in terminals |
|
|
448
|
+
| forge-daemon.sh | Background daemon |
|
|
449
|
+
| forge.cmd | Windows batch wrapper |
|
|
450
|
+
|
|
451
|
+
These are typically not called directly - use the commands above instead.
|