forge-workflow 0.0.8 → 0.0.10

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 (135) hide show
  1. package/.claude/commands/dev.md +2 -2
  2. package/.claude/commands/plan.md +2 -2
  3. package/.claude/commands/premerge.md +2 -2
  4. package/.claude/commands/review.md +5 -2
  5. package/.claude/commands/ship.md +6 -5
  6. package/.claude/commands/status.md +4 -4
  7. package/.claude/rules/greptile-review-process.md +4 -4
  8. package/.cline/workflows/dev.md +2 -2
  9. package/.cline/workflows/plan.md +2 -2
  10. package/.cline/workflows/premerge.md +2 -2
  11. package/.cline/workflows/review.md +5 -2
  12. package/.cline/workflows/ship.md +6 -5
  13. package/.cline/workflows/status.md +4 -4
  14. package/.codex/skills/dev/SKILL.md +2 -2
  15. package/.codex/skills/plan/SKILL.md +2 -2
  16. package/.codex/skills/premerge/SKILL.md +2 -2
  17. package/.codex/skills/review/SKILL.md +5 -2
  18. package/.codex/skills/ship/SKILL.md +6 -5
  19. package/.codex/skills/status/SKILL.md +4 -4
  20. package/.cursor/commands/dev.md +2 -2
  21. package/.cursor/commands/plan.md +2 -2
  22. package/.cursor/commands/premerge.md +2 -2
  23. package/.cursor/commands/review.md +5 -2
  24. package/.cursor/commands/ship.md +6 -5
  25. package/.cursor/commands/status.md +4 -4
  26. package/.github/prompts/dev.prompt.md +2 -2
  27. package/.github/prompts/plan.prompt.md +2 -2
  28. package/.github/prompts/premerge.prompt.md +2 -2
  29. package/.github/prompts/review.prompt.md +5 -2
  30. package/.github/prompts/ship.prompt.md +6 -5
  31. package/.github/prompts/status.prompt.md +4 -4
  32. package/.github/workflows/beads-to-github.yml +44 -11
  33. package/.github/workflows/github-to-beads.yml +11 -8
  34. package/.kilocode/workflows/dev.md +2 -2
  35. package/.kilocode/workflows/plan.md +2 -2
  36. package/.kilocode/workflows/premerge.md +2 -2
  37. package/.kilocode/workflows/review.md +5 -2
  38. package/.kilocode/workflows/ship.md +6 -5
  39. package/.kilocode/workflows/status.md +4 -4
  40. package/.opencode/commands/dev.md +2 -2
  41. package/.opencode/commands/plan.md +2 -2
  42. package/.opencode/commands/premerge.md +2 -2
  43. package/.opencode/commands/review.md +5 -2
  44. package/.opencode/commands/ship.md +6 -5
  45. package/.opencode/commands/status.md +4 -4
  46. package/.roo/commands/dev.md +2 -2
  47. package/.roo/commands/plan.md +2 -2
  48. package/.roo/commands/premerge.md +2 -2
  49. package/.roo/commands/review.md +5 -2
  50. package/.roo/commands/ship.md +6 -5
  51. package/.roo/commands/status.md +4 -4
  52. package/AGENTS.md +10 -9
  53. package/CLAUDE.md +12 -0
  54. package/README.md +12 -6
  55. package/bin/forge.js +24 -8
  56. package/docs/BEADS_GITHUB_SYNC.md +32 -2
  57. package/docs/EXAMPLES.md +22 -22
  58. package/docs/ROADMAP.md +3 -3
  59. package/docs/TOOLCHAIN.md +150 -160
  60. package/lib/agents/codex.plugin.json +3 -0
  61. package/lib/agents-config.js +18 -12
  62. package/lib/beads-bootstrap.js +225 -0
  63. package/lib/beads-health-check.js +55 -10
  64. package/lib/beads-setup.js +104 -28
  65. package/lib/beads-sync-scaffold.js +11 -6
  66. package/lib/codex-skills.js +54 -1
  67. package/lib/commands/_issue.js +11 -1
  68. package/lib/commands/issues.js +49 -0
  69. package/lib/commands/plan.js +5 -2
  70. package/lib/commands/recommend.js +22 -1
  71. package/lib/commands/setup.js +247 -27
  72. package/lib/commands/ship.js +188 -5
  73. package/lib/commands/status.js +187 -19
  74. package/lib/commands/team.js +11 -1
  75. package/lib/commands/test.js +125 -25
  76. package/lib/commands/validate.js +232 -9
  77. package/lib/commands/worktree.js +27 -54
  78. package/lib/dep-guard/keyword-ripple.js +184 -0
  79. package/lib/detect-worktree.js +9 -10
  80. package/lib/forge-issues.js +326 -0
  81. package/lib/issue-sync/authority.js +100 -0
  82. package/lib/issue-sync/github-pull.js +184 -0
  83. package/lib/issue-sync/import-primitives.js +98 -0
  84. package/lib/issue-sync/legacy-link-bridge.js +436 -0
  85. package/lib/issue-sync/link-store.js +292 -0
  86. package/lib/issue-sync/project-github.js +123 -0
  87. package/lib/issue-sync/reconcile.js +195 -0
  88. package/lib/issue-sync/schema.js +126 -0
  89. package/lib/lefthook-check.js +5 -2
  90. package/lib/project-memory.js +564 -0
  91. package/lib/runtime-health.js +100 -12
  92. package/lib/setup-action-log.js +2 -0
  93. package/lib/setup-summary-renderer.js +15 -11
  94. package/lib/smart-status/conflicts.js +205 -0
  95. package/lib/smart-status/scoring.js +177 -0
  96. package/lib/status/beads-snapshot.js +102 -0
  97. package/lib/status/presenter.js +65 -0
  98. package/lib/workflow/enforce-stage.js +14 -8
  99. package/lib/workflow/state-manager.js +349 -0
  100. package/package.json +12 -4
  101. package/scripts/beads-context.sh +124 -5
  102. package/scripts/beads-context.test.js +21 -4
  103. package/scripts/beads-migrate-to-dolt.sh +7 -0
  104. package/scripts/beads-upgrade-smoke.sh +263 -0
  105. package/scripts/behavioral-judge.sh +115 -11
  106. package/scripts/benchmark.js +349 -63
  107. package/scripts/dep-guard-analyze.js +52 -17
  108. package/scripts/dep-guard-keyword-ripple.js +29 -0
  109. package/scripts/dep-guard-render-review.js +86 -0
  110. package/scripts/dep-guard.sh +45 -222
  111. package/scripts/forge-team/lib/hooks.sh +1 -1
  112. package/scripts/forge-team/lib/sync-github.sh +160 -28
  113. package/scripts/forge-team/lib/verify.sh +1 -1
  114. package/scripts/forge-team/lib/workload.sh +56 -27
  115. package/scripts/forge-team/tests/sync-github.test.sh +195 -58
  116. package/scripts/forge-team/tests/workload.test.sh +35 -4
  117. package/scripts/github-beads-sync/index.mjs +122 -98
  118. package/scripts/github-beads-sync/mapping.mjs +54 -0
  119. package/scripts/github-beads-sync/reverse-sync-cli.mjs +2 -2
  120. package/scripts/github-beads-sync/reverse-sync.mjs +31 -7
  121. package/scripts/github-beads-sync/run-bd.mjs +4 -2
  122. package/scripts/lib/beads-migrate-to-dolt.mjs +503 -0
  123. package/scripts/preflight.sh +181 -0
  124. package/scripts/smart-status-score.js +31 -0
  125. package/scripts/smart-status-sessions.js +51 -0
  126. package/scripts/smart-status.sh +84 -330
  127. package/scripts/sync-agentic-workflow.js +48 -0
  128. package/scripts/sync-utils.sh +39 -0
  129. package/scripts/test-ci-shard.js +244 -0
  130. package/scripts/test-dashboard.js +188 -52
  131. package/scripts/test-full-suite.js +186 -0
  132. package/scripts/test-profile.js +278 -0
  133. package/scripts/test.js +335 -38
  134. package/scripts/validate.js +143 -0
  135. package/scripts/validate.sh +18 -1
