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
@@ -0,0 +1,59 @@
1
+ # Protected State Surfaces
2
+
3
+ Forge defines protected runtime state that agents must not hand-edit. When `scripts/protected-state-check.js` is wired into hooks or CI, the protected-state check blocks direct staged additions, copies, modifications, renames, and deletions, then prints a repair hint that points to the owning command or Forge API surface.
4
+
5
+ The committed manifest is `.forge/protected-paths.yaml`. Runtime enforcement is implemented in `lib/protected-state-surfaces.js`; the manifest keeps the protected surface contract visible to agents and reviewers.
6
+
7
+ ## Protected Categories
8
+
9
+ | Surface | Examples | Required write surface |
10
+ | --- | --- | --- |
11
+ | `beads_state` | `.beads/issues.jsonl`, `.beads/config.yaml` | `bd` or Forge issue commands |
12
+ | `forge_config` | `.forge/config.yaml`, `.forge/protected-paths.yaml` | Forge config/setup API |
13
+ | `generated_harness` | `AGENTS.md`, `.claude/skills/`, `.codex/skills/`, `.cursor/rules/` | `forge setup` or harness generator |
14
+ | `memory_projection` | `docs/sessions/`, `docs/memory/`, `.forge/memory/` | Forge memory projection writer |
15
+ | `workflows` | `.github/workflows/`, `.claude/commands/`, `.forge/hooks/`, `lefthook.yml` | Forge workflow/setup commands |
16
+ | `lockfiles` | `bun.lock`, `package-lock.json`, `.forge/extensions.lock` | Package manager or extension installer |
17
+ | `extension_manifests` | `.forge/extensions/*/manifest.json`, `plugins/*/{plugin,extension,manifest}.json`, `.github/PLUGIN_TEMPLATE.json` | Forge extension/plugin manager |
18
+ | `secrets` | `.env.local`, `secrets.json`, credential files | Secret manager or local env setup |
19
+ | `immutable` | `.git/` | Git or owning runtime tool |
20
+ | `append_only_logs` | `.forge/log.jsonl`, `.forge/audit.log`, `.beads/interactions.jsonl` | Append-only audit writer |
21
+
22
+ ## Behavior
23
+
24
+ - Direct edits, additions, modifications, renames, and deletions of protected files are blocked by `scripts/protected-state-check.js`.
25
+ - Allowed Forge API writes must declare the matching required surface. For example, a Forge config writer must call the protected writer with `surface: "forge_config"` and `viaForgeApi: true`.
26
+ - Forge-owned commands that intentionally stage generated protected changes can set `FORGE_PROTECTED_STATE_ALLOWED_SURFACES` to the comma-separated surfaces they own for that command invocation.
27
+ - Blocked decisions include actor, path, decision, required surface, reason, and repair hint.
28
+ - Audit-ready events use kind `protected_state_write` and are recorded through Beads audit when available.
29
+
30
+ ## Repair Hint
31
+
32
+ Every blocked path prints a repair hint. A repair hint is specific guidance such as using `bd update` for `beads_state`, `forge setup` for generated harness files, or the package manager for `lockfiles`.
33
+
34
+ Example blocked output shape:
35
+
36
+ ```text
37
+ Protected state write blocked
38
+ path: .forge/config.yaml
39
+ required surface: forge_config
40
+ repair: use the Forge config/setup API for generated config changes
41
+ ```
42
+
43
+ Common support notes:
44
+
45
+ - If the check is not installed in hooks or CI, the model is documented but not enforced for that repository.
46
+ - If Beads metadata needs to change after a merge and branch protection rejects the push, use a follow-up PR or the configured sync workflow.
47
+ - Forge-owned commands may set `FORGE_PROTECTED_STATE_ALLOWED_SURFACES` narrowly for the surfaces they own.
48
+
49
+ ## Forge API Example
50
+
51
+ ```js
52
+ const { writeProtectedFile } = require('./lib/protected-state-surfaces');
53
+
54
+ writeProtectedFile(projectRoot, '.forge/config.yaml', yaml, {
55
+ actor: 'forge',
56
+ viaForgeApi: true,
57
+ surface: 'forge_config',
58
+ });
59
+ ```
@@ -0,0 +1,115 @@
1
+ # PR Shepherd
2
+
3
+ The shepherd is a **monitor-driven utility command** that automates the manual
4
+ polling / rerun / escalation loop a human otherwise runs by hand after
5
+ `/review`. It is **not** a workflow stage and does not replace `/review` or
6
+ the pre-merge gate (the embedded documentation-and-handoff gate in `/ship` and `/review`).
7
+
8
+ ```bash
9
+ forge shepherd <pr-number>
10
+ forge shepherd <pr-number> --auto-rebase # opt-in, default OFF
11
+ forge shepherd <pr-number> --pull # read-only: WHY it is blocked + what to fix
12
+ forge shepherd <pr-number> --pull --json # same payload as machine-readable JSON
13
+ forge shepherd <pr-number> --bundle --json # read-only: the COMPLETE PR-state bundle
14
+ ```
15
+
16
+ ## `--pull`: the actionable blocker payload
17
+
18
+ `--pull` is a **strictly read-only** signal-gather. It computes the decision
19
+ state via a dry-run pass (no rerun, no rebase, no merge, no thread resolution)
20
+ and returns ONE bounded, **actionable-only** payload so an agent gets "everything
21
+ blocking this PR + exactly what to fix" in a single call instead of running
22
+ `gh pr checks`, `gh run view --log-failed`, GraphQL thread queries, and branch
23
+ -protection lookups by hand. Default output is a compact human summary; `--json`
24
+ emits the structured payload. Every field is something to ACT on — passing
25
+ checks, resolved/outdated threads, and satisfied policy are omitted.
26
+
27
+ | Field | Meaning |
28
+ | --- | --- |
29
+ | `state` / `summary` | Decision state + a one-line WHY (leads with the primary blocker). |
30
+ | `mergeable` / `mergeStateStatus` | GitHub's raw merge signals (e.g. `BLOCKED`, `BEHIND`, `DIRTY`, `UNSTABLE`). |
31
+ | `blockers[]` | Ordered `{type, detail}` list — the human-readable WHY. Types: `draft`, `conflict`, `check-failing`, `check-missing`, `check-skipped`, `check-pending`, `behind`, `changes-requested`, `review-required`, `unresolved-threads`, `blocked-unknown`, `unstable`. |
32
+ | `requiredChecks` | Branch-protection required set classified vs what the PR produced: `missing` (never reported), `skipped` (a **required** check that resolved SKIPPED — NOT a pass to branch protection; this is why an all-green PR can stay `BLOCKED`), `pending`, `failing`. Omitted entirely when the required set is all green. |
33
+ | `failures[]` | Per failed check: `name`, `conclusion`, `jobUrl`, the exact failure **excerpt** pulled from the job log, and `alsoFailedOn` (matrix duplicates collapse to one). |
34
+ | `pendingChecks[]` | Names of checks still running. |
35
+ | `reviewThreads[]` | Every UNRESOLVED, non-outdated thread from a human or a review bot (CodeRabbit et al.): `file`, `line`, `author`, `body`, `threadId`, `commentId`. Never the shepherd's own or resolved threads. |
36
+ | `behind` | Commits behind base (present only when > 0). |
37
+ | `conflicts` | `{conflicted, files[]}` — present only when a merge would conflict. |
38
+ | `reviewDecision` | Present only when actionable (`CHANGES_REQUESTED` / `REVIEW_REQUIRED`); `APPROVED` is omitted. |
39
+ | `draft` | Present only when the PR is a draft. |
40
+ | `truncated` | Flags when `failures`/`reviewThreads` were capped for size. |
41
+
42
+ `--bundle --json` is the sibling COMPLETE (not-only-actionable) read-only state
43
+ bundle; `--pull` and `--bundle` are mutually exclusive.
44
+
45
+ ## Why it is a utility, not a stage
46
+
47
+ Stages are a frozen, ordered ladder (`plan → dev → validate → ship → review →
48
+ premerge → verify`). Inserting a polling step into that ladder would break the
49
+ stage-transition chain and the harness parity model. The shepherd instead runs
50
+ *alongside* the review handoff: `/review` keeps owning semantic review and its
51
+ stage transition; the shepherd only automates the mechanical waiting and
52
+ re-running.
53
+
54
+ It is registered as a utility skill in the harness capability matrix
55
+ (`UTILITY_SKILL_IDS`), so cross-harness parity tests cover it without touching
56
+ the frozen stage list.
57
+
58
+ ## Bounded-pass model
59
+
60
+ Each invocation is **one discrete bounded pass**: read PR state, take at most
61
+ one Tier-A action, then exit. There is no in-process loop. This preserves the
62
+ project's documented ergonomic — poll briefly, then stop and hand off. A pass
63
+ that finds checks still pending returns `PENDING`; the next scheduled pass picks
64
+ up from there.
65
+
66
+ `--watch`-style behavior, if desired, belongs in an external scheduler (cron, or
67
+ a `/loop`) that re-invokes the bounded pass with a debounce of at least 60
68
+ seconds and cancel-in-progress. The shepherd itself never waits in-process.
69
+
70
+ ## Terminal states
71
+
72
+ | State | Meaning |
73
+ | ------------- | ------- |
74
+ | `MERGE_READY` | Required checks are green and the branch is up to date. The shepherd hands off — **a human merges in the GitHub UI.** |
75
+ | `ESCALATE` | A Tier-C condition (conflict, unreadable required set, persistent failure, oscillation, budget exhaustion). Context is posted to the PR. |
76
+ | `PENDING` | A Tier-A action was taken, or checks are still pending. Exit and await the next scheduled pass. |
77
+ | `HARD_STOP` | A permanent auth/scope failure that retrying cannot fix. Escalate to a human to widen token scope. |
78
+
79
+ ## Action ladder
80
+
81
+ - **Tier-A (autonomous):** re-run a flaky **required** check via
82
+ `gh run rerun --failed` (capped by a rerun budget). Post status replies to
83
+ review threads (reply only).
84
+ - **Tier-B (opt-in, default OFF):** `--auto-rebase` rebases onto base and
85
+ force-pushes with lease, given a clean tree and an unchanged HEAD. A lease
86
+ rejection is a hard-stop — the shepherd never re-arms the lease.
87
+ - **Tier-C (escalate):** everything else.
88
+
89
+ ## Safety invariants
90
+
91
+ - **Never merges.** No merge action, no server-side auto-merge latch.
92
+ - **Never resolves review threads.** It may post a status reply; resolution is
93
+ semantic and stays with `/review`.
94
+ - **Required-check gate.** Merge-ready is declared only when the
95
+ branch-protection required-check set is *known* (read from
96
+ `gh api repos/{owner}/{repo}/branches/{base}/protection/required_status_checks`)
97
+ and all of it is green. If protection is unreadable, the shepherd escalates
98
+ rather than guessing.
99
+ - **HEAD-changed abort.** Before any mutating action it re-reads the head SHA; if
100
+ HEAD moved during the pass, the action aborts. The `shepherd:active` marker is
101
+ advisory only — it is not mutual exclusion.
102
+ - **Auth taxonomy.** 401 (expiry) pauses and surfaces; 403 insufficient-scope is
103
+ a hard-stop; 403 with `Retry-After` honors the delay and resumes next pass.
104
+
105
+ ## Per-harness behavior
106
+
107
+ - **Claude Code / Codex:** invoke `forge shepherd <pr>` directly; an external
108
+ scheduler may drive repeated bounded passes.
109
+ - **Cursor:** manually-invoked only — run it from a terminal. No polling-loop
110
+ affordance and no hook reliance on this surface.
111
+
112
+ ## State
113
+
114
+ Progress is durable in GitHub PR comments and labels plus `git`. There is no
115
+ separate local state store.
@@ -0,0 +1,320 @@
1
+ # Research: obra/superpowers — Integration Analysis for Forge
2
+
3
+ **Feature slug**: `superpowers`
4
+ **Status**: Historical analysis. Current user guidance lives in [Docs Index](../INDEX.md), [Command Reference](COMMANDS.md), and [Release Reference](RELEASE.md).
5
+ **Date**: 2026-02-26
6
+ **Sources**: All claims below cite exact URLs.
7
+
8
+ ---
9
+
10
+ ## What Is Superpowers?
11
+
12
+ **Repository**: https://github.com/obra/superpowers
13
+ **Author**: Jesse Vincent (@obra) — keyboard designer at keyboard.io, creator of K-9 Mail for Android, former Perl 5 project lead
14
+ **Description**: "An agentic skills framework & software development methodology that works."
15
+ **License**: MIT
16
+ **Version**: v4.3.1 (2026-02-21)
17
+ **Language**: Shell
18
+ **Stars**: ~62,000 (4th most installed plugin in Claude Code marketplace, surpassed GitHub's own plugin)
19
+ **Source**: https://www.threads.com/@obrajesse/post/DVANeBYEfuF/ — Jesse Vincent's own announcement
20
+
21
+ Superpowers is a **Claude Code plugin** (also supports Cursor, Codex, OpenCode) that ships a library of 14 composable "skills" — structured instructions the agent reads and follows automatically. Skills trigger based on context, not user commands. The agent reads the right skill before taking action.
22
+
23
+ ---
24
+
25
+ ## Installation
26
+
27
+ ### Claude Code (Native Plugin Marketplace)
28
+ ```bash
29
+ /plugin marketplace add obra/superpowers-marketplace
30
+ /plugin install superpowers@superpowers-marketplace
31
+ ```
32
+ Marketplace repo: https://github.com/obra/superpowers-marketplace
33
+
34
+ ### Cursor
35
+ ```text
36
+ /plugin-add superpowers
37
+ ```
38
+
39
+ ### Codex / OpenCode
40
+ Manual: Fetch and follow `.codex/INSTALL.md` or `.opencode/INSTALL.md`
41
+
42
+ **Source**: https://github.com/obra/superpowers/blob/main/README.md
43
+
44
+ ---
45
+
46
+ ## Repository Structure
47
+
48
+ ```
49
+ superpowers/
50
+ ├── .claude-plugin/ # Claude Code plugin manifest
51
+ ├── .codex/ # Codex integration
52
+ ├── .cursor-plugin/ # Cursor integration
53
+ ├── .opencode/ # OpenCode integration
54
+ ├── agents/
55
+ │ └── code-reviewer.md # Custom code-reviewer agent definition
56
+ ├── commands/ # CLI commands
57
+ ├── docs/
58
+ │ ├── README.codex.md
59
+ │ ├── README.opencode.md
60
+ │ ├── plans/ # Design docs written here
61
+ │ └── testing.md
62
+ ├── hooks/ # Git hooks
63
+ ├── lib/ # Shared libraries
64
+ ├── skills/ # 14 skills (core value)
65
+ └── tests/
66
+ ```
67
+
68
+ **Source**: https://github.com/obra/superpowers (file tree)
69
+
70
+ ---
71
+
72
+ ## The 14 Skills (Full List)
73
+
74
+ | Skill | Purpose |
75
+ |-------|---------|
76
+ | `brainstorming` | Socratic design refinement with hard gate — MUST complete before any code |
77
+ | `writing-plans` | Break approved design into 2-5 minute tasks with exact file paths and code |
78
+ | `executing-plans` | Batch execution with human checkpoints |
79
+ | `subagent-driven-development` | Dispatch fresh subagent per task, two-stage review |
80
+ | `dispatching-parallel-agents` | Concurrent subagent workflows |
81
+ | `test-driven-development` | Enforced RED-GREEN-REFACTOR cycle with anti-patterns reference |
82
+ | `systematic-debugging` | 4-phase root cause analysis (root-cause-tracing, defense-in-depth, condition-based-waiting) |
83
+ | `verification-before-completion` | Verify fix actually works before declaring done |
84
+ | `requesting-code-review` | Pre-review checklist |
85
+ | `receiving-code-review` | Structured response to feedback |
86
+ | `using-git-worktrees` | Isolated workspace per task on new branch |
87
+ | `finishing-a-development-branch` | Merge/PR decision workflow, worktree cleanup |
88
+ | `writing-skills` | Meta-skill: create new skills following best practices |
89
+ | `using-superpowers` | Introduction and dispatch logic |
90
+
91
+ **Source**: https://github.com/obra/superpowers/tree/main/skills
92
+
93
+ ---
94
+
95
+ ## Core Workflow (How It Runs)
96
+
97
+ ```
98
+ 1. brainstorming → Explore context → ask questions one at a time → propose 2-3 approaches
99
+ → present design in sections → user approves → write design doc to
100
+ docs/plans/YYYY-MM-DD-<topic>-plan.md → commit
101
+
102
+ 2. using-git-worktrees → Create isolated workspace on new branch → run project setup
103
+ → verify clean test baseline
104
+
105
+ 3. writing-plans → Break approved design into tasks (2-5 min each)
106
+ → each task: exact file paths, complete code, verification steps
107
+
108
+ 4. subagent-driven-development OR executing-plans
109
+ → Fresh subagent per task
110
+ → Two-stage review: (1) spec compliance, (2) code quality
111
+
112
+ 5. test-driven-development → RED fails → GREEN passes → REFACTOR → commit
113
+ → Deletes code written before tests
114
+
115
+ 6. requesting-code-review → Reviews against plan, reports by severity
116
+ → Critical issues block progress
117
+
118
+ 7. finishing-a-development-branch → Verify tests → present options (merge/PR/keep/discard)
119
+ → clean up worktree
120
+ ```
121
+
122
+ **Key mechanic**: Skills auto-trigger based on context. The agent checks for relevant skills before any task. No user command needed.
123
+
124
+ **Source**: https://github.com/obra/superpowers/blob/main/README.md and https://blog.fsck.com/2025/10/09/superpowers/
125
+
126
+ ---
127
+
128
+ ## The HARD-GATE Pattern
129
+
130
+ The brainstorming skill uses explicit blocking tags:
131
+
132
+ ```
133
+ <HARD-GATE>
134
+ Do NOT invoke any implementation skill, write any code, scaffold any project,
135
+ or take any implementation action until you have presented a design and the user
136
+ has approved it. This applies to EVERY project regardless of perceived simplicity.
137
+ </HARD-GATE>
138
+ ```
139
+
140
+ **Why this matters**: This is a structural enforcement mechanism — not a soft instruction. It explicitly names forbidden actions and conditions. Soft instructions ("read AGENTS.md first") fail. Hard gates with explicit prohibitions work.
141
+
142
+ **Source**: brainstorming/SKILL.md content from https://github.com/obra/superpowers/blob/main/skills/brainstorming/SKILL.md
143
+
144
+ ---
145
+
146
+ ## Community Reception
147
+
148
+ | Source | Signal |
149
+ |--------|--------|
150
+ | Hacker News | 435 points, 231 comments — https://news.ycombinator.com/item?id=45547344 |
151
+ | Simon Willison | "Jesse is one of the most creative users of coding agents I know" — https://simonwillison.net/2025/Oct/10/superpowers/ |
152
+ | Cornell Innovation Hub | "How I Built a 3600 Line Feature in 4 Hours Without Writing a Single Line of Code" — https://innovationhub.ai.cornell.edu/articles/how-i-built-a-3600-line-feature-in-4-hours-without-writing-a-single-line-of-code/ |
153
+ | Claude Code Marketplace | 4th most installed plugin, surpassed GitHub — https://www.threads.com/@obrajesse/post/DVANeBYEfuF/ |
154
+ | r/ClaudeCode | "actually delivers" — https://www.reddit.com/r/ClaudeCode/comments/1r9y2ka/ |
155
+ | Dev Genius | "the Claude plugin that enforces TDD, subagents, and planning" — https://blog.devgenius.io/superpowers-explained-the-claude-plugin-that-enforces-tdd-subagents-and-planning-c7fe698c3b82 |
156
+
157
+ ---
158
+
159
+ ## Forge vs Superpowers: Side-by-Side
160
+
161
+ ### What Both Do (Overlap)
162
+
163
+ | Capability | Forge | Superpowers |
164
+ |-----------|-------|------------|
165
+ | TDD enforcement | `/dev` RED-GREEN-REFACTOR | `test-driven-development` skill |
166
+ | Planning phase | `/plan` command + Beads | `writing-plans` skill |
167
+ | Code review | `/review` command | `requesting-code-review` + `receiving-code-review` |
168
+ | Parallel agents | Parallel AI skills | `dispatching-parallel-agents` skill |
169
+ | PR workflow | `/ship`, `/premerge` | `finishing-a-development-branch` |
170
+
171
+ ### What Superpowers Has That Forge Doesn't
172
+
173
+ | Gap | Superpowers Solution | Forge Status |
174
+ |-----|---------------------|-------------|
175
+ | **Design before code** | `brainstorming` skill with HARD-GATE | No equivalent — `/plan` goes straight to beads/branch |
176
+ | **Git worktree isolation** | `using-git-worktrees` skill | Not in Forge workflow |
177
+ | **Systematic debugging** | `systematic-debugging` (4 phases) | No equivalent |
178
+ | **Verification before done** | `verification-before-completion` | Implicit in `/check` but not explicit |
179
+ | **Meta-skill authoring** | `writing-skills` skill | No equivalent |
180
+ | **Two-stage code review** | spec compliance → code quality | Single-stage review |
181
+ | **Hard gate enforcement** | `<HARD-GATE>` tags | Soft instructions only |
182
+ | **Design docs** | Saved to `docs/plans/YYYY-MM-DD-*.md` | Research docs only (`docs/research/`) |
183
+ | **Plugin distribution** | Claude Code + Cursor marketplace | Not distributable as plugin |
184
+
185
+ ### What Forge Has That Superpowers Doesn't
186
+
187
+ | Capability | Forge | Superpowers Status |
188
+ |-----------|-------|-------------------|
189
+ | **Web research stage** | `/research` + parallel AI search | No research phase |
190
+ | **Formal spec proposals** | OpenSpec (`openspec/changes/`) | No equivalent |
191
+ | **Issue tracking** | Beads (`bd create`, `bd update`) | `obra/issue-cards` (separate repo, not integrated) |
192
+ | **Multi-agent file support** | AGENTS.md/CLAUDE.md/GEMINI.md | Claude Code + Cursor only |
193
+ | **Security analysis** | OWASP per feature in `/dev` | No security phase |
194
+ | **Full PR lifecycle** | `/ship`, `/review`, `/premerge`, `/verify` | Only `finishing-a-development-branch` |
195
+ | **SonarCloud integration** | `/sonarcloud` command | None |
196
+ | **Greptile integration** | `.claude/rules/greptile-review-process.md` | None |
197
+ | **Post-merge verification** | `/verify` | None |
198
+
199
+ ---
200
+
201
+ ## Integration Options
202
+
203
+ ### Option A: Install Superpowers Plugin Alongside Forge (Non-Breaking)
204
+
205
+ Install Superpowers as a Claude Code plugin. It adds its skills to your agent's context. Forge commands continue to work. Superpowers skills auto-trigger for gaps Forge doesn't cover.
206
+
207
+ **Benefit**: Immediately gets brainstorming gate, systematic debugging, git worktrees, verification
208
+ **Risk**: Workflow overlap — both have planning, review phases. Agent may get confused about which to use.
209
+ **Verdict**: Valid short-term, but needs clear role definition in AGENTS.md/CLAUDE.md
210
+
211
+ **Source on overlap concerns**: https://www.reddit.com/r/ClaudeCode/comments/1qlsdjb/superpowers_vs_gsd_vs_others/
212
+
213
+ ### Option B: Cherry-Pick Key Skills Into Forge (Best Fit)
214
+
215
+ Import specific Superpowers skills into Forge's `skills/` directory:
216
+ - `brainstorming` → insert between `/research` and `/plan` as a new stage
217
+ - `systematic-debugging` → add as `/debug` command
218
+ - `writing-skills` → use for authoring new Forge skills
219
+ - `verification-before-completion` → integrate into `/check` command
220
+ - HARD-GATE pattern → add to `/research`, `/plan`, `/dev` commands
221
+
222
+ **Benefit**: Gets Superpowers' best ideas without workflow collision
223
+ **Risk**: Maintenance burden — skills diverge from upstream
224
+ **Verdict**: Best long-term approach for Forge as a standalone workflow
225
+
226
+ ### Option C: Replace OpenSpec With Superpowers' `writing-plans`
227
+
228
+ Superpowers' `writing-plans` creates detailed task-level implementation plans. OpenSpec creates formal architecture proposals with `proposal.md`, `tasks.md`, `plan.md`.
229
+
230
+ **Assessment**: These solve different problems.
231
+ - `writing-plans` → task-level implementation checklist (tactical)
232
+ - OpenSpec → architecture-level proposals requiring approval (strategic)
233
+ - **Do not replace** — they are complementary. OpenSpec for "what to build", `writing-plans` for "how to build it."
234
+
235
+ ### Option D: Adopt HARD-GATE Pattern Into Forge Commands (Quickest Win)
236
+
237
+ Add `<HARD-GATE>` blocks to existing Forge commands. Example for `/plan`:
238
+
239
+ ```
240
+ <HARD-GATE>
241
+ Do NOT proceed to /dev or write any code until:
242
+ 1. Research doc exists at docs/research/<slug>.md
243
+ 2. Beads issue is created and in_progress
244
+ 3. Branch exists at feat/<slug>
245
+ </HARD-GATE>
246
+ ```
247
+
248
+ **Benefit**: Addresses the core scope discipline problem without changing workflow
249
+ **Risk**: None — purely additive
250
+ **Verdict**: Should be done immediately regardless of other options
251
+
252
+ ---
253
+
254
+ ## Key Insight: Skills vs Commands
255
+
256
+ Superpowers skills auto-trigger. Forge uses explicit commands (`/plan`, `/dev`). These are philosophically different:
257
+
258
+ - **Forge**: User explicitly controls each stage. Good for learning, transparency.
259
+ - **Superpowers**: Agent decides when to invoke skills. Good for autonomy, fewer user interruptions.
260
+
261
+ For Forge's use case (multi-agent support, OpenSpec, Beads, full PR lifecycle), the explicit command model is correct. But Superpowers' brainstorming gate and systematic debugging are worth importing as skills, not auto-triggers.
262
+
263
+ ---
264
+
265
+ ## Related obra Repos Worth Knowing
266
+
267
+ | Repo | Description | URL |
268
+ |------|-------------|-----|
269
+ | `obra/superpowers-marketplace` | Claude Code plugin marketplace | https://github.com/obra/superpowers-marketplace |
270
+ | `obra/issue-cards` | AI-optimized CLI issue tracker (similar to Beads) | https://github.com/obra/issue-cards |
271
+ | `obra/coderabbit-review-helper` | Extract CodeRabbit PR reviews for AI agent consumption | https://github.com/obra/coderabbit-review-helper |
272
+
273
+ ---
274
+
275
+ ## Recommendations for Forge
276
+
277
+ **Priority 1 (Quick wins, no new features needed):**
278
+ 1. Adopt `<HARD-GATE>` pattern in `/research`, `/plan`, `/dev` commands — prevents stage-skipping
279
+ 2. Add `brainstorming` as a new stage between `/research` and `/plan` (or make it optional in `/plan`)
280
+ 3. Add `verification-before-completion` logic to `/check` command
281
+
282
+ **Priority 2 (New skills):**
283
+ 4. Port `systematic-debugging` as `/debug` command
284
+ 5. Port `writing-skills` as `/skill` command for authoring new Forge skills
285
+ 6. Add git worktree support to `/dev` command (isolated implementation)
286
+
287
+ **Priority 3 (Infrastructure):**
288
+ 7. Explore distributing Forge as a Claude Code plugin (`.claude-plugin/` directory) — same distribution model as Superpowers
289
+ 8. Add two-stage code review to `/review` command (spec compliance first, then code quality)
290
+
291
+ **What NOT to take:**
292
+ - Don't replace Beads with `obra/issue-cards` — Beads has cross-session persistence and is already integrated
293
+ - Don't replace OpenSpec with `writing-plans` — different purpose levels
294
+ - Don't install Superpowers plugin directly — workflow collision risk until roles are defined
295
+
296
+ ---
297
+
298
+ ## Sources Index
299
+
300
+ | # | URL | Used For |
301
+ |---|-----|---------|
302
+ | 1 | https://github.com/obra/superpowers | Repo structure, README, skills list |
303
+ | 2 | https://github.com/obra/superpowers/blob/main/README.md | Workflow, installation, philosophy |
304
+ | 3 | https://blog.fsck.com/2025/10/09/superpowers/ | Origin story, session-start hook |
305
+ | 4 | https://simonwillison.net/2025/Oct/10/superpowers/ | Community reception, feelings journal mention |
306
+ | 5 | https://news.ycombinator.com/item?id=45547344 | HN reception (435 pts, 231 comments) |
307
+ | 6 | https://www.threads.com/@obrajesse/post/DVANeBYEfuF/ | 4th most installed in Claude marketplace |
308
+ | 7 | https://github.com/obra/superpowers-marketplace | Marketplace companion repo |
309
+ | 8 | https://github.com/obra/issue-cards | Related obra issue tracker |
310
+ | 9 | https://github.com/obra/coderabbit-review-helper | Related obra PR review tool |
311
+ | 10 | https://mcpmarket.com/server/superpowers | MCP market listing |
312
+ | 11 | https://www.reddit.com/r/ClaudeCode/comments/1r9y2ka/ | User experience reports |
313
+ | 12 | https://www.reddit.com/r/ClaudeCode/comments/1qlsdjb/superpowers_vs_gsd_vs_others/ | Comparison with GSD workflow |
314
+ | 13 | https://www.reddit.com/r/ClaudeCode/comments/1ra8rdy/plan_mode_vs_superpowers_brainstorming_which/ | Plan mode vs brainstorming comparison |
315
+ | 14 | https://blog.devgenius.io/superpowers-explained-the-claude-plugin-that-enforces-tdd-subagents-and-planning-c7fe698c3b82 | Technical explanation |
316
+ | 15 | https://innovationhub.ai.cornell.edu/articles/how-i-built-a-3600-line-feature-in-4-hours-without-writing-a-single-line-of-code/ | Real-world results |
317
+ | 16 | https://sitepoint.com/agentic-engineering-superpowers-framework-agent-capabilities/ | Architecture patterns analysis |
318
+ | 17 | https://st0012.dev/links/2026-01-15-a-claude-code-workflow-with-the-superpowers-plugin/ | `/superpowers:brainstorm` and `/superpowers:write-plan` usage |
319
+ | 18 | https://medium.com/vibe-coding/every-ai-tool-has-plan-mode-none-of-them-do-it-right-6bd540155690 | Plan mode vs Superpowers brainstorming |
320
+ | 19 | https://dev.to/tumf/superpowers-the-technology-to-persuade-ai-agents-why-psychological-principles-change-code-quality-2d2f | Psychological principles in AI instructions |