forge-workflow 0.0.8 → 0.0.9
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/premerge.md +2 -2
- package/.claude/commands/review.md +5 -2
- package/.claude/commands/ship.md +4 -3
- package/.claude/rules/greptile-review-process.md +4 -4
- package/.cline/workflows/premerge.md +2 -2
- package/.cline/workflows/review.md +5 -2
- package/.cline/workflows/ship.md +4 -3
- package/.codex/skills/premerge/SKILL.md +2 -2
- package/.codex/skills/review/SKILL.md +5 -2
- package/.codex/skills/ship/SKILL.md +4 -3
- package/.cursor/commands/premerge.md +2 -2
- package/.cursor/commands/review.md +5 -2
- package/.cursor/commands/ship.md +4 -3
- package/.github/prompts/premerge.prompt.md +2 -2
- package/.github/prompts/review.prompt.md +5 -2
- package/.github/prompts/ship.prompt.md +4 -3
- package/.github/workflows/beads-to-github.yml +1 -1
- package/.github/workflows/github-to-beads.yml +1 -1
- package/.kilocode/workflows/premerge.md +2 -2
- package/.kilocode/workflows/review.md +5 -2
- package/.kilocode/workflows/ship.md +4 -3
- package/.opencode/commands/premerge.md +2 -2
- package/.opencode/commands/review.md +5 -2
- package/.opencode/commands/ship.md +4 -3
- package/.roo/commands/premerge.md +2 -2
- package/.roo/commands/review.md +5 -2
- package/.roo/commands/ship.md +4 -3
- package/AGENTS.md +9 -9
- package/README.md +12 -6
- package/bin/forge.js +14 -3
- package/docs/BEADS_GITHUB_SYNC.md +6 -2
- package/docs/EXAMPLES.md +22 -22
- package/docs/ROADMAP.md +3 -3
- package/docs/TOOLCHAIN.md +60 -52
- package/lib/agents/codex.plugin.json +3 -0
- package/lib/agents-config.js +18 -12
- package/lib/codex-skills.js +54 -1
- package/lib/commands/plan.js +5 -2
- package/lib/commands/setup.js +231 -17
- package/lib/commands/ship.js +188 -5
- package/lib/commands/status.js +20 -33
- package/lib/commands/test.js +90 -25
- package/lib/commands/validate.js +218 -1
- package/lib/setup-action-log.js +2 -0
- package/lib/setup-summary-renderer.js +15 -11
- package/lib/workflow/enforce-stage.js +12 -8
- package/lib/workflow/state-manager.js +193 -0
- package/package.json +1 -1
- package/scripts/dep-guard.sh +11 -1
- package/scripts/forge-team/lib/hooks.sh +1 -1
- package/scripts/forge-team/lib/verify.sh +1 -1
- package/scripts/forge-team/lib/workload.sh +56 -27
- package/scripts/forge-team/tests/workload.test.sh +35 -4
- package/scripts/github-beads-sync/run-bd.mjs +4 -2
- package/scripts/smart-status.sh +10 -1
- package/scripts/sync-utils.sh +39 -0
- package/scripts/test.js +144 -38
|
@@ -94,7 +94,7 @@ git commit -m "docs: update documentation for <feature-name>
|
|
|
94
94
|
git push
|
|
95
95
|
```
|
|
96
96
|
|
|
97
|
-
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.).
|
|
97
|
+
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.). Poll for up to 60 seconds. If checks are still pending after that, stop and ask the user to return to `/premerge <pr-number>` later. If new Greptile comments appear on the doc changes, run `/review <pr-number>` again.
|
|
98
98
|
|
|
99
99
|
### Step 4: Sync Beads
|
|
100
100
|
|
|
@@ -153,7 +153,7 @@ Do NOT suggest merging.
|
|
|
153
153
|
- README.md: Features list updated
|
|
154
154
|
- CLAUDE.md: USER section updated with new pattern
|
|
155
155
|
- Committed: docs: update documentation for auth-refresh
|
|
156
|
-
✓ CI re-triggered after doc push —
|
|
156
|
+
✓ CI re-triggered after doc push — checks passed within the 60 second poll window
|
|
157
157
|
✓ Beads synced
|
|
158
158
|
|
|
159
159
|
✅ PR #89 is ready to merge
|
|
@@ -298,10 +298,13 @@ git push
|
|
|
298
298
|
### Step 9: Verify ALL Checks Pass
|
|
299
299
|
|
|
300
300
|
```bash
|
|
301
|
-
#
|
|
301
|
+
# Check status immediately, then poll for at most 60 seconds
|
|
302
302
|
gh pr checks <pr-number>
|
|
303
303
|
|
|
304
|
-
#
|
|
304
|
+
# If checks are still pending after 60 seconds: STOP and tell the user to return
|
|
305
|
+
# when CI finishes or new review feedback appears.
|
|
306
|
+
#
|
|
307
|
+
# Ensure all completed status checks are green:
|
|
305
308
|
# ✓ GitHub Actions workflows
|
|
306
309
|
# ✓ Greptile review (no unresolved critical comments)
|
|
307
310
|
# ✓ SonarCloud quality gate
|
package/.claude/commands/ship.md
CHANGED
|
@@ -184,9 +184,10 @@ bash scripts/forge-team/index.sh verify 2>&1 || true
|
|
|
184
184
|
- Beads linked: forge-xyz
|
|
185
185
|
- Implementation details in collapsible section
|
|
186
186
|
|
|
187
|
-
⏸️ PR created,
|
|
187
|
+
⏸️ PR created, checks started (Greptile, SonarCloud, GitHub Actions)
|
|
188
|
+
Poll for up to 60 seconds. If checks are still pending, stop here.
|
|
188
189
|
|
|
189
|
-
Next: /review <pr-number> (
|
|
190
|
+
Next: /review <pr-number> (when automated checks complete or new feedback appears)
|
|
190
191
|
```
|
|
191
192
|
|
|
192
193
|
## Integration with Workflow
|
|
@@ -208,5 +209,5 @@ Stage 7: /verify → Post-merge CI check on main
|
|
|
208
209
|
- **Fill every section**: Even if "N/A" — empty/missing sections cause review friction
|
|
209
210
|
- **Include "Closes beads-xxx"**: Required for auto-close in /verify
|
|
210
211
|
- **Concrete data only**: Test counts, file paths, commit SHAs — not placeholder text
|
|
211
|
-
- **
|
|
212
|
+
- **Poll briefly, then stop**: Check PR status for up to 60 seconds, then hand off if checks are still pending
|
|
212
213
|
- **NO auto-merge**: Always wait for /review phase
|
|
@@ -131,7 +131,7 @@ bash .claude/scripts/greptile-resolve.sh stats <pr-number>
|
|
|
131
131
|
|
|
132
132
|
**Should show**: "✓ All Greptile threads resolved!"
|
|
133
133
|
|
|
134
|
-
### Step 4: Push Changes &
|
|
134
|
+
### Step 4: Push Changes & Poll Briefly for Re-review
|
|
135
135
|
|
|
136
136
|
```bash
|
|
137
137
|
git push
|
|
@@ -188,7 +188,7 @@ $ git push
|
|
|
188
188
|
- **Reply to EACH comment thread** using the script (not as separate PR comment)
|
|
189
189
|
- **Mark EACH thread as resolved** after fixing using the script
|
|
190
190
|
- **Track progress** (X of Y fixed) in your notes
|
|
191
|
-
- **
|
|
191
|
+
- **Poll for Greptile re-review for at most 60 seconds** after pushing fixes, then stop and hand off if it is still pending
|
|
192
192
|
- **Use comment ID for replies**, thread ID for resolving
|
|
193
193
|
- **Commit fixes BEFORE replying** so you can reference commit SHA
|
|
194
194
|
|
|
@@ -251,7 +251,7 @@ The `/review` command should now include these steps:
|
|
|
251
251
|
- Fix each issue
|
|
252
252
|
- Reply and resolve systematically
|
|
253
253
|
3. Verify all threads resolved before declaring review complete
|
|
254
|
-
4. Push changes and
|
|
254
|
+
4. Push changes and poll briefly for Greptile re-review
|
|
255
255
|
|
|
256
256
|
---
|
|
257
257
|
|
|
@@ -271,7 +271,7 @@ The `/review` command should now include these steps:
|
|
|
271
271
|
|
|
272
272
|
### Greptile score not updating after fixes
|
|
273
273
|
**Cause**: Must push commits to trigger re-analysis
|
|
274
|
-
**Solution**: `git push
|
|
274
|
+
**Solution**: `git push`, check once immediately, and poll for up to 60 seconds. If Greptile is still pending after that, stop and wait for the user to resume later.
|
|
275
275
|
|
|
276
276
|
---
|
|
277
277
|
|
|
@@ -91,7 +91,7 @@ git commit -m "docs: update documentation for <feature-name>
|
|
|
91
91
|
git push
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
-
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.).
|
|
94
|
+
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.). Poll for up to 60 seconds. If checks are still pending after that, stop and ask the user to return to `/premerge <pr-number>` later. If new Greptile comments appear on the doc changes, run `/review <pr-number>` again.
|
|
95
95
|
|
|
96
96
|
### Step 4: Sync Beads
|
|
97
97
|
|
|
@@ -150,7 +150,7 @@ Do NOT suggest merging.
|
|
|
150
150
|
- README.md: Features list updated
|
|
151
151
|
- CLAUDE.md: USER section updated with new pattern
|
|
152
152
|
- Committed: docs: update documentation for auth-refresh
|
|
153
|
-
✓ CI re-triggered after doc push —
|
|
153
|
+
✓ CI re-triggered after doc push — checks passed within the 60 second poll window
|
|
154
154
|
✓ Beads synced
|
|
155
155
|
|
|
156
156
|
✅ PR #89 is ready to merge
|
|
@@ -295,10 +295,13 @@ git push
|
|
|
295
295
|
### Step 9: Verify ALL Checks Pass
|
|
296
296
|
|
|
297
297
|
```bash
|
|
298
|
-
#
|
|
298
|
+
# Check status immediately, then poll for at most 60 seconds
|
|
299
299
|
gh pr checks <pr-number>
|
|
300
300
|
|
|
301
|
-
#
|
|
301
|
+
# If checks are still pending after 60 seconds: STOP and tell the user to return
|
|
302
|
+
# when CI finishes or new review feedback appears.
|
|
303
|
+
#
|
|
304
|
+
# Ensure all completed status checks are green:
|
|
302
305
|
# ✓ GitHub Actions workflows
|
|
303
306
|
# ✓ Greptile review (no unresolved critical comments)
|
|
304
307
|
# ✓ SonarCloud quality gate
|
package/.cline/workflows/ship.md
CHANGED
|
@@ -181,9 +181,10 @@ bash scripts/forge-team/index.sh verify 2>&1 || true
|
|
|
181
181
|
- Beads linked: forge-xyz
|
|
182
182
|
- Implementation details in collapsible section
|
|
183
183
|
|
|
184
|
-
⏸️ PR created,
|
|
184
|
+
⏸️ PR created, checks started (Greptile, SonarCloud, GitHub Actions)
|
|
185
|
+
Poll for up to 60 seconds. If checks are still pending, stop here.
|
|
185
186
|
|
|
186
|
-
Next: /review <pr-number> (
|
|
187
|
+
Next: /review <pr-number> (when automated checks complete or new feedback appears)
|
|
187
188
|
```
|
|
188
189
|
|
|
189
190
|
## Integration with Workflow
|
|
@@ -205,5 +206,5 @@ Stage 7: /verify → Post-merge CI check on main
|
|
|
205
206
|
- **Fill every section**: Even if "N/A" — empty/missing sections cause review friction
|
|
206
207
|
- **Include "Closes beads-xxx"**: Required for auto-close in /verify
|
|
207
208
|
- **Concrete data only**: Test counts, file paths, commit SHAs — not placeholder text
|
|
208
|
-
- **
|
|
209
|
+
- **Poll briefly, then stop**: Check PR status for up to 60 seconds, then hand off if checks are still pending
|
|
209
210
|
- **NO auto-merge**: Always wait for /review phase
|
|
@@ -94,7 +94,7 @@ git commit -m "docs: update documentation for <feature-name>
|
|
|
94
94
|
git push
|
|
95
95
|
```
|
|
96
96
|
|
|
97
|
-
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.).
|
|
97
|
+
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.). Poll for up to 60 seconds. If checks are still pending after that, stop and ask the user to return to `/premerge <pr-number>` later. If new Greptile comments appear on the doc changes, run `/review <pr-number>` again.
|
|
98
98
|
|
|
99
99
|
### Step 4: Sync Beads
|
|
100
100
|
|
|
@@ -153,7 +153,7 @@ Do NOT suggest merging.
|
|
|
153
153
|
- README.md: Features list updated
|
|
154
154
|
- CLAUDE.md: USER section updated with new pattern
|
|
155
155
|
- Committed: docs: update documentation for auth-refresh
|
|
156
|
-
✓ CI re-triggered after doc push —
|
|
156
|
+
✓ CI re-triggered after doc push — checks passed within the 60 second poll window
|
|
157
157
|
✓ Beads synced
|
|
158
158
|
|
|
159
159
|
✅ PR #89 is ready to merge
|
|
@@ -298,10 +298,13 @@ git push
|
|
|
298
298
|
### Step 9: Verify ALL Checks Pass
|
|
299
299
|
|
|
300
300
|
```bash
|
|
301
|
-
#
|
|
301
|
+
# Check status immediately, then poll for at most 60 seconds
|
|
302
302
|
gh pr checks <pr-number>
|
|
303
303
|
|
|
304
|
-
#
|
|
304
|
+
# If checks are still pending after 60 seconds: STOP and tell the user to return
|
|
305
|
+
# when CI finishes or new review feedback appears.
|
|
306
|
+
#
|
|
307
|
+
# Ensure all completed status checks are green:
|
|
305
308
|
# ✓ GitHub Actions workflows
|
|
306
309
|
# ✓ Greptile review (no unresolved critical comments)
|
|
307
310
|
# ✓ SonarCloud quality gate
|
|
@@ -184,9 +184,10 @@ bash scripts/forge-team/index.sh verify 2>&1 || true
|
|
|
184
184
|
- Beads linked: forge-xyz
|
|
185
185
|
- Implementation details in collapsible section
|
|
186
186
|
|
|
187
|
-
⏸️ PR created,
|
|
187
|
+
⏸️ PR created, checks started (Greptile, SonarCloud, GitHub Actions)
|
|
188
|
+
Poll for up to 60 seconds. If checks are still pending, stop here.
|
|
188
189
|
|
|
189
|
-
Next: /review <pr-number> (
|
|
190
|
+
Next: /review <pr-number> (when automated checks complete or new feedback appears)
|
|
190
191
|
```
|
|
191
192
|
|
|
192
193
|
## Integration with Workflow
|
|
@@ -208,5 +209,5 @@ Stage 7: /verify → Post-merge CI check on main
|
|
|
208
209
|
- **Fill every section**: Even if "N/A" — empty/missing sections cause review friction
|
|
209
210
|
- **Include "Closes beads-xxx"**: Required for auto-close in /verify
|
|
210
211
|
- **Concrete data only**: Test counts, file paths, commit SHAs — not placeholder text
|
|
211
|
-
- **
|
|
212
|
+
- **Poll briefly, then stop**: Check PR status for up to 60 seconds, then hand off if checks are still pending
|
|
212
213
|
- **NO auto-merge**: Always wait for /review phase
|
|
@@ -91,7 +91,7 @@ git commit -m "docs: update documentation for <feature-name>
|
|
|
91
91
|
git push
|
|
92
92
|
```
|
|
93
93
|
|
|
94
|
-
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.).
|
|
94
|
+
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.). Poll for up to 60 seconds. If checks are still pending after that, stop and ask the user to return to `/premerge <pr-number>` later. If new Greptile comments appear on the doc changes, run `/review <pr-number>` again.
|
|
95
95
|
|
|
96
96
|
### Step 4: Sync Beads
|
|
97
97
|
|
|
@@ -150,7 +150,7 @@ Do NOT suggest merging.
|
|
|
150
150
|
- README.md: Features list updated
|
|
151
151
|
- CLAUDE.md: USER section updated with new pattern
|
|
152
152
|
- Committed: docs: update documentation for auth-refresh
|
|
153
|
-
✓ CI re-triggered after doc push —
|
|
153
|
+
✓ CI re-triggered after doc push — checks passed within the 60 second poll window
|
|
154
154
|
✓ Beads synced
|
|
155
155
|
|
|
156
156
|
✅ PR #89 is ready to merge
|
|
@@ -295,10 +295,13 @@ git push
|
|
|
295
295
|
### Step 9: Verify ALL Checks Pass
|
|
296
296
|
|
|
297
297
|
```bash
|
|
298
|
-
#
|
|
298
|
+
# Check status immediately, then poll for at most 60 seconds
|
|
299
299
|
gh pr checks <pr-number>
|
|
300
300
|
|
|
301
|
-
#
|
|
301
|
+
# If checks are still pending after 60 seconds: STOP and tell the user to return
|
|
302
|
+
# when CI finishes or new review feedback appears.
|
|
303
|
+
#
|
|
304
|
+
# Ensure all completed status checks are green:
|
|
302
305
|
# ✓ GitHub Actions workflows
|
|
303
306
|
# ✓ Greptile review (no unresolved critical comments)
|
|
304
307
|
# ✓ SonarCloud quality gate
|
package/.cursor/commands/ship.md
CHANGED
|
@@ -181,9 +181,10 @@ bash scripts/forge-team/index.sh verify 2>&1 || true
|
|
|
181
181
|
- Beads linked: forge-xyz
|
|
182
182
|
- Implementation details in collapsible section
|
|
183
183
|
|
|
184
|
-
⏸️ PR created,
|
|
184
|
+
⏸️ PR created, checks started (Greptile, SonarCloud, GitHub Actions)
|
|
185
|
+
Poll for up to 60 seconds. If checks are still pending, stop here.
|
|
185
186
|
|
|
186
|
-
Next: /review <pr-number> (
|
|
187
|
+
Next: /review <pr-number> (when automated checks complete or new feedback appears)
|
|
187
188
|
```
|
|
188
189
|
|
|
189
190
|
## Integration with Workflow
|
|
@@ -205,5 +206,5 @@ Stage 7: /verify → Post-merge CI check on main
|
|
|
205
206
|
- **Fill every section**: Even if "N/A" — empty/missing sections cause review friction
|
|
206
207
|
- **Include "Closes beads-xxx"**: Required for auto-close in /verify
|
|
207
208
|
- **Concrete data only**: Test counts, file paths, commit SHAs — not placeholder text
|
|
208
|
-
- **
|
|
209
|
+
- **Poll briefly, then stop**: Check PR status for up to 60 seconds, then hand off if checks are still pending
|
|
209
210
|
- **NO auto-merge**: Always wait for /review phase
|
|
@@ -96,7 +96,7 @@ git commit -m "docs: update documentation for <feature-name>
|
|
|
96
96
|
git push
|
|
97
97
|
```
|
|
98
98
|
|
|
99
|
-
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.).
|
|
99
|
+
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.). Poll for up to 60 seconds. If checks are still pending after that, stop and ask the user to return to `/premerge <pr-number>` later. If new Greptile comments appear on the doc changes, run `/review <pr-number>` again.
|
|
100
100
|
|
|
101
101
|
### Step 4: Sync Beads
|
|
102
102
|
|
|
@@ -155,7 +155,7 @@ Do NOT suggest merging.
|
|
|
155
155
|
- README.md: Features list updated
|
|
156
156
|
- CLAUDE.md: USER section updated with new pattern
|
|
157
157
|
- Committed: docs: update documentation for auth-refresh
|
|
158
|
-
✓ CI re-triggered after doc push —
|
|
158
|
+
✓ CI re-triggered after doc push — checks passed within the 60 second poll window
|
|
159
159
|
✓ Beads synced
|
|
160
160
|
|
|
161
161
|
✅ PR #89 is ready to merge
|
|
@@ -300,10 +300,13 @@ git push
|
|
|
300
300
|
### Step 9: Verify ALL Checks Pass
|
|
301
301
|
|
|
302
302
|
```bash
|
|
303
|
-
#
|
|
303
|
+
# Check status immediately, then poll for at most 60 seconds
|
|
304
304
|
gh pr checks <pr-number>
|
|
305
305
|
|
|
306
|
-
#
|
|
306
|
+
# If checks are still pending after 60 seconds: STOP and tell the user to return
|
|
307
|
+
# when CI finishes or new review feedback appears.
|
|
308
|
+
#
|
|
309
|
+
# Ensure all completed status checks are green:
|
|
307
310
|
# ✓ GitHub Actions workflows
|
|
308
311
|
# ✓ Greptile review (no unresolved critical comments)
|
|
309
312
|
# ✓ SonarCloud quality gate
|
|
@@ -186,9 +186,10 @@ bash scripts/forge-team/index.sh verify 2>&1 || true
|
|
|
186
186
|
- Beads linked: forge-xyz
|
|
187
187
|
- Implementation details in collapsible section
|
|
188
188
|
|
|
189
|
-
⏸️ PR created,
|
|
189
|
+
⏸️ PR created, checks started (Greptile, SonarCloud, GitHub Actions)
|
|
190
|
+
Poll for up to 60 seconds. If checks are still pending, stop here.
|
|
190
191
|
|
|
191
|
-
Next: /review <pr-number> (
|
|
192
|
+
Next: /review <pr-number> (when automated checks complete or new feedback appears)
|
|
192
193
|
```
|
|
193
194
|
|
|
194
195
|
## Integration with Workflow
|
|
@@ -210,5 +211,5 @@ Stage 7: /verify → Post-merge CI check on main
|
|
|
210
211
|
- **Fill every section**: Even if "N/A" — empty/missing sections cause review friction
|
|
211
212
|
- **Include "Closes beads-xxx"**: Required for auto-close in /verify
|
|
212
213
|
- **Concrete data only**: Test counts, file paths, commit SHAs — not placeholder text
|
|
213
|
-
- **
|
|
214
|
+
- **Poll briefly, then stop**: Check PR status for up to 60 seconds, then hand off if checks are still pending
|
|
214
215
|
- **NO auto-merge**: Always wait for /review phase
|
|
@@ -20,7 +20,7 @@ jobs:
|
|
|
20
20
|
if: github.actor != 'github-actions[bot]'
|
|
21
21
|
steps:
|
|
22
22
|
- name: Checkout code
|
|
23
|
-
uses: actions/checkout@
|
|
23
|
+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4
|
|
24
24
|
with:
|
|
25
25
|
# Need full history for push
|
|
26
26
|
fetch-depth: 0
|
|
@@ -95,7 +95,7 @@ git commit -m "docs: update documentation for <feature-name>
|
|
|
95
95
|
git push
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.).
|
|
98
|
+
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.). Poll for up to 60 seconds. If checks are still pending after that, stop and ask the user to return to `/premerge <pr-number>` later. If new Greptile comments appear on the doc changes, run `/review <pr-number>` again.
|
|
99
99
|
|
|
100
100
|
### Step 4: Sync Beads
|
|
101
101
|
|
|
@@ -154,7 +154,7 @@ Do NOT suggest merging.
|
|
|
154
154
|
- README.md: Features list updated
|
|
155
155
|
- CLAUDE.md: USER section updated with new pattern
|
|
156
156
|
- Committed: docs: update documentation for auth-refresh
|
|
157
|
-
✓ CI re-triggered after doc push —
|
|
157
|
+
✓ CI re-triggered after doc push — checks passed within the 60 second poll window
|
|
158
158
|
✓ Beads synced
|
|
159
159
|
|
|
160
160
|
✅ PR #89 is ready to merge
|
|
@@ -299,10 +299,13 @@ git push
|
|
|
299
299
|
### Step 9: Verify ALL Checks Pass
|
|
300
300
|
|
|
301
301
|
```bash
|
|
302
|
-
#
|
|
302
|
+
# Check status immediately, then poll for at most 60 seconds
|
|
303
303
|
gh pr checks <pr-number>
|
|
304
304
|
|
|
305
|
-
#
|
|
305
|
+
# If checks are still pending after 60 seconds: STOP and tell the user to return
|
|
306
|
+
# when CI finishes or new review feedback appears.
|
|
307
|
+
#
|
|
308
|
+
# Ensure all completed status checks are green:
|
|
306
309
|
# ✓ GitHub Actions workflows
|
|
307
310
|
# ✓ Greptile review (no unresolved critical comments)
|
|
308
311
|
# ✓ SonarCloud quality gate
|
|
@@ -185,9 +185,10 @@ bash scripts/forge-team/index.sh verify 2>&1 || true
|
|
|
185
185
|
- Beads linked: forge-xyz
|
|
186
186
|
- Implementation details in collapsible section
|
|
187
187
|
|
|
188
|
-
⏸️ PR created,
|
|
188
|
+
⏸️ PR created, checks started (Greptile, SonarCloud, GitHub Actions)
|
|
189
|
+
Poll for up to 60 seconds. If checks are still pending, stop here.
|
|
189
190
|
|
|
190
|
-
Next: /review <pr-number> (
|
|
191
|
+
Next: /review <pr-number> (when automated checks complete or new feedback appears)
|
|
191
192
|
```
|
|
192
193
|
|
|
193
194
|
## Integration with Workflow
|
|
@@ -209,5 +210,5 @@ Stage 7: /verify → Post-merge CI check on main
|
|
|
209
210
|
- **Fill every section**: Even if "N/A" — empty/missing sections cause review friction
|
|
210
211
|
- **Include "Closes beads-xxx"**: Required for auto-close in /verify
|
|
211
212
|
- **Concrete data only**: Test counts, file paths, commit SHAs — not placeholder text
|
|
212
|
-
- **
|
|
213
|
+
- **Poll briefly, then stop**: Check PR status for up to 60 seconds, then hand off if checks are still pending
|
|
213
214
|
- **NO auto-merge**: Always wait for /review phase
|
|
@@ -94,7 +94,7 @@ git commit -m "docs: update documentation for <feature-name>
|
|
|
94
94
|
git push
|
|
95
95
|
```
|
|
96
96
|
|
|
97
|
-
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.).
|
|
97
|
+
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.). Poll for up to 60 seconds. If checks are still pending after that, stop and ask the user to return to `/premerge <pr-number>` later. If new Greptile comments appear on the doc changes, run `/review <pr-number>` again.
|
|
98
98
|
|
|
99
99
|
### Step 4: Sync Beads
|
|
100
100
|
|
|
@@ -153,7 +153,7 @@ Do NOT suggest merging.
|
|
|
153
153
|
- README.md: Features list updated
|
|
154
154
|
- CLAUDE.md: USER section updated with new pattern
|
|
155
155
|
- Committed: docs: update documentation for auth-refresh
|
|
156
|
-
✓ CI re-triggered after doc push —
|
|
156
|
+
✓ CI re-triggered after doc push — checks passed within the 60 second poll window
|
|
157
157
|
✓ Beads synced
|
|
158
158
|
|
|
159
159
|
✅ PR #89 is ready to merge
|
|
@@ -298,10 +298,13 @@ git push
|
|
|
298
298
|
### Step 9: Verify ALL Checks Pass
|
|
299
299
|
|
|
300
300
|
```bash
|
|
301
|
-
#
|
|
301
|
+
# Check status immediately, then poll for at most 60 seconds
|
|
302
302
|
gh pr checks <pr-number>
|
|
303
303
|
|
|
304
|
-
#
|
|
304
|
+
# If checks are still pending after 60 seconds: STOP and tell the user to return
|
|
305
|
+
# when CI finishes or new review feedback appears.
|
|
306
|
+
#
|
|
307
|
+
# Ensure all completed status checks are green:
|
|
305
308
|
# ✓ GitHub Actions workflows
|
|
306
309
|
# ✓ Greptile review (no unresolved critical comments)
|
|
307
310
|
# ✓ SonarCloud quality gate
|
|
@@ -184,9 +184,10 @@ bash scripts/forge-team/index.sh verify 2>&1 || true
|
|
|
184
184
|
- Beads linked: forge-xyz
|
|
185
185
|
- Implementation details in collapsible section
|
|
186
186
|
|
|
187
|
-
⏸️ PR created,
|
|
187
|
+
⏸️ PR created, checks started (Greptile, SonarCloud, GitHub Actions)
|
|
188
|
+
Poll for up to 60 seconds. If checks are still pending, stop here.
|
|
188
189
|
|
|
189
|
-
Next: /review <pr-number> (
|
|
190
|
+
Next: /review <pr-number> (when automated checks complete or new feedback appears)
|
|
190
191
|
```
|
|
191
192
|
|
|
192
193
|
## Integration with Workflow
|
|
@@ -208,5 +209,5 @@ Stage 7: /verify → Post-merge CI check on main
|
|
|
208
209
|
- **Fill every section**: Even if "N/A" — empty/missing sections cause review friction
|
|
209
210
|
- **Include "Closes beads-xxx"**: Required for auto-close in /verify
|
|
210
211
|
- **Concrete data only**: Test counts, file paths, commit SHAs — not placeholder text
|
|
211
|
-
- **
|
|
212
|
+
- **Poll briefly, then stop**: Check PR status for up to 60 seconds, then hand off if checks are still pending
|
|
212
213
|
- **NO auto-merge**: Always wait for /review phase
|
|
@@ -95,7 +95,7 @@ git commit -m "docs: update documentation for <feature-name>
|
|
|
95
95
|
git push
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
-
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.).
|
|
98
|
+
⚠️ **After pushing**: CI will re-trigger (Greptile, SonarCloud, etc.). Poll for up to 60 seconds. If checks are still pending after that, stop and ask the user to return to `/premerge <pr-number>` later. If new Greptile comments appear on the doc changes, run `/review <pr-number>` again.
|
|
99
99
|
|
|
100
100
|
### Step 4: Sync Beads
|
|
101
101
|
|
|
@@ -154,7 +154,7 @@ Do NOT suggest merging.
|
|
|
154
154
|
- README.md: Features list updated
|
|
155
155
|
- CLAUDE.md: USER section updated with new pattern
|
|
156
156
|
- Committed: docs: update documentation for auth-refresh
|
|
157
|
-
✓ CI re-triggered after doc push —
|
|
157
|
+
✓ CI re-triggered after doc push — checks passed within the 60 second poll window
|
|
158
158
|
✓ Beads synced
|
|
159
159
|
|
|
160
160
|
✅ PR #89 is ready to merge
|
package/.roo/commands/review.md
CHANGED
|
@@ -299,10 +299,13 @@ git push
|
|
|
299
299
|
### Step 9: Verify ALL Checks Pass
|
|
300
300
|
|
|
301
301
|
```bash
|
|
302
|
-
#
|
|
302
|
+
# Check status immediately, then poll for at most 60 seconds
|
|
303
303
|
gh pr checks <pr-number>
|
|
304
304
|
|
|
305
|
-
#
|
|
305
|
+
# If checks are still pending after 60 seconds: STOP and tell the user to return
|
|
306
|
+
# when CI finishes or new review feedback appears.
|
|
307
|
+
#
|
|
308
|
+
# Ensure all completed status checks are green:
|
|
306
309
|
# ✓ GitHub Actions workflows
|
|
307
310
|
# ✓ Greptile review (no unresolved critical comments)
|
|
308
311
|
# ✓ SonarCloud quality gate
|
package/.roo/commands/ship.md
CHANGED
|
@@ -185,9 +185,10 @@ bash scripts/forge-team/index.sh verify 2>&1 || true
|
|
|
185
185
|
- Beads linked: forge-xyz
|
|
186
186
|
- Implementation details in collapsible section
|
|
187
187
|
|
|
188
|
-
⏸️ PR created,
|
|
188
|
+
⏸️ PR created, checks started (Greptile, SonarCloud, GitHub Actions)
|
|
189
|
+
Poll for up to 60 seconds. If checks are still pending, stop here.
|
|
189
190
|
|
|
190
|
-
Next: /review <pr-number> (
|
|
191
|
+
Next: /review <pr-number> (when automated checks complete or new feedback appears)
|
|
191
192
|
```
|
|
192
193
|
|
|
193
194
|
## Integration with Workflow
|
|
@@ -209,5 +210,5 @@ Stage 7: /verify → Post-merge CI check on main
|
|
|
209
210
|
- **Fill every section**: Even if "N/A" — empty/missing sections cause review friction
|
|
210
211
|
- **Include "Closes beads-xxx"**: Required for auto-close in /verify
|
|
211
212
|
- **Concrete data only**: Test counts, file paths, commit SHAs — not placeholder text
|
|
212
|
-
- **
|
|
213
|
+
- **Poll briefly, then stop**: Check PR status for up to 60 seconds, then hand off if checks are still pending
|
|
213
214
|
- **NO auto-merge**: Always wait for /review phase
|
package/AGENTS.md
CHANGED
|
@@ -232,15 +232,15 @@ This project uses **bd (beads)** for issue tracking. Run `bd prime` to see full
|
|
|
232
232
|
### Quick Reference
|
|
233
233
|
|
|
234
234
|
```bash
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
235
|
+
forge ready # Find available work
|
|
236
|
+
forge show <id> # View issue details
|
|
237
|
+
forge claim <id> # Claim work
|
|
238
|
+
forge close <id> # Complete work
|
|
239
239
|
```
|
|
240
240
|
|
|
241
241
|
### Rules
|
|
242
242
|
|
|
243
|
-
- Use `
|
|
243
|
+
- Use `forge` as the routine command surface for bd-backed issue tracking and sync workflows — do NOT use TodoWrite, TaskCreate, or markdown TODO lists. Exception: `/plan` Phase 3 generates task lists at `docs/plans/YYYY-MM-DD-<slug>-tasks.md` — these are approved artifacts consumed by `/dev`, but Beads (`bd`) remains the source of truth for issue state and IDs. Use `bd` directly only for operations Forge does not wrap yet, such as `bd init`, `bd comments`, `bd dep`, and `bd dolt *`. GitHub issues may be used for external/public tracking; CI may sync GitHub issue lifecycle to Beads (see `docs/BEADS_GITHUB_SYNC.md`).
|
|
244
244
|
- Run `bd prime` for detailed command reference and session close protocol
|
|
245
245
|
- Use `bd remember` for persistent knowledge — do NOT use MEMORY.md files
|
|
246
246
|
|
|
@@ -255,10 +255,10 @@ bd close <id> # Complete work
|
|
|
255
255
|
3. **Update issue status** - Close finished work, update in-progress items
|
|
256
256
|
4. **PUSH TO REMOTE** - This is MANDATORY:
|
|
257
257
|
```bash
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
258
|
+
git pull --rebase
|
|
259
|
+
forge sync # wraps the supported Beads sync flow when Beads is configured
|
|
260
|
+
git push
|
|
261
|
+
git status # MUST show "up to date with origin"
|
|
262
262
|
```
|
|
263
263
|
5. **Clean up** - Clear stashes, prune remote branches
|
|
264
264
|
6. **Verify** - All changes committed AND pushed
|
package/README.md
CHANGED
|
@@ -402,14 +402,20 @@ gh auth login
|
|
|
402
402
|
/premerge <pr> # Complete docs, hand off PR
|
|
403
403
|
/verify # Post-merge health check
|
|
404
404
|
|
|
405
|
-
#
|
|
406
|
-
bd init # Initialize tracking
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
405
|
+
# Issue commands (via Forge)
|
|
406
|
+
bd init # Initialize Beads tracking
|
|
407
|
+
forge ready # Find ready work
|
|
408
|
+
forge create "title" # Create issue
|
|
409
|
+
forge update <id> --status X # Update status
|
|
410
|
+
forge sync # Sync Beads state
|
|
411
411
|
```
|
|
412
412
|
|
|
413
|
+
For advanced Beads operations that Forge does not wrap yet, use `bd` directly for
|
|
414
|
+
`bd comments`, `bd dep`, and `bd dolt`.
|
|
415
|
+
|
|
416
|
+
Forge is the preferred command surface for routine workflows, but Beads (`bd`)
|
|
417
|
+
remains the underlying source of truth for issue state and IDs.
|
|
418
|
+
|
|
413
419
|
---
|
|
414
420
|
|
|
415
421
|
## License
|
package/bin/forge.js
CHANGED
|
@@ -139,7 +139,7 @@ function loadAgentsFromPlugins() {
|
|
|
139
139
|
agents[id] = {
|
|
140
140
|
name: plugin.name,
|
|
141
141
|
description: plugin.description || '',
|
|
142
|
-
dirs:
|
|
142
|
+
dirs: getRepoRelativePluginDirectories(plugin),
|
|
143
143
|
hasCommands: plugin.capabilities?.commands || plugin.setup?.copyCommands || false,
|
|
144
144
|
hasSkill: plugin.capabilities?.skills || plugin.setup?.createSkill || false,
|
|
145
145
|
linkFile: plugin.files?.rootConfig || '',
|
|
@@ -153,6 +153,17 @@ function loadAgentsFromPlugins() {
|
|
|
153
153
|
return agents;
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
+
function isRepoRelativePluginPath(candidate) {
|
|
157
|
+
return typeof candidate === 'string'
|
|
158
|
+
&& candidate.length > 0
|
|
159
|
+
&& !path.isAbsolute(candidate)
|
|
160
|
+
&& !/^[~$%]/.test(candidate);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
function getRepoRelativePluginDirectories(plugin) {
|
|
164
|
+
return Object.values(plugin.directories || {}).filter(isRepoRelativePluginPath);
|
|
165
|
+
}
|
|
166
|
+
|
|
156
167
|
// Agent definitions - loaded from plugin system
|
|
157
168
|
const AGENTS = loadAgentsFromPlugins();
|
|
158
169
|
|
|
@@ -2383,7 +2394,7 @@ function displaySetupSummary(selectedAgents) {
|
|
|
2383
2394
|
|
|
2384
2395
|
// Beads status
|
|
2385
2396
|
if (isBeadsInitialized()) {
|
|
2386
|
-
console.log(' ✓ Beads initialized - Track work:
|
|
2397
|
+
console.log(' ✓ Beads initialized - Track work: forge ready');
|
|
2387
2398
|
} else if (checkForBeads()) {
|
|
2388
2399
|
console.log(' ! Beads available - Run: bd init');
|
|
2389
2400
|
} else {
|
|
@@ -3336,7 +3347,7 @@ async function setupProjectTools(rl, question) {
|
|
|
3336
3347
|
console.log('');
|
|
3337
3348
|
console.log('• Beads - Git-backed issue tracking');
|
|
3338
3349
|
console.log(' Persists tasks across sessions, tracks dependencies.');
|
|
3339
|
-
console.log(' Command:
|
|
3350
|
+
console.log(' Command: forge ready, forge create, forge close');
|
|
3340
3351
|
console.log('');
|
|
3341
3352
|
console.log('• Skills - Universal SKILL.md management');
|
|
3342
3353
|
console.log(' Manage AI agent skills across all agents.');
|