forge-workflow 0.0.9 → 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 (479) 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 +151 -61
  8. package/CHANGELOG.md +681 -0
  9. package/CLAUDE.md +9 -106
  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 +466 -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/{TOOLCHAIN.md → forge/TOOLCHAIN.md} +56 -47
  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/reference/TOOLCHAIN.md +658 -0
  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 +225 -28
  81. package/lib/beads-sync-scaffold.js +36 -107
  82. package/lib/codex-skills.js +51 -1
  83. package/lib/commands/_issue.js +744 -70
  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 +66 -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 +22 -2
  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 +851 -979
  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 +329 -11
  140. package/lib/commands/sync.js +34 -46
  141. package/lib/commands/team.js +15 -2
  142. package/lib/commands/test.js +58 -7
  143. package/lib/commands/update.js +2 -2
  144. package/lib/commands/upgrade.js +47 -0
  145. package/lib/commands/validate.js +56 -25
  146. package/lib/commands/worktree.js +308 -128
  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 +184 -0
  151. package/lib/deprecated-sync-cleanup.js +362 -0
  152. package/lib/detect-agent.js +2 -28
  153. package/lib/detect-worktree.js +42 -17
  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 +697 -0
  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/issue-sync/authority.js +100 -0
  174. package/lib/issue-sync/github-pull.js +184 -0
  175. package/lib/issue-sync/import-primitives.js +98 -0
  176. package/lib/issue-sync/legacy-link-bridge.js +436 -0
  177. package/lib/issue-sync/link-store.js +292 -0
  178. package/lib/issue-sync/project-github.js +123 -0
  179. package/lib/issue-sync/reconcile.js +195 -0
  180. package/lib/issue-sync/schema.js +126 -0
  181. package/lib/kernel/backing-issue.js +305 -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/planning-buckets-schema.js +109 -0
  192. package/lib/kernel/projection-jsonl-writer.js +450 -0
  193. package/lib/kernel/readiness-model.js +329 -0
  194. package/lib/kernel/schema.js +356 -0
  195. package/lib/kernel/sqlite-driver.js +2504 -0
  196. package/lib/kernel/taxonomy-validator.js +394 -0
  197. package/lib/lefthook-check.js +8 -4
  198. package/lib/lefthook-wiring.js +413 -0
  199. package/lib/mcp-config-renderer.js +288 -0
  200. package/lib/memory/graphiti-mcp.js +106 -0
  201. package/lib/memory/router.js +387 -0
  202. package/lib/memory/typed-api.js +102 -0
  203. package/lib/memory-digest.js +195 -0
  204. package/lib/merge-rules.js +395 -0
  205. package/lib/migrate-dry-run.js +466 -0
  206. package/lib/orientation.js +863 -0
  207. package/lib/package-manager-remediation.js +103 -0
  208. package/lib/package-root.js +381 -0
  209. package/lib/patch-intent.js +890 -0
  210. package/lib/plugin-catalog.js +3 -4
  211. package/lib/plugin-manager.js +0 -5
  212. package/lib/pr-bundle.js +186 -0
  213. package/lib/pr-monitor/differ.js +195 -0
  214. package/lib/pr-monitor/events.js +0 -0
  215. package/lib/pr-monitor/gather.js +124 -0
  216. package/lib/pr-monitor/journal.js +299 -0
  217. package/lib/pr-monitor/monitor.js +146 -0
  218. package/lib/pr-monitor/render-sticky.js +157 -0
  219. package/lib/pr-monitor/watch-lifecycle.js +95 -0
  220. package/lib/pr-monitor/watch.js +247 -0
  221. package/lib/pr-pull.js +1273 -0
  222. package/lib/pr-shepherd.js +494 -0
  223. package/lib/pr-state-validator.js +59 -0
  224. package/lib/preflight/gates.js +237 -0
  225. package/lib/preflight/runner.js +116 -0
  226. package/lib/project-discovery.js +0 -53
  227. package/lib/project-memory.js +166 -0
  228. package/lib/protected-path-manifest.js +281 -0
  229. package/lib/protected-state-surfaces.js +387 -0
  230. package/lib/release-readiness.js +2089 -0
  231. package/lib/reset.js +59 -45
  232. package/lib/review-adapter.js +68 -0
  233. package/lib/rules-sync.js +260 -0
  234. package/lib/runtime-health.js +332 -23
  235. package/lib/safety-config-renderer.js +268 -0
  236. package/lib/setup-action-log.js +1 -7
  237. package/lib/setup.js +27 -65
  238. package/lib/shell-utils.js +76 -6
  239. package/lib/skills-sync.js +330 -0
  240. package/lib/smart-status/conflicts.js +205 -0
  241. package/lib/smart-status/scoring.js +191 -0
  242. package/lib/status/beads-snapshot.js +145 -0
  243. package/lib/status/presenter.js +216 -0
  244. package/lib/status/snapshot.js +186 -0
  245. package/lib/sync-backend.js +202 -0
  246. package/lib/untrusted-content.js +52 -0
  247. package/lib/upgrade-safety.js +199 -0
  248. package/lib/workflow/enforce-stage.js +298 -47
  249. package/lib/workflow/stage-transition.js +115 -0
  250. package/lib/workflow/stages.js +30 -6
  251. package/lib/workflow/state-manager.js +159 -14
  252. package/lib/workflow/state.js +23 -1
  253. package/lib/workflow-profiles.js +17 -5
  254. package/package.json +46 -36
  255. package/rules/documentation.md +19 -0
  256. package/rules/kernel-tracking.md +26 -0
  257. package/rules/security.md +22 -0
  258. package/rules/tdd.md +20 -0
  259. package/rules/workflow.md +27 -0
  260. package/scripts/auto-backing-issue.js +47 -0
  261. package/scripts/beads-context.sh +165 -22
  262. package/scripts/beads-migrate-to-dolt.sh +7 -0
  263. package/scripts/beads-upgrade-smoke.sh +284 -0
  264. package/scripts/behavioral-judge.sh +115 -11
  265. package/scripts/benchmark.js +349 -63
  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-analyze.js +52 -17
  272. package/scripts/dep-guard-keyword-ripple.js +29 -0
  273. package/scripts/dep-guard-render-review.js +86 -0
  274. package/scripts/dep-guard.sh +64 -232
  275. package/scripts/file-index.sh +3 -0
  276. package/scripts/forge-team/lib/claim.sh +34 -18
  277. package/scripts/forge-team/lib/dashboard.sh +61 -86
  278. package/scripts/forge-team/lib/epic.sh +99 -263
  279. package/scripts/forge-team/lib/hooks.sh +26 -28
  280. package/scripts/forge-team/lib/identity.sh +4 -4
  281. package/scripts/forge-team/lib/sync-github.sh +144 -47
  282. package/scripts/forge-team/lib/verify.sh +93 -83
  283. package/scripts/forge-team/lib/workload.sh +41 -65
  284. package/scripts/forge-team/tests/claim.test.sh +25 -19
  285. package/scripts/forge-team/tests/dashboard.test.sh +31 -46
  286. package/scripts/forge-team/tests/epic.test.sh +52 -71
  287. package/scripts/forge-team/tests/hooks.test.sh +38 -50
  288. package/scripts/forge-team/tests/identity.test.sh +3 -3
  289. package/scripts/forge-team/tests/integration.test.sh +44 -66
  290. package/scripts/forge-team/tests/sync-github.test.sh +183 -79
  291. package/scripts/forge-team/tests/verify.test.sh +37 -46
  292. package/scripts/forge-team/tests/workflow-integration.test.sh +4 -4
  293. package/scripts/forge-team/tests/workload.test.sh +32 -66
  294. package/scripts/gen-command-manifest.js +153 -0
  295. package/scripts/gen-embedded-assets.mjs +129 -0
  296. package/scripts/install.ps1 +139 -0
  297. package/scripts/install.sh +268 -0
  298. package/scripts/lib/beads-migrate-to-dolt.mjs +503 -0
  299. package/scripts/lib/release-asset.mjs +84 -0
  300. package/scripts/parity-check.mjs +145 -0
  301. package/scripts/parity-check.test.mjs +58 -0
  302. package/scripts/pin-agentic-workflow-images.js +112 -0
  303. package/scripts/pr-coordinator.sh +3 -0
  304. package/scripts/preflight-sonar.eslint.config.mjs +44 -0
  305. package/scripts/preflight.sh +108 -0
  306. package/scripts/protected-state-check.js +104 -0
  307. package/scripts/smart-status-score.js +31 -0
  308. package/scripts/smart-status-sessions.js +51 -0
  309. package/scripts/smart-status.sh +117 -369
  310. package/scripts/spikes/config-race-bench.js +111 -0
  311. package/scripts/spikes/harness-capability-matrix.js +13 -0
  312. package/scripts/spikes/patch-anchor-stability-bench.js +125 -0
  313. package/scripts/spikes/protected-path-manifest.js +20 -0
  314. package/scripts/spikes/skill-auto-invoke-parity.js +292 -0
  315. package/scripts/sync-agent-skills.js +62 -0
  316. package/scripts/sync-agentic-workflow.js +48 -0
  317. package/scripts/sync-utils.sh +3 -0
  318. package/scripts/test-ci-shard.js +251 -0
  319. package/scripts/test-dashboard.js +188 -52
  320. package/scripts/test-full-suite.js +186 -0
  321. package/scripts/test-profile.js +278 -0
  322. package/scripts/test.js +302 -28
  323. package/scripts/validate.js +143 -0
  324. package/scripts/validate.sh +18 -1
  325. package/skills/claim-safety/SKILL.md +102 -0
  326. package/skills/claim-safety/evals/evals.json +46 -0
  327. package/{.github/prompts/dev.prompt.md → skills/dev/SKILL.md} +46 -52
  328. package/skills/dev/evals/evals.json +50 -0
  329. package/skills/hermes-forge/SKILL.md +185 -0
  330. package/skills/hermes-forge/evals/evals.json +46 -0
  331. package/skills/issue-basics/SKILL.md +111 -0
  332. package/skills/issue-basics/evals/evals.json +46 -0
  333. package/skills/kernel/SKILL.md +166 -0
  334. package/skills/kernel/evals/evals.json +50 -0
  335. package/skills/memory/SKILL.md +102 -0
  336. package/skills/parallel-deep-research/SKILL.md +14 -11
  337. package/skills/parallel-deep-research/evals/evals.json +11 -27
  338. package/{.github/prompts/plan.prompt.md → skills/plan/SKILL.md} +134 -159
  339. package/skills/plan/evals/evals.json +42 -0
  340. package/skills/research/SKILL.md +195 -0
  341. package/skills/research/evals/evals.json +42 -0
  342. package/{.github/prompts/review.prompt.md → skills/review/SKILL.md} +98 -62
  343. package/skills/review/evals/evals.json +42 -0
  344. package/skills/rollback/SKILL.md +110 -0
  345. package/skills/rollback/evals/evals.json +46 -0
  346. package/skills/rollback/references/methods.md +204 -0
  347. package/{.cursor/commands/rollback.md → skills/rollback/references/workflow-integration.md} +10 -284
  348. package/skills/shepherd/SKILL.md +66 -0
  349. package/skills/shepherd/evals/evals.json +42 -0
  350. package/skills/ship/SKILL.md +251 -0
  351. package/skills/ship/evals/evals.json +42 -0
  352. package/skills/smith/SKILL.md +142 -0
  353. package/skills/smith/evals/evals.json +46 -0
  354. package/skills/smith/references/autonomy-and-gates.md +94 -0
  355. package/{.github/prompts/sonarcloud.prompt.md → skills/sonarcloud/SKILL.md} +14 -3
  356. package/skills/sonarcloud/evals/evals.json +46 -0
  357. package/skills/sonarcloud-analysis/SKILL.md +18 -13
  358. package/skills/sonarcloud-analysis/evals/evals.json +11 -15
  359. package/skills/status/SKILL.md +102 -0
  360. package/skills/status/evals/evals.json +50 -0
  361. package/skills/triage-ready/SKILL.md +121 -0
  362. package/skills/triage-ready/evals/evals.json +42 -0
  363. package/{.github/prompts/validate.prompt.md → skills/validate/SKILL.md} +52 -29
  364. package/skills/validate/evals/evals.json +42 -0
  365. package/skills/verify/SKILL.md +299 -0
  366. package/skills/verify/evals/evals.json +50 -0
  367. package/.claude/commands/dev.md +0 -345
  368. package/.claude/commands/plan.md +0 -566
  369. package/.claude/commands/premerge.md +0 -186
  370. package/.claude/commands/research.md +0 -42
  371. package/.claude/commands/review.md +0 -451
  372. package/.claude/commands/rollback.md +0 -721
  373. package/.claude/commands/ship.md +0 -213
  374. package/.claude/commands/sonarcloud.md +0 -152
  375. package/.claude/commands/status.md +0 -90
  376. package/.claude/commands/validate.md +0 -288
  377. package/.claude/commands/verify.md +0 -269
  378. package/.claude/rules/workflow.md +0 -121
  379. package/.cline/workflows/dev.md +0 -342
  380. package/.cline/workflows/plan.md +0 -563
  381. package/.cline/workflows/premerge.md +0 -183
  382. package/.cline/workflows/research.md +0 -39
  383. package/.cline/workflows/review.md +0 -448
  384. package/.cline/workflows/rollback.md +0 -718
  385. package/.cline/workflows/ship.md +0 -210
  386. package/.cline/workflows/sonarcloud.md +0 -146
  387. package/.cline/workflows/status.md +0 -87
  388. package/.cline/workflows/validate.md +0 -285
  389. package/.cline/workflows/verify.md +0 -266
  390. package/.codex/config.toml +0 -11
  391. package/.codex/skills/dev/SKILL.md +0 -345
  392. package/.codex/skills/plan/SKILL.md +0 -566
  393. package/.codex/skills/premerge/SKILL.md +0 -186
  394. package/.codex/skills/research/SKILL.md +0 -42
  395. package/.codex/skills/review/SKILL.md +0 -451
  396. package/.codex/skills/rollback/SKILL.md +0 -721
  397. package/.codex/skills/ship/SKILL.md +0 -213
  398. package/.codex/skills/sonarcloud/SKILL.md +0 -149
  399. package/.codex/skills/status/SKILL.md +0 -90
  400. package/.codex/skills/validate/SKILL.md +0 -288
  401. package/.codex/skills/verify/SKILL.md +0 -269
  402. package/.cursor/commands/dev.md +0 -342
  403. package/.cursor/commands/plan.md +0 -563
  404. package/.cursor/commands/premerge.md +0 -183
  405. package/.cursor/commands/research.md +0 -39
  406. package/.cursor/commands/review.md +0 -448
  407. package/.cursor/commands/ship.md +0 -210
  408. package/.cursor/commands/sonarcloud.md +0 -146
  409. package/.cursor/commands/status.md +0 -87
  410. package/.cursor/commands/validate.md +0 -285
  411. package/.cursor/commands/verify.md +0 -266
  412. package/.cursorrules +0 -149
  413. package/.github/prompts/premerge.prompt.md +0 -188
  414. package/.github/prompts/research.prompt.md +0 -44
  415. package/.github/prompts/rollback.prompt.md +0 -723
  416. package/.github/prompts/ship.prompt.md +0 -215
  417. package/.github/prompts/status.prompt.md +0 -92
  418. package/.github/prompts/verify.prompt.md +0 -271
  419. package/.github/workflows/beads-to-github.yml +0 -56
  420. package/.github/workflows/github-to-beads.yml +0 -97
  421. package/.kilocode/workflows/dev.md +0 -346
  422. package/.kilocode/workflows/plan.md +0 -567
  423. package/.kilocode/workflows/premerge.md +0 -187
  424. package/.kilocode/workflows/research.md +0 -43
  425. package/.kilocode/workflows/review.md +0 -452
  426. package/.kilocode/workflows/rollback.md +0 -722
  427. package/.kilocode/workflows/ship.md +0 -214
  428. package/.kilocode/workflows/sonarcloud.md +0 -150
  429. package/.kilocode/workflows/status.md +0 -91
  430. package/.kilocode/workflows/validate.md +0 -289
  431. package/.kilocode/workflows/verify.md +0 -270
  432. package/.opencode/commands/dev.md +0 -345
  433. package/.opencode/commands/plan.md +0 -566
  434. package/.opencode/commands/premerge.md +0 -186
  435. package/.opencode/commands/research.md +0 -42
  436. package/.opencode/commands/review.md +0 -451
  437. package/.opencode/commands/rollback.md +0 -721
  438. package/.opencode/commands/ship.md +0 -213
  439. package/.opencode/commands/sonarcloud.md +0 -149
  440. package/.opencode/commands/status.md +0 -90
  441. package/.opencode/commands/validate.md +0 -288
  442. package/.opencode/commands/verify.md +0 -269
  443. package/.roo/commands/dev.md +0 -346
  444. package/.roo/commands/plan.md +0 -567
  445. package/.roo/commands/premerge.md +0 -187
  446. package/.roo/commands/research.md +0 -43
  447. package/.roo/commands/review.md +0 -452
  448. package/.roo/commands/rollback.md +0 -722
  449. package/.roo/commands/ship.md +0 -214
  450. package/.roo/commands/sonarcloud.md +0 -150
  451. package/.roo/commands/status.md +0 -91
  452. package/.roo/commands/validate.md +0 -289
  453. package/.roo/commands/verify.md +0 -270
  454. package/docs/BEADS_GITHUB_SYNC.md +0 -255
  455. package/docs/GREPTILE_SETUP.md +0 -400
  456. package/docs/MANUAL_REVIEW_GUIDE.md +0 -106
  457. package/docs/SETUP.md +0 -663
  458. package/docs/VALIDATION.md +0 -363
  459. package/lib/agents/cline.plugin.json +0 -29
  460. package/lib/agents/copilot.plugin.json +0 -24
  461. package/lib/agents/kilocode.plugin.json +0 -22
  462. package/lib/agents/opencode.plugin.json +0 -23
  463. package/lib/agents/roo.plugin.json +0 -30
  464. package/lib/beads-health-check.js +0 -143
  465. package/lib/commands/commands-reset.js +0 -147
  466. package/opencode.json +0 -67
  467. package/scripts/beads-context.test.js +0 -567
  468. package/scripts/github-beads-sync/comment.mjs +0 -64
  469. package/scripts/github-beads-sync/config.mjs +0 -148
  470. package/scripts/github-beads-sync/github-api.mjs +0 -131
  471. package/scripts/github-beads-sync/index.mjs +0 -332
  472. package/scripts/github-beads-sync/label-mapper.mjs +0 -54
  473. package/scripts/github-beads-sync/mapping.mjs +0 -78
  474. package/scripts/github-beads-sync/reverse-sync-cli.mjs +0 -31
  475. package/scripts/github-beads-sync/reverse-sync.mjs +0 -138
  476. package/scripts/github-beads-sync/run-bd.mjs +0 -161
  477. package/scripts/github-beads-sync/sanitize.mjs +0 -121
  478. package/scripts/github-beads-sync.config.json +0 -26
  479. package/scripts/sync-commands.js +0 -600
