forge-workflow 0.0.10 → 0.1.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/.claude/rules/{greptile-review-process.md → review-process.md} +56 -41
  2. package/.claude/scripts/{greptile-resolve.sh → review-resolve.sh} +13 -3
  3. package/.cursor/rules/permissions-guidance.mdc +2 -2
  4. package/.forge/hooks/check-tdd.js +3 -0
  5. package/.forge/hooks/forge-native-hook.js +245 -0
  6. package/.forge/protected-paths.yaml +157 -0
  7. package/AGENTS.md +150 -61
  8. package/CHANGELOG.md +681 -0
  9. package/CLAUDE.md +9 -118
  10. package/QUICKSTART.md +171 -0
  11. package/README.md +271 -363
  12. package/bin/forge-cmd.js +120 -9
  13. package/bin/forge-preflight.js +26 -5
  14. package/bin/forge.js +461 -489
  15. package/docs/INDEX.md +93 -0
  16. package/docs/PROJECT_DESIGN.md +685 -0
  17. package/docs/architecture/index.md +66 -0
  18. package/docs/architecture/notes/README.md +35 -0
  19. package/docs/architecture/subsystems/README.md +46 -0
  20. package/docs/forge/TOOLCHAIN.md +670 -0
  21. package/docs/forge/VALIDATION.md +82 -0
  22. package/docs/{AGENT_INSTALL_PROMPT.md → guides/AGENT_INSTALL_PROMPT.md} +3 -3
  23. package/docs/guides/BEADS_GITHUB_SYNC.md +32 -0
  24. package/docs/{ENHANCED_ONBOARDING.md → guides/ENHANCED_ONBOARDING.md} +16 -12
  25. package/docs/guides/GREPTILE_SETUP.md +46 -0
  26. package/docs/guides/MANUAL_REVIEW_GUIDE.md +58 -0
  27. package/docs/guides/MIGRATION.md +56 -0
  28. package/docs/guides/SETUP.md +118 -0
  29. package/docs/guides/SUPPORT.md +185 -0
  30. package/docs/guides/WORKFLOW_TEMPLATES.md +74 -0
  31. package/docs/guides/memory-backends.md +183 -0
  32. package/docs/reference/ADAPTERS.md +128 -0
  33. package/docs/reference/AGENT_SKILL_PARITY.md +175 -0
  34. package/docs/reference/COMMANDS.md +205 -0
  35. package/docs/reference/DECISION_DRIFT_GUARDS.md +97 -0
  36. package/docs/{EXAMPLES.md → reference/EXAMPLES.md} +7 -5
  37. package/docs/reference/FORGE_KERNEL_STORAGE_MODEL.md +135 -0
  38. package/docs/reference/HERMES_INTEGRATION.md +118 -0
  39. package/docs/reference/INSIGHTS_RECAP.md +63 -0
  40. package/docs/reference/INSTALL.md +164 -0
  41. package/docs/reference/KERNEL_TAXONOMY_VALIDATION.md +161 -0
  42. package/docs/reference/PROTECTED_PATH_MANIFEST.md +25 -0
  43. package/docs/reference/RELEASE.md +68 -0
  44. package/docs/reference/RESEARCH_TEMPLATE.md +292 -0
  45. package/docs/{ROADMAP.md → reference/ROADMAP.md} +12 -9
  46. package/docs/reference/SKILLS.md +35 -0
  47. package/docs/reference/STATUS_BOARD.md +80 -0
  48. package/docs/reference/TEMPLATES.md +106 -0
  49. package/docs/{TOOLCHAIN.md → reference/TOOLCHAIN.md} +62 -47
  50. package/docs/reference/VALIDATION.md +82 -0
  51. package/docs/reference/agent-permissions.md +169 -0
  52. package/docs/reference/beads-to-kernel-migration-ux.md +61 -0
  53. package/docs/reference/control-plane-guarantees.md +125 -0
  54. package/docs/reference/dependency-chain.md +331 -0
  55. package/docs/reference/forge-kernel-issue-command-contract.md +161 -0
  56. package/docs/reference/forge-kernel-schema.md +72 -0
  57. package/docs/reference/kernel-conflict-evaluators.md +27 -0
  58. package/docs/reference/patch-md-format.md +77 -0
  59. package/docs/reference/protected-state-surfaces.md +59 -0
  60. package/docs/reference/shepherd.md +115 -0
  61. package/docs/reference/superpowers-analysis.md +320 -0
  62. package/docs/reference/superpowers-integration-options.md +404 -0
  63. package/docs/reference/test-environment.md +519 -0
  64. package/docs/reference/upgrade-safety.md +59 -0
  65. package/lefthook.yml +18 -0
  66. package/lib/adapter-cli.js +307 -0
  67. package/lib/adapters/beads-issue-adapter.js +127 -0
  68. package/lib/adapters/beads-kernel-compat.js +1042 -0
  69. package/lib/adapters/greptile-review-adapter.js +141 -0
  70. package/lib/adapters/kernel-issue-adapter.js +101 -0
  71. package/lib/adapters/pr-state-adapter.js +484 -0
  72. package/lib/adoption-profiles.js +126 -0
  73. package/lib/agents/README.md +2 -6
  74. package/lib/agents/claude.plugin.json +3 -8
  75. package/lib/agents/codex.plugin.json +9 -1
  76. package/lib/agents/cursor.plugin.json +2 -6
  77. package/lib/agents/hermes.plugin.json +22 -0
  78. package/lib/agents-config.js +39 -1236
  79. package/lib/audit-evidence.js +282 -0
  80. package/lib/beads-setup.js +121 -0
  81. package/lib/beads-sync-scaffold.js +25 -101
  82. package/lib/codex-skills.js +51 -1
  83. package/lib/commands/_issue.js +741 -77
  84. package/lib/commands/_manifest.js +91 -0
  85. package/lib/commands/_registry.js +85 -34
  86. package/lib/commands/_resolve-command-opts.js +261 -0
  87. package/lib/commands/_serve-security.js +270 -0
  88. package/lib/commands/adapter.js +12 -0
  89. package/lib/commands/add.js +118 -0
  90. package/lib/commands/audit.js +70 -0
  91. package/lib/commands/blocked.js +5 -0
  92. package/lib/commands/board.js +64 -0
  93. package/lib/commands/claim.js +21 -2
  94. package/lib/commands/claims.js +7 -0
  95. package/lib/commands/clean.js +485 -75
  96. package/lib/commands/close.js +2 -2
  97. package/lib/commands/comment.js +5 -0
  98. package/lib/commands/control.js +148 -0
  99. package/lib/commands/create.js +2 -2
  100. package/lib/commands/dev.js +185 -7
  101. package/lib/commands/doc-gate.js +336 -0
  102. package/lib/commands/doctor.js +156 -0
  103. package/lib/commands/explain.js +15 -0
  104. package/lib/commands/export.js +237 -0
  105. package/lib/commands/gate.js +192 -0
  106. package/lib/commands/hooks.js +242 -0
  107. package/lib/commands/inbox.js +118 -0
  108. package/lib/commands/init.js +598 -0
  109. package/lib/commands/insights.js +79 -0
  110. package/lib/commands/issue.js +12 -1
  111. package/lib/commands/issues.js +17 -0
  112. package/lib/commands/lint.js +5 -0
  113. package/lib/commands/list.js +2 -2
  114. package/lib/commands/merge.js +312 -0
  115. package/lib/commands/migrate.js +523 -0
  116. package/lib/commands/new.js +12 -0
  117. package/lib/commands/options.js +241 -0
  118. package/lib/commands/orient.js +13 -0
  119. package/lib/commands/orphans.js +5 -0
  120. package/lib/commands/patch.js +67 -0
  121. package/lib/commands/plan.js +436 -24
  122. package/lib/commands/preflight.js +211 -0
  123. package/lib/commands/prime.js +13 -0
  124. package/lib/commands/push.js +69 -2
  125. package/lib/commands/ready.js +2 -2
  126. package/lib/commands/recall.js +116 -0
  127. package/lib/commands/recap.js +61 -0
  128. package/lib/commands/recommend.js +0 -1
  129. package/lib/commands/release.js +91 -0
  130. package/lib/commands/remember.js +74 -0
  131. package/lib/commands/role.js +99 -0
  132. package/lib/commands/serve.js +581 -0
  133. package/lib/commands/setup.js +838 -972
  134. package/lib/commands/shepherd.js +436 -0
  135. package/lib/commands/ship.js +23 -1
  136. package/lib/commands/show.js +2 -2
  137. package/lib/commands/stage.js +192 -0
  138. package/lib/commands/stale.js +5 -0
  139. package/lib/commands/status.js +158 -21
  140. package/lib/commands/sync.js +34 -46
  141. package/lib/commands/team.js +4 -1
  142. package/lib/commands/test.js +43 -27
  143. package/lib/commands/update.js +2 -2
  144. package/lib/commands/upgrade.js +47 -0
  145. package/lib/commands/validate.js +43 -18
  146. package/lib/commands/worktree.js +307 -100
  147. package/lib/config-writer.js +202 -0
  148. package/lib/control-plane.js +236 -0
  149. package/lib/core/runtime-graph.js +946 -0
  150. package/lib/dep-guard/keyword-ripple.js +2 -2
  151. package/lib/deprecated-sync-cleanup.js +362 -0
  152. package/lib/detect-agent.js +2 -28
  153. package/lib/detect-worktree.js +35 -9
  154. package/lib/doc-gate/declaration.js +177 -0
  155. package/lib/doc-gate/detect.js +289 -0
  156. package/lib/doc-gate/gate.js +375 -0
  157. package/lib/doc-gate/okf-config.js +128 -0
  158. package/lib/doc-gate/okf.js +429 -0
  159. package/lib/docs-command.js +1161 -6
  160. package/lib/forge-issues.js +382 -11
  161. package/lib/forge-lock.js +262 -0
  162. package/lib/gate-events.js +193 -0
  163. package/lib/global-flags.js +74 -0
  164. package/lib/greptile-match.js +7 -63
  165. package/lib/harness-capability-matrix.js +380 -0
  166. package/lib/hook-global-installer.js +347 -0
  167. package/lib/hook-renderer.js +451 -0
  168. package/lib/inbox.js +391 -0
  169. package/lib/insights.js +397 -0
  170. package/lib/issue-adapter.js +156 -0
  171. package/lib/issue-backend.js +145 -0
  172. package/lib/issue-render.js +220 -0
  173. package/lib/kernel/backing-issue.js +305 -0
  174. package/lib/kernel/broker.js +1218 -0
  175. package/lib/kernel/cli-broker-factory.js +130 -0
  176. package/lib/kernel/conflict-signal.js +82 -0
  177. package/lib/kernel/evaluators.js +195 -0
  178. package/lib/kernel/fs-class.js +495 -0
  179. package/lib/kernel/issue-command-contract.js +559 -0
  180. package/lib/kernel/issue-id-resolver.js +186 -0
  181. package/lib/kernel/lease-enforcer.js +158 -0
  182. package/lib/kernel/migrations.js +333 -0
  183. package/lib/kernel/planning-buckets-schema.js +109 -0
  184. package/lib/kernel/projection-jsonl-writer.js +450 -0
  185. package/lib/kernel/readiness-model.js +329 -0
  186. package/lib/kernel/schema.js +356 -0
  187. package/lib/kernel/sqlite-driver.js +2504 -0
  188. package/lib/kernel/taxonomy-validator.js +394 -0
  189. package/lib/lefthook-check.js +3 -2
  190. package/lib/lefthook-wiring.js +413 -0
  191. package/lib/mcp-config-renderer.js +288 -0
  192. package/lib/memory/graphiti-mcp.js +106 -0
  193. package/lib/memory/router.js +387 -0
  194. package/lib/memory/typed-api.js +102 -0
  195. package/lib/memory-digest.js +195 -0
  196. package/lib/merge-rules.js +395 -0
  197. package/lib/migrate-dry-run.js +466 -0
  198. package/lib/orientation.js +863 -0
  199. package/lib/package-manager-remediation.js +103 -0
  200. package/lib/package-root.js +381 -0
  201. package/lib/patch-intent.js +890 -0
  202. package/lib/plugin-catalog.js +3 -4
  203. package/lib/plugin-manager.js +0 -5
  204. package/lib/pr-bundle.js +186 -0
  205. package/lib/pr-monitor/differ.js +195 -0
  206. package/lib/pr-monitor/events.js +0 -0
  207. package/lib/pr-monitor/gather.js +124 -0
  208. package/lib/pr-monitor/journal.js +299 -0
  209. package/lib/pr-monitor/monitor.js +146 -0
  210. package/lib/pr-monitor/render-sticky.js +157 -0
  211. package/lib/pr-monitor/watch-lifecycle.js +95 -0
  212. package/lib/pr-monitor/watch.js +247 -0
  213. package/lib/pr-pull.js +1273 -0
  214. package/lib/pr-shepherd.js +494 -0
  215. package/lib/pr-state-validator.js +59 -0
  216. package/lib/preflight/gates.js +237 -0
  217. package/lib/preflight/runner.js +116 -0
  218. package/lib/project-discovery.js +0 -53
  219. package/lib/project-memory.js +99 -497
  220. package/lib/protected-path-manifest.js +281 -0
  221. package/lib/protected-state-surfaces.js +387 -0
  222. package/lib/release-readiness.js +2089 -0
  223. package/lib/reset.js +59 -45
  224. package/lib/review-adapter.js +68 -0
  225. package/lib/rules-sync.js +260 -0
  226. package/lib/runtime-health.js +241 -20
  227. package/lib/safety-config-renderer.js +268 -0
  228. package/lib/setup-action-log.js +1 -7
  229. package/lib/setup.js +27 -65
  230. package/lib/shell-utils.js +76 -6
  231. package/lib/skills-sync.js +330 -0
  232. package/lib/smart-status/scoring.js +17 -3
  233. package/lib/status/beads-snapshot.js +45 -2
  234. package/lib/status/presenter.js +169 -18
  235. package/lib/status/snapshot.js +186 -0
  236. package/lib/sync-backend.js +202 -0
  237. package/lib/untrusted-content.js +52 -0
  238. package/lib/upgrade-safety.js +199 -0
  239. package/lib/workflow/enforce-stage.js +296 -47
  240. package/lib/workflow/stage-transition.js +115 -0
  241. package/lib/workflow/stages.js +30 -6
  242. package/lib/workflow/state-manager.js +11 -22
  243. package/lib/workflow/state.js +23 -1
  244. package/lib/workflow-profiles.js +17 -5
  245. package/package.json +37 -35
  246. package/rules/documentation.md +19 -0
  247. package/rules/kernel-tracking.md +26 -0
  248. package/rules/security.md +22 -0
  249. package/rules/tdd.md +20 -0
  250. package/rules/workflow.md +27 -0
  251. package/scripts/auto-backing-issue.js +47 -0
  252. package/scripts/beads-context.sh +81 -57
  253. package/scripts/beads-upgrade-smoke.sh +24 -3
  254. package/scripts/bootstrap-windows-tools.sh +78 -0
  255. package/scripts/branch-protection.js +2 -3
  256. package/scripts/check-agents.js +34 -137
  257. package/scripts/commitlint.js +3 -1
  258. package/scripts/conflict-detect.sh +3 -0
  259. package/scripts/dep-guard.sh +22 -3
  260. package/scripts/file-index.sh +3 -0
  261. package/scripts/forge-team/lib/claim.sh +34 -18
  262. package/scripts/forge-team/lib/dashboard.sh +61 -86
  263. package/scripts/forge-team/lib/epic.sh +99 -263
  264. package/scripts/forge-team/lib/hooks.sh +26 -28
  265. package/scripts/forge-team/lib/identity.sh +4 -4
  266. package/scripts/forge-team/lib/sync-github.sh +49 -84
  267. package/scripts/forge-team/lib/verify.sh +93 -83
  268. package/scripts/forge-team/lib/workload.sh +41 -65
  269. package/scripts/forge-team/tests/claim.test.sh +25 -19
  270. package/scripts/forge-team/tests/dashboard.test.sh +31 -46
  271. package/scripts/forge-team/tests/epic.test.sh +52 -71
  272. package/scripts/forge-team/tests/hooks.test.sh +38 -50
  273. package/scripts/forge-team/tests/identity.test.sh +3 -3
  274. package/scripts/forge-team/tests/integration.test.sh +44 -66
  275. package/scripts/forge-team/tests/sync-github.test.sh +50 -83
  276. package/scripts/forge-team/tests/verify.test.sh +37 -46
  277. package/scripts/forge-team/tests/workflow-integration.test.sh +4 -4
  278. package/scripts/forge-team/tests/workload.test.sh +32 -66
  279. package/scripts/gen-command-manifest.js +153 -0
  280. package/scripts/gen-embedded-assets.mjs +129 -0
  281. package/scripts/install.ps1 +139 -0
  282. package/scripts/install.sh +268 -0
  283. package/scripts/lib/release-asset.mjs +84 -0
  284. package/scripts/parity-check.mjs +145 -0
  285. package/scripts/parity-check.test.mjs +58 -0
  286. package/scripts/pin-agentic-workflow-images.js +112 -0
  287. package/scripts/pr-coordinator.sh +3 -0
  288. package/scripts/preflight-sonar.eslint.config.mjs +44 -0
  289. package/scripts/preflight.sh +21 -94
  290. package/scripts/protected-state-check.js +104 -0
  291. package/scripts/smart-status.sh +60 -57
  292. package/scripts/spikes/config-race-bench.js +111 -0
  293. package/scripts/spikes/harness-capability-matrix.js +13 -0
  294. package/scripts/spikes/patch-anchor-stability-bench.js +125 -0
  295. package/scripts/spikes/protected-path-manifest.js +20 -0
  296. package/scripts/spikes/skill-auto-invoke-parity.js +292 -0
  297. package/scripts/sync-agent-skills.js +62 -0
  298. package/scripts/sync-utils.sh +3 -0
  299. package/scripts/test-ci-shard.js +13 -6
  300. package/scripts/test.js +95 -12
  301. package/skills/claim-safety/SKILL.md +102 -0
  302. package/skills/claim-safety/evals/evals.json +46 -0
  303. package/{.github/prompts/dev.prompt.md → skills/dev/SKILL.md} +44 -50
  304. package/skills/dev/evals/evals.json +50 -0
  305. package/skills/hermes-forge/SKILL.md +185 -0
  306. package/skills/hermes-forge/evals/evals.json +46 -0
  307. package/skills/issue-basics/SKILL.md +111 -0
  308. package/skills/issue-basics/evals/evals.json +46 -0
  309. package/skills/kernel/SKILL.md +166 -0
  310. package/skills/kernel/evals/evals.json +50 -0
  311. package/skills/memory/SKILL.md +102 -0
  312. package/skills/parallel-deep-research/SKILL.md +14 -11
  313. package/skills/parallel-deep-research/evals/evals.json +11 -27
  314. package/{.github/prompts/plan.prompt.md → skills/plan/SKILL.md} +132 -157
  315. package/skills/plan/evals/evals.json +42 -0
  316. package/skills/research/SKILL.md +195 -0
  317. package/skills/research/evals/evals.json +42 -0
  318. package/{.github/prompts/review.prompt.md → skills/review/SKILL.md} +98 -62
  319. package/skills/review/evals/evals.json +42 -0
  320. package/skills/rollback/SKILL.md +110 -0
  321. package/skills/rollback/evals/evals.json +46 -0
  322. package/skills/rollback/references/methods.md +204 -0
  323. package/{.cursor/commands/rollback.md → skills/rollback/references/workflow-integration.md} +10 -284
  324. package/skills/shepherd/SKILL.md +66 -0
  325. package/skills/shepherd/evals/evals.json +42 -0
  326. package/{.github/prompts/ship.prompt.md → skills/ship/SKILL.md} +81 -45
  327. package/skills/ship/evals/evals.json +42 -0
  328. package/skills/smith/SKILL.md +142 -0
  329. package/skills/smith/evals/evals.json +46 -0
  330. package/skills/smith/references/autonomy-and-gates.md +94 -0
  331. package/{.github/prompts/sonarcloud.prompt.md → skills/sonarcloud/SKILL.md} +14 -3
  332. package/skills/sonarcloud/evals/evals.json +46 -0
  333. package/skills/sonarcloud-analysis/SKILL.md +18 -13
  334. package/skills/sonarcloud-analysis/evals/evals.json +11 -15
  335. package/{.github/prompts/status.prompt.md → skills/status/SKILL.md} +20 -10
  336. package/skills/status/evals/evals.json +50 -0
  337. package/skills/triage-ready/SKILL.md +121 -0
  338. package/skills/triage-ready/evals/evals.json +42 -0
  339. package/{.github/prompts/validate.prompt.md → skills/validate/SKILL.md} +52 -29
  340. package/skills/validate/evals/evals.json +42 -0
  341. package/skills/verify/SKILL.md +299 -0
  342. package/skills/verify/evals/evals.json +50 -0
  343. package/.claude/commands/dev.md +0 -345
  344. package/.claude/commands/plan.md +0 -566
  345. package/.claude/commands/premerge.md +0 -186
  346. package/.claude/commands/research.md +0 -42
  347. package/.claude/commands/review.md +0 -451
  348. package/.claude/commands/rollback.md +0 -721
  349. package/.claude/commands/ship.md +0 -213
  350. package/.claude/commands/sonarcloud.md +0 -152
  351. package/.claude/commands/status.md +0 -90
  352. package/.claude/commands/validate.md +0 -288
  353. package/.claude/commands/verify.md +0 -269
  354. package/.claude/rules/workflow.md +0 -121
  355. package/.cline/workflows/dev.md +0 -342
  356. package/.cline/workflows/plan.md +0 -563
  357. package/.cline/workflows/premerge.md +0 -183
  358. package/.cline/workflows/research.md +0 -39
  359. package/.cline/workflows/review.md +0 -448
  360. package/.cline/workflows/rollback.md +0 -718
  361. package/.cline/workflows/ship.md +0 -210
  362. package/.cline/workflows/sonarcloud.md +0 -146
  363. package/.cline/workflows/status.md +0 -87
  364. package/.cline/workflows/validate.md +0 -285
  365. package/.cline/workflows/verify.md +0 -266
  366. package/.codex/config.toml +0 -11
  367. package/.codex/skills/dev/SKILL.md +0 -345
  368. package/.codex/skills/plan/SKILL.md +0 -566
  369. package/.codex/skills/premerge/SKILL.md +0 -186
  370. package/.codex/skills/research/SKILL.md +0 -42
  371. package/.codex/skills/review/SKILL.md +0 -451
  372. package/.codex/skills/rollback/SKILL.md +0 -721
  373. package/.codex/skills/ship/SKILL.md +0 -213
  374. package/.codex/skills/sonarcloud/SKILL.md +0 -149
  375. package/.codex/skills/status/SKILL.md +0 -90
  376. package/.codex/skills/validate/SKILL.md +0 -288
  377. package/.codex/skills/verify/SKILL.md +0 -269
  378. package/.cursor/commands/dev.md +0 -342
  379. package/.cursor/commands/plan.md +0 -563
  380. package/.cursor/commands/premerge.md +0 -183
  381. package/.cursor/commands/research.md +0 -39
  382. package/.cursor/commands/review.md +0 -448
  383. package/.cursor/commands/ship.md +0 -210
  384. package/.cursor/commands/sonarcloud.md +0 -146
  385. package/.cursor/commands/status.md +0 -87
  386. package/.cursor/commands/validate.md +0 -285
  387. package/.cursor/commands/verify.md +0 -266
  388. package/.cursorrules +0 -149
  389. package/.github/prompts/premerge.prompt.md +0 -188
  390. package/.github/prompts/research.prompt.md +0 -44
  391. package/.github/prompts/rollback.prompt.md +0 -723
  392. package/.github/prompts/verify.prompt.md +0 -271
  393. package/.github/workflows/beads-to-github.yml +0 -89
  394. package/.github/workflows/github-to-beads.yml +0 -100
  395. package/.kilocode/workflows/dev.md +0 -346
  396. package/.kilocode/workflows/plan.md +0 -567
  397. package/.kilocode/workflows/premerge.md +0 -187
  398. package/.kilocode/workflows/research.md +0 -43
  399. package/.kilocode/workflows/review.md +0 -452
  400. package/.kilocode/workflows/rollback.md +0 -722
  401. package/.kilocode/workflows/ship.md +0 -214
  402. package/.kilocode/workflows/sonarcloud.md +0 -150
  403. package/.kilocode/workflows/status.md +0 -91
  404. package/.kilocode/workflows/validate.md +0 -289
  405. package/.kilocode/workflows/verify.md +0 -270
  406. package/.opencode/commands/dev.md +0 -345
  407. package/.opencode/commands/plan.md +0 -566
  408. package/.opencode/commands/premerge.md +0 -186
  409. package/.opencode/commands/research.md +0 -42
  410. package/.opencode/commands/review.md +0 -451
  411. package/.opencode/commands/rollback.md +0 -721
  412. package/.opencode/commands/ship.md +0 -213
  413. package/.opencode/commands/sonarcloud.md +0 -149
  414. package/.opencode/commands/status.md +0 -90
  415. package/.opencode/commands/validate.md +0 -288
  416. package/.opencode/commands/verify.md +0 -269
  417. package/.roo/commands/dev.md +0 -346
  418. package/.roo/commands/plan.md +0 -567
  419. package/.roo/commands/premerge.md +0 -187
  420. package/.roo/commands/research.md +0 -43
  421. package/.roo/commands/review.md +0 -452
  422. package/.roo/commands/rollback.md +0 -722
  423. package/.roo/commands/ship.md +0 -214
  424. package/.roo/commands/sonarcloud.md +0 -150
  425. package/.roo/commands/status.md +0 -91
  426. package/.roo/commands/validate.md +0 -289
  427. package/.roo/commands/verify.md +0 -270
  428. package/docs/BEADS_GITHUB_SYNC.md +0 -281
  429. package/docs/GREPTILE_SETUP.md +0 -400
  430. package/docs/MANUAL_REVIEW_GUIDE.md +0 -106
  431. package/docs/SETUP.md +0 -663
  432. package/docs/VALIDATION.md +0 -363
  433. package/lib/agents/cline.plugin.json +0 -29
  434. package/lib/agents/copilot.plugin.json +0 -24
  435. package/lib/agents/kilocode.plugin.json +0 -22
  436. package/lib/agents/opencode.plugin.json +0 -23
  437. package/lib/agents/roo.plugin.json +0 -30
  438. package/lib/beads-bootstrap.js +0 -225
  439. package/lib/beads-health-check.js +0 -188
  440. package/lib/commands/commands-reset.js +0 -147
  441. package/opencode.json +0 -67
  442. package/scripts/beads-context.test.js +0 -584
  443. package/scripts/github-beads-sync/comment.mjs +0 -64
  444. package/scripts/github-beads-sync/config.mjs +0 -148
  445. package/scripts/github-beads-sync/github-api.mjs +0 -131
  446. package/scripts/github-beads-sync/index.mjs +0 -356
  447. package/scripts/github-beads-sync/label-mapper.mjs +0 -54
  448. package/scripts/github-beads-sync/mapping.mjs +0 -132
  449. package/scripts/github-beads-sync/reverse-sync-cli.mjs +0 -31
  450. package/scripts/github-beads-sync/reverse-sync.mjs +0 -162
  451. package/scripts/github-beads-sync/run-bd.mjs +0 -161
  452. package/scripts/github-beads-sync/sanitize.mjs +0 -121
  453. package/scripts/github-beads-sync.config.json +0 -26
  454. package/scripts/sync-commands.js +0 -600
