forge-workflow 0.0.4 → 0.0.6

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 (248) hide show
  1. package/.claude/commands/dev.md +345 -340
  2. package/.claude/commands/plan.md +566 -521
  3. package/.claude/commands/premerge.md +186 -176
  4. package/.claude/commands/research.md +42 -42
  5. package/.claude/commands/review.md +448 -442
  6. package/.claude/commands/rollback.md +721 -721
  7. package/.claude/commands/ship.md +212 -164
  8. package/.claude/commands/sonarcloud.md +152 -152
  9. package/.claude/commands/status.md +90 -48
  10. package/.claude/commands/validate.md +288 -282
  11. package/.claude/commands/verify.md +269 -221
  12. package/.claude/rules/greptile-review-process.md +285 -285
  13. package/.claude/rules/workflow.md +121 -105
  14. package/.claude/scripts/greptile-resolve.sh +558 -526
  15. package/.claude/scripts/load-env.sh +32 -32
  16. package/.cline/workflows/dev.md +342 -337
  17. package/.cline/workflows/plan.md +563 -518
  18. package/.cline/workflows/premerge.md +183 -173
  19. package/.cline/workflows/research.md +39 -39
  20. package/.cline/workflows/review.md +445 -439
  21. package/.cline/workflows/rollback.md +718 -718
  22. package/.cline/workflows/ship.md +209 -161
  23. package/.cline/workflows/sonarcloud.md +146 -146
  24. package/.cline/workflows/status.md +87 -45
  25. package/.cline/workflows/validate.md +285 -279
  26. package/.cline/workflows/verify.md +266 -218
  27. package/.codex/config.toml +11 -11
  28. package/.codex/skills/dev/SKILL.md +345 -340
  29. package/.codex/skills/plan/SKILL.md +566 -521
  30. package/.codex/skills/premerge/SKILL.md +186 -176
  31. package/.codex/skills/research/SKILL.md +42 -42
  32. package/.codex/skills/review/SKILL.md +448 -442
  33. package/.codex/skills/rollback/SKILL.md +721 -721
  34. package/.codex/skills/ship/SKILL.md +212 -164
  35. package/.codex/skills/sonarcloud/SKILL.md +149 -149
  36. package/.codex/skills/status/SKILL.md +90 -48
  37. package/.codex/skills/validate/SKILL.md +288 -282
  38. package/.codex/skills/verify/SKILL.md +269 -221
  39. package/.cursor/commands/dev.md +342 -337
  40. package/.cursor/commands/plan.md +563 -518
  41. package/.cursor/commands/premerge.md +183 -173
  42. package/.cursor/commands/research.md +39 -39
  43. package/.cursor/commands/review.md +445 -439
  44. package/.cursor/commands/rollback.md +718 -718
  45. package/.cursor/commands/ship.md +209 -161
  46. package/.cursor/commands/sonarcloud.md +146 -146
  47. package/.cursor/commands/status.md +87 -45
  48. package/.cursor/commands/validate.md +285 -279
  49. package/.cursor/commands/verify.md +266 -218
  50. package/.cursor/rules/permissions-guidance.mdc +37 -37
  51. package/.forge/hooks/check-tdd.js +240 -240
  52. package/.github/PLUGIN_TEMPLATE.json +32 -32
  53. package/.github/prompts/dev.prompt.md +347 -342
  54. package/.github/prompts/plan.prompt.md +568 -523
  55. package/.github/prompts/premerge.prompt.md +188 -178
  56. package/.github/prompts/research.prompt.md +44 -44
  57. package/.github/prompts/review.prompt.md +450 -444
  58. package/.github/prompts/rollback.prompt.md +723 -723
  59. package/.github/prompts/ship.prompt.md +214 -166
  60. package/.github/prompts/sonarcloud.prompt.md +151 -151
  61. package/.github/prompts/status.prompt.md +92 -50
  62. package/.github/prompts/validate.prompt.md +290 -284
  63. package/.github/prompts/verify.prompt.md +271 -223
  64. package/.github/workflows/beads-to-github.yml +56 -0
  65. package/.github/workflows/github-to-beads.yml +97 -0
  66. package/.kilocode/workflows/dev.md +346 -341
  67. package/.kilocode/workflows/plan.md +567 -522
  68. package/.kilocode/workflows/premerge.md +187 -177
  69. package/.kilocode/workflows/research.md +43 -43
  70. package/.kilocode/workflows/review.md +449 -443
  71. package/.kilocode/workflows/rollback.md +722 -722
  72. package/.kilocode/workflows/ship.md +213 -165
  73. package/.kilocode/workflows/sonarcloud.md +150 -150
  74. package/.kilocode/workflows/status.md +91 -49
  75. package/.kilocode/workflows/validate.md +289 -283
  76. package/.kilocode/workflows/verify.md +270 -222
  77. package/.mcp.json.example +12 -12
  78. package/.opencode/commands/dev.md +345 -340
  79. package/.opencode/commands/plan.md +566 -521
  80. package/.opencode/commands/premerge.md +186 -176
  81. package/.opencode/commands/research.md +42 -42
  82. package/.opencode/commands/review.md +448 -442
  83. package/.opencode/commands/rollback.md +721 -721
  84. package/.opencode/commands/ship.md +212 -164
  85. package/.opencode/commands/sonarcloud.md +149 -149
  86. package/.opencode/commands/status.md +90 -48
  87. package/.opencode/commands/validate.md +288 -282
  88. package/.opencode/commands/verify.md +269 -221
  89. package/.roo/commands/dev.md +346 -341
  90. package/.roo/commands/plan.md +567 -522
  91. package/.roo/commands/premerge.md +187 -177
  92. package/.roo/commands/research.md +43 -43
  93. package/.roo/commands/review.md +449 -443
  94. package/.roo/commands/rollback.md +722 -722
  95. package/.roo/commands/ship.md +213 -165
  96. package/.roo/commands/sonarcloud.md +150 -150
  97. package/.roo/commands/status.md +91 -49
  98. package/.roo/commands/validate.md +289 -283
  99. package/.roo/commands/verify.md +270 -222
  100. package/AGENTS.md +272 -175
  101. package/CLAUDE.md +110 -100
  102. package/README.md +429 -416
  103. package/bin/forge-cmd.js +317 -313
  104. package/bin/forge-preflight.js +322 -309
  105. package/bin/forge.js +4765 -4303
  106. package/docs/AGENT_INSTALL_PROMPT.md +342 -342
  107. package/docs/BEADS_GITHUB_SYNC.md +251 -251
  108. package/docs/ENHANCED_ONBOARDING.md +612 -602
  109. package/docs/EXAMPLES.md +482 -482
  110. package/docs/GREPTILE_SETUP.md +400 -400
  111. package/docs/MANUAL_REVIEW_GUIDE.md +106 -106
  112. package/docs/ROADMAP.md +359 -359
  113. package/docs/SETUP.md +663 -631
  114. package/docs/TOOLCHAIN.md +653 -630
  115. package/docs/VALIDATION.md +363 -363
  116. package/install.sh +40 -1056
  117. package/lefthook.yml +50 -39
  118. package/lib/agents/README.md +198 -198
  119. package/lib/agents/claude.plugin.json +28 -28
  120. package/lib/agents/cline.plugin.json +22 -22
  121. package/lib/agents/codex.plugin.json +19 -19
  122. package/lib/agents/copilot.plugin.json +24 -24
  123. package/lib/agents/cursor.plugin.json +25 -25
  124. package/lib/agents/kilocode.plugin.json +22 -22
  125. package/lib/agents/opencode.plugin.json +20 -20
  126. package/lib/agents/roo.plugin.json +23 -23
  127. package/lib/agents-config.js +2112 -2112
  128. package/lib/beads-health-check.js +143 -0
  129. package/lib/beads-setup.js +341 -0
  130. package/lib/beads-sync-scaffold.js +260 -0
  131. package/lib/commands/_registry.js +134 -0
  132. package/lib/commands/clean.js +181 -0
  133. package/lib/commands/dev.js +571 -513
  134. package/lib/commands/plan.js +692 -692
  135. package/lib/commands/push.js +196 -0
  136. package/lib/commands/recommend.js +119 -119
  137. package/lib/commands/ship.js +377 -377
  138. package/lib/commands/status.js +378 -378
  139. package/lib/commands/sync.js +55 -0
  140. package/lib/commands/team.js +37 -0
  141. package/lib/commands/test.js +207 -0
  142. package/lib/commands/validate.js +602 -602
  143. package/lib/commands/worktree.js +310 -0
  144. package/lib/context-merge.js +359 -359
  145. package/lib/dep-guard/analyzer.js +294 -294
  146. package/lib/dep-guard/behavior-detector.js +98 -98
  147. package/lib/dep-guard/contract-detector.js +162 -162
  148. package/lib/dep-guard/import-detector.js +498 -498
  149. package/lib/dep-guard/path-utils.js +13 -13
  150. package/lib/dep-guard/rubric.js +120 -120
  151. package/lib/dep-guard/task-parser.js +318 -318
  152. package/lib/detect-agent.js +191 -191
  153. package/lib/detect-worktree.js +47 -47
  154. package/lib/docs-command.js +51 -0
  155. package/lib/docs-copy.js +50 -0
  156. package/lib/file-hash.js +26 -26
  157. package/lib/freshness-token.js +148 -0
  158. package/lib/greptile-match.js +80 -0
  159. package/lib/husky-migration.js +450 -0
  160. package/lib/lefthook-check.js +65 -0
  161. package/lib/pat-setup.js +207 -0
  162. package/lib/plugin-catalog.js +350 -350
  163. package/lib/plugin-manager.js +166 -166
  164. package/lib/plugin-recommender.js +141 -141
  165. package/lib/project-discovery.js +491 -491
  166. package/lib/reset.js +309 -0
  167. package/lib/setup-action-log.js +139 -139
  168. package/lib/setup-summary-renderer.js +106 -106
  169. package/lib/setup-utils.js +96 -0
  170. package/lib/setup.js +192 -192
  171. package/lib/smart-merge.js +64 -0
  172. package/lib/symlink-utils.js +81 -0
  173. package/lib/task-ownership.js +117 -0
  174. package/lib/workflow-profiles.js +197 -197
  175. package/package.json +131 -128
  176. package/scripts/beads-context.sh +426 -0
  177. package/scripts/beads-context.test.js +567 -0
  178. package/scripts/behavioral-judge.sh +378 -0
  179. package/scripts/benchmark.js +85 -0
  180. package/scripts/branch-protection.js +183 -0
  181. package/scripts/check-agents.js +172 -0
  182. package/scripts/check-forge-token.js +98 -0
  183. package/scripts/commitlint.js +42 -0
  184. package/scripts/conflict-detect.sh +323 -0
  185. package/scripts/dep-guard-analyze.js +71 -0
  186. package/scripts/dep-guard.sh +789 -0
  187. package/scripts/eval_win.py +249 -0
  188. package/scripts/file-index.sh +493 -0
  189. package/scripts/forge-team/index.sh +86 -0
  190. package/scripts/forge-team/lib/agent-prompt.sh +52 -0
  191. package/scripts/forge-team/lib/claim.sh +256 -0
  192. package/scripts/forge-team/lib/dashboard.sh +341 -0
  193. package/scripts/forge-team/lib/epic.sh +332 -0
  194. package/scripts/forge-team/lib/hooks.sh +253 -0
  195. package/scripts/forge-team/lib/identity.sh +235 -0
  196. package/scripts/forge-team/lib/sync-github.sh +317 -0
  197. package/scripts/forge-team/lib/verify.sh +284 -0
  198. package/scripts/forge-team/lib/workload.sh +296 -0
  199. package/scripts/forge-team/tests/agent-prompt.test.sh +72 -0
  200. package/scripts/forge-team/tests/claim.test.sh +179 -0
  201. package/scripts/forge-team/tests/dashboard.test.sh +170 -0
  202. package/scripts/forge-team/tests/dispatcher.test.sh +79 -0
  203. package/scripts/forge-team/tests/epic.test.sh +176 -0
  204. package/scripts/forge-team/tests/hooks.test.sh +239 -0
  205. package/scripts/forge-team/tests/identity.test.sh +176 -0
  206. package/scripts/forge-team/tests/integration.test.sh +371 -0
  207. package/scripts/forge-team/tests/sync-github.test.sh +209 -0
  208. package/scripts/forge-team/tests/verify.test.sh +314 -0
  209. package/scripts/forge-team/tests/workflow-integration.test.sh +43 -0
  210. package/scripts/forge-team/tests/workload.test.sh +209 -0
  211. package/scripts/github-beads-sync/comment.mjs +64 -0
  212. package/scripts/github-beads-sync/config.mjs +148 -0
  213. package/scripts/github-beads-sync/github-api.mjs +131 -0
  214. package/scripts/github-beads-sync/index.mjs +332 -0
  215. package/scripts/github-beads-sync/label-mapper.mjs +54 -0
  216. package/scripts/github-beads-sync/mapping.mjs +78 -0
  217. package/scripts/github-beads-sync/reverse-sync-cli.mjs +31 -0
  218. package/scripts/github-beads-sync/reverse-sync.mjs +138 -0
  219. package/scripts/github-beads-sync/run-bd.mjs +159 -0
  220. package/scripts/github-beads-sync/sanitize.mjs +121 -0
  221. package/scripts/github-beads-sync.config.json +26 -0
  222. package/scripts/improve-command.js +375 -0
  223. package/scripts/lib/eval-runner.js +268 -0
  224. package/scripts/lib/eval-schema.js +135 -0
  225. package/scripts/lib/eval-storage.js +78 -0
  226. package/scripts/lib/grading.js +203 -0
  227. package/scripts/lib/jsonl-lock.sh +48 -0
  228. package/scripts/lib/sanitize.sh +116 -0
  229. package/scripts/lib/transcript-parser.js +63 -0
  230. package/scripts/lint.js +47 -0
  231. package/scripts/migrate-to-bun-test.js +412 -0
  232. package/scripts/pr-coordinator.sh +706 -0
  233. package/scripts/run-command-eval.js +236 -0
  234. package/scripts/smart-status.sh +809 -0
  235. package/scripts/sync-commands.js +571 -0
  236. package/scripts/sync-utils.sh +455 -0
  237. package/scripts/test-dashboard.js +123 -0
  238. package/scripts/test.js +46 -0
  239. package/scripts/validate.sh +94 -0
  240. package/skills/parallel-deep-research/SKILL.md +108 -108
  241. package/skills/parallel-deep-research/evals/README.md +27 -27
  242. package/skills/parallel-deep-research/evals/evals.json +62 -62
  243. package/skills/sonarcloud-analysis/SKILL.md +171 -171
  244. package/skills/sonarcloud-analysis/evals/README.md +27 -27
  245. package/skills/sonarcloud-analysis/evals/evals.json +50 -50
  246. package/skills/sonarcloud-analysis/references/api-reference.md +466 -466
  247. package/.cursor/hooks/state/continual-learning-index.json +0 -19
  248. package/.cursor/hooks/state/continual-learning.json +0 -8