@@ -1,14 +1,35 @@
1
1
  ---
2
2
  name: plan
3
- description: Design intent → research → branch + worktree + task list
4
- tools: []
3
+ description: >
4
+ Forge PLAN stage — first stop when starting a NEW or unscoped feature. Sets up an
5
+ isolated worktree up front, then runs one-question-at-a-time brainstorming for design
6
+ intent, commits a design doc, does technical/OWASP/DRY + codebase research, and produces a
7
+ TDD task list for /dev. Trigger on "let's plan X", "scope a new feature", "brainstorm before we
8
+ build", "write a design doc", "break this into tasks", or "set up a worktree and task list
9
+ before coding". Reach for this even when the ask sounds like only design or only scoping —
10
+ plan owns intent → research → task-list setup as one stage. NOT for driving a feature to a
11
+ merged PR (that is smith), NOT for implementing tasks that already exist (dev), NOT for a
12
+ standalone deep-research pass into an approved design doc (research), NOT for reporting
13
+ where work stands or what is stale (status), and NOT for everyday issue create/list/close or
14
+ picking the next ready issue (issue-basics / triage-ready).
15
+ allowed-tools: Bash, Read, Write, Edit, Grep, Glob
5
16
  ---
6
17
 
7
18
  Plan a feature from scratch: brainstorm design intent, research technical approach, then set up branch, worktree, and a complete task list ready for /dev.