@@ -69,8 +69,8 @@ Do NOT write any code until ALL confirmed:
69
69
  Before starting the per-task loop, check for cross-developer conflicts:
70
70
 
71
71
  ```bash
72
- # Auto-sync to get latest team state
73
- bash scripts/sync-utils.sh auto-sync
72
+ # Auto-sync to get latest team state (non-blocking)
73
+ forge sync || true
74
74
 
75
75
  # Check for conflicts with the current beads issue
76
76
  bash scripts/conflict-detect.sh --issue <beads-id>
@@ -57,7 +57,7 @@ Before proceeding to Phase 1, check for cross-developer conflicts:
57
57
 
58
58
  ```bash
59
59
  # Auto-sync to get latest team state
60
- bash scripts/sync-utils.sh auto-sync
60
+ forge sync || true
61
61
 
62
62
  # Check for conflicts with this issue's planned work area
63
63
  bash scripts/conflict-detect.sh --issue <beads-id>
@@ -107,7 +107,7 @@ If merge conflicts or unmet dependencies are found:
107
107
  Before starting planning, verify team identity is mapped:
108
108
 
109
109
  ```bash
110
- bash scripts/forge-team/index.sh verify 2>&1 || true
110
+ forge team verify 2>&1 || true
111
111
  ```
112
112
 
