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.
Files changed (129) hide show
  1. package/.claude/commands/clear-attention.md +63 -63
  2. package/.claude/commands/compact-context.md +52 -0
  3. package/.claude/commands/configure-vcs.md +5 -5
  4. package/.claude/commands/forge.md +50 -3
  5. package/.claude/commands/need-help.md +77 -77
  6. package/.claude/commands/update-status.md +64 -64
  7. package/.claude/commands/worker-loop.md +106 -106
  8. package/.claude/hooks/worker-loop.js +37 -4
  9. package/.claude/scripts/setup-worker-loop.sh +45 -45
  10. package/.claude/settings.json +89 -0
  11. package/LICENSE +21 -21
  12. package/README.md +211 -232
  13. package/agents/aegis/personality.md +35 -1
  14. package/agents/anvil/personality.md +39 -1
  15. package/agents/architect/personality.md +26 -0
  16. package/agents/crucible/personality.md +54 -1
  17. package/agents/crucible-x/personality.md +210 -0
  18. package/agents/ember/personality.md +29 -1
  19. package/agents/flux/personality.md +248 -0
  20. package/agents/furnace/personality.md +52 -1
  21. package/agents/herald/personality.md +3 -1
  22. package/agents/loki/personality.md +108 -0
  23. package/agents/oracle/personality.md +284 -0
  24. package/agents/pixel/personality.md +140 -0
  25. package/agents/planning-hub/personality.md +222 -0
  26. package/agents/scribe/personality.md +3 -1
  27. package/agents/slag/personality.md +268 -0
  28. package/agents/{sentinel → temper}/personality.md +85 -9
  29. package/bin/cli.js +77 -30
  30. package/bin/dashboard/api/agents.js +333 -0
  31. package/bin/dashboard/api/dispatch.js +507 -0
  32. package/bin/dashboard/api/tasks.js +416 -0
  33. package/bin/dashboard/public/assets/index-BpHfsx1r.js +2 -0
  34. package/bin/dashboard/public/assets/index-QODv4Zn9.css +1 -0
  35. package/bin/dashboard/public/index.html +14 -0
  36. package/bin/dashboard/server.js +645 -0
  37. package/bin/forge-daemon.sh +176 -550
  38. package/bin/forge-setup.sh +28 -11
  39. package/bin/forge-spawn.sh +5 -5
  40. package/bin/forge.cmd +83 -83
  41. package/bin/forge.sh +210 -31
  42. package/config/agent-manifest.yaml +237 -243
  43. package/config/agents.json +207 -132
  44. package/config/task-types.yaml +111 -106
  45. package/context/agent-overrides/README.md +41 -0
  46. package/context/architecture.md +42 -0
  47. package/context/modern-conventions.md +129 -129
  48. package/docs/agents.md +473 -409
  49. package/docs/architecture.md +194 -162
  50. package/docs/commands.md +451 -388
  51. package/docs/security.md +195 -144
  52. package/package.json +38 -11
  53. package/src/lib/check-aliases.js +50 -0
  54. package/{bin → src}/lib/colors.sh +2 -1
  55. package/src/lib/config.sh +347 -0
  56. package/{bin → src}/lib/constants.sh +48 -13
  57. package/src/lib/daemon/budgets.sh +107 -0
  58. package/src/lib/daemon/dependencies.sh +146 -0
  59. package/src/lib/daemon/display.sh +128 -0
  60. package/src/lib/daemon/notifications.sh +273 -0
  61. package/src/lib/daemon/routing.sh +93 -0
  62. package/src/lib/daemon/state.sh +163 -0
  63. package/src/lib/daemon/sync.sh +103 -0
  64. package/{bin → src}/lib/database.sh +52 -0
  65. package/src/lib/frontmatter.js +106 -0
  66. package/src/lib/heimdall-setup.js +113 -0
  67. package/src/lib/heimdall.js +265 -0
  68. package/src/lib/index.sh +25 -0
  69. package/{bin → src}/lib/json.sh +7 -1
  70. package/{bin → src}/lib/terminal.js +7 -1
  71. package/.claude/settings.local.json +0 -33
  72. package/agents/forge-master/capabilities.md +0 -144
  73. package/agents/forge-master/context-template.md +0 -128
  74. package/agents/forge-master/personality.md +0 -138
  75. package/bin/lib/config.sh +0 -313
  76. package/config/task-template.md +0 -87
  77. package/context/forge-state.yaml +0 -19
  78. package/docs/TODO.md +0 -150
  79. package/docs/getting-started.md +0 -243
  80. package/docs/npm-publishing.md +0 -95
  81. package/docs/workflows/README.md +0 -32
  82. package/docs/workflows/azure-devops.md +0 -108
  83. package/docs/workflows/bitbucket.md +0 -104
  84. package/docs/workflows/git-only.md +0 -130
  85. package/docs/workflows/gitea.md +0 -168
  86. package/docs/workflows/github.md +0 -103
  87. package/docs/workflows/gitlab.md +0 -105
  88. package/docs/workflows.md +0 -454
  89. package/tasks/completed/ARCH-001-duplicate-agent-config.md +0 -121
  90. package/tasks/completed/ARCH-002-mixed-bash-node-implementation.md +0 -88
  91. package/tasks/completed/ARCH-003-worker-loop-hook-duplication.md +0 -77
  92. package/tasks/completed/ARCH-009-test-organization.md +0 -78
  93. package/tasks/completed/ARCH-011-jq-vs-nodejs-json.md +0 -94
  94. package/tasks/completed/ARCH-012-tmp-files-in-root.md +0 -71
  95. package/tasks/completed/ARCH-013-exit-code-constants.md +0 -65
  96. package/tasks/completed/ARCH-014-sed-incompatibility.md +0 -96
  97. package/tasks/completed/ARCH-015-docs-todo-tracking.md +0 -83
  98. package/tasks/completed/CLEAN-001.md +0 -38
  99. package/tasks/completed/CLEAN-003.md +0 -47
  100. package/tasks/completed/CLEAN-004.md +0 -56
  101. package/tasks/completed/CLEAN-005.md +0 -75
  102. package/tasks/completed/CLEAN-006.md +0 -47
  103. package/tasks/completed/CLEAN-007.md +0 -34
  104. package/tasks/completed/CLEAN-008.md +0 -49
  105. package/tasks/completed/CLEAN-012.md +0 -58
  106. package/tasks/completed/CLEAN-013.md +0 -45
  107. package/tasks/completed/SEC-001-sql-injection-fix.md +0 -58
  108. package/tasks/completed/SEC-002-notification-injection-fix.md +0 -45
  109. package/tasks/completed/SEC-003-eval-injection-fix.md +0 -54
  110. package/tasks/completed/SEC-004-pid-race-condition-fix.md +0 -49
  111. package/tasks/completed/SEC-005-worker-loop-path-fix.md +0 -51
  112. package/tasks/completed/SEC-006-eval-agent-names.md +0 -55
  113. package/tasks/completed/SEC-007-spawn-escaping.md +0 -67
  114. package/tasks/pending/ARCH-004-git-bash-detection-duplication.md +0 -72
  115. package/tasks/pending/ARCH-005-missing-src-directory.md +0 -95
  116. package/tasks/pending/ARCH-006-task-template-location.md +0 -64
  117. package/tasks/pending/ARCH-007-daemon-monolith.md +0 -91
  118. package/tasks/pending/ARCH-008-forge-master-vs-hub.md +0 -81
  119. package/tasks/pending/ARCH-010-missing-index-files.md +0 -84
  120. package/tasks/pending/CLEAN-002.md +0 -29
  121. package/tasks/pending/CLEAN-009.md +0 -31
  122. package/tasks/pending/CLEAN-010.md +0 -30
  123. package/tasks/pending/CLEAN-011.md +0 -30
  124. package/tasks/pending/CLEAN-014.md +0 -32
  125. package/tasks/review/task-001.md +0 -78
  126. /package/{bin → src}/lib/agents.sh +0 -0
  127. /package/{bin → src}/lib/util.sh +0 -0
  128. /package/{bin → src}/lib/vcs.js +0 -0
  129. /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)
@@ -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
- ```
@@ -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/)
@@ -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)