8
19
 
9
20
  # Plan
10
21
 
11
- This command runs in **3 phases**. Each phase ends with a HARD-GATE. Do not skip phases.
22
+ `/plan` is the default planning super-skill. A full invocation runs the three legacy sections below (intent, research, setup/task list), but v3 treats the internal planning work as callable sub-skills:
23
+
24
+ - `plan.intent_capture`
25
+ - `plan.parallel_research`
26
+ - `plan.parallel_critics`
27
+ - `plan.synthesis`
28
+ - `plan.final_lock`
29
+
30
+ Do not assume every invocation must run every sub-skill. Run only the requested/required sub-skill when the user asks for partial planning work, and record skipped nodes as skipped rather than silently deleting them from the graph. External planner artifacts may satisfy `/dev` entry without running `/plan`, per D34, if they provide the required structured task list and acceptance criteria.
31
+
32
+ Planning template behavior is resolved through the runtime graph and `.forge/config.yaml`, not through a separate planner-only config file. Use `forge options why <plan-subskill>`, `forge options diff`, and `forge options lint` to inspect configured planning mode, convergence threshold, critic set, and partial invocation choices.
12
33
 
13
34
  ---
14
35
 
@@ -22,14 +43,15 @@ Before ANY planning work begins:
22
43
  - Tell the user: "You are on '<branch>'. Planning must start from a clean worktree on master.