113
113
  If verify reports issues, address them before proceeding (the output will include `FORGE_AGENT_7f3a:PROMPT:` directives with exact commands to run).
@@ -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.). Wait for checks to pass. If new Greptile comments appear on the doc changes, run `/review <pr-number>` again.
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 — all checks still passing
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
- # Wait for checks to complete
301
+ # Check status immediately, then poll for at most 60 seconds
302
302
  gh pr checks <pr-number>
303
303
 
304
- # Ensure all status checks are green:
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
@@ -166,10 +166,10 @@ After PR is created, sync issue state to GitHub and verify 1:1 mapping:
166
166
 
167
167
  ```bash
168
168
  # Sync issue state to GitHub
169
- bash scripts/forge-team/index.sh sync 2>&1 || true
169
+ forge team sync 2>&1 || true
170
170
 
171
171
  # Verify 1:1 mapping
172
- bash scripts/forge-team/index.sh verify 2>&1 || true
172
+ forge team verify 2>&1 || true
173
173
  ```
174
174
 
175
175
  ## Example Output
@@ -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, awaiting automated checks (Greptile, SonarCloud, GitHub Actions)
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> (after automated checks complete)
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
- - **Wait for checks**: Let GitHub Actions, Greptile, SonarCloud run
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
@@ -20,7 +20,7 @@ This command helps you understand the current state of the project before starti
20
20
 
21
21
  ```bash
22
22
  # Sync team state before showing status
23
- bash scripts/sync-utils.sh auto-sync
23
+ forge sync || true
24
24
  ```
25
25
 
26
26
  ### Step 1: Smart Status (ranked issues with conflict detection)
@@ -28,7 +28,7 @@ bash scripts/sync-utils.sh auto-sync
28
28
  ```bash
29
29
  bash scripts/smart-status.sh
30
30
  ```
31
- This script dynamically computes and displays all issues ranked by composite score (priority, dependency impact, type, staleness, epic proximity). Output includes active sessions, conflict risk annotations, and grouped categories. No manual querying needed — the script handles everything.
31
+ This command dynamically computes and displays all issues ranked by composite score (priority, dependency impact, type, staleness, epic proximity). Output includes active sessions, conflict risk annotations, and grouped categories. No manual querying needed.
32
32
 
33
33
  For full context on any issue: `bd show <id>`
34
34
 
@@ -77,10 +77,10 @@ Show current developer's active work and team overview:
77
77
 
78
78
  ```bash
79
79
  # Show my active issues
80
- bash scripts/forge-team/index.sh workload --me 2>&1 || true
80
+ forge team workload --me 2>&1 || true
81
81
 
82
82
  # One-line team summary
83
- bash scripts/forge-team/index.sh dashboard 2>&1 | head -5 || true
83
+ forge team dashboard 2>&1 | head -5 || true
84
84
  ```
85
85
 
86
86
  ## Next Steps
@@ -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 & Wait for Re-review
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
- - **Wait for Greptile re-review** after pushing fixes
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 wait for Greptile re-review
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` and wait 2-3 minutes for Greptile re-scan
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
 
@@ -66,8 +66,8 @@ Do NOT write any code until ALL confirmed:
66
66
  Before starting the per-task loop, check for cross-developer conflicts:
67
67
 
68
68
  ```bash
69
- # Auto-sync to get latest team state
70
- bash scripts/sync-utils.sh auto-sync
69
+ # Auto-sync to get latest team state (non-blocking)
70
+ forge sync || true
71
71
 
72
72
  # Check for conflicts with the current beads issue
73
73
  bash scripts/conflict-detect.sh --issue <beads-id>
@@ -54,7 +54,7 @@ Before proceeding to Phase 1, check for cross-developer conflicts:
54
54
 
