forge-workflow 0.0.10 → 0.1.0-beta.3

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 (468) 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 +82 -5
  5. package/.forge/hooks/forge-native-hook.js +431 -0
  6. package/.forge/protected-paths.yaml +157 -0
  7. package/AGENTS.md +151 -61
  8. package/CHANGELOG.md +709 -0
  9. package/CLAUDE.md +9 -118
  10. package/QUICKSTART.md +175 -0
  11. package/README.md +275 -365
  12. package/bin/forge-cmd.js +120 -9
  13. package/bin/forge-preflight.js +26 -5
  14. package/bin/forge.js +532 -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 +121 -0
  29. package/docs/guides/SUPPORT.md +190 -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 +214 -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 +155 -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/activation/ensure-forge-home.js +135 -0
  67. package/lib/adapter-cli.js +307 -0
  68. package/lib/adapters/beads-issue-adapter.js +127 -0
  69. package/lib/adapters/beads-kernel-compat.js +1109 -0
  70. package/lib/adapters/greptile-review-adapter.js +141 -0
  71. package/lib/adapters/kernel-issue-adapter.js +101 -0
  72. package/lib/adapters/pr-state-adapter.js +484 -0
  73. package/lib/adoption-profiles.js +139 -0
  74. package/lib/agents/README.md +2 -6
  75. package/lib/agents/claude.plugin.json +3 -8
  76. package/lib/agents/codex.plugin.json +9 -1
  77. package/lib/agents/cursor.plugin.json +2 -6
  78. package/lib/agents/hermes.plugin.json +22 -0
  79. package/lib/agents-config.js +39 -1236
  80. package/lib/audit-evidence.js +282 -0
  81. package/lib/beads-detect.js +60 -0
  82. package/lib/beads-nudge.js +91 -0
  83. package/lib/beads-setup.js +121 -0
  84. package/lib/beads-sync-scaffold.js +25 -101
  85. package/lib/codex-skills.js +51 -1
  86. package/lib/commands/_aliases.js +248 -0
  87. package/lib/commands/_issue.js +780 -77
  88. package/lib/commands/_manifest.js +93 -0
  89. package/lib/commands/_registry.js +99 -34
  90. package/lib/commands/_resolve-command-opts.js +230 -0
  91. package/lib/commands/_serve-security.js +270 -0
  92. package/lib/commands/adapter.js +12 -0
  93. package/lib/commands/add.js +118 -0
  94. package/lib/commands/audit.js +70 -0
  95. package/lib/commands/blocked.js +5 -0
  96. package/lib/commands/board.js +64 -0
  97. package/lib/commands/claim.js +21 -2
  98. package/lib/commands/claims.js +7 -0
  99. package/lib/commands/clean.js +485 -75
  100. package/lib/commands/close.js +2 -2
  101. package/lib/commands/comment.js +5 -0
  102. package/lib/commands/control.js +148 -0
  103. package/lib/commands/create.js +2 -2
  104. package/lib/commands/dev.js +185 -7
  105. package/lib/commands/doc-gate.js +336 -0
  106. package/lib/commands/doctor.js +156 -0
  107. package/lib/commands/explain.js +15 -0
  108. package/lib/commands/export.js +237 -0
  109. package/lib/commands/gate.js +209 -0
  110. package/lib/commands/hooks.js +377 -0
  111. package/lib/commands/inbox.js +118 -0
  112. package/lib/commands/init.js +604 -0
  113. package/lib/commands/insights.js +79 -0
  114. package/lib/commands/issue.js +12 -1
  115. package/lib/commands/issues.js +17 -0
  116. package/lib/commands/lint.js +5 -0
  117. package/lib/commands/list.js +2 -2
  118. package/lib/commands/memory.js +81 -0
  119. package/lib/commands/merge.js +312 -0
  120. package/lib/commands/migrate.js +362 -0
  121. package/lib/commands/new.js +12 -0
  122. package/lib/commands/options.js +241 -0
  123. package/lib/commands/orient.js +13 -0
  124. package/lib/commands/orphans.js +5 -0
  125. package/lib/commands/patch.js +67 -0
  126. package/lib/commands/plan.js +481 -29
  127. package/lib/commands/pr.js +88 -0
  128. package/lib/commands/preflight.js +211 -0
  129. package/lib/commands/prime.js +13 -0
  130. package/lib/commands/push.js +135 -2
  131. package/lib/commands/ready.js +2 -2
  132. package/lib/commands/recall.js +171 -0
  133. package/lib/commands/recap.js +75 -0
  134. package/lib/commands/recommend.js +0 -1
  135. package/lib/commands/release.js +104 -0
  136. package/lib/commands/remember.js +140 -0
  137. package/lib/commands/role.js +99 -0
  138. package/lib/commands/serve.js +581 -0
  139. package/lib/commands/setup.js +900 -971
  140. package/lib/commands/shepherd.js +501 -0
  141. package/lib/commands/ship.js +59 -1
  142. package/lib/commands/show.js +2 -2
  143. package/lib/commands/stage.js +192 -0
  144. package/lib/commands/stale.js +5 -0
  145. package/lib/commands/status.js +158 -21
  146. package/lib/commands/sync.js +34 -46
  147. package/lib/commands/team.js +4 -1
  148. package/lib/commands/test.js +43 -27
  149. package/lib/commands/update.js +2 -2
  150. package/lib/commands/upgrade.js +47 -0
  151. package/lib/commands/validate.js +43 -18
  152. package/lib/commands/worktree.js +362 -99
  153. package/lib/config-writer.js +202 -0
  154. package/lib/control-plane.js +236 -0
  155. package/lib/core/runtime-graph.js +977 -0
  156. package/lib/dep-guard/keyword-ripple.js +2 -2
  157. package/lib/deprecated-sync-cleanup.js +362 -0
  158. package/lib/detect-agent.js +2 -28
  159. package/lib/detect-worktree.js +35 -9
  160. package/lib/doc-gate/declaration.js +177 -0
  161. package/lib/doc-gate/detect.js +289 -0
  162. package/lib/doc-gate/gate.js +375 -0
  163. package/lib/doc-gate/okf-config.js +128 -0
  164. package/lib/doc-gate/okf.js +429 -0
  165. package/lib/docs-command.js +1161 -6
  166. package/lib/forge-issues.js +382 -11
  167. package/lib/forge-lock.js +262 -0
  168. package/lib/gate-events.js +192 -0
  169. package/lib/global-flags.js +104 -0
  170. package/lib/greptile-match.js +7 -63
  171. package/lib/grounding/context-events.js +230 -0
  172. package/lib/grounding/read-first.js +112 -0
  173. package/lib/harness-capability-matrix.js +380 -0
  174. package/lib/hook-global-installer.js +347 -0
  175. package/lib/hook-renderer.js +541 -0
  176. package/lib/inbox.js +391 -0
  177. package/lib/insights.js +397 -0
  178. package/lib/issue-adapter.js +156 -0
  179. package/lib/issue-backend.js +145 -0
  180. package/lib/issue-render.js +220 -0
  181. package/lib/kernel/backing-issue.js +311 -0
  182. package/lib/kernel/broker.js +1218 -0
  183. package/lib/kernel/cli-broker-factory.js +130 -0
  184. package/lib/kernel/conflict-signal.js +82 -0
  185. package/lib/kernel/evaluators.js +195 -0
  186. package/lib/kernel/fs-class.js +495 -0
  187. package/lib/kernel/issue-command-contract.js +559 -0
  188. package/lib/kernel/issue-id-resolver.js +186 -0
  189. package/lib/kernel/lease-enforcer.js +158 -0
  190. package/lib/kernel/migrations.js +333 -0
  191. package/lib/kernel/owned-kernel.js +43 -0
  192. package/lib/kernel/planning-buckets-schema.js +109 -0
  193. package/lib/kernel/projection-jsonl-writer.js +450 -0
  194. package/lib/kernel/readiness-model.js +329 -0
  195. package/lib/kernel/schema.js +356 -0
  196. package/lib/kernel/sqlite-driver.js +2540 -0
  197. package/lib/kernel/taxonomy-validator.js +394 -0
  198. package/lib/lefthook-check.js +3 -2
  199. package/lib/lefthook-wiring.js +413 -0
  200. package/lib/mcp-config-renderer.js +288 -0
  201. package/lib/memory/graphiti-mcp.js +106 -0
  202. package/lib/memory/router.js +387 -0
  203. package/lib/memory/typed-api.js +102 -0
  204. package/lib/memory-digest.js +195 -0
  205. package/lib/merge-rules.js +395 -0
  206. package/lib/migrate-dry-run.js +466 -0
  207. package/lib/orientation.js +863 -0
  208. package/lib/package-manager-remediation.js +103 -0
  209. package/lib/package-root.js +381 -0
  210. package/lib/patch-intent.js +890 -0
  211. package/lib/plugin-catalog.js +3 -4
  212. package/lib/plugin-manager.js +0 -5
  213. package/lib/pr-bundle.js +186 -0
  214. package/lib/pr-monitor/auto-actions.js +175 -0
  215. package/lib/pr-monitor/differ.js +195 -0
  216. package/lib/pr-monitor/digest.js +206 -0
  217. package/lib/pr-monitor/events.js +0 -0
  218. package/lib/pr-monitor/gather.js +124 -0
  219. package/lib/pr-monitor/journal.js +299 -0
  220. package/lib/pr-monitor/monitor.js +146 -0
  221. package/lib/pr-monitor/render-sticky.js +192 -0
  222. package/lib/pr-monitor/upsert-sticky.js +169 -0
  223. package/lib/pr-monitor/watch-lifecycle.js +95 -0
  224. package/lib/pr-monitor/watch.js +247 -0
  225. package/lib/pr-pull.js +1314 -0
  226. package/lib/pr-shepherd.js +494 -0
  227. package/lib/pr-state-validator.js +59 -0
  228. package/lib/preflight/gates.js +237 -0
  229. package/lib/preflight/runner.js +116 -0
  230. package/lib/project-discovery.js +0 -53
  231. package/lib/project-memory.js +99 -497
  232. package/lib/protected-path-manifest.js +281 -0
  233. package/lib/protected-state-surfaces.js +387 -0
  234. package/lib/release-readiness.js +2105 -0
  235. package/lib/reset.js +59 -45
  236. package/lib/review-adapter.js +68 -0
  237. package/lib/rules-sync.js +260 -0
  238. package/lib/runtime-health.js +241 -20
  239. package/lib/safety-config-renderer.js +268 -0
  240. package/lib/setup-action-log.js +1 -7
  241. package/lib/setup.js +27 -65
  242. package/lib/shell-utils.js +76 -6
  243. package/lib/skills-sync.js +330 -0
  244. package/lib/smart-status/scoring.js +17 -3
  245. package/lib/status/beads-snapshot.js +45 -2
  246. package/lib/status/presenter.js +169 -18
  247. package/lib/status/snapshot.js +186 -0
  248. package/lib/sync-backend.js +202 -0
  249. package/lib/untrusted-content.js +52 -0
  250. package/lib/upgrade-safety.js +251 -0
  251. package/lib/workflow/enforce-stage.js +351 -45
  252. package/lib/workflow/stage-transition.js +115 -0
  253. package/lib/workflow/stages.js +30 -6
  254. package/lib/workflow/state-manager.js +11 -22
  255. package/lib/workflow/state.js +23 -1
  256. package/lib/workflow-profiles.js +17 -5
  257. package/package.json +37 -35
  258. package/rules/documentation.md +19 -0
  259. package/rules/kernel-tracking.md +26 -0
  260. package/rules/security.md +22 -0
  261. package/rules/tdd.md +20 -0
  262. package/rules/workflow.md +27 -0
  263. package/scripts/auto-backing-issue.js +47 -0
  264. package/scripts/beads-context.sh +81 -57
  265. package/scripts/beads-upgrade-smoke.sh +24 -3
  266. package/scripts/bootstrap-windows-tools.sh +78 -0
  267. package/scripts/branch-protection.js +2 -3
  268. package/scripts/check-agents.js +34 -137
  269. package/scripts/commitlint.js +3 -1
  270. package/scripts/conflict-detect.sh +3 -0
  271. package/scripts/dep-guard.sh +22 -3
  272. package/scripts/file-index.sh +3 -0
  273. package/scripts/forge-team/lib/claim.sh +34 -18
  274. package/scripts/forge-team/lib/dashboard.sh +61 -86
  275. package/scripts/forge-team/lib/epic.sh +99 -263
  276. package/scripts/forge-team/lib/hooks.sh +26 -28
  277. package/scripts/forge-team/lib/identity.sh +4 -4
  278. package/scripts/forge-team/lib/sync-github.sh +49 -84
  279. package/scripts/forge-team/lib/verify.sh +93 -83
  280. package/scripts/forge-team/lib/workload.sh +41 -65
  281. package/scripts/forge-team/tests/claim.test.sh +25 -19
  282. package/scripts/forge-team/tests/dashboard.test.sh +31 -46
  283. package/scripts/forge-team/tests/epic.test.sh +52 -71
  284. package/scripts/forge-team/tests/hooks.test.sh +38 -50
  285. package/scripts/forge-team/tests/identity.test.sh +3 -3
  286. package/scripts/forge-team/tests/integration.test.sh +44 -66
  287. package/scripts/forge-team/tests/sync-github.test.sh +50 -83
  288. package/scripts/forge-team/tests/verify.test.sh +37 -46
  289. package/scripts/forge-team/tests/workflow-integration.test.sh +4 -4
  290. package/scripts/forge-team/tests/workload.test.sh +32 -66
  291. package/scripts/gen-command-manifest.js +153 -0
  292. package/scripts/gen-embedded-assets.mjs +129 -0
  293. package/scripts/install.ps1 +139 -0
  294. package/scripts/install.sh +268 -0
  295. package/scripts/lib/release-asset.mjs +84 -0
  296. package/scripts/parity-check.mjs +145 -0
  297. package/scripts/parity-check.test.mjs +58 -0
  298. package/scripts/pin-agentic-workflow-images.js +112 -0
  299. package/scripts/pr-auto-actions.js +93 -0
  300. package/scripts/pr-coordinator.sh +3 -0
  301. package/scripts/pr-verdict-label.js +50 -0
  302. package/scripts/preflight-sonar.eslint.config.mjs +44 -0
  303. package/scripts/preflight.sh +21 -94
  304. package/scripts/protected-state-check.js +104 -0
  305. package/scripts/smart-status.sh +60 -57
  306. package/scripts/spikes/config-race-bench.js +111 -0
  307. package/scripts/spikes/harness-capability-matrix.js +13 -0
  308. package/scripts/spikes/patch-anchor-stability-bench.js +125 -0
  309. package/scripts/spikes/protected-path-manifest.js +20 -0
  310. package/scripts/spikes/skill-auto-invoke-parity.js +292 -0
  311. package/scripts/sync-agent-skills.js +62 -0
  312. package/scripts/sync-utils.sh +3 -0
  313. package/scripts/test-ci-shard.js +13 -6
  314. package/scripts/test.js +95 -12
  315. package/skills/claim-safety/SKILL.md +102 -0
  316. package/skills/claim-safety/evals/evals.json +46 -0
  317. package/{.github/prompts/dev.prompt.md → skills/dev/SKILL.md} +44 -50
  318. package/skills/dev/evals/evals.json +50 -0
  319. package/skills/hermes-forge/SKILL.md +185 -0
  320. package/skills/hermes-forge/evals/evals.json +46 -0
  321. package/skills/issue-basics/SKILL.md +111 -0
  322. package/skills/issue-basics/evals/evals.json +46 -0
  323. package/skills/kernel/SKILL.md +166 -0
  324. package/skills/kernel/evals/evals.json +50 -0
  325. package/skills/memory/SKILL.md +102 -0
  326. package/skills/parallel-deep-research/SKILL.md +14 -11
  327. package/skills/parallel-deep-research/evals/evals.json +11 -27
  328. package/{.github/prompts/plan.prompt.md → skills/plan/SKILL.md} +132 -157
  329. package/skills/plan/evals/evals.json +42 -0
  330. package/skills/research/SKILL.md +195 -0
  331. package/skills/research/evals/evals.json +42 -0
  332. package/{.github/prompts/review.prompt.md → skills/review/SKILL.md} +98 -62
  333. package/skills/review/evals/evals.json +42 -0
  334. package/skills/rollback/SKILL.md +110 -0
  335. package/skills/rollback/evals/evals.json +46 -0
  336. package/skills/rollback/references/methods.md +204 -0
  337. package/{.cursor/commands/rollback.md → skills/rollback/references/workflow-integration.md} +10 -284
  338. package/skills/shepherd/SKILL.md +66 -0
  339. package/skills/shepherd/evals/evals.json +42 -0
  340. package/{.github/prompts/ship.prompt.md → skills/ship/SKILL.md} +81 -45
  341. package/skills/ship/evals/evals.json +42 -0
  342. package/skills/smith/SKILL.md +142 -0
  343. package/skills/smith/evals/evals.json +46 -0
  344. package/skills/smith/references/autonomy-and-gates.md +94 -0
  345. package/{.github/prompts/sonarcloud.prompt.md → skills/sonarcloud/SKILL.md} +14 -3
  346. package/skills/sonarcloud/evals/evals.json +46 -0
  347. package/skills/sonarcloud-analysis/SKILL.md +18 -13
  348. package/skills/sonarcloud-analysis/evals/evals.json +11 -15
  349. package/{.github/prompts/status.prompt.md → skills/status/SKILL.md} +20 -10
  350. package/skills/status/evals/evals.json +50 -0
  351. package/skills/triage-ready/SKILL.md +121 -0
  352. package/skills/triage-ready/evals/evals.json +42 -0
  353. package/{.github/prompts/validate.prompt.md → skills/validate/SKILL.md} +52 -29
  354. package/skills/validate/evals/evals.json +42 -0
  355. package/skills/verify/SKILL.md +299 -0
  356. package/skills/verify/evals/evals.json +50 -0
  357. package/.claude/commands/dev.md +0 -345
  358. package/.claude/commands/plan.md +0 -566
  359. package/.claude/commands/premerge.md +0 -186
  360. package/.claude/commands/research.md +0 -42
  361. package/.claude/commands/review.md +0 -451
  362. package/.claude/commands/rollback.md +0 -721
  363. package/.claude/commands/ship.md +0 -213
  364. package/.claude/commands/sonarcloud.md +0 -152
  365. package/.claude/commands/status.md +0 -90
  366. package/.claude/commands/validate.md +0 -288
  367. package/.claude/commands/verify.md +0 -269
  368. package/.claude/rules/workflow.md +0 -121
  369. package/.cline/workflows/dev.md +0 -342
  370. package/.cline/workflows/plan.md +0 -563
  371. package/.cline/workflows/premerge.md +0 -183
  372. package/.cline/workflows/research.md +0 -39
  373. package/.cline/workflows/review.md +0 -448
  374. package/.cline/workflows/rollback.md +0 -718
  375. package/.cline/workflows/ship.md +0 -210
  376. package/.cline/workflows/sonarcloud.md +0 -146
  377. package/.cline/workflows/status.md +0 -87
  378. package/.cline/workflows/validate.md +0 -285
  379. package/.cline/workflows/verify.md +0 -266
  380. package/.codex/config.toml +0 -11
  381. package/.codex/skills/dev/SKILL.md +0 -345
  382. package/.codex/skills/plan/SKILL.md +0 -566
  383. package/.codex/skills/premerge/SKILL.md +0 -186
  384. package/.codex/skills/research/SKILL.md +0 -42
  385. package/.codex/skills/review/SKILL.md +0 -451
  386. package/.codex/skills/rollback/SKILL.md +0 -721
  387. package/.codex/skills/ship/SKILL.md +0 -213
  388. package/.codex/skills/sonarcloud/SKILL.md +0 -149
  389. package/.codex/skills/status/SKILL.md +0 -90
  390. package/.codex/skills/validate/SKILL.md +0 -288
  391. package/.codex/skills/verify/SKILL.md +0 -269
  392. package/.cursor/commands/dev.md +0 -342
  393. package/.cursor/commands/plan.md +0 -563
  394. package/.cursor/commands/premerge.md +0 -183
  395. package/.cursor/commands/research.md +0 -39
  396. package/.cursor/commands/review.md +0 -448
  397. package/.cursor/commands/ship.md +0 -210
  398. package/.cursor/commands/sonarcloud.md +0 -146
  399. package/.cursor/commands/status.md +0 -87
  400. package/.cursor/commands/validate.md +0 -285
  401. package/.cursor/commands/verify.md +0 -266
  402. package/.cursorrules +0 -149
  403. package/.github/prompts/premerge.prompt.md +0 -188
  404. package/.github/prompts/research.prompt.md +0 -44
  405. package/.github/prompts/rollback.prompt.md +0 -723
  406. package/.github/prompts/verify.prompt.md +0 -271
  407. package/.github/workflows/beads-to-github.yml +0 -89
  408. package/.github/workflows/github-to-beads.yml +0 -100
  409. package/.kilocode/workflows/dev.md +0 -346
  410. package/.kilocode/workflows/plan.md +0 -567
  411. package/.kilocode/workflows/premerge.md +0 -187
  412. package/.kilocode/workflows/research.md +0 -43
  413. package/.kilocode/workflows/review.md +0 -452
  414. package/.kilocode/workflows/rollback.md +0 -722
  415. package/.kilocode/workflows/ship.md +0 -214
  416. package/.kilocode/workflows/sonarcloud.md +0 -150
  417. package/.kilocode/workflows/status.md +0 -91
  418. package/.kilocode/workflows/validate.md +0 -289
  419. package/.kilocode/workflows/verify.md +0 -270
  420. package/.opencode/commands/dev.md +0 -345
  421. package/.opencode/commands/plan.md +0 -566
  422. package/.opencode/commands/premerge.md +0 -186
  423. package/.opencode/commands/research.md +0 -42
  424. package/.opencode/commands/review.md +0 -451
  425. package/.opencode/commands/rollback.md +0 -721
  426. package/.opencode/commands/ship.md +0 -213
  427. package/.opencode/commands/sonarcloud.md +0 -149
  428. package/.opencode/commands/status.md +0 -90
  429. package/.opencode/commands/validate.md +0 -288
  430. package/.opencode/commands/verify.md +0 -269
  431. package/.roo/commands/dev.md +0 -346
  432. package/.roo/commands/plan.md +0 -567
  433. package/.roo/commands/premerge.md +0 -187
  434. package/.roo/commands/research.md +0 -43
  435. package/.roo/commands/review.md +0 -452
  436. package/.roo/commands/rollback.md +0 -722
  437. package/.roo/commands/ship.md +0 -214
  438. package/.roo/commands/sonarcloud.md +0 -150
  439. package/.roo/commands/status.md +0 -91
  440. package/.roo/commands/validate.md +0 -289
  441. package/.roo/commands/verify.md +0 -270
  442. package/docs/BEADS_GITHUB_SYNC.md +0 -281
  443. package/docs/GREPTILE_SETUP.md +0 -400
  444. package/docs/MANUAL_REVIEW_GUIDE.md +0 -106
  445. package/docs/SETUP.md +0 -663
  446. package/docs/VALIDATION.md +0 -363
  447. package/lib/agents/cline.plugin.json +0 -29
  448. package/lib/agents/copilot.plugin.json +0 -24
  449. package/lib/agents/kilocode.plugin.json +0 -22
  450. package/lib/agents/opencode.plugin.json +0 -23
  451. package/lib/agents/roo.plugin.json +0 -30
  452. package/lib/beads-bootstrap.js +0 -225
  453. package/lib/beads-health-check.js +0 -188
  454. package/lib/commands/commands-reset.js +0 -147
  455. package/opencode.json +0 -67
  456. package/scripts/beads-context.test.js +0 -584
  457. package/scripts/github-beads-sync/comment.mjs +0 -64
  458. package/scripts/github-beads-sync/config.mjs +0 -148
  459. package/scripts/github-beads-sync/github-api.mjs +0 -131
  460. package/scripts/github-beads-sync/index.mjs +0 -356
  461. package/scripts/github-beads-sync/label-mapper.mjs +0 -54
  462. package/scripts/github-beads-sync/mapping.mjs +0 -132
  463. package/scripts/github-beads-sync/reverse-sync-cli.mjs +0 -31
  464. package/scripts/github-beads-sync/reverse-sync.mjs +0 -162
  465. package/scripts/github-beads-sync/run-bd.mjs +0 -161
  466. package/scripts/github-beads-sync/sanitize.mjs +0 -121
  467. package/scripts/github-beads-sync.config.json +0 -26
  468. 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,155 @@
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
+ ## Auto-start on ship (`rail.auto_shepherd`)
71
+
72
+ `forge shepherd watch <pr>` is the constant, self-stopping local monitor loop
73
+ (≈60 s jittered cadence; appends events to the per-PR NDJSON journal under
74
+ `.forge/pr-monitor/<repo>-<pr>/`; self-stops on `PR_MERGED`/`PR_CLOSED`). On a
75
+ successful `forge ship`, the new PR's watcher is **auto-started detached** so a
76
+ shipped PR is tended without a manual trigger. The spawn is best-effort and
77
+ **never fails ship** (a spawn or config-read error degrades to "not started"),
78
+ and it is idempotent — the watch-lifecycle PID/journal lock prevents a second
79
+ watcher for the same PR.
80
+
81
+ This auto-start is governed by the default-ON, unlocked **`rail.auto_shepherd`**
82
+ rail. Opt out with `forge gate disable rail.auto_shepherd` (re-enable with
83
+ `forge gate enable rail.auto_shepherd`); when disabled, `forge ship` skips the
84
+ auto-start. This keeps the behavior honestly toggleable through the same config
85
+ surface as every other rail.
86
+
87
+ ## Surfacing events back to the agent (`forge hooks shepherd-events`)
88
+
89
+ The constant watch loop is the PRODUCER: it writes per-PR NDJSON journals under
90
+ `.forge/pr-monitor/<repo>-<pr>/`, while the `forge shepherd events <pr> --since
91
+ <seq>` pull surface reads existing records back from them. But a journal only
92
+ helps if the working agent sees it. `forge hooks shepherd-events` is the thin,
93
+ agent-agnostic CONSUMER: it reads the NEW budget events across all open-PR journals
94
+ since a persisted per-PR **consumer cursor** (kept in `consumer.cursor`, distinct
95
+ from the watcher's snapshot), renders a **compact, capped** summary of the
96
+ actionable transitions only — verdict changes, failed checks, new review threads,
97
+ merged/closed — then advances the cursor so nothing re-surfaces.
98
+
99
+ For Claude Code this is wired as a **UserPromptSubmit** context hook (the honest
100
+ capability matrix: only Claude exposes that additionalContext surface; Cursor /
101
+ Codex / Hermes carry an explicit skip reason). It is **additive and FAIL-OPEN** —
102
+ a missing/empty digest, a corrupt journal, or no `.forge/pr-monitor` at all never
103
+ blocks a prompt — and it reads the user's own local journal only: it never
104
+ injects into stdin and never drives the agent. Any other harness can call the
105
+ same verb (or `forge shepherd events`) on its own cadence.
106
+
107
+ ## Terminal states
108
+
109
+ | State | Meaning |
110
+ | ------------- | ------- |
111
+ | `MERGE_READY` | Required checks are green and the branch is up to date. The shepherd hands off — **a human merges in the GitHub UI.** |
112
+ | `ESCALATE` | A Tier-C condition (conflict, unreadable required set, persistent failure, oscillation, budget exhaustion). Context is posted to the PR. |
113
+ | `PENDING` | A Tier-A action was taken, or checks are still pending. Exit and await the next scheduled pass. |
114
+ | `HARD_STOP` | A permanent auth/scope failure that retrying cannot fix. Escalate to a human to widen token scope. |
115
+
116
+ ## Action ladder
117
+
118
+ - **Tier-A (autonomous):** re-run a flaky **required** check via
119
+ `gh run rerun --failed` (capped by a rerun budget). Post status replies to
120
+ review threads (reply only).
121
+ - **Tier-B (opt-in, default OFF):** `--auto-rebase` rebases onto base and
122
+ force-pushes with lease, given a clean tree and an unchanged HEAD. A lease
123
+ rejection is a hard-stop — the shepherd never re-arms the lease.
124
+ - **Tier-C (escalate):** everything else.
125
+
126
+ ## Safety invariants
127
+
128
+ - **Never merges.** No merge action, no server-side auto-merge latch.
129
+ - **Never resolves review threads.** It may post a status reply; resolution is
130
+ semantic and stays with `/review`.
131
+ - **Required-check gate.** Merge-ready is declared only when the
132
+ branch-protection required-check set is *known* (read from
133
+ `gh api repos/{owner}/{repo}/branches/{base}/protection/required_status_checks`)
134
+ and all of it is green. If protection is unreadable, the shepherd escalates
135
+ rather than guessing.
136
+ - **HEAD-changed abort.** Before any mutating action it re-reads the head SHA; if
137
+ HEAD moved during the pass, the action aborts. The `shepherd:active` marker is
138
+ advisory only — it is not mutual exclusion.
139
+ - **Auth taxonomy.** 401 (expiry) pauses and surfaces; 403 insufficient-scope is
140
+ a hard-stop; 403 with `Retry-After` honors the delay and resumes next pass.
141
+
142
+ ## Per-harness behavior
143
+
144
+ - **Claude Code / Codex:** invoke `forge shepherd <pr>` directly; an external
145
+ scheduler may drive repeated bounded passes.
146
+ - **Cursor:** manually-invoked only — run it from a terminal. No polling-loop
147
+ affordance and no hook reliance on this surface.
148
+
149
+ ## State
150
+
151
+ Progress is durable in GitHub PR comments and labels plus `git`. The one local
152
+ store is the constant monitor's per-PR journal under
153
+ `.forge/pr-monitor/<repo>-<pr>/` (the append-only `events.ndjson` + snapshot and
154
+ consumer cursors) — the delivery/replay surface for `forge shepherd watch` and
155
+ `events --since`. The bounded shepherd pass itself keeps no separate local state.
@@ -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 |