23
44
  Run: git checkout master — then re-run /plan."
24
45
  3. If on master, create the worktree NOW before asking any questions:
25
- a. bd worktree create .worktrees/<slug> --branch feat/<slug>
46
+ a. forge worktree create <slug> --branch feat/<slug>
26
47
  b. cd .worktrees/<slug>
27
48
  4. Confirm: "Working in isolated worktree: .worktrees/<slug> (branch: feat/<slug>)"
28
49
  5. Create the epic issue and record the stage transition:
29
50
  ```bash
30
- bd create --title="<feature-name>" --type=epic
31
- bd update <id> --status=in_progress
32
- bash scripts/beads-context.sh stage-transition <id> none plan
51
+ forge create --title="<feature-name>" --type=epic
52
+ forge update <id> --status=in_progress
53
+ # Record the none→plan stage transition kernel-natively on the Forge issue.
54
+ forge comment <id> "Stage: none → plan"
33
55
  ```
34
56
  6. ONLY THEN begin Phase 1.
35
57
 
@@ -48,6 +70,8 @@ between parallel features or sessions.
48
70
  /plan <feature-slug>
49
71
  /plan <feature-slug> --strategic # Major architecture change: creates design doc PR before Phase 2
50
72
  /plan <feature-slug> --continue # After --strategic PR is merged: run Phase 2 + 3
73
+ /plan <feature-slug> --only=critics # Partial invocation: run one planning sub-skill and record evidence
74
+ /plan <feature-slug> --only=lock # Partial invocation: lock an already-supported plan
51
75
  ```
52
76
 
53
77
  ---
@@ -59,10 +83,10 @@ Before proceeding to Phase 1, check for cross-developer conflicts:
59
83
 
60
84
  ```bash
61
85
  # Auto-sync to get latest team state
62
- bash scripts/sync-utils.sh auto-sync
86
+ forge sync || true
63
87
 
64
88
  # Check for conflicts with this issue's planned work area
65
- bash scripts/conflict-detect.sh --issue <beads-id>
89
+ bash scripts/conflict-detect.sh --issue <forge-id>
66
90
  ```
67
91
 
68
92
  If exit code 2 (validation error): show error message, abort — do not show conflict prompt.
@@ -71,7 +95,7 @@ If exit code 1 (conflicts found):
71
95
  - Display the conflict output to the developer
72
96
  - Ask: "Other developers are working in overlapping areas. Proceed anyway? (y/n)"
73
97
  - If `n`: exit cleanly, no side effects
74
- - If `y`: log override via `bd comments add <id> "Conflict override: proceeding despite overlap with <conflicting-issues>"`, then continue to Phase 1
98
+ - If `y`: log override via `forge comment <id> "Conflict override: proceeding despite overlap with <conflicting-issues>"`, then continue to Phase 1
75
99
  - Audit: record conflict override per OWASP A09
76
100
 
77
101
  If exit code 0: proceed silently to Phase 1.
@@ -100,7 +124,7 @@ If merge conflicts or unmet dependencies are found:
100
124
  - Display the findings to the developer
101
125
  - Ask: "In-flight PRs have potential conflicts. Proceed with planning anyway? (y/n)"
102
126
  - If `n`: exit cleanly, no side effects
103
- - If `y`: log override via `bd comments add <id> "PR coordination override: proceeding despite in-flight conflicts"`, then continue to Phase 1
127
+ - If `y`: log override via `forge comment <id> "PR coordination override: proceeding despite in-flight conflicts"`, then continue to Phase 1
104
128
 
105
129
  ---
106
130
 
@@ -109,7 +133,7 @@ If merge conflicts or unmet dependencies are found:
109
133
  Before starting planning, verify team identity is mapped:
110
134
 
111
135
  ```bash