55
55
  ```bash
56
56
  # Auto-sync to get latest team state
57
- bash scripts/sync-utils.sh auto-sync
57
+ forge sync || true
58
58
 
59
59
  # Check for conflicts with this issue's planned work area
60
60
  bash scripts/conflict-detect.sh --issue <beads-id>
@@ -104,7 +104,7 @@ If merge conflicts or unmet dependencies are found:
104
104
  Before starting planning, verify team identity is mapped:
105
105
 
106
106
  ```bash
107
- bash scripts/forge-team/index.sh verify 2>&1 || true
107
+ forge team verify 2>&1 || true
108
108
  ```
109
109
 
110
110
  If verify reports issues, address them before proceeding (the output will include `FORGE_AGENT_7f3a:PROMPT:` directives with exact commands to run).
@@ -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.). Wait for checks to pass. If new Greptile comments appear on the doc changes, run `/review <pr-number>` again.
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 — all checks still passing
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
- # Wait for checks to complete
298
+ # Check status immediately, then poll for at most 60 seconds
299
299
  gh pr checks <pr-number>
300
300
 
301
- # Ensure all status checks are green:
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
@@ -163,10 +163,10 @@ After PR is created, sync issue state to GitHub and verify 1:1 mapping:
163
163
 
164
164
  ```bash
165
165
  # Sync issue state to GitHub
166
- bash scripts/forge-team/index.sh sync 2>&1 || true
166
+ forge team sync 2>&1 || true
167
167
 
168
168
  # Verify 1:1 mapping
169
- bash scripts/forge-team/index.sh verify 2>&1 || true
169
+ forge team verify 2>&1 || true
170
170
  ```
171
171
 
172
172
  ## Example Output
@@ -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, awaiting automated checks (Greptile, SonarCloud, GitHub Actions)
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> (after automated checks complete)
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
- - **Wait for checks**: Let GitHub Actions, Greptile, SonarCloud run
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
@@ -17,7 +17,7 @@ This command helps you understand the current state of the project before starti
17
17
 
18
18
  ```bash
19
19
  # Sync team state before showing status
20
- bash scripts/sync-utils.sh auto-sync
20
+ forge sync || true
21
21
  ```
22
22
 
23
23
  ### Step 1: Smart Status (ranked issues with conflict detection)
@@ -25,7 +25,7 @@ bash scripts/sync-utils.sh auto-sync
25
25
  ```bash
26
26
  bash scripts/smart-status.sh
27
27
  ```
28
- This script dynamically computes and displays all issues ranked by composite score (priority, dependency impact, type, staleness, epic proximity). Output includes active sessions, conflict risk annotations, and grouped categories. No manual querying needed — the script handles everything.
28
+ This command dynamically computes and displays all issues ranked by composite score (priority, dependency impact, type, staleness, epic proximity). Output includes active sessions, conflict risk annotations, and grouped categories. No manual querying needed.
29
29
 
30
30
  For full context on any issue: `bd show <id>`
31
31
 
@@ -74,10 +74,10 @@ Show current developer's active work and team overview:
74
74
 
75
75
  ```bash
76
76
  # Show my active issues
77
- bash scripts/forge-team/index.sh workload --me 2>&1 || true
77
+ forge team workload --me 2>&1 || true
78
78
 
79
79
  # One-line team summary
80
- bash scripts/forge-team/index.sh dashboard 2>&1 | head -5 || true
80
+ forge team dashboard 2>&1 | head -5 || true
81
81
  ```
82
82
 
83
83
  ## Next Steps
@@ -69,8 +69,8 @@ Do NOT write any code until ALL confirmed:
69
69
  Before starting the per-task loop, check for cross-developer conflicts:
70
70
 
71
71
  ```bash
72
- # Auto-sync to get latest team state
73
- bash scripts/sync-utils.sh auto-sync
72
+ # Auto-sync to get latest team state (non-blocking)
73
+ forge sync || true
74
74
 
75
75
  # Check for conflicts with the current beads issue
76
76
  bash scripts/conflict-detect.sh --issue <beads-id>
@@ -57,7 +57,7 @@ Before proceeding to Phase 1, check for cross-developer conflicts:
57
57
 
58
58
  ```bash
59
59
  # Auto-sync to get latest team state
60
- bash scripts/sync-utils.sh auto-sync
60
+ forge sync || true
61
61
 
62
62
  # Check for conflicts with this issue's planned work area
63
63
  bash scripts/conflict-detect.sh --issue <beads-id>
@@ -107,7 +107,7 @@ If merge conflicts or unmet dependencies are found:
107
107
  Before starting planning, verify team identity is mapped:
108
108
 
109
109
  ```bash