@@ -1,285 +0,0 @@
1
-
2
- > **Note:** Three things share the "validate" name in Forge:
3
- > - `/validate` (this command): Workflow Stage 3 — rebases onto the base branch, then runs type/lint/test/security checks
4
- > - `forge-preflight` (formerly forge-validate): CLI tool — checks prerequisites before a stage
5
- > - `bun run check` (scripts/validate.sh): Local quality gate — runs type/lint/test/security checks only (does NOT rebase; assumes branch is already current with the base branch)
6
-
7
- Run comprehensive validation including type checking, linting, code review, security review, and tests.
8
-
9
- # Validate
10
-
11
- This command validates all code before creating a pull request.
12
-
13
- ## Usage
14
-
15
- ```bash
16
- /validate
17
- ```
18
-
19
- Or use the validation script (checks only — no rebase):
20
-
21
- ```bash
22
- bun run check # Runs lint/test/security checks only. Does NOT rebase onto the base branch.
23
- # Use /validate for the full workflow (rebase + checks).
24
- ```
25
-
26
- ```
27
- <HARD-GATE: /validate entry — rebase onto latest base branch>
28
- Before running ANY validation checks:
29
-
30
- 0. Resolve the base branch dynamically (do NOT hardcode master or main):
31
- BASE=$(git remote show origin 2>/dev/null | grep 'HEAD branch' | awk '{print $NF}')
32
- if [ -z "$BASE" ] || [ "$BASE" = "(unknown)" ]; then BASE="master"; fi
33
-
34
- This handles repos using main, master, or any other default branch.
35
- Falls back to "master" when HEAD is unresolved (detached remote, empty repo).
36
-
37
- 1. Fetch latest base branch:
38
- git fetch origin "$BASE" || { echo "✗ Fetch failed — cannot verify branch freshness"; exit 1; }
39
-
40
- The `|| { ...; exit 1; }` guard ensures fetch failures are never silently skipped.
41
-
42
- 2. Check if branch is behind:
43
- BEHIND=$(git rev-list --count HEAD..origin/"$BASE")
44
-
45
- 3. If BEHIND > 0:
46
- a. Run: git rebase origin/"$BASE" || REBASE_FAILED=1
47
- b. If rebase succeeds (REBASE_FAILED unset): print "✓ Rebased onto latest $BASE ($BEHIND commits integrated)"
48
- c. If rebase fails (REBASE_FAILED=1 — conflicts or any other error):
49
- - Capture conflicting files BEFORE aborting: git diff --name-only --diff-filter=U
50
- - Run: git rebase --abort
51
- - Print the captured conflicting file list
52
- - Print: "✗ Rebase conflict — resolve manually, then re-run /validate"
53
- - STOP. Do NOT proceed to any validation checks.
54
-
55
- 4. If BEHIND = 0:
56
- Print "✓ Branch is up-to-date with $BASE" and continue.
57
-
58
- Rationale: Without this step, validation checks run against stale code that doesn't
59
- include recent base branch changes. Integration issues are only caught after the PR is
60
- created, wasting CI cycles and review time. Rebasing here ensures /validate results
61
- reflect the true state of what will be merged.
62
- </HARD-GATE>
63
- ```
64
-
65
- ## What This Command Does
66
-
67
- **Quick Start**: Run `bun run check` to execute the full validation pipeline (implemented in `scripts/validate.sh`). The npm script is named `check`; the workflow command is `/validate`. See individual steps below for details.
68
-
69
- ### Step 1: Type Check
70
- ```bash
71
- # Run your project's type check command
72
- bun run typecheck # or: npm run typecheck, tsc, etc.
73
- ```
74
- - Verify all TypeScript types are valid
75
- - No `any` types allowed
76
- - Strict mode enforcement
77
-
78
- ### Step 2: Lint
79
- ```bash
80
- # Run your project's lint command
81
- bun run lint # or: npm run lint, eslint ., etc.
82
- ```
83
- - Linting rules
84
- - Code style consistency
85
- - Best practices compliance
86
-
87
- ### Step 3: Code Review (if available)
88
- ```bash
89
- /code-review:code-review
90
- ```
91
- - Static code analysis
92
- - Code quality check
93
- - Potential issues flagged
94
-
95
- ### Step 4: Security Review
96
-
97
- **OWASP Top 10 Checklist**:
98
- - A01: Broken Access Control
99
- - A02: Cryptographic Failures
100
- - A03: Injection
101
- - A04: Insecure Design
102
- - A05: Security Misconfiguration
103
- - A06: Vulnerable Components
104
- - A07: Authentication Failures
105
- - A08: Data Integrity Failures
106
- - A09: Logging & Monitoring Failures
107
- - A10: Server-Side Request Forgery
108
-
109
- **Automated Security Scan**:
110
- ```bash
111
- # Run your project's security scan
112
- npm audit # or: bun audit, snyk test, etc.
113
- ```
114
-
115
- **Manual Review**:
116
- - Review security test scenarios (from design doc — `## Technical Research` section)
117
- - Verify security mitigations implemented
118
- - Check for sensitive data exposure
119
-
120
- ### Step 5: Tests
121
- ```bash
122
- # Run your project's test command
123
- bun test # or: npm run test, jest, vitest, etc.
124
- ```
125
- - All tests passing
126
- - Includes security test scenarios
127
- - TDD tests from /dev phase
128
-
129
- > **💭 Plan-Act-Reflect Checkpoint**
130
- > Before declaring validation complete:
131
- > - Are all security test scenarios from your design doc actually implemented and passing?
132
- > - Did you verify OWASP Top 10 mitigations, not just check a box?
133
- > - Are there edge cases or integration scenarios you haven't tested?
134
- >
135
- > **If unsure**: Re-read the `## Technical Research` section in `docs/plans/YYYY-MM-DD-<slug>-design.md`
136
-
137
- ## On Validation Failure: 4-Phase Debug Mode
138
-
139
- > **Iron Law: NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST**
140
- >
141
- > Every fix attempt without a diagnosed root cause wastes time and masks the real problem.
142
-
143
- ### Phase D1: Reproduce
144
-
145
- Confirm the failure is deterministic. Capture the exact error.
146
-
147
- - Run the failing command fresh — do not rely on cached output
148
- - Record: exact command, exact error message, exact line number
149
- - If intermittent: run 3 times, document frequency
150
-
151
- ### Phase D2: Root-Cause Trace
152
-
153
- Trace to the source, not the symptom. **Fix at source, not at symptom.**
154
-
155
- - Read the stack trace — where does it originate?
156
- - Is it a test bug, an implementation bug, or a config bug?
157
- - What changed recently that could have caused this?
158
- - Read the actual failing line and surrounding context
159
-
160
- ### Phase D3: Fix
161
-
162
- ONE minimal fix. ONE change at a time.
163
-
164
- 1. Write the failing test FIRST (if not already a test failure)
165
- 2. Make the smallest possible change to fix the root cause
166
- 3. Do not fix multiple things in one commit
167
- 4. Do not "also improve" unrelated code while fixing
168
-
169
- ### Phase D4: Verify
170
-
171
- Re-run full validation from the beginning.
172
-
173
- - Do not declare fixed until you have run the full validate suite
174
- - Show fresh output — not "it should be fine now"
175
- - All checks must pass, not just the one that was failing
176
-
177
- <HARD-GATE: 3+ fix attempts>
178
- STOP. Question architecture before Fix #4.
179
-
180
- If you have attempted 3+ fixes without resolution:
181
- 1. Step back — is the approach fundamentally wrong?
182
- 2. Read the original spec/design doc
183
- 3. Ask: "Am I fixing symptoms or the real problem?"
184
- 4. Consider: revert all changes and start fresh with better understanding
185
-
186
- "Quick fix for now" is not a valid fix strategy.
187
- </HARD-GATE>
188
-
189
- ### Red Flags — STOP if you hear yourself saying:
190
-
191
- - "Quick fix for now"
192
- - "It's probably X"
193
- - "I don't fully understand but this might work"
194
- - "Should be fixed now"
195
- - "It was passing earlier"
196
- - "I'm confident this is right"
197
-
198
- **None of these are evidence. Run the command. Show the output.**
199
-
200
- ### Step 6: Handle Failures
201
-
202
- If any check fails:
203
- ```bash
204
- # Create Beads issue for problems
205
- bd create "Fix <issue-description>"
206
-
207
- # Mark current issue as blocked
208
- bd update <current-id> --status blocked --comment "Blocked by <new-issue-id>"
209
-
210
- # Output what needs fixing
211
- ```
212
-
213
- If all pass:
214
-
215
- ```
216
- <HARD-GATE: /validate exit>
217
- Do NOT output any variation of "check complete", "ready to ship", or proceed to /ship
218
- until ALL FOUR show fresh output in this session:
219
-
220
- 1. Type check: [command run] → [actual output] → exit 0 confirmed
221
- 2. Lint: [command run] → [actual output] → 0 errors, 0 warnings confirmed
222
- 3. Tests: [command run] → [actual output] → N/N passing confirmed
223
- 4. Security scan: [command run] → [actual output] → no critical issues confirmed
224
-
225
- "Should pass", "was passing earlier", and "I'm confident" are not evidence.
226
- Run the commands. Show the output. THEN declare done.
227
-
228
- 5. Context check: Run `bash scripts/beads-context.sh validate <id>` and address any warnings
229
- 6. Stage transition: Run the following → exit 0 confirmed:
230
- bash scripts/beads-context.sh stage-transition <id> validate ship \
231
- --summary "<all checks pass/fail summary>" \
232
- --decisions "<any failures diagnosed and fixed>" \
233
- --artifacts "<scripts and commands run>" \
234
- --next "<ship readiness notes>"
235
- </HARD-GATE>
236
- ```
237
-
238
- ## Example Output (Success)
239
-
240
- ```
241
- ✓ Type check: Passed
242
- ✓ Lint: Passed
243
- ✓ Code review: No issues
244
- ✓ Security Review:
245
- - OWASP Top 10: All mitigations verified
246
- - Automated scan: No vulnerabilities
247
- - Manual review: Security tests passing
248
- ✓ Tests: 15/15 passing (TDD complete)
249
-
250
- Ready for /ship
251
- ```
252
-
253
- ## Example Output (Failure)
254
-
255
- ```
256
- ✗ Tests: 2/15 failing
257
- - validation.test.ts: Assertion failed
258
- - auth.test.ts: Timeout exceeded
259
-
260
- ✓ Beads issue created: bd-k8m3 "Fix validation test"
261
- ✓ Current issue marked: Blocked by bd-k8m3
262
-
263
- Fix issues then re-run /validate
264
- ```
265
-
266
- ## Integration with Workflow
267
-
268
- ```
269
- Utility: /status → Understand current context before starting
270
- Stage 1: /plan → Design intent → research → branch + worktree + task list
271
- Stage 2: /dev → Implement each task with subagent-driven TDD
272
- Stage 3: /validate → Type check, lint, tests, security — all fresh output (you are here)
273
- Stage 4: /ship → Push + create PR
274
- Stage 5: /review → Address GitHub Actions, Greptile, SonarCloud
275
- Stage 6: /premerge → Update docs, hand off PR to user
276
- Stage 7: /verify → Post-merge CI check on main
277
- ```
278
-
279
- ## Tips
280
-
281
- - **All checks must pass**: Don't proceed to /ship with failures
282
- - **Security is mandatory**: OWASP Top 10 review required for all features
283
- - **Create issues for failures**: Track problems in Beads
284
- - **TDD helps**: Tests should already pass from /dev phase
285
- - **Fix before shipping**: Resolve all issues before creating PR
@@ -1,266 +0,0 @@
1
-
2
- Verify that the merge landed correctly and everything is running properly after merge.
3
-
4
- # Verify
5
-
6
- This command runs AFTER the user has merged the PR. It checks system health — not documentation (that was handled in `/premerge`).
7
-
8
- ## Usage
9
-
10
- ```bash
11
- /verify
12
- ```
13
-
14
- ## What This Command Does
15
-
16
- ### Step 1: Switch to Main and Pull
17
-
18
- ```bash
19
- git checkout master
20
- git pull
21
- ```
22
-
23
- Confirm the merge actually landed on main. If the PR isn't merged yet, stop and tell the user to merge first.
24
-
25
- ### Step 2: Confirm PR Is Merged
26
-
27
- Detect the most recently merged PR from the current HEAD commit:
28
-
29
- ```bash
30
- gh pr list --state merged --base master --limit 1 --json number,state,mergedAt,mergedBy
31
- ```
32
-
33
- - `state` should be `MERGED`
34
- - If no PR found: the merge may not have landed yet — stop and tell the user to merge first
35
- - If the wrong PR appears: user can specify the number directly with `gh pr view <number> --json state,mergedAt,mergedBy`
36
-
37
- ### Step 3: Check CI on Main After Merge
38
-
39
- ```bash
40
- gh run list --branch master --limit 5
41
- ```
42
-
43
- Check the most recent workflow runs on `master`:
44
- - All should be passing or in progress
45
- - If any failed: identify which workflow and what failed
46
- - Failed CI on main after merge may need a hotfix PR
47
-
48
- ### Step 4: Check Deployments (if applicable)
49
-
50
- Check if the project has a deployment target:
51
-
52
- ```bash
53
- # Check deployment status from latest run
54
- gh run list --branch master --limit 1
55
-
56
- # Check Vercel deployments for the merged PR (use number from Step 2)
57
- gh pr view <number> --json deployments
58
- ```
59
-
60
- If deployments exist:
61
- - Are they showing as successful?
62
- - Is the production/preview URL responding?
63
-
64
- ### Step 5: Report Status
65
-
66
- **If everything is clean**:
67
- ```
68
- ✅ Merge verified — everything is healthy
69
-
70
- PR: #<number> merged by <user> at <time>
71
- CI on master: ✓ All passing
72
- Deployments: ✓ Up (if applicable)
73
-
74
- Ready for next feature → run /status
75
- ```
76
-
77
- **If issues found**:
78
- ```
79
- ⚠️ Post-merge issues detected
80
-
81
- PR: #<number> merged ✓
82
- CI on master: ✗ <workflow-name> failing
83
- - Error: <description>
84
- - Action needed: <hotfix or investigation>
85
-
86
- Deployments: ✗ <deployment> not responding
87
-
88
- Next: Create hotfix branch or investigate root cause
89
- ```
90
-
91
- ### Step 6: Clean Up Worktree and Branch
92
-
93
- Only run this step after CI is confirmed healthy (Step 3 passed).
94
-
95
- Get the merged branch name:
96
-
97
- ```bash
98
- gh pr view <number> --json headRefName --jq '.headRefName'
99
- ```
100
-
101
- If the branch name cannot be determined (empty output or error), skip cleanup and tell the user to run `git worktree list` and clean up manually.
102
-
103
- Find and remove the matching worktree (if it exists):
104
-
105
- ```bash
106
- # Get the worktree path for this exact branch
107
- WORKTREE_PATH=$(git worktree list --porcelain \
108
- | awk -v branch="refs/heads/<branch>" '
109
- /^worktree / { path=substr($0, 10) }
110
- $0 == "branch " branch { print path }
111
- ')
112
-
113
- if [ -n "$WORKTREE_PATH" ]; then
114
- git worktree remove "$WORKTREE_PATH" --force
115
- echo "Worktree: removed ✓ ($WORKTREE_PATH)"
116
- else
117
- echo "Worktree: not found (already removed or never created) — skipping"
118
- fi
119
- ```
120
-
121
- If no worktree is found for that branch, skip gracefully with a note: "Worktree: not found (already removed or never created)".
122
-
123
- Delete the local branch (safe delete only):
124
-
125
- ```bash
126
- git branch -d <branch> 2>/dev/null || echo "Branch: already deleted — skipping"
127
- ```
128
-
129
- The `|| echo` fallback handles the case where the branch is already gone (e.g., deleted by a previous run or the remote), so the command never fails the verify step.
130
-
131
- Report cleanup in output:
132
- ```
133
- Worktree: removed ✓
134
- Branch: <branch-name> deleted ✓
135
- ```
136
-
137
- ### Step 7: If Issues Found — Create Beads Issue
138
-
139
- **Never commit inline.** If something is wrong, create a tracking issue:
140
-
141
- ```bash
142
- bd create --title="Post-merge: <description of issue>" --type=bug --priority=1
143
- ```
144
-
145
- ### Step 8: Close Beads Issues (if healthy)
146
-
147
- If everything is clean, close all Beads issues referenced in the merged PR.
148
-
149
- **Auto-detect beads issues from PR body and branch name:**
150
-
151
- ```bash
152
- # Get PR body and branch name
153
- PR_BODY=$(gh pr view <number> --json body --jq '.body')
154
- PR_BRANCH=$(gh pr view <number> --json headRefName --jq '.headRefName')
155
-
156
- # Extract beads IDs from PR body (matches "Closes beads-xxx", "closes forge-xxx", etc.)
157
- # Patterns: "Closes <prefix>-<id>", "Fixes <prefix>-<id>", "Resolves <prefix>-<id>"
158
- BEADS_IDS=$(echo "$PR_BODY" | grep -oiE '(closes|fixes|resolves):?\s+[a-z]+-[a-z0-9]+' | grep -oiE '[a-z]+-[a-z0-9]{3,6}$')
159
-
160
- # Validate each ID exists in beads
161
- VALID_IDS=""
162
- for id in $BEADS_IDS; do
163
- if bd show "$id" >/dev/null 2>&1; then
164
- VALID_IDS="$VALID_IDS $id"
165
- fi
166
- done
167
- BEADS_IDS="$VALID_IDS"
168
-
169
- # Also check branch name for beads ID — extract segment after last /
170
- # then validate with bd show to avoid false matches like "pr-templa"
171
- BRANCH_SLUG=$(echo "$PR_BRANCH" | sed 's|.*/||')
172
- BRANCH_ID=$(echo "$BRANCH_SLUG" | grep -oE '[a-z]+-[a-z0-9]{3,6}' | head -1)
173
- if [ -n "$BRANCH_ID" ] && ! bd show "$BRANCH_ID" >/dev/null 2>&1; then
174
- BRANCH_ID="" # Not a valid beads ID — discard
175
- fi
176
- ```
177
-
178
- **Close each matched issue:**
179
-
180
- ```bash
181
- # Close issues found in PR body
182
- for id in $BEADS_IDS; do
183
- bd close "$id" --reason="Merged and verified on master (PR #<number>)" 2>&1 || echo "Warning: could not close $id"
184
- done
185
-
186
- # If no issues found in body, try branch name match (skip if already closed above)
187
- if [ -z "$BEADS_IDS" ] && [ -n "$BRANCH_ID" ]; then
188
- bd close "$BRANCH_ID" --reason="Merged and verified on master (PR #<number>)" 2>&1 || echo "Warning: could not close $BRANCH_ID"
189
- elif [ -n "$BRANCH_ID" ] && ! echo "$BEADS_IDS" | grep -qw "$BRANCH_ID"; then
190
- bd close "$BRANCH_ID" --reason="Merged and verified on master (PR #<number>)" 2>&1 || echo "Warning: could not close $BRANCH_ID"
191
- fi
192
- ```
193
-
194
- **If no beads issues detected at all**, prompt the user:
195
- ```
196
- ⚠ No beads issue ID found in PR body or branch name.
197
- If this PR closes a beads issue, run: bd close <id> --reason="Merged and verified on master (PR #<number>)"
198
- ```
199
-
200
- ```
201
- <HARD-GATE: /verify exit>
202
- Do NOT declare /verify complete until:
203
- 1. gh run list --branch master --limit 3 shows actual CI output (not "should be fine")
204
- 2. If healthy: Beads issues extracted from PR body/branch and closed (bd close run and confirmed)
205
- - If no beads ID found: user was warned and given manual close command
206
- 3. If issues found: Beads tracking issue created for every problem
207
- 4. Worktree removed (or confirmed already gone) — OR Step 6 was intentionally skipped because CI was unhealthy; if skipped, state explicitly: "cleanup deferred, CI was not healthy"
208
- "It should be fine" is not evidence. Run the command. Show the output.
209
- </HARD-GATE>
210
- ```
211
-
212
- ## Rules
213
-
214
- - **Never commits** — this command is read-only
215
- - **Never creates PRs** — if fixes are needed, that's a new /dev cycle
216
- - **Runs after user confirms merge** — not before
217
- - **Reports honestly** — if CI is broken on main, say so clearly
218
-
219
- ## Example Output (Healthy)
220
-
221
- ```
222
- ✅ Merge verified — everything is healthy
223
-
224
- PR: #89 merged by harshanandak at 2026-02-24T14:30:00Z
225
- Branch: feat/auth-refresh deleted ✓
226
- CI on master:
227
- ✓ Test Suite (ubuntu, node 20): passing
228
- ✓ Test Suite (windows, node 22): passing
229
- ✓ ESLint: passing
230
- ✓ SonarCloud: passing
231
- ✓ CodeQL: passing
232
- Deployments: N/A (no deployment configured)
233
-
234
- Ready for next feature → run /status
235
- ```
236
-
237
- ## Example Output (Issues Found)
238
-
239
- ```
240
- ⚠️ Post-merge issues detected
241
-
242
- PR: #89 merged ✓
243
- CI on master:
244
- ✓ Test Suite: passing
245
- ✗ SonarCloud: quality gate failing
246
- - 2 new code smells introduced
247
- - Action: investigate or create hotfix
248
-
249
- Created Beads issue: forge-xyz
250
- "Post-merge: SonarCloud quality gate failing on master after PR #89"
251
-
252
- Run /status to assess next steps
253
- ```
254
-
255
- ## Integration with Workflow
256
-
257
- ```
258
- Utility: /status → Understand current context before starting
259
- Stage 1: /plan → Design intent → research → branch + worktree + task list
260
- Stage 2: /dev → Implement each task with subagent-driven TDD
261
- Stage 3: /validate → Type check, lint, tests, security — all fresh output
262
- Stage 4: /ship → Push + create PR
263
- Stage 5: /review → Address GitHub Actions, Greptile, SonarCloud
264
- Stage 6: /premerge → Update docs, hand off PR to user
265
- Stage 7: /verify → Post-merge CI check on main (you are here) ✓
266
- ```
package/.cursorrules DELETED
@@ -1,149 +0,0 @@
1
- # Forge - 7-Stage TDD Workflow
2
-
3
- A TDD-first workflow for AI coding agents. Ship features with confidence.
4
-
5
- ## Commands (7 Stages)
6
-
7
- | Stage | Command | Description |
8
- |-------|---------|-------------|
9
- | utility | `/status` | Check current context, active work, recent completions |
10
- | 1 | `/plan` | Design intent Q&A → research → branch + task list |
11
- | 2 | `/dev` | Subagent-driven TDD per task (spec + quality review) |
12
- | 3 | `/validate` | Validation (type/lint/security/tests) |
13
- | 4 | `/ship` | Create PR with full documentation |
14
- | 5 | `/review` | Address ALL PR feedback |
15
- | 6 | `/premerge` | Complete docs on feature branch, hand off PR to user |
16
- | 7 | `/verify` | Post-merge health check (CI on main) |
17
-
18
- ## Workflow Flow
19
-
20
- ```
21
- /plan → /dev → /validate → /ship → /review → /premerge → /verify
22
- ```
23
-
24
- ## Core Principles
25
-
26
- - **TDD-First**: Write tests BEFORE implementation (RED-GREEN-REFACTOR)
27
- - **Design-First**: One-question-at-a-time Q&A captures design intent upfront
28
- - **HARD-GATEs**: Every stage exit has explicit pass criteria — run the commands, show the output
29
- - **Security Built-In**: OWASP Top 10 analysis for every feature
30
-
31
- ## Prerequisites
32
-
33
- - Git, GitHub CLI (`gh`)
34
- - Beads (recommended): `bun add -g @beads/bd && bd init`
35
-
36
- ## Quick Start
37
-
38
- 1. `/status` - Check where you are
39
- 2. `/plan <feature-slug>` - Design intent → research → branch + task list
40
- 3. `/dev` - Implement with TDD
41
- 4. `/validate` - Validate everything
42
- 5. `/ship` - Create PR
43
- 6. `/review <pr-number>` - Address all feedback
44
- 7. `/premerge <pr-number>` - Docs + hand off to user
45
-
46
- ## Stage Details
47
-
48
- ### Utility: Status (`/status`)
49
-
50
- Check current context before starting work:
51
- - Active issues (via Beads if installed)
52
- - Recent completions
53
- - Current branch state
54
-
55
- ### 1. Plan (`/plan <feature-slug>`)
56
-
57
- Three phases:
58
- - **Phase 1**: Design intent Q&A (one-question-at-a-time with user)
59
- - **Phase 2**: Technical research (web + codebase, OWASP Top 10)
60
- - **Phase 3**: Create branch + task list (TDD-ordered)
61
-
62
- ### 2. Development (`/dev`)
63
-
64
- Subagent-driven TDD per task:
65
- - Implementer subagent: RED-GREEN-REFACTOR enforced by HARD-GATE
66
- - Spec compliance reviewer: checks every task
67
- - Code quality reviewer: checks after spec compliance
68
- - Decision gate: 7-dimension scoring when spec gap found
69
-
70
- ### 3. Validate (`/validate`)
71
-
72
- Validate everything (HARD-GATE exit — fresh output required):
73
- - Type checking
74
- - Linting (0 errors, 0 warnings)
75
- - All tests passing
76
- - Security scan (OWASP Top 10)
77
-
78
- ### 4. Ship (`/ship`)
79
-
80
- Create pull request:
81
- - Push branch
82
- - Create PR with design doc reference
83
- - Link to Beads issue
84
-
85
- ### 5. Review (`/review <pr-number>`)
86
-
87
- Address ALL feedback:
88
- - GitHub Actions failures
89
- - Greptile inline comments (reply + resolve each)
90
- - SonarCloud issues
91
- - Other CI/CD tool feedback
92
-
93
- ### 6. Premerge (`/premerge <pr-number>`)
94
-
95
- Complete docs and hand off (NEVER merges):
96
- - Update CLAUDE.md, AGENTS.md, GEMINI.md, README as needed
97
- - Commit docs to feature branch
98
- - Hand off PR URL to user for merge
99
-
100
- ### 7. Verify (`/verify`)
101
-
102
- Post-merge health check:
103
- - CI on main: all checks green
104
- - Close Beads issue
105
- - Confirm merge landed
106
-
107
- ## Directory Structure
108
-
109
- ```
110
- your-project/
111
- ├── AGENTS.md # Universal (Windsurf, Cursor, Kilo, OpenCode, Cline, Roo, Aider)
112
- ├── CLAUDE.md # Claude Code
113
- ├── GEMINI.md # Google Antigravity
114
- ├── .cursorrules # Cursor
115
-
116
- ├── .claude/commands/ # Claude Code commands
117
- └── docs/
118
- ├── plans/
119
- │ ├── YYYY-MM-DD-<slug>-design.md
120
- │ └── YYYY-MM-DD-<slug>-tasks.md
121
- └── TOOLCHAIN.md
122
- ```
123
-
124
- ## Supported Agents
125
-
126
- This workflow works with ALL major AI coding agents:
127
-
128
- | Agent | Instructions | Commands |
129
- |-------|-------------|----------|
130
- | Claude Code | CLAUDE.md | .claude/commands/ |
131
- | Google Antigravity | GEMINI.md | .agent/workflows/ |
132
- | Cursor | .cursorrules | .cursor/rules/ |
133
- | Windsurf | AGENTS.md | .windsurf/workflows/ |
134
- | Kilo Code | AGENTS.md | .kilocode/workflows/ |
135
- | OpenCode | AGENTS.md | .opencode/commands/ |
136
- | Cline | AGENTS.md | - |
137
- | Roo Code | AGENTS.md | .roo/commands/ |
138
- | Continue | AGENTS.md | .continue/prompts/ |
139
- | GitHub Copilot | .github/copilot-instructions.md | .github/prompts/ |
140
- | Aider | AGENTS.md (via .aider.conf.yml) | In-chat |
141
- | Codex CLI | AGENTS.md | In-chat |
142
-
143
- ## License
144
-
145
- MIT
146
-
147
- ---
148
-
149
- See `AGENTS.md` for the complete workflow guide.