112
- bash scripts/forge-team/index.sh verify 2>&1 || true
136
+ forge team verify 2>&1 || true
113
137
  ```
114
138
 
115
139
  If verify reports issues, address them before proceeding (the output will include `FORGE_AGENT_7f3a:PROMPT:` directives with exact commands to run).
@@ -125,11 +149,14 @@ If verify reports issues, address them before proceeding (the output will includ
125
149
  Before exploring context or asking questions, check for potential conflicts with in-flight work:
126
150
 
127
151
  ```bash
128
- # If a Beads issue ID is known (e.g., from /status or bd ready):
129
- bash scripts/dep-guard.sh check-ripple <beads-issue-id>
152
+ # If a Forge issue ID is known (e.g., from /status or forge ready):
153
+ # Advisory only — runs when the dep-guard tooling is present; a failure is non-fatal.
154
+ if [ -f scripts/dep-guard.sh ]; then
155
+ bash scripts/dep-guard.sh check-ripple <forge-issue-id> || echo "dep-guard ripple check skipped (advisory)"
156
+ fi
130
157
 
131
158
  # If no issue exists yet (first-time plan):
132
- bd list --status=open,in_progress
159
+ forge list --status=open,in_progress
133
160
  ```
134
161
 
135
162
  Review the output. If overlaps are detected:
@@ -156,7 +183,7 @@ When `check-ripple` detects overlapping issues AND contract metadata is availabl
156
183
  - **CRITICAL**: Consumer is in an active in_progress issue's task list
157
184
  3. **When uncertain, default to HIGH** — conservative over permissive
158
185
  4. Recommend one action:
159
- - Add dependency (`bd dep add <source> <target>`)
186
+ - Add dependency (`forge issue dep add <source> <target>`)
160
187
  - Coordinate with other issue's developer
161
188
  - Scope down current feature to avoid overlap
162
189
  - Proceed as-is (no real conflict)
@@ -203,7 +230,7 @@ Propose 2-3 concrete approaches with:
203
230
 
204
231
  ### Step 4: Write design doc
205
232
 
206
- Save to `docs/plans/YYYY-MM-DD-<slug>-design.md` with these sections:
233
+ Save to `docs/work/YYYY-MM-DD-<slug>/plan.md` with these sections:
207
234
  - **Feature**: slug, date, status
208
235
  - **Purpose**: what problem it solves
209
236
  - **Success criteria**: measurable, specific
@@ -215,7 +242,7 @@ Save to `docs/plans/YYYY-MM-DD-<slug>-design.md` with these sections:
215
242
 
216
243
  Commit the design doc:
217
244
  ```bash
218
- git add docs/plans/YYYY-MM-DD-<slug>-design.md
245
+ git add docs/work/YYYY-MM-DD-<slug>/plan.md
219
246
  git commit -m "docs: add design doc for <slug>"
220
247
  ```
221
248
 
@@ -228,7 +255,7 @@ After committing the design doc, push to a proposal branch and open PR:
228
255
  git checkout -b feat/<slug>-proposal
229
256
  git push -u origin feat/<slug>-proposal
230
257
  gh pr create --title "Design: <feature-name>" \
231
- --body "Design doc for review. See docs/plans/YYYY-MM-DD-<slug>-design.md"
258
+ --body "Design doc for review. See docs/work/YYYY-MM-DD-<slug>/plan.md"
232
259
  ```
233
260
 
234
261
  **STOP here.** Present the PR URL. Wait for the user to merge the proposal PR.
@@ -239,8 +266,8 @@ After merge, run `/plan <slug> --continue` to proceed to Phase 2 + 3.
239
266
  ```
240
267
  <HARD-GATE: Phase 1 exit>
241
268
  Do NOT begin Phase 2 (web research) until:
242
- 1. User has approved the design in this session
243
- 2. Design doc exists at docs/plans/YYYY-MM-DD-<slug>-design.md
269
+ 1. User has approved the design in this session OR external-planner evidence satisfies the `/dev` entry contract from D34
270
+ 2. Design doc exists at docs/work/YYYY-MM-DD-<slug>/plan.md
244
271
  3. Design doc includes: success criteria, edge cases, out-of-scope, ambiguity policy
245
272
  4. Design doc is committed to git
246
273
  </HARD-GATE>
@@ -252,84 +279,39 @@ Do NOT begin Phase 2 (web research) until:
252
279
 
253
280
  **Goal**: Find HOW to build it — best practices, known issues, security risks, TDD scenarios.
254
281
 
255
- Record the phase transition before starting research:
282
+ Record the phase transition before starting research (kernel-native):
256
283
  ```bash
257
- bash scripts/beads-context.sh stage-transition <id> plan research
284
+ forge comment <id> "Stage: plan research"
258
285
  ```
259
286
 
260
- Run these in parallel:
287
+ Delegate the technical investigation to the **research** skill, which owns this bundle so it
288
+ can be invoked on its own and reused mid-flow by other stages:
261
289
 
262
- ### Web research (parallel-deep-research skill)
263
290
  ```