110
- bash scripts/forge-team/index.sh verify 2>&1 || true
110
+ forge team verify 2>&1 || true
111
111
  ```
112
112
 
113
113
  If verify reports issues, address them before proceeding (the output will include `FORGE_AGENT_7f3a:PROMPT:` directives with exact commands to run).
@@ -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.). Wait for checks to pass. If new Greptile comments appear on the doc changes, run `/review <pr-number>` again.
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 — all checks still passing
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
- # Wait for checks to complete
301
+ # Check status immediately, then poll for at most 60 seconds
302
302
  gh pr checks <pr-number>
303
303
 
304
- # Ensure all status checks are green:
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
@@ -166,10 +166,10 @@ After PR is created, sync issue state to GitHub and verify 1:1 mapping:
166
166
 
167
167
  ```bash
168
168
  # Sync issue state to GitHub
169
- bash scripts/forge-team/index.sh sync 2>&1 || true
169
+ forge team sync 2>&1 || true
170
170
 
171
171
  # Verify 1:1 mapping
172
- bash scripts/forge-team/index.sh verify 2>&1 || true
172
+ forge team verify 2>&1 || true
173
173
  ```
174
174
 
175
175
  ## Example Output
@@ -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, awaiting automated checks (Greptile, SonarCloud, GitHub Actions)
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> (after automated checks complete)
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
- - **Wait for checks**: Let GitHub Actions, Greptile, SonarCloud run
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
@@ -20,7 +20,7 @@ This command helps you understand the current state of the project before starti
20
20
 
21
21
  ```bash
22
22
  # Sync team state before showing status
23
- bash scripts/sync-utils.sh auto-sync
23
+ forge sync || true
24
24
  ```
25
25
 
26
26
  ### Step 1: Smart Status (ranked issues with conflict detection)
@@ -28,7 +28,7 @@ bash scripts/sync-utils.sh auto-sync
28
28
  ```bash
29
29
  bash scripts/smart-status.sh
30
30
  ```
31
- This script dynamically computes and displays all issues ranked by composite score (priority, dependency impact, type, staleness, epic proximity). Output includes active sessions, conflict risk annotations, and grouped categories. No manual querying needed — the script handles everything.
31
+ This command dynamically computes and displays all issues ranked by composite score (priority, dependency impact, type, staleness, epic proximity). Output includes active sessions, conflict risk annotations, and grouped categories. No manual querying needed.
32
32
 
33
33
  For full context on any issue: `bd show <id>`
34
34
 
@@ -77,10 +77,10 @@ Show current developer's active work and team overview:
77
77
 
78
78
  ```bash
79
79
  # Show my active issues
80
- bash scripts/forge-team/index.sh workload --me 2>&1 || true
80
+ forge team workload --me 2>&1 || true
81
81
 
82
82
  # One-line team summary
83
- bash scripts/forge-team/index.sh dashboard 2>&1 | head -5 || true
83
+ forge team dashboard 2>&1 | head -5 || true
84
84
  ```
85
85
 
86
86
  ## Next Steps
@@ -66,8 +66,8 @@ Do NOT write any code until ALL confirmed:
66
66
  Before starting the per-task loop, check for cross-developer conflicts:
67
67
 
68
68
  ```bash
69
- # Auto-sync to get latest team state
70
- bash scripts/sync-utils.sh auto-sync
69
+ # Auto-sync to get latest team state (non-blocking)
70
+ forge sync || true
71
71
 
72
72
  # Check for conflicts with the current beads issue
73
73
  bash scripts/conflict-detect.sh --issue <beads-id>
@@ -54,7 +54,7 @@ Before proceeding to Phase 1, check for cross-developer conflicts:
54
54
 
55
55
  ```bash
56
56
  # Auto-sync to get latest team state
57
- bash scripts/sync-utils.sh auto-sync
57
+ forge sync || true
58
58
 
59
59
  # Check for conflicts with this issue's planned work area
60
60
  bash scripts/conflict-detect.sh --issue <beads-id>
@@ -104,7 +104,7 @@ If merge conflicts or unmet dependencies are found:
104
104
  Before starting planning, verify team identity is mapped:
105
105
 
106
106
  ```bash