@@ -1,173 +1,183 @@
1
-
2
- Prepare the pull request for merge by completing ALL documentation updates on the feature branch, then hand off to the user.
3
-
4
- # Premerge
5
-
6
- **The actual merge is always done by the user in the GitHub UI — never by this command.**
7
-
8
- This command makes the PR 100% complete: code + tests + docs in one unit. After this, the user merges once and there are no follow-up doc PRs needed.
9
-
10
- ## Usage
11
-
12
- ```bash
13
- /premerge <pr-number>
14
- ```
15
-
16
- ## What This Command Does
17
-
18
- ### Step 1: Verify All CI Checks Pass
19
-
20
- ```bash
21
- gh pr checks <pr-number>
22
- ```
23
-
24
- All checks must be green before proceeding. If any fail, run `/review <pr-number>` first.
25
-
26
- ### Step 2: Warn If Branch Is Behind Master
27
-
28
- ```bash
29
- gh pr view <pr-number> --json baseRefName,headRefName
30
- git fetch origin master
31
- git status
32
- ```
33
-
34
- If the feature branch is behind `master`, tell the user to rebase first:
35
-
36
- ```
37
- ⚠️ Branch is behind master — rebase before updating docs to avoid conflicts:
38
- git rebase origin/master
39
- git push --force-with-lease
40
- ```
41
-
42
- ### Step 3: Update ALL Relevant Documentation (on feature branch)
43
-
44
- Check each of the following and update if the feature affects it. Be selective — only update what genuinely changed.
45
-
46
- **A. `CHANGELOG.md`** (always):
47
- - Add entry under `## [Unreleased]` heading (create heading if not present)
48
- - Use [Keep a Changelog](https://keepachangelog.com/) categories:
49
- - **Added**: New features
50
- - **Changed**: Changes to existing functionality
51
- - **Fixed**: Bug fixes
52
- - **Removed**: Removed features
53
- - Include: feature name, PR number, Beads ID
54
- - Example:
55
- ```markdown
56
- ## [Unreleased]
57
-
58
- ### Added
59
- - Authentication refresh tokens (PR #89, forge-a3f8)
60
- ```
61
-
62
- **B. `README.md`** (if user-facing changes):
63
- - Features list, configuration options, usage examples
64
-
65
- **C. `docs/reference/API_REFERENCE.md`** (if API changes):
66
- - New endpoints, request/response schemas, authentication
67
-
68
- **D. Architecture docs** (if structural changes):
69
- - `docs/architecture/` diagrams, decision records (ADRs)
70
-
71
- **E. `CLAUDE.md` — USER section only** (if project conventions changed):
72
- ```
73
- <!-- USER:START - Add project-specific learnings here as you work -->
74
- ...update only between these markers...
75
- <!-- USER:END -->
76
- ```
77
- ⚠️ NEVER touch other managed blocks (e.g., `<!-- AGENT:START/END -->`).
78
-
79
- **F. `AGENTS.md`** (if agent config, skills, or cross-agent workflow changed):
80
- - Update relevant sections describing agent capabilities or workflow
81
-
82
- **Commit doc updates to feature branch**:
83
-
84
- ```bash
85
- git add CHANGELOG.md README.md docs/ AGENTS.md CLAUDE.md
86
- git commit -m "docs: update documentation for <feature-name>
87
-
88
- - Updated: [list files changed]
89
- - Reason: [brief explanation]"
90
-
91
- git push
92
- ```
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.
95
-
96
- ### Step 4: Sync Beads
97
-
98
- ```bash
99
- bd sync
100
- ```
101
-
102
- ### Step 5: Hand Off — STOP HERE
103
-
104
- **DO NOT run `gh pr merge`.** Present the PR and wait for the user to merge.
105
-
106
- Output:
107
-
108
- ```
109
- ✅ PR #<number> is ready to merge
110
-
111
- All checks: ✓ passing
112
- Documentation: ✓ updated on feature branch
113
- Beads: ✓ synced
114
-
115
- 👉 Please merge in the GitHub UI:
116
- https://github.com/<owner>/<repo>/pull/<number>
117
-
118
- Recommended: Squash and merge (keeps main history clean)
119
-
120
- After you merge, run /verify to confirm everything landed correctly.
121
- ```
122
-
123
- ```
124
- <HARD-GATE: /premerge exit>
125
- Do NOT run gh pr merge.
126
- Do NOT suggest merging.
127
- /premerge ends here. Output the PR URL and status. Wait for user.
128
-
129
- "After you merge, run /verify to confirm everything landed correctly."
130
- </HARD-GATE>
131
- ```
132
-
133
- ## Example Output
134
-
135
- ```
136
- CI checks: All passing
137
- Branch: Up to date with master
138
- ✓ Documentation updated:
139
- - CHANGELOG.md: Entry added under [Unreleased]
140
- - README.md: Features list updated
141
- - CLAUDE.md: USER section updated with new pattern
142
- - Committed: docs: update documentation for auth-refresh
143
- CI re-triggered after doc push — all checks still passing
144
- ✓ Beads synced
145
-
146
- PR #89 is ready to merge
147
-
148
- 👉 Please merge in the GitHub UI:
149
- https://github.com/harshanandak/forge/pull/89
150
-
151
- After you merge, run /verify
152
- ```
153
-
154
- ## Rules
155
-
156
- - **NEVER run `gh pr merge`** — blocked by PreToolUse hook in `.claude/settings.json`
157
- - **CLAUDE.md USER section only** — never touch other managed blocks
158
- - **Warn if branch is behind** — tell user to rebase before doc updates
159
- - **Re-check CI after doc push** — doc commits re-trigger full CI pipeline
160
- - **One PR, complete** — code + tests + docs merged together, no follow-up doc PRs
161
-
162
- ## Integration with Workflow
163
-
164
- ```
165
- Utility: /status → Understand current context before starting
166
- Stage 1: /plan → Design intent research branch + worktree + task list
167
- Stage 2: /dev → Implement each task with subagent-driven TDD
168
- Stage 3: /validate → Type check, lint, tests, security all fresh output
169
- Stage 4: /ship → Push + create PR
170
- Stage 5: /review → Address GitHub Actions, Greptile, SonarCloud
171
- Stage 6: /premerge → Update docs, hand off PR to user (you are here)
172
- Stage 7: /verify → Post-merge CI check on main
173
- ```
1
+
2
+ Prepare the pull request for merge by completing ALL documentation updates on the feature branch, then hand off to the user.
3
+
4
+ # Premerge
5
+
6
+ **The actual merge is always done by the user in the GitHub UI — never by this command.**
7
+
8
+ This command makes the PR 100% complete: code + tests + docs in one unit. After this, the user merges once and there are no follow-up doc PRs needed.
9
+
10
+ ## Usage
11
+
12
+ ```bash
13
+ /premerge <pr-number>
14
+ ```
15
+
16
+ ## What This Command Does
17
+
18
+ ### Step 1: Verify All CI Checks Pass
19
+
20
+ ```bash
21
+ gh pr checks <pr-number>
22
+ ```
23
+
24
+ All checks must be green before proceeding. If any fail, run `/review <pr-number>` first.
25
+
26
+ ### Step 2: Warn If Branch Is Behind Master
27
+
28
+ ```bash
29
+ gh pr view <pr-number> --json baseRefName,headRefName
30
+ git fetch origin master
31
+ git status
32
+ ```
33
+
34
+ If the feature branch is behind `master`, tell the user to rebase first:
35
+
36
+ ```
37
+ ⚠️ Branch is behind master — rebase before updating docs to avoid conflicts:
38
+ git rebase origin/master
39
+ git push --force-with-lease
40
+ ```
41
+
42
+ ### Step 3: Update ALL Relevant Documentation (on feature branch)
43
+
44
+ Check each of the following and update if the feature affects it. Be selective — only update what genuinely changed.
45
+
46
+ **A. `CHANGELOG.md`** (always):
47
+ - Add entry under `## [Unreleased]` heading (create heading if not present)
48
+ - Use [Keep a Changelog](https://keepachangelog.com/) categories:
49
+ - **Added**: New features
50
+ - **Changed**: Changes to existing functionality
51
+ - **Fixed**: Bug fixes
52
+ - **Removed**: Removed features
53
+ - Include: feature name, PR number, Beads ID
54
+ - Example:
55
+ ```markdown
56
+ ## [Unreleased]
57
+
58
+ ### Added
59
+ - Authentication refresh tokens (PR #89, forge-a3f8)
60
+ ```
61
+
62
+ **B. `README.md`** (if user-facing changes):
63
+ - Features list, configuration options, usage examples
64
+
65
+ **C. `docs/reference/API_REFERENCE.md`** (if API changes):
66
+ - New endpoints, request/response schemas, authentication
67
+
68
+ **D. Architecture docs** (if structural changes):
69
+ - `docs/architecture/` diagrams, decision records (ADRs)
70
+
71
+ **E. `CLAUDE.md` — USER section only** (if project conventions changed):
72
+ ```
73
+ <!-- USER:START - Add project-specific learnings here as you work -->
74
+ ...update only between these markers...
75
+ <!-- USER:END -->
76
+ ```
77
+ ⚠️ NEVER touch other managed blocks (e.g., `<!-- AGENT:START/END -->`).
78
+
79
+ **F. `AGENTS.md`** (if agent config, skills, or cross-agent workflow changed):
80
+ - Update relevant sections describing agent capabilities or workflow
81
+
82
+ **Commit doc updates to feature branch**:
83
+
84
+ ```bash
85
+ git add CHANGELOG.md README.md docs/ AGENTS.md CLAUDE.md
86
+ git commit -m "docs: update documentation for <feature-name>
87
+
88
+ - Updated: [list files changed]
89
+ - Reason: [brief explanation]"
90
+
91
+ git push
92
+ ```
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.
95
+
96
+ ### Step 4: Sync Beads
97
+
98
+ ```bash
99
+ bd sync
100
+ ```
101
+
102
+ ### Step 5: Hand Off — STOP HERE
103
+
104
+ **DO NOT run `gh pr merge`.** Present the PR and wait for the user to merge.
105
+
106
+ Output:
107
+
108
+ ```
109
+ ✅ PR #<number> is ready to merge
110
+
111
+ All checks: ✓ passing
112
+ Documentation: ✓ updated on feature branch
113
+ Beads: ✓ synced
114
+
115
+ 👉 Please merge in the GitHub UI:
116
+ https://github.com/<owner>/<repo>/pull/<number>
117
+
118
+ Recommended: Squash and merge (keeps main history clean)
119
+
120
+ After you merge, run /verify to confirm everything landed correctly.
121
+ ```
122
+
123
+ ### Step 6: Validate Context and Record Stage Transition
124
+
125
+ ```bash
126
+ bash scripts/beads-context.sh validate <id>
127
+ bash scripts/beads-context.sh stage-transition <id> premerge verify \
128
+ --summary "<docs updated, CI green, PR ready>" \
129
+ --artifacts "<updated doc files, PR URL>" \
130
+ --next "<merge instructions for user>"
131
+ ```
132
+
133
+ ```
134
+ <HARD-GATE: /premerge exit>
135
+ Do NOT run gh pr merge.
136
+ Do NOT suggest merging.
137
+ /premerge ends here. Output the PR URL and status. Wait for user.
138
+
139
+ "After you merge, run /verify to confirm everything landed correctly."
140
+ </HARD-GATE>
141
+ ```
142
+
143
+ ## Example Output
144
+
145
+ ```
146
+ CI checks: All passing
147
+ ✓ Branch: Up to date with master
148
+ Documentation updated:
149
+ - CHANGELOG.md: Entry added under [Unreleased]
150
+ - README.md: Features list updated
151
+ - CLAUDE.md: USER section updated with new pattern
152
+ - Committed: docs: update documentation for auth-refresh
153
+ ✓ CI re-triggered after doc push — all checks still passing
154
+ Beads synced
155
+
156
+ PR #89 is ready to merge
157
+
158
+ 👉 Please merge in the GitHub UI:
159
+ https://github.com/harshanandak/forge/pull/89
160
+
161
+ After you merge, run /verify
162
+ ```
163
+
164
+ ## Rules
165
+
166
+ - **NEVER run `gh pr merge`** blocked by PreToolUse hook in `.claude/settings.json`
167
+ - **CLAUDE.md USER section only** never touch other managed blocks
168
+ - **Warn if branch is behind** tell user to rebase before doc updates
169
+ - **Re-check CI after doc push** — doc commits re-trigger full CI pipeline
170
+ - **One PR, complete** code + tests + docs merged together, no follow-up doc PRs
171
+
172
+ ## Integration with Workflow
173
+
174
+ ```
175
+ Utility: /status → Understand current context before starting
176
+ Stage 1: /plan → Design intent → research → branch + worktree + task list
177
+ Stage 2: /dev → Implement each task with subagent-driven TDD
178
+ Stage 3: /validate → Type check, lint, tests, security — all fresh output
179
+ Stage 4: /ship → Push + create PR
180
+ Stage 5: /review → Address GitHub Actions, Greptile, SonarCloud
181
+ Stage 6: /premerge → Update docs, hand off PR to user (you are here)
182
+ Stage 7: /verify → Post-merge CI check on main
183
+ ```
@@ -1,39 +1,39 @@
1
-
2
- > **Note**: `/research` is now Phase 2 of `/plan`.
3
- >
4
- > The research phase has been absorbed into the `/plan` command, which runs a full 3-phase workflow:
5
- > - **Phase 1**: Brainstorming — design intent, constraints, success criteria
6
- > - **Phase 2**: Technical research — web search, OWASP, codebase exploration, TDD scenarios
7
- > - **Phase 3**: Setup — branch, worktree, Beads issue, task list
8
- >
9
- > Run `/plan <feature-slug>` to start the complete planning workflow.
10
-
11
- # Research (Legacy Alias)
12
-
13
- This command previously ran a standalone research phase. It is now embedded in `/plan` as Phase 2.
14
-
15
- ## If you want to run just the research phase
16
-
17
- Jump to Phase 2 of `/plan` manually:
18
-
19
- 1. Read or create the design doc at `docs/plans/YYYY-MM-DD-<slug>-design.md`
20
- 2. Run parallel web search using the `parallel-deep-research` skill
21
- 3. Run OWASP Top 10 analysis for the feature
22
- 4. Use the Explore agent for codebase exploration
23
- 5. Identify at least 3 TDD test scenarios
24
- 6. Append findings under `## Technical Research` in the design doc
25
-
26
- Then continue with `/plan <slug> --continue` to run Phase 3 (setup + task list).
27
-
28
- ## Integration with Workflow
29
-
30
- ```
31
- Utility: /status → Understand current context before starting
32
- Stage 1: /plan → Design intent → research → branch + worktree + task list
33
- Stage 2: /dev → Implement each task with subagent-driven TDD
34
- Stage 3: /validate → Type check, lint, tests, security — all fresh output
35
- Stage 4: /ship → Push + create PR
36
- Stage 5: /review → Address GitHub Actions, Greptile, SonarCloud
37
- Stage 6: /premerge → Update docs, hand off PR to user
38
- Stage 7: /verify → Post-merge CI check on main
39
- ```
1
+
2
+ > **Note**: `/research` is now Phase 2 of `/plan`.
3
+ >
4
+ > The research phase has been absorbed into the `/plan` command, which runs a full 3-phase workflow:
5
+ > - **Phase 1**: Brainstorming — design intent, constraints, success criteria
6
+ > - **Phase 2**: Technical research — web search, OWASP, codebase exploration, TDD scenarios
7
+ > - **Phase 3**: Setup — branch, worktree, Beads issue, task list
8
+ >
9
+ > Run `/plan <feature-slug>` to start the complete planning workflow.
10
+
11
+ # Research (Legacy Alias)
12
+
13
+ This command previously ran a standalone research phase. It is now embedded in `/plan` as Phase 2.
14
+
15
+ ## If you want to run just the research phase
16
+
17
+ Jump to Phase 2 of `/plan` manually:
18
+
19
+ 1. Read or create the design doc at `docs/plans/YYYY-MM-DD-<slug>-design.md`
20
+ 2. Run parallel web search using the `parallel-deep-research` skill
21
+ 3. Run OWASP Top 10 analysis for the feature
22
+ 4. Use the Explore agent for codebase exploration
23
+ 5. Identify at least 3 TDD test scenarios
24
+ 6. Append findings under `## Technical Research` in the design doc
25
+
26
+ Then continue with `/plan <slug> --continue` to run Phase 3 (setup + task list).
27
+
28
+ ## Integration with Workflow
29
+
30
+ ```
31
+ Utility: /status → Understand current context before starting
32
+ Stage 1: /plan → Design intent → research → branch + worktree + task list
33
+ Stage 2: /dev → Implement each task with subagent-driven TDD
34
+ Stage 3: /validate → Type check, lint, tests, security — all fresh output
35
+ Stage 4: /ship → Push + create PR
36
+ Stage 5: /review → Address GitHub Actions, Greptile, SonarCloud
37
+ Stage 6: /premerge → Update docs, hand off PR to user
38
+ Stage 7: /verify → Post-merge CI check on main
39
+ ```