264
- Skill("parallel-deep-research")
291
+ Skill("research") # run in "Plan bundle" mode for this feature's design doc
265
292
  ```
266
- Search for:
267
- - "[tech stack] [feature] best practices [year]"
268
- - "[library/framework] [feature] implementation patterns"
269
- - "Known issues / gotchas with [approach selected]"
270
-
271
- ### OWASP Top 10 analysis
272
-
273
- For this feature's risk surface, document each relevant OWASP category:
274
- - What the risk is
275
- - Whether it applies to this feature
276
- - What mitigation will be implemented
277
-
278
- ### Codebase exploration (Explore agent)
279
- - Similar existing patterns to reuse
280
- - Files this feature will affect
281
- - Existing test infrastructure to leverage
282
-
283
- ### DRY check (mandatory — use actual search tools)
284
-
285
- Before finalizing the approach, run Grep/Glob/Read searches for existing implementations of the planned function or pattern. Do not rely on memory or assumptions — execute the searches.
286
-
287
- ```
288
- Grep(searchTerm) # e.g., the function or concept name
289
- Glob("**/*.js") # narrow to affected file types if needed
290
- Read(matchedFile) # inspect any match in context
291
- ```
292
-
293
- If a match is found:
294
- - Update the design doc's "Approach selected" section to say "extend existing [file/function]" — not "create new".
295
- - Note the existing file path and line number in the design doc.
296
-
297
- If no match is found: proceed. The DRY gate is cleared.
298
-
299
- ### Blast-radius search (mandatory for remove/rename/replace features)
300
-
301
- If this feature involves **removing**, **renaming**, or **replacing** a concept, tool, or dependency:
302
-
303
- 1. Grep the ENTIRE codebase for the thing being removed/renamed:
304
- ```
305
- Grep("<thing-being-removed>") # exact name
306
- Grep("<thing-being-removed>", -i) # case-insensitive variant
307
- Glob("**/*<thing>*") # files named after it
308
- ```
309
-
310
- 2. For EVERY match found:
311
- - Note the file path and line number in the design doc
312
- - Add a cleanup task to the task list (Phase 3)
313
- - Flag matches in unexpected packages or config files explicitly
314
-
315
- 3. Common hiding spots to check:
316
- - `package.json` (scripts, dependencies, description)
317
- - `install.sh` / setup scripts
318
- - CI/CD workflows (`.github/workflows/`)
319
- - Agent config files (`lib/agents/`, `.cursorrules`, etc.)
320
- - Documentation (`docs/`, `README.md`, `AGENTS.md`)
321
- - Import statements and require() calls
322
-
323
- If no removal/rename is involved, this section is skipped.
324
293
 
325
- ### TDD test scenarios
294
+ Hand research the approved approach and the design doc path. It runs the following in parallel
295
+ and appends the results under a `## Technical Research` section in the design doc (not a
296
+ separate file):
326
297
 
327
- Identify at minimum 3 test scenarios:
328
- - Happy path
329
- - Error / failure path
330
- - Edge case from Phase 1
298
+ - **Web research** best practices, implementation patterns, and known gotchas for the chosen
299
+ approach. (For an external market/vendor landscape, research escalates to
300
+ `parallel-deep-research`; code-level questions use WebSearch/Context7.)
301
+ - **OWASP Top 10 analysis** — for each relevant category: the risk, whether it applies, and the
302
+ mitigation to implement.
303
+ - **DRY check** — Grep/Glob/Read for existing implementations; if found, switch "Approach
304
+ selected" to "extend existing <file>:<line>" instead of "create new".
305
+ - **Blast-radius search** (mandatory for remove/rename/replace) — grep the ENTIRE repo (exact +
306
+ case-insensitive + filename glob) and record every hit (including `package.json`, setup
307
+ scripts, `.github/workflows/`, agent config, and docs), adding a cleanup task for each.
308
+ - **Codebase exploration** (Explore agent) — similar patterns to reuse, affected files, and
309
+ test infrastructure to leverage.
310
+ - **TDD test scenarios** — at least 3: happy path, error/failure path, and one Phase-1 edge case.
331
311
 
332
- Append all research findings to the design doc under a `## Technical Research` section (not a separate file).
312
+ If the research skill is not available in the active toolset, run the same bundle inline with
313
+ WebSearch/WebFetch, Grep/Glob/Read, and the Explore agent — the Phase 2 exit gate below verifies
314
+ the outputs regardless of who produced them.
333
315
 
334
316
  ---
335
317
 
@@ -349,9 +331,9 @@ Do NOT begin Phase 3 (setup) until:
349
331
 
350
332
  **Goal**: Create branch, worktree, and a complete task list ready for /dev.
351
333
 
352
- Record the phase transition before starting setup:
334
+ Record the phase transition before starting setup (kernel-native):
353
335
  ```bash
354
- bash scripts/beads-context.sh stage-transition <id> research setup
336
+ forge comment <id> "Stage: research setup"
355
337
  ```
356
338
 
357
339
  ### Step 1: Link child issues to the epic
@@ -359,7 +341,7 @@ bash scripts/beads-context.sh stage-transition <id> research setup
359
341
  The epic was created in the Entry HARD-GATE (Phase 1 entry). If this feature requires child issues (sub-tasks tracked separately), create them now and link to the epic:
360
342
 
361
343
  ```bash
362
- bd create --title="<sub-task-name>" --type=feature --parent=<epic-id>
344
+ forge create --title="<sub-task-name>" --type=feature --parent=<epic-id>
363
345
  ```
364
346
 
365
347
  ### Step 2: Branch + worktree
@@ -377,9 +359,9 @@ else
377
359
  # Step 2b: Verify .worktrees/ is gitignored — add if missing
378
360
  git check-ignore -v .worktrees/ || echo ".worktrees/" >> .gitignore
379
361
 
380
- # Step 2c: Create a Beads-aware worktree rooted on master
362
+ # Step 2c: Create an isolated worktree rooted on master
381
363
  git checkout master
382
- bd worktree create .worktrees/<slug> --branch feat/<slug>
364
+ forge worktree create <slug> --branch feat/<slug>
383
365
  cd .worktrees/<slug>
384
366
  fi
385
367
  ```
@@ -439,53 +421,54 @@ For each task, confirm it maps to a specific requirement, success criterion, or
439
421
 
440
422
  **Before finalizing**: flag any tasks that touch areas not fully specified in the design doc. Present flagged tasks to user for quick clarification before saving.
441
423
 
442
- Save to `docs/plans/YYYY-MM-DD-<slug>-tasks.md`.
424
+ Save to `docs/work/YYYY-MM-DD-<slug>/tasks.md`.
443
425
 
444
- ### Step 5b: Beads context
426
+ ### Step 5b: Issue context (design + acceptance)
445
427
 
446
- After saving the task list, attach design context and acceptance criteria to the Beads issue so downstream stages (`/dev`, `/validate`, `/review`) can retrieve it without re-reading the design doc.
428
+ After saving the task list, attach design context and acceptance criteria to the Forge issue so downstream stages (`/dev`, `/validate`, `/review`) can retrieve it without re-reading the design doc. These are native Kernel issue fields — no separate tracker required.
447
429
 
448
430
  ```bash