107
- bash scripts/forge-team/index.sh verify 2>&1 || true
107
+ forge team verify 2>&1 || true
108
108
  ```
109
109
 
110
110
  If verify reports issues, address them before proceeding (the output will include `FORGE_AGENT_7f3a:PROMPT:` directives with exact commands to run).
@@ -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.). Wait for checks to pass. If new Greptile comments appear on the doc changes, run `/review <pr-number>` again.
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 — all checks still passing
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
- # Wait for checks to complete
298
+ # Check status immediately, then poll for at most 60 seconds
299
299
  gh pr checks <pr-number>
300
300
 
301
- # Ensure all status checks are green:
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
@@ -163,10 +163,10 @@ After PR is created, sync issue state to GitHub and verify 1:1 mapping:
163
163
 
164
164
  ```bash
165
165
  # Sync issue state to GitHub
166
- bash scripts/forge-team/index.sh sync 2>&1 || true
166
+ forge team sync 2>&1 || true
167
167
 
168
168
  # Verify 1:1 mapping
169
- bash scripts/forge-team/index.sh verify 2>&1 || true
169
+ forge team verify 2>&1 || true
170
170
  ```
171
171
 
172
172
  ## Example Output
@@ -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, awaiting automated checks (Greptile, SonarCloud, GitHub Actions)
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> (after automated checks complete)
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
- - **Wait for checks**: Let GitHub Actions, Greptile, SonarCloud run
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
@@ -17,7 +17,7 @@ This command helps you understand the current state of the project before starti
17
17
 
18
18
  ```bash
19
19
  # Sync team state before showing status
20
- bash scripts/sync-utils.sh auto-sync
20
+ forge sync || true
21
21
  ```
22
22
 
23
23
  ### Step 1: Smart Status (ranked issues with conflict detection)
@@ -25,7 +25,7 @@ bash scripts/sync-utils.sh auto-sync
25
25
  ```bash
26
26
  bash scripts/smart-status.sh
27
27
  ```
28
- This script dynamically computes and displays all issues ranked by composite score (priority, dependency impact, type, staleness, epic proximity). Output includes active sessions, conflict risk annotations, and grouped categories. No manual querying needed — the script handles everything.
28
+ This command dynamically computes and displays all issues ranked by composite score (priority, dependency impact, type, staleness, epic proximity). Output includes active sessions, conflict risk annotations, and grouped categories. No manual querying needed.
29
29
 
30
30
  For full context on any issue: `bd show <id>`
31
31
 
@@ -74,10 +74,10 @@ Show current developer's active work and team overview:
74
74
 
75
75
  ```bash
76
76
  # Show my active issues
77
- bash scripts/forge-team/index.sh workload --me 2>&1 || true
77
+ forge team workload --me 2>&1 || true
78
78
 
79
79
  # One-line team summary
80
- bash scripts/forge-team/index.sh dashboard 2>&1 | head -5 || true
80
+ forge team dashboard 2>&1 | head -5 || true
81
81
  ```
82
82
 
83
83
  ## Next Steps
@@ -71,8 +71,8 @@ Do NOT write any code until ALL confirmed:
71
71
  Before starting the per-task loop, check for cross-developer conflicts:
72
72
 
73
73
  ```bash
74
- # Auto-sync to get latest team state
75
- bash scripts/sync-utils.sh auto-sync
74
+ # Auto-sync to get latest team state (non-blocking)
75
+ forge sync || true
76
76
 
77
77
  # Check for conflicts with the current beads issue
78
78
  bash scripts/conflict-detect.sh --issue <beads-id>
@@ -59,7 +59,7 @@ Before proceeding to Phase 1, check for cross-developer conflicts:
59
59
 
60
60
  ```bash
61
61
  # Auto-sync to get latest team state
62
- bash scripts/sync-utils.sh auto-sync
62
+ forge sync || true
63
63
 
64
64
  # Check for conflicts with this issue's planned work area
65
65
  bash scripts/conflict-detect.sh --issue <beads-id>
@@ -109,7 +109,7 @@ If merge conflicts or unmet dependencies are found:
109
109
  Before starting planning, verify team identity is mapped:
110
110
 
111
111
  ```bash
112
- bash scripts/forge-team/index.sh verify 2>&1 || true
112
+ forge team verify 2>&1 || true
113
113
  ```
114
114
 
115
115
  If verify reports issues, address them before proceeding (the output will include `FORGE_AGENT_7f3a:PROMPT:` directives with exact commands to run).
@@ -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.). Wait for checks to pass. If new Greptile comments appear on the doc changes, run `/review <pr-number>` again.
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 — all checks still passing
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
- # Wait for checks to complete
303
+ # Check status immediately, then poll for at most 60 seconds
304
304
  gh pr checks <pr-number>
305
305
 
306
- # Ensure all status checks are green:
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