vibe-forge 0.4.0 → 0.8.2
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 +5 -5
- package/.claude/commands/forge.md +50 -3
- 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 +37 -4
- package/.claude/scripts/setup-worker-loop.sh +45 -45
- package/.claude/settings.json +89 -0
- package/LICENSE +21 -21
- package/README.md +211 -232
- package/agents/aegis/personality.md +35 -1
- package/agents/anvil/personality.md +39 -1
- package/agents/architect/personality.md +26 -0
- package/agents/crucible/personality.md +54 -1
- package/agents/crucible-x/personality.md +210 -0
- package/agents/ember/personality.md +29 -1
- package/agents/flux/personality.md +248 -0
- package/agents/furnace/personality.md +52 -1
- package/agents/herald/personality.md +3 -1
- 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 +222 -0
- package/agents/scribe/personality.md +3 -1
- package/agents/slag/personality.md +268 -0
- package/agents/{sentinel → temper}/personality.md +85 -9
- package/bin/cli.js +77 -30
- 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 +176 -550
- package/bin/forge-setup.sh +28 -11
- package/bin/forge-spawn.sh +5 -5
- package/bin/forge.cmd +83 -83
- package/bin/forge.sh +210 -31
- package/config/agent-manifest.yaml +237 -243
- package/config/agents.json +207 -132
- package/config/task-types.yaml +111 -106
- package/context/agent-overrides/README.md +41 -0
- package/context/architecture.md +42 -0
- package/context/modern-conventions.md +129 -129
- package/docs/agents.md +473 -409
- package/docs/architecture.md +194 -162
- package/docs/commands.md +451 -388
- package/docs/security.md +195 -144
- package/package.json +38 -11
- package/src/lib/check-aliases.js +50 -0
- package/{bin → src}/lib/colors.sh +2 -1
- package/src/lib/config.sh +347 -0
- package/{bin → src}/lib/constants.sh +48 -13
- package/src/lib/daemon/budgets.sh +107 -0
- package/src/lib/daemon/dependencies.sh +146 -0
- package/src/lib/daemon/display.sh +128 -0
- package/src/lib/daemon/notifications.sh +273 -0
- package/src/lib/daemon/routing.sh +93 -0
- package/src/lib/daemon/state.sh +163 -0
- package/src/lib/daemon/sync.sh +103 -0
- package/{bin → src}/lib/database.sh +52 -0
- package/src/lib/frontmatter.js +106 -0
- package/src/lib/heimdall-setup.js +113 -0
- package/src/lib/heimdall.js +265 -0
- package/src/lib/index.sh +25 -0
- package/{bin → src}/lib/json.sh +7 -1
- package/{bin → src}/lib/terminal.js +7 -1
- package/.claude/settings.local.json +0 -33
- 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/bin/lib/config.sh +0 -313
- package/config/task-template.md +0 -87
- package/context/forge-state.yaml +0 -19
- package/docs/TODO.md +0 -150
- package/docs/getting-started.md +0 -243
- package/docs/npm-publishing.md +0 -95
- package/docs/workflows/README.md +0 -32
- package/docs/workflows/azure-devops.md +0 -108
- package/docs/workflows/bitbucket.md +0 -104
- package/docs/workflows/git-only.md +0 -130
- package/docs/workflows/gitea.md +0 -168
- package/docs/workflows/github.md +0 -103
- package/docs/workflows/gitlab.md +0 -105
- package/docs/workflows.md +0 -454
- package/tasks/completed/ARCH-001-duplicate-agent-config.md +0 -121
- package/tasks/completed/ARCH-002-mixed-bash-node-implementation.md +0 -88
- package/tasks/completed/ARCH-003-worker-loop-hook-duplication.md +0 -77
- package/tasks/completed/ARCH-009-test-organization.md +0 -78
- package/tasks/completed/ARCH-011-jq-vs-nodejs-json.md +0 -94
- package/tasks/completed/ARCH-012-tmp-files-in-root.md +0 -71
- package/tasks/completed/ARCH-013-exit-code-constants.md +0 -65
- package/tasks/completed/ARCH-014-sed-incompatibility.md +0 -96
- package/tasks/completed/ARCH-015-docs-todo-tracking.md +0 -83
- package/tasks/completed/CLEAN-001.md +0 -38
- package/tasks/completed/CLEAN-003.md +0 -47
- package/tasks/completed/CLEAN-004.md +0 -56
- package/tasks/completed/CLEAN-005.md +0 -75
- package/tasks/completed/CLEAN-006.md +0 -47
- package/tasks/completed/CLEAN-007.md +0 -34
- package/tasks/completed/CLEAN-008.md +0 -49
- package/tasks/completed/CLEAN-012.md +0 -58
- package/tasks/completed/CLEAN-013.md +0 -45
- package/tasks/completed/SEC-001-sql-injection-fix.md +0 -58
- package/tasks/completed/SEC-002-notification-injection-fix.md +0 -45
- package/tasks/completed/SEC-003-eval-injection-fix.md +0 -54
- package/tasks/completed/SEC-004-pid-race-condition-fix.md +0 -49
- package/tasks/completed/SEC-005-worker-loop-path-fix.md +0 -51
- package/tasks/completed/SEC-006-eval-agent-names.md +0 -55
- package/tasks/completed/SEC-007-spawn-escaping.md +0 -67
- package/tasks/pending/ARCH-004-git-bash-detection-duplication.md +0 -72
- package/tasks/pending/ARCH-005-missing-src-directory.md +0 -95
- package/tasks/pending/ARCH-006-task-template-location.md +0 -64
- package/tasks/pending/ARCH-007-daemon-monolith.md +0 -91
- package/tasks/pending/ARCH-008-forge-master-vs-hub.md +0 -81
- package/tasks/pending/ARCH-010-missing-index-files.md +0 -84
- package/tasks/pending/CLEAN-002.md +0 -29
- package/tasks/pending/CLEAN-009.md +0 -31
- package/tasks/pending/CLEAN-010.md +0 -30
- package/tasks/pending/CLEAN-011.md +0 -30
- package/tasks/pending/CLEAN-014.md +0 -32
- package/tasks/review/task-001.md +0 -78
- /package/{bin → src}/lib/agents.sh +0 -0
- /package/{bin → src}/lib/util.sh +0 -0
- /package/{bin → src}/lib/vcs.js +0 -0
- /package/{context → templates}/project-context-template.md +0 -0
package/docs/TODO.md
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
# Vibe Forge - Future Improvements
|
|
2
|
-
|
|
3
|
-
This document tracks long-term vision, feature ideas, and historical decisions.
|
|
4
|
-
|
|
5
|
-
**For actionable items, see:** `tasks/pending/` directory
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Completed Items (Historical Reference)
|
|
10
|
-
|
|
11
|
-
### Security Fixes
|
|
12
|
-
- ~~**L-2: Terminal escape sequences in task parsing**~~ - Fixed in 0.3.7
|
|
13
|
-
- ~~**L-3: Workflow version injection**~~ - Fixed in 0.3.7
|
|
14
|
-
- ~~**SEC-001 through SEC-005**~~ - Various security fixes completed
|
|
15
|
-
|
|
16
|
-
### Architecture Fixes
|
|
17
|
-
- ~~**Silent error suppression for JSON loading**~~ - Fixed in 0.3.7
|
|
18
|
-
- ~~**Inconsistent exit codes**~~ - Fixed (see `bin/lib/constants.sh`)
|
|
19
|
-
- ~~**Hardcoded agent list in cmd_help()**~~ - Fixed in 0.3.7
|
|
20
|
-
- ~~**Raw echo -e instead of log_* functions**~~ - Fixed
|
|
21
|
-
- ~~**Duplicate color definitions in cli.js**~~ - Documented as intentional
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## Open Tasks (See tasks/pending/)
|
|
26
|
-
|
|
27
|
-
The following items have been migrated to task files:
|
|
28
|
-
|
|
29
|
-
| Item | Task ID | Description |
|
|
30
|
-
|------|---------|-------------|
|
|
31
|
-
| M-1 eval() vulnerability | SEC-006 | Agent name validation |
|
|
32
|
-
| L-1 Windows escaping | SEC-007 | printf %q for spawn |
|
|
33
|
-
|
|
34
|
-
### Completed Architecture Items
|
|
35
|
-
- ~~**ARCH-014: sed -i incompatibility**~~ - Fixed with cross-platform `sed_inplace()` helper in `bin/lib/util.sh`
|
|
36
|
-
- ~~**ARCH-012: tmpclaude-* temp files**~~ - Cleaned up, .gitignore already configured
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## Testing Gaps (Low Priority)
|
|
41
|
-
|
|
42
|
-
These testing gaps are known but low priority:
|
|
43
|
-
|
|
44
|
-
- `show_available_agents()` not tested
|
|
45
|
-
- `setup_windows_env()` not tested (hard to test in CI)
|
|
46
|
-
- `colors.sh` log functions not tested (display-only)
|
|
47
|
-
- CLI `init`/`update` commands not tested (side effects)
|
|
48
|
-
|
|
49
|
-
### Shell Tests - RESOLVED (ARCH-009)
|
|
50
|
-
|
|
51
|
-
Shell tests have been converted from BATS to Jest:
|
|
52
|
-
|
|
53
|
-
- **Root cause**: Bash associative arrays (`declare -A`) are not exported to subshells. BATS runs each `@test` in a subshell, causing associative arrays to be unavailable.
|
|
54
|
-
- **Solution**: Converted all BATS tests to Jest tests that invoke bash via `child_process.spawnSync()`. This avoids the subshell inheritance issue.
|
|
55
|
-
- **Result**: 80 tests now passing in CI, covering:
|
|
56
|
-
- `bin/lib/constants.sh` - Exit codes, directory constants, agent arrays
|
|
57
|
-
- `bin/lib/config.sh` - JSON parsing, config loading
|
|
58
|
-
- `bin/lib/agents.sh` - Agent resolution, validation, security tests
|
|
59
|
-
- `bin/cli.js` - Help, version, command handling
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## Feature Ideas
|
|
64
|
-
|
|
65
|
-
### LSP/Tooling Selection During Init
|
|
66
|
-
|
|
67
|
-
Add multi-select during `vibe-forge init` for tech stack:
|
|
68
|
-
- **Languages:** TypeScript, Python, Rust, Go, Java, C#
|
|
69
|
-
- **Frameworks:** React, Vue, Next.js, FastAPI, Django, Express
|
|
70
|
-
- **Infrastructure:** Docker, Kubernetes, Terraform, AWS, GCP
|
|
71
|
-
- **Databases:** PostgreSQL, MongoDB, Redis, SQLite
|
|
72
|
-
|
|
73
|
-
Would generate customized `context/project-stack.md` based on selections with:
|
|
74
|
-
- Relevant LSP configs
|
|
75
|
-
- Linter recommendations
|
|
76
|
-
- Modern conventions
|
|
77
|
-
- Auto-detection from existing files
|
|
78
|
-
|
|
79
|
-
### Auto Status on /forge Startup
|
|
80
|
-
|
|
81
|
-
Removed in 0.3.6 to reduce 45s to ~15s startup time. Could re-add with:
|
|
82
|
-
- "show status on startup" config option
|
|
83
|
-
- Lazy loading of status data
|
|
84
|
-
- Cached status with staleness check
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## V2 Architecture (Major Refactor)
|
|
89
|
-
|
|
90
|
-
### Problem
|
|
91
|
-
|
|
92
|
-
Current design clones the entire vibe-forge repo into each project as `_vibe-forge/`. This has issues:
|
|
93
|
-
|
|
94
|
-
- Commits 50+ tool files into user's repo that are not their code
|
|
95
|
-
- Updates are awkward (re-run init? git pull?)
|
|
96
|
-
- Pollutes git history with tool internals
|
|
97
|
-
- Merge conflicts when updating
|
|
98
|
-
|
|
99
|
-
### Proposed Solution: Tool vs Data Separation
|
|
100
|
-
|
|
101
|
-
**Tool** (from npm, NOT committed):
|
|
102
|
-
|
|
103
|
-
```text
|
|
104
|
-
npx vibe-forge ... # Runs from npm cache
|
|
105
|
-
~/.vibe-forge/ # Or global install location
|
|
106
|
-
├── bin/ # Scripts
|
|
107
|
-
├── agents/ # Agent personalities
|
|
108
|
-
└── config/ # Default configs
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
**Project Data** (committed, project-specific):
|
|
112
|
-
|
|
113
|
-
```text
|
|
114
|
-
your-project/
|
|
115
|
-
├── .forge/ # Local config (gitignored)
|
|
116
|
-
│ ├── config.json # Terminal type, paths, preferences
|
|
117
|
-
│ └── state.yaml # Current session state
|
|
118
|
-
└── .vibe-forge/ # Project data (committed)
|
|
119
|
-
├── tasks/ # Task files
|
|
120
|
-
│ ├── pending/
|
|
121
|
-
│ ├── in-progress/
|
|
122
|
-
│ └── completed/
|
|
123
|
-
├── context/ # Project context
|
|
124
|
-
│ └── project-context.md
|
|
125
|
-
└── overrides/ # Optional: project-specific agent tweaks
|
|
126
|
-
└── agents.json # Override default agent config
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Benefits
|
|
130
|
-
|
|
131
|
-
1. **Clean git history** - Only project data committed, not tool code
|
|
132
|
-
2. **Easy updates** - `npm update -g vibe-forge` or `npx vibe-forge@latest`
|
|
133
|
-
3. **Single source of truth** - Tool version consistent across projects
|
|
134
|
-
4. **Smaller footprint** - ~10 files vs 50+
|
|
135
|
-
5. **No vendoring** - Do not commit dependencies into your repo
|
|
136
|
-
|
|
137
|
-
### Migration Path
|
|
138
|
-
|
|
139
|
-
1. **v0.4.x (current)**: Add `.gitignore` entries for tool internals (stopgap)
|
|
140
|
-
2. **v1.0**: Refactor to proper tool/data separation
|
|
141
|
-
- Tool runs from npm package directly
|
|
142
|
-
- Only `.vibe-forge/` folder in project
|
|
143
|
-
- Backward compat: detect old `_vibe-forge/` and migrate
|
|
144
|
-
|
|
145
|
-
### Implementation Notes
|
|
146
|
-
|
|
147
|
-
- `npx vibe-forge` already works - just need to make scripts runnable from npm location
|
|
148
|
-
- Agent personalities loaded from npm package by default, with project overrides
|
|
149
|
-
- Tasks/context remain project-local
|
|
150
|
-
- `.forge/config.json` stays gitignored (machine-specific)
|
package/docs/getting-started.md
DELETED
|
@@ -1,243 +0,0 @@
|
|
|
1
|
-
# Getting Started with Vibe Forge
|
|
2
|
-
|
|
3
|
-
Vibe Forge is a multi-agent development orchestration tool for Claude Code. It helps you coordinate multiple AI agents working on different aspects of your project - frontend, backend, testing, documentation, and more.
|
|
4
|
-
|
|
5
|
-
## Prerequisites
|
|
6
|
-
|
|
7
|
-
Before installing Vibe Forge, ensure you have:
|
|
8
|
-
|
|
9
|
-
1. **Node.js** (v18 or later)
|
|
10
|
-
2. **Git** - Required for installation and version control
|
|
11
|
-
3. **Claude Code CLI** - Install from [claude.ai/download](https://claude.ai/download)
|
|
12
|
-
|
|
13
|
-
### Windows Users
|
|
14
|
-
|
|
15
|
-
Git Bash is required. Install Git via:
|
|
16
|
-
```bash
|
|
17
|
-
winget install Git.Git
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Installation
|
|
21
|
-
|
|
22
|
-
### Quick Start (Recommended)
|
|
23
|
-
|
|
24
|
-
Run this command in your project directory:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
npx vibe-forge init
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
This will:
|
|
31
|
-
1. Clone Vibe Forge into `_vibe-forge/`
|
|
32
|
-
2. Check prerequisites (Git, Claude Code)
|
|
33
|
-
3. Run the interactive setup wizard
|
|
34
|
-
4. Install the `/forge` slash command
|
|
35
|
-
5. Create a project context file
|
|
36
|
-
|
|
37
|
-
### Global Installation
|
|
38
|
-
|
|
39
|
-
If you prefer a global install:
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
npm install -g vibe-forge
|
|
43
|
-
vibe-forge init
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### Update to Latest Version
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
npx vibe-forge update
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
## First-Time Setup
|
|
53
|
-
|
|
54
|
-
When you run `npx vibe-forge init`, you will be guided through configuration:
|
|
55
|
-
|
|
56
|
-
### 1. Platform Detection
|
|
57
|
-
|
|
58
|
-
Vibe Forge automatically detects your operating system (Windows, macOS, or Linux) and configures paths accordingly.
|
|
59
|
-
|
|
60
|
-
### 2. Terminal Selection
|
|
61
|
-
|
|
62
|
-
Choose your terminal for spawning worker agents:
|
|
63
|
-
|
|
64
|
-
- **Windows Terminal** (recommended for Windows) - Workers spawn in new tabs
|
|
65
|
-
- **Manual** - You will receive instructions to start workers manually
|
|
66
|
-
|
|
67
|
-
### 3. Daemon Configuration
|
|
68
|
-
|
|
69
|
-
The forge daemon monitors task folders and routes work automatically:
|
|
70
|
-
|
|
71
|
-
```
|
|
72
|
-
Enable daemon orchestration? (Y/n):
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
The daemon runs in the background and keeps track of:
|
|
76
|
-
- Pending tasks
|
|
77
|
-
- Worker status
|
|
78
|
-
- Task assignments
|
|
79
|
-
|
|
80
|
-
### 4. Worker Loop Configuration
|
|
81
|
-
|
|
82
|
-
Worker Loop keeps agents running continuously:
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
Enable persistent worker mode? (y/N):
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
When enabled, workers automatically check for new tasks after completing their current work instead of exiting.
|
|
89
|
-
|
|
90
|
-
### 5. Project Context
|
|
91
|
-
|
|
92
|
-
Vibe Forge creates `context/project-context.md` with detected information about your project. Edit this file to add:
|
|
93
|
-
- Project description
|
|
94
|
-
- Architecture overview
|
|
95
|
-
- Coding conventions
|
|
96
|
-
- Team guidelines
|
|
97
|
-
|
|
98
|
-
## Basic Usage
|
|
99
|
-
|
|
100
|
-
### Start the Planning Hub
|
|
101
|
-
|
|
102
|
-
Open Claude Code in your project and run:
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
/forge
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
This starts the Planning Hub - a multi-expert planning team that helps you:
|
|
109
|
-
- Break down features into tasks
|
|
110
|
-
- Assign work to specialized agents
|
|
111
|
-
- Coordinate development efforts
|
|
112
|
-
|
|
113
|
-
### Check Status
|
|
114
|
-
|
|
115
|
-
View the current state of your forge:
|
|
116
|
-
|
|
117
|
-
```
|
|
118
|
-
/forge status
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
This shows:
|
|
122
|
-
- Active agents and their status
|
|
123
|
-
- Pending tasks by category
|
|
124
|
-
- Tasks in progress
|
|
125
|
-
- Completed work
|
|
126
|
-
|
|
127
|
-
### Spawn a Worker
|
|
128
|
-
|
|
129
|
-
Start a specialized agent in a new terminal:
|
|
130
|
-
|
|
131
|
-
```
|
|
132
|
-
/forge spawn anvil
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
Available agents:
|
|
136
|
-
- `anvil` - Frontend Developer
|
|
137
|
-
- `furnace` - Backend Developer
|
|
138
|
-
- `crucible` - Tester / QA
|
|
139
|
-
- `sentinel` - Code Reviewer
|
|
140
|
-
- `scribe` - Documentation
|
|
141
|
-
- `herald` - Release Manager
|
|
142
|
-
- `ember` - DevOps
|
|
143
|
-
- `aegis` - Security
|
|
144
|
-
|
|
145
|
-
### Create a Task
|
|
146
|
-
|
|
147
|
-
Add a new task to the queue:
|
|
148
|
-
|
|
149
|
-
```
|
|
150
|
-
/forge task Add user authentication to the login page
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
The Planning Hub will help you:
|
|
154
|
-
- Clarify requirements
|
|
155
|
-
- Assign the appropriate agent
|
|
156
|
-
- Set priority
|
|
157
|
-
|
|
158
|
-
## Project Structure
|
|
159
|
-
|
|
160
|
-
After setup, your project will have:
|
|
161
|
-
|
|
162
|
-
```
|
|
163
|
-
your-project/
|
|
164
|
-
├── _vibe-forge/ # Vibe Forge tool (mostly gitignored)
|
|
165
|
-
│ ├── bin/ # CLI scripts
|
|
166
|
-
│ ├── config/ # Configuration files
|
|
167
|
-
│ ├── agents/ # Agent personalities
|
|
168
|
-
│ └── .forge/ # Local config (gitignored)
|
|
169
|
-
├── context/ # Project context (committed)
|
|
170
|
-
│ └── project-context.md # Your project description
|
|
171
|
-
├── tasks/ # Task files (committed)
|
|
172
|
-
│ ├── pending/ # Awaiting assignment
|
|
173
|
-
│ ├── in-progress/ # Currently being worked
|
|
174
|
-
│ ├── review/ # Ready for review
|
|
175
|
-
│ └── completed/ # Done
|
|
176
|
-
└── .claude/
|
|
177
|
-
└── commands/
|
|
178
|
-
└── forge.md # The /forge slash command
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
## Example Workflow
|
|
182
|
-
|
|
183
|
-
Here is a typical development session:
|
|
184
|
-
|
|
185
|
-
1. **Start your day** - Open Claude Code and run `/forge`
|
|
186
|
-
|
|
187
|
-
2. **Plan features** - Discuss what you want to build with the Planning Hub
|
|
188
|
-
|
|
189
|
-
3. **Spawn workers** - `/forge spawn anvil` for frontend, `/forge spawn furnace` for backend
|
|
190
|
-
|
|
191
|
-
4. **Create tasks** - `/forge task Implement shopping cart component`
|
|
192
|
-
|
|
193
|
-
5. **Monitor progress** - `/forge status` to see what is happening
|
|
194
|
-
|
|
195
|
-
6. **Review work** - Sentinel reviews completed code automatically
|
|
196
|
-
|
|
197
|
-
7. **Ship** - Herald manages releases when ready
|
|
198
|
-
|
|
199
|
-
## Next Steps
|
|
200
|
-
|
|
201
|
-
- Read [Commands Reference](./commands.md) for all available commands
|
|
202
|
-
- Read [Agent Guide](./agents.md) to learn about each specialist
|
|
203
|
-
- Read [Workflows](./workflows.md) for common patterns
|
|
204
|
-
|
|
205
|
-
## Troubleshooting
|
|
206
|
-
|
|
207
|
-
### Claude Code not found
|
|
208
|
-
|
|
209
|
-
Ensure Claude Code CLI is installed and in your PATH:
|
|
210
|
-
```bash
|
|
211
|
-
claude --version
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
If not found, install from [claude.ai/download](https://claude.ai/download).
|
|
215
|
-
|
|
216
|
-
### Git Bash not found (Windows)
|
|
217
|
-
|
|
218
|
-
Install Git with Git Bash:
|
|
219
|
-
```bash
|
|
220
|
-
winget install Git.Git
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
Restart your terminal after installation.
|
|
224
|
-
|
|
225
|
-
### Slash command not working
|
|
226
|
-
|
|
227
|
-
The `/forge` command should be installed in `.claude/commands/forge.md`. If missing, copy it manually:
|
|
228
|
-
|
|
229
|
-
```bash
|
|
230
|
-
cp _vibe-forge/.claude/commands/forge.md .claude/commands/
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
### Daemon not starting
|
|
234
|
-
|
|
235
|
-
Check if the daemon is already running:
|
|
236
|
-
```bash
|
|
237
|
-
./bin/forge-daemon.sh status
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
Start it manually:
|
|
241
|
-
```bash
|
|
242
|
-
./bin/forge-daemon.sh start
|
|
243
|
-
```
|
package/docs/npm-publishing.md
DELETED
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
# npm Publishing with OIDC Trusted Publishing
|
|
2
|
-
|
|
3
|
-
This document explains how Vibe Forge publishes to npm using GitHub Actions OIDC trusted publishing - no npm tokens required.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
npm's [trusted publishing](https://docs.npmjs.com/trusted-publishers/) uses OpenID Connect (OIDC) to authenticate GitHub Actions workflows directly with npm. This eliminates the need to store npm tokens as secrets.
|
|
8
|
-
|
|
9
|
-
## Requirements
|
|
10
|
-
|
|
11
|
-
1. **npm CLI v11.5.1+** - OIDC support was added in npm 11.5.1
|
|
12
|
-
2. **Public GitHub repository** - Provenance attestation only works with public repos
|
|
13
|
-
3. **Trusted Publisher configured on npmjs.com** - Links your package to your GitHub repo
|
|
14
|
-
|
|
15
|
-
## Setup
|
|
16
|
-
|
|
17
|
-
### 1. Configure Trusted Publisher on npm
|
|
18
|
-
|
|
19
|
-
1. Go to https://www.npmjs.com/package/vibe-forge/access
|
|
20
|
-
2. Under "Trusted Publishers", add a new publisher:
|
|
21
|
-
- **Publisher**: GitHub Actions
|
|
22
|
-
- **Organization/user**: SpasticPalate
|
|
23
|
-
- **Repository**: vibe-forge
|
|
24
|
-
- **Workflow filename**: publish.yml
|
|
25
|
-
- **Environment name**: (leave empty)
|
|
26
|
-
|
|
27
|
-
### 2. GitHub Actions Workflow
|
|
28
|
-
|
|
29
|
-
The workflow requires specific permissions and npm version:
|
|
30
|
-
|
|
31
|
-
```yaml
|
|
32
|
-
jobs:
|
|
33
|
-
publish:
|
|
34
|
-
runs-on: ubuntu-latest
|
|
35
|
-
permissions:
|
|
36
|
-
contents: read
|
|
37
|
-
id-token: write # Required for OIDC token generation
|
|
38
|
-
steps:
|
|
39
|
-
- uses: actions/checkout@v4
|
|
40
|
-
|
|
41
|
-
- uses: actions/setup-node@v4
|
|
42
|
-
with:
|
|
43
|
-
node-version: '22'
|
|
44
|
-
|
|
45
|
-
# npm 11.5.1+ required for OIDC
|
|
46
|
-
- run: npm install -g npm@latest
|
|
47
|
-
|
|
48
|
-
- run: npm publish --provenance --access public
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Key points:
|
|
52
|
-
- `id-token: write` permission enables OIDC token generation
|
|
53
|
-
- `--provenance` flag enables signed provenance attestation
|
|
54
|
-
- No `NODE_AUTH_TOKEN` or `NPM_TOKEN` needed
|
|
55
|
-
|
|
56
|
-
## Troubleshooting
|
|
57
|
-
|
|
58
|
-
### "Access token expired or revoked" with E404
|
|
59
|
-
|
|
60
|
-
**Cause**: npm CLI version is too old (< 11.5.1)
|
|
61
|
-
|
|
62
|
-
**Fix**: Add `npm install -g npm@latest` before publishing
|
|
63
|
-
|
|
64
|
-
### "Unsupported GitHub Actions source repository visibility: private"
|
|
65
|
-
|
|
66
|
-
**Cause**: Provenance attestation only works with public repositories
|
|
67
|
-
|
|
68
|
-
**Fix**: Either make the repo public, or remove `--provenance` and use a granular npm token instead
|
|
69
|
-
|
|
70
|
-
### "ENEEDAUTH - need auth"
|
|
71
|
-
|
|
72
|
-
**Cause**: OIDC token not being generated/used
|
|
73
|
-
|
|
74
|
-
**Fix**: Ensure `id-token: write` permission is set on the job
|
|
75
|
-
|
|
76
|
-
### 404 on publish despite correct setup
|
|
77
|
-
|
|
78
|
-
**Cause**: Trusted Publisher configuration doesn't match workflow
|
|
79
|
-
|
|
80
|
-
**Fix**: Verify on npmjs.com that:
|
|
81
|
-
- Organization/user matches exactly (case-sensitive)
|
|
82
|
-
- Repository name matches exactly
|
|
83
|
-
- Workflow filename matches exactly (e.g., `publish.yml`)
|
|
84
|
-
|
|
85
|
-
## Benefits
|
|
86
|
-
|
|
87
|
-
- **No secrets to manage** - No npm tokens to rotate or accidentally expose
|
|
88
|
-
- **Provenance attestation** - Packages are cryptographically signed with build info
|
|
89
|
-
- **Audit trail** - Provenance is published to Sigstore transparency log
|
|
90
|
-
|
|
91
|
-
## References
|
|
92
|
-
|
|
93
|
-
- [npm Trusted Publishers](https://docs.npmjs.com/trusted-publishers/)
|
|
94
|
-
- [npm Provenance](https://docs.npmjs.com/generating-provenance-statements/)
|
|
95
|
-
- [GitHub: npm trusted publishing GA](https://github.blog/changelog/2025-07-31-npm-trusted-publishing-with-oidc-is-generally-available/)
|
package/docs/workflows/README.md
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# VCS Workflow Guides
|
|
2
|
-
|
|
3
|
-
Platform-specific workflow guidance for Vibe Forge agents. The appropriate guide is selected based on the project's VCS configuration (see `/configure-vcs`).
|
|
4
|
-
|
|
5
|
-
## Available Guides
|
|
6
|
-
|
|
7
|
-
| Platform | File | Use Case |
|
|
8
|
-
|----------|------|----------|
|
|
9
|
-
| [GitHub](./github.md) | `github.md` | GitHub with Actions CI |
|
|
10
|
-
| [GitLab](./gitlab.md) | `gitlab.md` | GitLab with GitLab CI |
|
|
11
|
-
| [Gitea](./gitea.md) | `gitea.md` | Gitea/Codeberg with Gitea Actions |
|
|
12
|
-
| [Azure DevOps](./azure-devops.md) | `azure-devops.md` | Azure DevOps with Pipelines |
|
|
13
|
-
| [Bitbucket](./bitbucket.md) | `bitbucket.md` | Bitbucket with Pipelines |
|
|
14
|
-
| [Git Only](./git-only.md) | `git-only.md` | Git without hosted platform |
|
|
15
|
-
|
|
16
|
-
## Configuration
|
|
17
|
-
|
|
18
|
-
VCS type is set during `forge init` or via `/configure-vcs`. Configuration stored in `.forge/config.json`:
|
|
19
|
-
|
|
20
|
-
```json
|
|
21
|
-
{
|
|
22
|
-
"vcs": {
|
|
23
|
-
"type": "github",
|
|
24
|
-
"name": "GitHub",
|
|
25
|
-
"autoDetected": true
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## Agent Integration
|
|
31
|
-
|
|
32
|
-
Agents read the VCS configuration and reference the appropriate workflow guide. The git workflow section in agent personalities is dynamically adjusted based on the configured platform.
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
# Azure DevOps Workflow Guide
|
|
2
|
-
|
|
3
|
-
Git workflow guidance for projects hosted on Azure DevOps.
|
|
4
|
-
|
|
5
|
-
## Branch Naming
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
task/TASK-XXX-description # Task branches
|
|
9
|
-
feature/feature-name # Feature branches
|
|
10
|
-
bugfix/bug-description # Bug fix branches
|
|
11
|
-
hotfix/urgent-fix # Urgent production fixes
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
## Daily Workflow
|
|
15
|
-
|
|
16
|
-
### Starting a Task
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
# Ensure you're on latest main
|
|
20
|
-
git checkout main && git pull origin main
|
|
21
|
-
|
|
22
|
-
# Create feature branch
|
|
23
|
-
git checkout -b task/TASK-XXX-description
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### During Development
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
# Stage and commit changes
|
|
30
|
-
git add .
|
|
31
|
-
git commit -m "Add feature X"
|
|
32
|
-
|
|
33
|
-
# Push to remote (first time)
|
|
34
|
-
git push -u origin task/TASK-XXX-description
|
|
35
|
-
|
|
36
|
-
# Subsequent pushes
|
|
37
|
-
git push
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Creating a Pull Request
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
# Using Azure CLI
|
|
44
|
-
az repos pr create \
|
|
45
|
-
--title "TASK-XXX: Add feature X" \
|
|
46
|
-
--description "Description of changes" \
|
|
47
|
-
--source-branch task/TASK-XXX-description \
|
|
48
|
-
--target-branch main
|
|
49
|
-
|
|
50
|
-
# Set to draft
|
|
51
|
-
az repos pr create --draft \
|
|
52
|
-
--title "TASK-XXX: WIP - Add feature X" \
|
|
53
|
-
--source-branch task/TASK-XXX-description
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### After PR Approval
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
# Complete PR via Azure CLI
|
|
60
|
-
az repos pr update --id <pr-id> --status completed
|
|
61
|
-
|
|
62
|
-
# Clean up local branch
|
|
63
|
-
git checkout main
|
|
64
|
-
git pull origin main
|
|
65
|
-
git branch -d task/TASK-XXX-description
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## CI/CD
|
|
69
|
-
|
|
70
|
-
Azure Pipelines configuration goes in `azure-pipelines.yml`:
|
|
71
|
-
|
|
72
|
-
```yaml
|
|
73
|
-
# azure-pipelines.yml
|
|
74
|
-
trigger:
|
|
75
|
-
- main
|
|
76
|
-
|
|
77
|
-
pool:
|
|
78
|
-
vmImage: 'ubuntu-latest'
|
|
79
|
-
|
|
80
|
-
steps:
|
|
81
|
-
- task: NodeTool@0
|
|
82
|
-
inputs:
|
|
83
|
-
versionSpec: '20.x'
|
|
84
|
-
|
|
85
|
-
- script: npm ci
|
|
86
|
-
displayName: 'Install dependencies'
|
|
87
|
-
|
|
88
|
-
- script: npm test
|
|
89
|
-
displayName: 'Run tests'
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Useful Commands
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
# Azure CLI for repos
|
|
96
|
-
az repos pr list # List open PRs
|
|
97
|
-
az repos pr show --id 123 # Show PR details
|
|
98
|
-
az repos pr checkout --id 123 # Checkout PR locally
|
|
99
|
-
az pipelines run list # List pipeline runs
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
## Branch Policies
|
|
103
|
-
|
|
104
|
-
Configure in Repos > Branches > Branch policies:
|
|
105
|
-
- Require minimum number of reviewers
|
|
106
|
-
- Check for linked work items
|
|
107
|
-
- Build validation
|
|
108
|
-
- Require merge strategy (squash)
|