449
- # Link design metadata (task count + task file path) to the Beads issue
450
- bash scripts/beads-context.sh set-design <id> <task-count> docs/plans/YYYY-MM-DD-<slug>-tasks.md
431
+ # Link design metadata (task count + task file path) to the Forge issue
432
+ forge update <id> --design "<task-count> tasks | docs/work/YYYY-MM-DD-<slug>/tasks.md"
451
433
 
452
434
  # Record the success criteria from the design doc on the issue
453
- bash scripts/beads-context.sh set-acceptance <id> "<success-criteria from design doc>"
435
+ forge update <id> --acceptance "<success-criteria from design doc>"
454
436
  ```
455
437
 
456
- Both commands must exit with code 0. If either fails, investigate (wrong issue ID? missing script?) before continuing.
438
+ Both commands must exit with code 0. If either fails, investigate (wrong issue ID? bad flag value?) before continuing.
457
439
 
458
- ### Step 5c: Contract extraction and logic-level dependency review
440
+ ### Step 5c: Contract extraction and logic-level dependency review (advisory, optional)
459
441
 
460
- After saving the task list and Beads context, extract and store contract metadata, then run the logic-level Phase 3 dependency review:
442
+ After saving the task list and issue context, extract and store contract metadata, then run the logic-level Phase 3 dependency review. **This step uses the `dep-guard` dependency tooling; on a kernel-only setup it is skipped — it is advisory and never a hard block.**
461
443
 
462
444
  ```bash
463
- # Extract contracts — only call store-contracts if extract succeeds (exit 0)
464
- if bash scripts/dep-guard.sh extract-contracts docs/plans/YYYY-MM-DD-<slug>-tasks.md > /tmp/contracts.txt; then
465
- bash scripts/dep-guard.sh store-contracts <id> "$(cat /tmp/contracts.txt)"
466
- else
467
- echo "No contracts found — skipping store-contracts"
445
+ if [ -f scripts/dep-guard.sh ]; then
446
+ # extract-contracts exits 1 when there simply are no contracts (normal, not an error),
447
+ # so store-contracts only runs when contracts were actually extracted.
448
+ if bash scripts/dep-guard.sh extract-contracts docs/work/YYYY-MM-DD-<slug>/tasks.md > /tmp/contracts.txt; then
449
+ # Contracts found — store them. A real store-contracts failure stays visible (not masked).
450
+ bash scripts/dep-guard.sh store-contracts <id> "$(cat /tmp/contracts.txt)"
451
+ fi
452
+ # check-ripple is advisory (needs the dependency-guard tooling); a failure is non-fatal.
453
+ bash scripts/dep-guard.sh check-ripple <id> || echo "dep-guard ripple check skipped (advisory)"
468
454
  fi
469
-
470
- # Re-run ripple check using Beads JSON + logic-level analysis
471
- bash scripts/dep-guard.sh check-ripple <id>
472
455
  ```
473
456
 
474
457
  `extract-contracts` exits 1 when no contracts are found (not an error — just nothing to store). `store-contracts` must exit 0 if called.
475
458
 
476
- `check-ripple` is now advisory but logic-aware. It should:
477
- - read Beads issue data via JSON
459
+ When available, `check-ripple` is advisory but logic-aware. It should:
460
+ - read the issue data via JSON
478
461
  - analyze import/call-chain, contract, and behavioral dependency signals
479
462
  - show rubric score, confidence, issue pairs, and proposed dependency updates with pros/cons
480
463
  - stop for user approval whenever a dependency mutation is proposed
481
464
 
482
- If the user approves a dependency mutation, apply it explicitly:
465
+ If the user approves a dependency mutation, apply it explicitly (only when the tooling is present):
483
466
 
484
467
  ```bash
485
468
  bash scripts/dep-guard.sh apply-decision <id> <dependent-id> <depends-on-id> "<approval rationale>"
486
469
  ```
487
470
 
488
- That approval step must validate with `bd dep cycles`, show `bd graph`, summarize `bd ready`, and persist the decision via `bd set-state` plus `bd comments`. Beads remains the canonical machine-readable decision record; the plan docs hold only the concise summary.
471
+ That approval step must inspect blockers with `forge issue blocked` (and `forge issue children <epic-id>` for the epic rollup), summarize `forge ready`, and persist the decision via `forge update` plus `forge comment`. The Forge Kernel is the canonical machine-readable decision record; the plan docs hold only the concise summary.
489
472
 
490
473
  ### Step 6: User review
491
474
 
@@ -495,68 +478,60 @@ Present the full task list. Allow the user to reorder, split, or remove tasks.
495
478
 
496
479
  ```
497
480
  <HARD-GATE: /plan exit>
498
- Do NOT proceed to /dev until ALL are confirmed:
481
+ For a full `/plan` handoff only, do NOT hand off from `/plan` to `/dev` until ALL are confirmed:
499
482
  1. git branch --show-current output shows feat/<slug>
500
483
  2. git worktree list shows .worktrees/<slug>
501
484
  3. Baseline tests ran — either passing OR user confirmed to proceed past failures
502
- 4. Beads issue is created with status=in_progress
503
- 5. Task list exists at docs/plans/YYYY-MM-DD-<slug>-tasks.md
485
+ 4. Forge issue is created and in_progress (`forge issue show <id>` confirms status=in_progress)
486
+ 5. Task list exists at docs/work/YYYY-MM-DD-<slug>/tasks.md
504
487
  6. User has confirmed task list is correct
505
- 7. `beads-context.sh set-design` ran successfully (exit code 0)
506
- 8. `beads-context.sh set-acceptance` ran successfully (exit code 0)
507
- 9. `dep-guard.sh store-contracts` ran successfully (exit code 0) — or skipped if no contracts found
508
- 10. `dep-guard.sh check-ripple` ran successfully and any proposed dependency mutation was reviewed with the user before calling `apply-decision`
488
+ 7. Design captured on the Forge issue — `forge update <id> --design ...` ran successfully (exit code 0)
489
+ 8. Acceptance criteria captured on the Forge issue — `forge update <id> --acceptance ...` ran successfully (exit code 0)
490
+ 9. Contract metadata stored via `dep-guard store-contracts` (exit code 0) — or skipped if no contracts found OR the beads-backed dep-guard tooling is unavailable
491
+ 10. `dep-guard check-ripple` reviewed with the user before any `apply-decision` dependency mutation or skipped when the dep-guard tooling is unavailable
492
+
493
+ If `/dev` is entered from an external planner, this `/plan` exit gate is not required. Instead, the external artifact must satisfy the L1 `/dev` entry contract: structured task list, acceptance criteria, and enough design intent for TDD implementation.
494
+
495
+ If only a sub-skill was invoked, do not claim full `/plan` completion. Record that sub-skill's evidence, gate outcome, and skipped graph nodes.
509
496
  </HARD-GATE>
510
497
  ```
511
498
 
512
- After all HARD-GATE items pass, validate context and record the stage transition:
499
+ After all HARD-GATE items pass, confirm issue context and record the stage transition kernel-natively on the Forge issue:
513
500
 
514
501
  ```bash
515
- bash scripts/beads-context.sh validate <id>
516
- bash scripts/beads-context.sh stage-transition <id> plan dev \
517
- --summary "<design approach chosen, task count>" \
518
- --decisions "<key trade-offs resolved during Q&A>" \
519
- --artifacts "docs/plans/YYYY-MM-DD-<slug>-design.md docs/plans/YYYY-MM-DD-<slug>-tasks.md" \
520
- --next "<first dev task focus area>"
502
+ # Confirm the issue carries design + acceptance context.
503
+ forge issue show <id>
504
+
505
+ # Record the plan→dev transition kernel-natively (Stage:/Summary:/Decisions:/Artifacts:/Next: envelope).
506
+ forge comment <id> "Stage: plan complete → ready for dev
507
+ Summary: <design approach chosen, task count>
508
+ Decisions: <key trade-offs resolved during Q&A>
509
+ Artifacts: docs/work/YYYY-MM-DD-<slug>/plan.md docs/work/YYYY-MM-DD-<slug>/tasks.md
510
+ Next: <first dev task focus area>"
521
511
  ```
522
512
 
523
513
  ---
524
514
 
525
- ## Example Output (Phase 3 complete)
526
-
527
- ```
528
- ✓ Phase 1: Design intent captured
529
- - Design doc: docs/plans/<date>-<slug>-design.md
530
- - Approach: <selected approach> (selected over <alternatives>)
531
- - Ambiguity policy: Rubric scoring (>= 80% proceed, < 80% ask)
532
-
533
- ✓ Phase 2: Technical research complete
534
- - OWASP Top 10: <N> risks identified, <N> mitigations planned
535
- - TDD scenarios: <N> identified
536
- - Sources: <N> references
515
+ ## Dynamic Phase 3 Output
537
516
 
538
- Phase 3: Setup complete
539
- - Beads: <issue-id> (in_progress)
540
- - Branch: feat/<slug>
541
- - Worktree: .worktrees/<slug> (baseline: <N>/<N> tests passing)
542
- - Task list: docs/plans/<date>-<slug>-tasks.md (<N> tasks)
517
+ Phase 3 output is generated from the live Forge issue, branch/worktree setup, baseline validation, and task list paths at runtime. It reports the Forge issue, branch, worktree, `docs/work/YYYY-MM-DD-<slug>/plan.md`, and `docs/work/YYYY-MM-DD-<slug>/tasks.md` from the actual run instead of a static example.
543
518
 
544
- ⏸️ Task list ready for review. Confirm to proceed.
519
+ ## Integration with Workflow
545
520
 
546
- After confirming, run: /dev
547
521
  ```
522
+ Utility: /status -> Understand current context before starting
548
523
 
549
- ## Integration with Workflow
524
+ Default template:
525
+ /plan -> Optional default planner; external planners may satisfy /dev entry
526
+ /dev -> Implement each task with subagent-driven TDD and continuous validation
527
+ /ship -> Push + create PR
528
+ /review -> Address GitHub Actions, Greptile, SonarCloud
529
+ /verify -> Post-merge CI check on default branch
550
530
 
551
- ```
552
- Utility: /status → Understand current context before starting
553
- Stage 1: /plan → Design intent → research → branch + worktree + task list (you are here)
554
- Stage 2: /dev → Implement each task with subagent-driven TDD
555
- Stage 3: /validate → Type check, lint, tests, security — all fresh output
556
- Stage 4: /ship → Push + create PR
557
- Stage 5: /review → Address GitHub Actions, Greptile, SonarCloud
558
- Stage 6: /premerge → Update docs, hand off PR to user
559
- Stage 7: /verify → Post-merge CI check on main
531
+ Manual/support surfaces:
532
+ /validate -> Cold-start or recovery validation, not a required stage boundary
533
+
534
+ Pre-merge gate: doc updates + CI-green checkpoint embedded in /ship and /review (not a separate stage).
560
535
  ```
561
536
 
562
537
  ## Tips
@@ -0,0 +1,42 @@
1
+ [
2
+ {
3
+ "query": "I want to build a rate-limiter for our public API — help me nail down the design, then break it into tasks before I write any code.",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Let's kick off the webhook-retry feature: ask me the key decisions one at a time, write it up, and set me up to start developing.",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Scope out adding SSO to the admin dashboard — pin down requirements and edge cases and give me an ordered TDD task list on its own branch.",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Before anyone touches the notification service I want a real plan: a worktree, some research on the approach, and a task list /dev can just run.",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Starting the CSV-export epic today — brainstorm the approach with me and produce a committed design doc plus tasks.",
20
+ "should_trigger": true
21
+ },
22
+ {
23
+ "query": "Grab the highest-priority ready issue and take it all the way to an open PR — plan, build, validate, ship — just pause for my approval before merge.",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "The design doc and task list are already in docs/work; start implementing the first task with RED-GREEN-REFACTOR.",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "The design is approved and written — now go do the deep web and codebase research and append it under the Technical Research section.",
32
+ "should_trigger": false
33
+ },
34
+ {
35
+ "query": "Which stage am I on for the billing branch, and is any of my work going stale?",
36
+ "should_trigger": false
37
+ },
38
+ {
39
+ "query": "Create a bug issue for the broken logout redirect and link it under the auth epic.",
40
+ "should_trigger": false
41
+ }
42
+ ]