forge-workflow 0.0.10 → 0.1.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/.claude/rules/{greptile-review-process.md → review-process.md} +56 -41
  2. package/.claude/scripts/{greptile-resolve.sh → review-resolve.sh} +13 -3
  3. package/.cursor/rules/permissions-guidance.mdc +2 -2
  4. package/.forge/hooks/check-tdd.js +3 -0
  5. package/.forge/hooks/forge-native-hook.js +245 -0
  6. package/.forge/protected-paths.yaml +157 -0
  7. package/AGENTS.md +150 -61
  8. package/CHANGELOG.md +681 -0
  9. package/CLAUDE.md +9 -118
  10. package/QUICKSTART.md +171 -0
  11. package/README.md +271 -363
  12. package/bin/forge-cmd.js +120 -9
  13. package/bin/forge-preflight.js +26 -5
  14. package/bin/forge.js +461 -489
  15. package/docs/INDEX.md +93 -0
  16. package/docs/PROJECT_DESIGN.md +685 -0
  17. package/docs/architecture/index.md +66 -0
  18. package/docs/architecture/notes/README.md +35 -0
  19. package/docs/architecture/subsystems/README.md +46 -0
  20. package/docs/forge/TOOLCHAIN.md +670 -0
  21. package/docs/forge/VALIDATION.md +82 -0
  22. package/docs/{AGENT_INSTALL_PROMPT.md → guides/AGENT_INSTALL_PROMPT.md} +3 -3
  23. package/docs/guides/BEADS_GITHUB_SYNC.md +32 -0
  24. package/docs/{ENHANCED_ONBOARDING.md → guides/ENHANCED_ONBOARDING.md} +16 -12
  25. package/docs/guides/GREPTILE_SETUP.md +46 -0
  26. package/docs/guides/MANUAL_REVIEW_GUIDE.md +58 -0
  27. package/docs/guides/MIGRATION.md +56 -0
  28. package/docs/guides/SETUP.md +118 -0
  29. package/docs/guides/SUPPORT.md +185 -0
  30. package/docs/guides/WORKFLOW_TEMPLATES.md +74 -0
  31. package/docs/guides/memory-backends.md +183 -0
  32. package/docs/reference/ADAPTERS.md +128 -0
  33. package/docs/reference/AGENT_SKILL_PARITY.md +175 -0
  34. package/docs/reference/COMMANDS.md +205 -0
  35. package/docs/reference/DECISION_DRIFT_GUARDS.md +97 -0
  36. package/docs/{EXAMPLES.md → reference/EXAMPLES.md} +7 -5
  37. package/docs/reference/FORGE_KERNEL_STORAGE_MODEL.md +135 -0
  38. package/docs/reference/HERMES_INTEGRATION.md +118 -0
  39. package/docs/reference/INSIGHTS_RECAP.md +63 -0
  40. package/docs/reference/INSTALL.md +164 -0
  41. package/docs/reference/KERNEL_TAXONOMY_VALIDATION.md +161 -0
  42. package/docs/reference/PROTECTED_PATH_MANIFEST.md +25 -0
  43. package/docs/reference/RELEASE.md +68 -0
  44. package/docs/reference/RESEARCH_TEMPLATE.md +292 -0
  45. package/docs/{ROADMAP.md → reference/ROADMAP.md} +12 -9
  46. package/docs/reference/SKILLS.md +35 -0
  47. package/docs/reference/STATUS_BOARD.md +80 -0
  48. package/docs/reference/TEMPLATES.md +106 -0
  49. package/docs/{TOOLCHAIN.md → reference/TOOLCHAIN.md} +62 -47
  50. package/docs/reference/VALIDATION.md +82 -0
  51. package/docs/reference/agent-permissions.md +169 -0
  52. package/docs/reference/beads-to-kernel-migration-ux.md +61 -0
  53. package/docs/reference/control-plane-guarantees.md +125 -0
  54. package/docs/reference/dependency-chain.md +331 -0
  55. package/docs/reference/forge-kernel-issue-command-contract.md +161 -0
  56. package/docs/reference/forge-kernel-schema.md +72 -0
  57. package/docs/reference/kernel-conflict-evaluators.md +27 -0
  58. package/docs/reference/patch-md-format.md +77 -0
  59. package/docs/reference/protected-state-surfaces.md +59 -0
  60. package/docs/reference/shepherd.md +115 -0
  61. package/docs/reference/superpowers-analysis.md +320 -0
  62. package/docs/reference/superpowers-integration-options.md +404 -0
  63. package/docs/reference/test-environment.md +519 -0
  64. package/docs/reference/upgrade-safety.md +59 -0
  65. package/lefthook.yml +18 -0
  66. package/lib/adapter-cli.js +307 -0
  67. package/lib/adapters/beads-issue-adapter.js +127 -0
  68. package/lib/adapters/beads-kernel-compat.js +1042 -0
  69. package/lib/adapters/greptile-review-adapter.js +141 -0
  70. package/lib/adapters/kernel-issue-adapter.js +101 -0
  71. package/lib/adapters/pr-state-adapter.js +484 -0
  72. package/lib/adoption-profiles.js +126 -0
  73. package/lib/agents/README.md +2 -6
  74. package/lib/agents/claude.plugin.json +3 -8
  75. package/lib/agents/codex.plugin.json +9 -1
  76. package/lib/agents/cursor.plugin.json +2 -6
  77. package/lib/agents/hermes.plugin.json +22 -0
  78. package/lib/agents-config.js +39 -1236
  79. package/lib/audit-evidence.js +282 -0
  80. package/lib/beads-setup.js +121 -0
  81. package/lib/beads-sync-scaffold.js +25 -101
  82. package/lib/codex-skills.js +51 -1
  83. package/lib/commands/_issue.js +741 -77
  84. package/lib/commands/_manifest.js +91 -0
  85. package/lib/commands/_registry.js +85 -34
  86. package/lib/commands/_resolve-command-opts.js +261 -0
  87. package/lib/commands/_serve-security.js +270 -0
  88. package/lib/commands/adapter.js +12 -0
  89. package/lib/commands/add.js +118 -0
  90. package/lib/commands/audit.js +70 -0
  91. package/lib/commands/blocked.js +5 -0
  92. package/lib/commands/board.js +64 -0
  93. package/lib/commands/claim.js +21 -2
  94. package/lib/commands/claims.js +7 -0
  95. package/lib/commands/clean.js +485 -75
  96. package/lib/commands/close.js +2 -2
  97. package/lib/commands/comment.js +5 -0
  98. package/lib/commands/control.js +148 -0
  99. package/lib/commands/create.js +2 -2
  100. package/lib/commands/dev.js +185 -7
  101. package/lib/commands/doc-gate.js +336 -0
  102. package/lib/commands/doctor.js +156 -0
  103. package/lib/commands/explain.js +15 -0
  104. package/lib/commands/export.js +237 -0
  105. package/lib/commands/gate.js +192 -0
  106. package/lib/commands/hooks.js +242 -0
  107. package/lib/commands/inbox.js +118 -0
  108. package/lib/commands/init.js +598 -0
  109. package/lib/commands/insights.js +79 -0
  110. package/lib/commands/issue.js +12 -1
  111. package/lib/commands/issues.js +17 -0
  112. package/lib/commands/lint.js +5 -0
  113. package/lib/commands/list.js +2 -2
  114. package/lib/commands/merge.js +312 -0
  115. package/lib/commands/migrate.js +523 -0
  116. package/lib/commands/new.js +12 -0
  117. package/lib/commands/options.js +241 -0
  118. package/lib/commands/orient.js +13 -0
  119. package/lib/commands/orphans.js +5 -0
  120. package/lib/commands/patch.js +67 -0
  121. package/lib/commands/plan.js +436 -24
  122. package/lib/commands/preflight.js +211 -0
  123. package/lib/commands/prime.js +13 -0
  124. package/lib/commands/push.js +69 -2
  125. package/lib/commands/ready.js +2 -2
  126. package/lib/commands/recall.js +116 -0
  127. package/lib/commands/recap.js +61 -0
  128. package/lib/commands/recommend.js +0 -1
  129. package/lib/commands/release.js +91 -0
  130. package/lib/commands/remember.js +74 -0
  131. package/lib/commands/role.js +99 -0
  132. package/lib/commands/serve.js +581 -0
  133. package/lib/commands/setup.js +838 -972
  134. package/lib/commands/shepherd.js +436 -0
  135. package/lib/commands/ship.js +23 -1
  136. package/lib/commands/show.js +2 -2
  137. package/lib/commands/stage.js +192 -0
  138. package/lib/commands/stale.js +5 -0
  139. package/lib/commands/status.js +158 -21
  140. package/lib/commands/sync.js +34 -46
  141. package/lib/commands/team.js +4 -1
  142. package/lib/commands/test.js +43 -27
  143. package/lib/commands/update.js +2 -2
  144. package/lib/commands/upgrade.js +47 -0
  145. package/lib/commands/validate.js +43 -18
  146. package/lib/commands/worktree.js +307 -100
  147. package/lib/config-writer.js +202 -0
  148. package/lib/control-plane.js +236 -0
  149. package/lib/core/runtime-graph.js +946 -0
  150. package/lib/dep-guard/keyword-ripple.js +2 -2
  151. package/lib/deprecated-sync-cleanup.js +362 -0
  152. package/lib/detect-agent.js +2 -28
  153. package/lib/detect-worktree.js +35 -9
  154. package/lib/doc-gate/declaration.js +177 -0
  155. package/lib/doc-gate/detect.js +289 -0
  156. package/lib/doc-gate/gate.js +375 -0
  157. package/lib/doc-gate/okf-config.js +128 -0
  158. package/lib/doc-gate/okf.js +429 -0
  159. package/lib/docs-command.js +1161 -6
  160. package/lib/forge-issues.js +382 -11
  161. package/lib/forge-lock.js +262 -0
  162. package/lib/gate-events.js +193 -0
  163. package/lib/global-flags.js +74 -0
  164. package/lib/greptile-match.js +7 -63
  165. package/lib/harness-capability-matrix.js +380 -0
  166. package/lib/hook-global-installer.js +347 -0
  167. package/lib/hook-renderer.js +451 -0
  168. package/lib/inbox.js +391 -0
  169. package/lib/insights.js +397 -0
  170. package/lib/issue-adapter.js +156 -0
  171. package/lib/issue-backend.js +145 -0
  172. package/lib/issue-render.js +220 -0
  173. package/lib/kernel/backing-issue.js +305 -0
  174. package/lib/kernel/broker.js +1218 -0
  175. package/lib/kernel/cli-broker-factory.js +130 -0
  176. package/lib/kernel/conflict-signal.js +82 -0
  177. package/lib/kernel/evaluators.js +195 -0
  178. package/lib/kernel/fs-class.js +495 -0
  179. package/lib/kernel/issue-command-contract.js +559 -0
  180. package/lib/kernel/issue-id-resolver.js +186 -0
  181. package/lib/kernel/lease-enforcer.js +158 -0
  182. package/lib/kernel/migrations.js +333 -0
  183. package/lib/kernel/planning-buckets-schema.js +109 -0
  184. package/lib/kernel/projection-jsonl-writer.js +450 -0
  185. package/lib/kernel/readiness-model.js +329 -0
  186. package/lib/kernel/schema.js +356 -0
  187. package/lib/kernel/sqlite-driver.js +2504 -0
  188. package/lib/kernel/taxonomy-validator.js +394 -0
  189. package/lib/lefthook-check.js +3 -2
  190. package/lib/lefthook-wiring.js +413 -0
  191. package/lib/mcp-config-renderer.js +288 -0
  192. package/lib/memory/graphiti-mcp.js +106 -0
  193. package/lib/memory/router.js +387 -0
  194. package/lib/memory/typed-api.js +102 -0
  195. package/lib/memory-digest.js +195 -0
  196. package/lib/merge-rules.js +395 -0
  197. package/lib/migrate-dry-run.js +466 -0
  198. package/lib/orientation.js +863 -0
  199. package/lib/package-manager-remediation.js +103 -0
  200. package/lib/package-root.js +381 -0
  201. package/lib/patch-intent.js +890 -0
  202. package/lib/plugin-catalog.js +3 -4
  203. package/lib/plugin-manager.js +0 -5
  204. package/lib/pr-bundle.js +186 -0
  205. package/lib/pr-monitor/differ.js +195 -0
  206. package/lib/pr-monitor/events.js +0 -0
  207. package/lib/pr-monitor/gather.js +124 -0
  208. package/lib/pr-monitor/journal.js +299 -0
  209. package/lib/pr-monitor/monitor.js +146 -0
  210. package/lib/pr-monitor/render-sticky.js +157 -0
  211. package/lib/pr-monitor/watch-lifecycle.js +95 -0
  212. package/lib/pr-monitor/watch.js +247 -0
  213. package/lib/pr-pull.js +1273 -0
  214. package/lib/pr-shepherd.js +494 -0
  215. package/lib/pr-state-validator.js +59 -0
  216. package/lib/preflight/gates.js +237 -0
  217. package/lib/preflight/runner.js +116 -0
  218. package/lib/project-discovery.js +0 -53
  219. package/lib/project-memory.js +99 -497
  220. package/lib/protected-path-manifest.js +281 -0
  221. package/lib/protected-state-surfaces.js +387 -0
  222. package/lib/release-readiness.js +2089 -0
  223. package/lib/reset.js +59 -45
  224. package/lib/review-adapter.js +68 -0
  225. package/lib/rules-sync.js +260 -0
  226. package/lib/runtime-health.js +241 -20
  227. package/lib/safety-config-renderer.js +268 -0
  228. package/lib/setup-action-log.js +1 -7
  229. package/lib/setup.js +27 -65
  230. package/lib/shell-utils.js +76 -6
  231. package/lib/skills-sync.js +330 -0
  232. package/lib/smart-status/scoring.js +17 -3
  233. package/lib/status/beads-snapshot.js +45 -2
  234. package/lib/status/presenter.js +169 -18
  235. package/lib/status/snapshot.js +186 -0
  236. package/lib/sync-backend.js +202 -0
  237. package/lib/untrusted-content.js +52 -0
  238. package/lib/upgrade-safety.js +199 -0
  239. package/lib/workflow/enforce-stage.js +296 -47
  240. package/lib/workflow/stage-transition.js +115 -0
  241. package/lib/workflow/stages.js +30 -6
  242. package/lib/workflow/state-manager.js +11 -22
  243. package/lib/workflow/state.js +23 -1
  244. package/lib/workflow-profiles.js +17 -5
  245. package/package.json +37 -35
  246. package/rules/documentation.md +19 -0
  247. package/rules/kernel-tracking.md +26 -0
  248. package/rules/security.md +22 -0
  249. package/rules/tdd.md +20 -0
  250. package/rules/workflow.md +27 -0
  251. package/scripts/auto-backing-issue.js +47 -0
  252. package/scripts/beads-context.sh +81 -57
  253. package/scripts/beads-upgrade-smoke.sh +24 -3
  254. package/scripts/bootstrap-windows-tools.sh +78 -0
  255. package/scripts/branch-protection.js +2 -3
  256. package/scripts/check-agents.js +34 -137
  257. package/scripts/commitlint.js +3 -1
  258. package/scripts/conflict-detect.sh +3 -0
  259. package/scripts/dep-guard.sh +22 -3
  260. package/scripts/file-index.sh +3 -0
  261. package/scripts/forge-team/lib/claim.sh +34 -18
  262. package/scripts/forge-team/lib/dashboard.sh +61 -86
  263. package/scripts/forge-team/lib/epic.sh +99 -263
  264. package/scripts/forge-team/lib/hooks.sh +26 -28
  265. package/scripts/forge-team/lib/identity.sh +4 -4
  266. package/scripts/forge-team/lib/sync-github.sh +49 -84
  267. package/scripts/forge-team/lib/verify.sh +93 -83
  268. package/scripts/forge-team/lib/workload.sh +41 -65
  269. package/scripts/forge-team/tests/claim.test.sh +25 -19
  270. package/scripts/forge-team/tests/dashboard.test.sh +31 -46
  271. package/scripts/forge-team/tests/epic.test.sh +52 -71
  272. package/scripts/forge-team/tests/hooks.test.sh +38 -50
  273. package/scripts/forge-team/tests/identity.test.sh +3 -3
  274. package/scripts/forge-team/tests/integration.test.sh +44 -66
  275. package/scripts/forge-team/tests/sync-github.test.sh +50 -83
  276. package/scripts/forge-team/tests/verify.test.sh +37 -46
  277. package/scripts/forge-team/tests/workflow-integration.test.sh +4 -4
  278. package/scripts/forge-team/tests/workload.test.sh +32 -66
  279. package/scripts/gen-command-manifest.js +153 -0
  280. package/scripts/gen-embedded-assets.mjs +129 -0
  281. package/scripts/install.ps1 +139 -0
  282. package/scripts/install.sh +268 -0
  283. package/scripts/lib/release-asset.mjs +84 -0
  284. package/scripts/parity-check.mjs +145 -0
  285. package/scripts/parity-check.test.mjs +58 -0
  286. package/scripts/pin-agentic-workflow-images.js +112 -0
  287. package/scripts/pr-coordinator.sh +3 -0
  288. package/scripts/preflight-sonar.eslint.config.mjs +44 -0
  289. package/scripts/preflight.sh +21 -94
  290. package/scripts/protected-state-check.js +104 -0
  291. package/scripts/smart-status.sh +60 -57
  292. package/scripts/spikes/config-race-bench.js +111 -0
  293. package/scripts/spikes/harness-capability-matrix.js +13 -0
  294. package/scripts/spikes/patch-anchor-stability-bench.js +125 -0
  295. package/scripts/spikes/protected-path-manifest.js +20 -0
  296. package/scripts/spikes/skill-auto-invoke-parity.js +292 -0
  297. package/scripts/sync-agent-skills.js +62 -0
  298. package/scripts/sync-utils.sh +3 -0
  299. package/scripts/test-ci-shard.js +13 -6
  300. package/scripts/test.js +95 -12
  301. package/skills/claim-safety/SKILL.md +102 -0
  302. package/skills/claim-safety/evals/evals.json +46 -0
  303. package/{.github/prompts/dev.prompt.md → skills/dev/SKILL.md} +44 -50
  304. package/skills/dev/evals/evals.json +50 -0
  305. package/skills/hermes-forge/SKILL.md +185 -0
  306. package/skills/hermes-forge/evals/evals.json +46 -0
  307. package/skills/issue-basics/SKILL.md +111 -0
  308. package/skills/issue-basics/evals/evals.json +46 -0
  309. package/skills/kernel/SKILL.md +166 -0
  310. package/skills/kernel/evals/evals.json +50 -0
  311. package/skills/memory/SKILL.md +102 -0
  312. package/skills/parallel-deep-research/SKILL.md +14 -11
  313. package/skills/parallel-deep-research/evals/evals.json +11 -27
  314. package/{.github/prompts/plan.prompt.md → skills/plan/SKILL.md} +132 -157
  315. package/skills/plan/evals/evals.json +42 -0
  316. package/skills/research/SKILL.md +195 -0
  317. package/skills/research/evals/evals.json +42 -0
  318. package/{.github/prompts/review.prompt.md → skills/review/SKILL.md} +98 -62
  319. package/skills/review/evals/evals.json +42 -0
  320. package/skills/rollback/SKILL.md +110 -0
  321. package/skills/rollback/evals/evals.json +46 -0
  322. package/skills/rollback/references/methods.md +204 -0
  323. package/{.cursor/commands/rollback.md → skills/rollback/references/workflow-integration.md} +10 -284
  324. package/skills/shepherd/SKILL.md +66 -0
  325. package/skills/shepherd/evals/evals.json +42 -0
  326. package/{.github/prompts/ship.prompt.md → skills/ship/SKILL.md} +81 -45
  327. package/skills/ship/evals/evals.json +42 -0
  328. package/skills/smith/SKILL.md +142 -0
  329. package/skills/smith/evals/evals.json +46 -0
  330. package/skills/smith/references/autonomy-and-gates.md +94 -0
  331. package/{.github/prompts/sonarcloud.prompt.md → skills/sonarcloud/SKILL.md} +14 -3
  332. package/skills/sonarcloud/evals/evals.json +46 -0
  333. package/skills/sonarcloud-analysis/SKILL.md +18 -13
  334. package/skills/sonarcloud-analysis/evals/evals.json +11 -15
  335. package/{.github/prompts/status.prompt.md → skills/status/SKILL.md} +20 -10
  336. package/skills/status/evals/evals.json +50 -0
  337. package/skills/triage-ready/SKILL.md +121 -0
  338. package/skills/triage-ready/evals/evals.json +42 -0
  339. package/{.github/prompts/validate.prompt.md → skills/validate/SKILL.md} +52 -29
  340. package/skills/validate/evals/evals.json +42 -0
  341. package/skills/verify/SKILL.md +299 -0
  342. package/skills/verify/evals/evals.json +50 -0
  343. package/.claude/commands/dev.md +0 -345
  344. package/.claude/commands/plan.md +0 -566
  345. package/.claude/commands/premerge.md +0 -186
  346. package/.claude/commands/research.md +0 -42
  347. package/.claude/commands/review.md +0 -451
  348. package/.claude/commands/rollback.md +0 -721
  349. package/.claude/commands/ship.md +0 -213
  350. package/.claude/commands/sonarcloud.md +0 -152
  351. package/.claude/commands/status.md +0 -90
  352. package/.claude/commands/validate.md +0 -288
  353. package/.claude/commands/verify.md +0 -269
  354. package/.claude/rules/workflow.md +0 -121
  355. package/.cline/workflows/dev.md +0 -342
  356. package/.cline/workflows/plan.md +0 -563
  357. package/.cline/workflows/premerge.md +0 -183
  358. package/.cline/workflows/research.md +0 -39
  359. package/.cline/workflows/review.md +0 -448
  360. package/.cline/workflows/rollback.md +0 -718
  361. package/.cline/workflows/ship.md +0 -210
  362. package/.cline/workflows/sonarcloud.md +0 -146
  363. package/.cline/workflows/status.md +0 -87
  364. package/.cline/workflows/validate.md +0 -285
  365. package/.cline/workflows/verify.md +0 -266
  366. package/.codex/config.toml +0 -11
  367. package/.codex/skills/dev/SKILL.md +0 -345
  368. package/.codex/skills/plan/SKILL.md +0 -566
  369. package/.codex/skills/premerge/SKILL.md +0 -186
  370. package/.codex/skills/research/SKILL.md +0 -42
  371. package/.codex/skills/review/SKILL.md +0 -451
  372. package/.codex/skills/rollback/SKILL.md +0 -721
  373. package/.codex/skills/ship/SKILL.md +0 -213
  374. package/.codex/skills/sonarcloud/SKILL.md +0 -149
  375. package/.codex/skills/status/SKILL.md +0 -90
  376. package/.codex/skills/validate/SKILL.md +0 -288
  377. package/.codex/skills/verify/SKILL.md +0 -269
  378. package/.cursor/commands/dev.md +0 -342
  379. package/.cursor/commands/plan.md +0 -563
  380. package/.cursor/commands/premerge.md +0 -183
  381. package/.cursor/commands/research.md +0 -39
  382. package/.cursor/commands/review.md +0 -448
  383. package/.cursor/commands/ship.md +0 -210
  384. package/.cursor/commands/sonarcloud.md +0 -146
  385. package/.cursor/commands/status.md +0 -87
  386. package/.cursor/commands/validate.md +0 -285
  387. package/.cursor/commands/verify.md +0 -266
  388. package/.cursorrules +0 -149
  389. package/.github/prompts/premerge.prompt.md +0 -188
  390. package/.github/prompts/research.prompt.md +0 -44
  391. package/.github/prompts/rollback.prompt.md +0 -723
  392. package/.github/prompts/verify.prompt.md +0 -271
  393. package/.github/workflows/beads-to-github.yml +0 -89
  394. package/.github/workflows/github-to-beads.yml +0 -100
  395. package/.kilocode/workflows/dev.md +0 -346
  396. package/.kilocode/workflows/plan.md +0 -567
  397. package/.kilocode/workflows/premerge.md +0 -187
  398. package/.kilocode/workflows/research.md +0 -43
  399. package/.kilocode/workflows/review.md +0 -452
  400. package/.kilocode/workflows/rollback.md +0 -722
  401. package/.kilocode/workflows/ship.md +0 -214
  402. package/.kilocode/workflows/sonarcloud.md +0 -150
  403. package/.kilocode/workflows/status.md +0 -91
  404. package/.kilocode/workflows/validate.md +0 -289
  405. package/.kilocode/workflows/verify.md +0 -270
  406. package/.opencode/commands/dev.md +0 -345
  407. package/.opencode/commands/plan.md +0 -566
  408. package/.opencode/commands/premerge.md +0 -186
  409. package/.opencode/commands/research.md +0 -42
  410. package/.opencode/commands/review.md +0 -451
  411. package/.opencode/commands/rollback.md +0 -721
  412. package/.opencode/commands/ship.md +0 -213
  413. package/.opencode/commands/sonarcloud.md +0 -149
  414. package/.opencode/commands/status.md +0 -90
  415. package/.opencode/commands/validate.md +0 -288
  416. package/.opencode/commands/verify.md +0 -269
  417. package/.roo/commands/dev.md +0 -346
  418. package/.roo/commands/plan.md +0 -567
  419. package/.roo/commands/premerge.md +0 -187
  420. package/.roo/commands/research.md +0 -43
  421. package/.roo/commands/review.md +0 -452
  422. package/.roo/commands/rollback.md +0 -722
  423. package/.roo/commands/ship.md +0 -214
  424. package/.roo/commands/sonarcloud.md +0 -150
  425. package/.roo/commands/status.md +0 -91
  426. package/.roo/commands/validate.md +0 -289
  427. package/.roo/commands/verify.md +0 -270
  428. package/docs/BEADS_GITHUB_SYNC.md +0 -281
  429. package/docs/GREPTILE_SETUP.md +0 -400
  430. package/docs/MANUAL_REVIEW_GUIDE.md +0 -106
  431. package/docs/SETUP.md +0 -663
  432. package/docs/VALIDATION.md +0 -363
  433. package/lib/agents/cline.plugin.json +0 -29
  434. package/lib/agents/copilot.plugin.json +0 -24
  435. package/lib/agents/kilocode.plugin.json +0 -22
  436. package/lib/agents/opencode.plugin.json +0 -23
  437. package/lib/agents/roo.plugin.json +0 -30
  438. package/lib/beads-bootstrap.js +0 -225
  439. package/lib/beads-health-check.js +0 -188
  440. package/lib/commands/commands-reset.js +0 -147
  441. package/opencode.json +0 -67
  442. package/scripts/beads-context.test.js +0 -584
  443. package/scripts/github-beads-sync/comment.mjs +0 -64
  444. package/scripts/github-beads-sync/config.mjs +0 -148
  445. package/scripts/github-beads-sync/github-api.mjs +0 -131
  446. package/scripts/github-beads-sync/index.mjs +0 -356
  447. package/scripts/github-beads-sync/label-mapper.mjs +0 -54
  448. package/scripts/github-beads-sync/mapping.mjs +0 -132
  449. package/scripts/github-beads-sync/reverse-sync-cli.mjs +0 -31
  450. package/scripts/github-beads-sync/reverse-sync.mjs +0 -162
  451. package/scripts/github-beads-sync/run-bd.mjs +0 -161
  452. package/scripts/github-beads-sync/sanitize.mjs +0 -121
  453. package/scripts/github-beads-sync.config.json +0 -26
  454. package/scripts/sync-commands.js +0 -600
@@ -1,214 +0,0 @@
1
- ---
2
- description: Create PR with comprehensive documentation
3
- mode: code
4
- ---
5
-
6
- Push code and create a pull request with full context and documentation links.
7
-
8
- # Ship
9
-
10
- This command creates a PR after validation passes.
11
-
12
- ## Usage
13
-
14
- ```bash
15
- /ship
16
- ```
17
-
18
- ```
19
- <HARD-GATE: /ship entry>
20
- Do NOT create PR until:
21
- 1. /validate was run in this session with all four outputs shown (type, lint, tests, security)
22
- 2. All checks confirmed passing — not assumed, not "was passing earlier"
23
- 3. Beads issue is in_progress
24
- 4. git branch --show-current output is NOT main or master
25
- </HARD-GATE>
26
- ```
27
-
28
- ## What This Command Does
29
-
30
- ### Step 1: Verify /validate Passed
31
- Ensure all four validation checks completed successfully with fresh output in this session.
32
-
33
- ### Step 2: Freshness Check — Is Branch Still Current?
34
-
35
- Even though /validate rebased onto the base branch, time may have passed since then (user reviewed design doc, took a break, etc.). This lightweight check catches staleness before pushing.
36
-
37
- ```bash
38
- BASE=$(git remote show origin 2>/dev/null | grep 'HEAD branch' | awk '{print $NF}')
39
- if [ -z "$BASE" ] || [ "$BASE" = "(unknown)" ]; then BASE="master"; fi
40
- git fetch origin "$BASE" || { echo "✗ Fetch failed — cannot verify freshness"; exit 1; }
41
- BEHIND=$(git rev-list --count HEAD..origin/"$BASE")
42
- ```
43
-
44
- - If `BEHIND > 0`: **STOP**. Print: "$BASE has advanced since /validate ($BEHIND new commits). Run /validate again to rebase and re-check."
45
- - If `BEHIND = 0`: Continue to push.
46
- - If fetch fails: the `|| { ...; exit 1; }` guard catches this — **STOP**. Do NOT push without confirming freshness.
47
-
48
- This is NOT a full rebase — just a check. The rebase happens in /validate where the full test suite runs afterward.
49
-
50
- ### Parallel PR coordination (soft block)
51
-
52
- Before creating the PR, check merge readiness:
53
-
54
- ```bash
55
- # Run merge simulation against base branch
56
- bash scripts/pr-coordinator.sh merge-sim "$(git branch --show-current)" 2>&1
57
-
58
- # Show recommended merge order
59
- bash scripts/pr-coordinator.sh merge-order 2>&1 || true
60
-
61
- # Auto-label the PR after creation (called after gh pr create below)
62
- # bash scripts/pr-coordinator.sh auto-label <issue-id>
63
- ```
64
-
65
- If merge simulation finds conflicts:
66
- - Display conflicted files
67
- - Ask: "Merge conflicts detected with base branch. These PRs should merge first: [list]. Proceed with PR creation anyway? (y/n)"
68
- - If `n`: exit cleanly
69
- - If `y`: log override via `bd comments add <id> "Ship override: creating PR despite merge conflicts"`, then continue
70
-
71
- After PR creation completes:
72
- ```bash
73
- # Auto-label the newly created PR
74
- bash scripts/pr-coordinator.sh auto-label <issue-id>
75
-
76
- # Check for stale worktrees (informational)
77
- bash scripts/pr-coordinator.sh stale-worktrees 2>&1 || true
78
- ```
79
-
80
- ### Step 3: Update Beads
81
- ```bash
82
- bd update <id> --status done
83
- bd sync
84
- ```
85
-
86
- ### Step 4: Push Branch
87
-
88
- Use `--force-with-lease` because `/validate` may have rebased the branch, rewriting history. This is safe: it only forces the push if the remote branch hasn't been updated by someone else since the last fetch.
89
-
90
- ```bash
91
- git push --force-with-lease -u origin <branch-name>
92
- ```
93
-
94
- ### Step 5: Create PR Using Project's PR Template
95
-
96
- **CRITICAL**: Always use the project's own PR template. Never use a hardcoded body.
97
-
98
- **Step 5a: Locate the PR template**
99
-
100
- Check for a PR template in the project (in order of precedence):
101
- ```bash
102
- # Check standard locations
103
- PR_TEMPLATE=""
104
- for path in .github/pull_request_template.md .github/PULL_REQUEST_TEMPLATE.md docs/pull_request_template.md pull_request_template.md; do
105
- if [ -f "$path" ]; then
106
- PR_TEMPLATE="$path"
107
- break
108
- fi
109
- done
110
- ```
111
-
112
- **Step 5b: Read and populate the template**
113
-
114
- If a PR template exists:
115
- 1. **Read the template file** using the Read tool
116
- 2. **Fill in every section** with actual data from the current PR context:
117
- - Replace HTML comments (`<!-- ... -->`) with real content
118
- - Check applicable checkboxes (`- [x]`)
119
- - Fill in beads issue IDs (replace `beads-xxx` with actual ID)
120
- - Fill in test results, validation status, and other concrete data
121
- - Reference the design doc: `docs/plans/YYYY-MM-DD-<slug>-design.md`
122
- 3. **Do NOT remove any sections** — fill them all, even if "N/A"
123
- 4. **Do NOT restructure the template** — keep the project's chosen format
124
-
125
- If no PR template exists, use this minimal fallback:
126
- ```
127
- ## Summary
128
- [1-3 sentences: what this PR does and why]
129
-
130
- ## Changes
131
- [Bulleted list of key changes]
132
-
133
- ## Testing
134
- [How it was tested, test results]
135
-
136
- ## Beads
137
- Closes beads-xxx
138
-
139
- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
140
- ```
141
-
142
- **Step 5c: Create the PR**
143
-
144
- ```bash
145
- gh pr create --title "<type>: <concise description>" --body "<populated-template-content>"
146
- ```
147
-
148
- Rules for the PR body:
149
- - **Use the project's template structure** — never substitute your own format
150
- - **Fill in concrete data** — commit counts, test results, actual file paths, real beads IDs
151
- - **Check applicable checkboxes** — `[x]` for items that apply, `[ ]` for items that don't
152
- - **Include "Closes beads-xxx"** in the Beads section (required for auto-close in /verify)
153
-
154
- ### Step 6: Validate Context and Record Stage Transition
155
- ```bash
156
- bash scripts/beads-context.sh validate <id>
157
- bash scripts/beads-context.sh stage-transition <id> ship review \
158
- --summary "<PR created, checks pending>" \
159
- --decisions "<template sections filled, beads linked>" \
160
- --artifacts "<PR URL, branch name>" \
161
- --next "<review focus areas>"
162
- ```
163
-
164
- ### Team sync after PR
165
-
166
- After PR is created, sync issue state to GitHub and verify 1:1 mapping:
167
-
168
- ```bash
169
- # Sync issue state to GitHub
170
- forge team sync 2>&1 || true
171
-
172
- # Verify 1:1 mapping
173
- forge team verify 2>&1 || true
174
- ```
175
-
176
- ## Example Output
177
-
178
- ```
179
- ✓ Validation: /validate passed (all 4 checks — fresh output confirmed)
180
- ✓ Freshness: Branch is up-to-date with master
181
- ✓ Beads: Marked done & synced (forge-xyz)
182
- ✓ Pushed: feat/stripe-billing
183
- ✓ PR created: https://github.com/.../pull/123
184
- - PR body: Problem → Root Cause → Fix → Value (narrative format)
185
- - Beads linked: forge-xyz
186
- - Implementation details in collapsible section
187
-
188
- ⏸️ PR created, checks started (Greptile, SonarCloud, GitHub Actions)
189
- Poll for up to 60 seconds. If checks are still pending, stop here.
190
-
191
- Next: /review <pr-number> (when automated checks complete or new feedback appears)
192
- ```
193
-
194
- ## Integration with Workflow
195
-
196
- ```
197
- Utility: /status → Understand current context before starting
198
- Stage 1: /plan → Design intent → research → branch + worktree + task list
199
- Stage 2: /dev → Implement each task with subagent-driven TDD
200
- Stage 3: /validate → Type check, lint, tests, security — all fresh output
201
- Stage 4: /ship → Push + create PR (you are here)
202
- Stage 5: /review → Address GitHub Actions, Greptile, SonarCloud
203
- Stage 6: /premerge → Update docs, hand off PR to user
204
- Stage 7: /verify → Post-merge CI check on main
205
- ```
206
-
207
- ## Tips
208
-
209
- - **Use the project's PR template**: Always read `.github/pull_request_template.md` (or equivalent) and populate it — never substitute your own format
210
- - **Fill every section**: Even if "N/A" — empty/missing sections cause review friction
211
- - **Include "Closes beads-xxx"**: Required for auto-close in /verify
212
- - **Concrete data only**: Test counts, file paths, commit SHAs — not placeholder text
213
- - **Poll briefly, then stop**: Check PR status for up to 60 seconds, then hand off if checks are still pending
214
- - **NO auto-merge**: Always wait for /review phase
@@ -1,150 +0,0 @@
1
- ---
2
- description: Pull issues, metrics, quality gates, and analysis data from SonarCloud
3
- mode: code
4
- ---
5
-
6
- # SonarCloud Query Command
7
-
8
- Pull code quality data from SonarCloud. Requires `SONARCLOUD_TOKEN` environment variable.
9
-
10
- ## Arguments
11
-
12
- - `$ARGUMENTS` - Query type and parameters
13
-
14
- ## Query Types
15
-
16
- | Query | Description | Example |
17
- |-------|-------------|---------|
18
- | `issues <project>` | Get open issues | `/sonarcloud issues my-project` |
19
- | `metrics <project>` | Get code metrics | `/sonarcloud metrics my-project` |
20
- | `gate <project>` | Quality gate status | `/sonarcloud gate my-project` |
21
- | `health <project>` | Full health report | `/sonarcloud health my-project` |
22
- | `pr <project> <pr#>` | PR analysis | `/sonarcloud pr my-project 123` |
23
- | `hotspots <project>` | Security hotspots | `/sonarcloud hotspots my-project` |
24
- | `history <project>` | Analysis history | `/sonarcloud history my-project` |
25
-
26
- ## Filters (append to query)
27
-
28
- | Filter | Description | Example |
29
- |--------|-------------|---------|
30
- | `--branch <name>` | Filter by branch | `--branch develop` |
31
- | `--severity <levels>` | Filter severity | `--severity BLOCKER,CRITICAL` |
32
- | `--type <types>` | Filter issue type | `--type BUG,VULNERABILITY` |
33
- | `--new-code` | Only new code issues | `--new-code` |
34
-
35
- ## Instructions
36
-
37
- 1. Parse the query from `$ARGUMENTS` to determine:
38
- - Query type (issues, metrics, gate, health, pr, hotspots, history)
39
- - Project key
40
- - Optional filters (branch, severity, type, new-code, etc.)
41
- 2. Check for `SONARCLOUD_TOKEN` environment variable. If not set, inform user.
42
- 3. Check for `SONARCLOUD_ORG` environment variable or ask user for organization key.
43
- 4. Execute the appropriate API call using curl or the TypeScript client at `next-app/src/lib/integrations/sonarcloud.ts`
44
- 5. Format and present results clearly:
45
- - For issues: Group by severity/type, show file, line, message
46
- - For metrics: Show as table with metric name and value
47
- - For quality gate: Show pass/fail with failed conditions
48
- - For health: Comprehensive summary with all data
49
- 6. Offer follow-up actions:
50
- - "Show issues in specific file?"
51
- - "Get more details on a specific issue?"
52
- - "Compare with another branch?"
53
-
54
- ## Example Outputs
55
-
56
- ### Issues Query
57
-
58
- ```
59
- 📋 Open Issues for my-project (branch: main)
60
-
61
- Total: 45 issues
62
-
63
- By Severity:
64
- 🔴 BLOCKER: 2
65
- 🟠 CRITICAL: 5
66
- 🟡 MAJOR: 18
67
- ⚪ MINOR: 15
68
- ⚫ INFO: 5
69
-
70
- By Type:
71
- 🐛 BUG: 8
72
- 🔓 VULNERABILITY: 3
73
- 💩 CODE_SMELL: 34
74
-
75
- Top Issues:
76
- 1. [CRITICAL] src/auth/login.ts:42 - SQL injection vulnerability
77
- 2. [BLOCKER] src/api/users.ts:156 - Null pointer dereference
78
- ...
79
- ```
80
-
81
- ### Metrics Query
82
-
83
- ```
84
- 📊 Metrics for my-project
85
-
86
- | Metric | Value |
87
- |--------|-------|
88
- | Lines of Code | 51,234 |
89
- | Coverage | 78.5% |
90
- | Duplications | 3.2% |
91
- | Bugs | 8 |
92
- | Vulnerabilities | 3 |
93
- | Code Smells | 34 |
94
- | Technical Debt | 4d 2h |
95
- | Maintainability | A |
96
- | Reliability | B |
97
- | Security | A |
98
- ```
99
-
100
- ### Quality Gate Query
101
-
102
- ```
103
- 🚦 Quality Gate: ❌ FAILED
104
-
105
- Failed Conditions:
106
- | Metric | Threshold | Actual |
107
- |--------|-----------|--------|
108
- | Coverage on New Code | ≥ 80% | 65.3% |
109
- | New Bugs | = 0 | 2 |
110
-
111
- Passed Conditions:
112
- | Metric | Threshold | Actual |
113
- |--------|-----------|--------|
114
- | New Vulnerabilities | = 0 | 0 |
115
- | Duplicated Lines | ≤ 3% | 1.2% |
116
- ```
117
-
118
- ## API Reference
119
-
120
- Base URL: `https://sonarcloud.io/api`
121
-
122
- ### Key Endpoints
123
-
124
- ```bash
125
- # Issues
126
- curl -H "Authorization: Bearer $TOKEN" \
127
- "https://sonarcloud.io/api/issues/search?organization=$ORG&componentKeys=$PROJECT&resolved=false"
128
-
129
- # Metrics
130
- curl -H "Authorization: Bearer $TOKEN" \
131
- "https://sonarcloud.io/api/measures/component?component=$PROJECT&metricKeys=bugs,vulnerabilities,coverage"
132
-
133
- # Quality Gate
134
- curl -H "Authorization: Bearer $TOKEN" \
135
- "https://sonarcloud.io/api/qualitygates/project_status?projectKey=$PROJECT"
136
-
137
- # Hotspots
138
- curl -H "Authorization: Bearer $TOKEN" \
139
- "https://sonarcloud.io/api/hotspots/search?projectKey=$PROJECT&status=TO_REVIEW"
140
- ```
141
-
142
- ## Full Skill Reference
143
-
144
- See `skills/sonarcloud-analysis/SKILL.md` for complete API documentation including:
145
-
146
- - All endpoints and parameters
147
- - Response structures
148
- - Pagination handling
149
- - Advanced filtering
150
- - Integration patterns
@@ -1,91 +0,0 @@
1
- ---
2
- description: Check current stage and context
3
- mode: code
4
- ---
5
-
6
- Check where you are in the project and what work is in progress.
7
-
8
- # Status Check
9
-
10
- This command helps you understand the current state of the project before starting new work.
11
-
12
- ## Usage
13
-
14
- ```bash
15
- /status
16
- ```
17
-
18
- ## What This Command Does
19
-
20
- ## Step 0: Sync team state
21
-
22
- ```bash
23
- # Sync team state before showing status
24
- forge sync || true
25
- ```
26
-
27
- ### Step 1: Smart Status (ranked issues with conflict detection)
28
-
29
- ```bash
30
- bash scripts/smart-status.sh
31
- ```
32
- This command dynamically computes and displays all issues ranked by composite score (priority, dependency impact, type, staleness, epic proximity). Output includes active sessions, conflict risk annotations, and grouped categories. No manual querying needed.
33
-
34
- For full context on any issue: `bd show <id>`
35
-
36
- ### Step 1b: Reconcile stale in-progress issues
37
-
38
- Check if any in-progress issues were already merged but not closed (can happen if `/verify` was skipped or backup was restored from stale snapshot):
39
-
40
- ```bash
41
- # Detect default branch dynamically (prefer main over master)
42
- DEFAULT_BRANCH=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/origin/||')
43
- if [ -z "$DEFAULT_BRANCH" ]; then
44
- if git rev-parse --verify main >/dev/null 2>&1; then DEFAULT_BRANCH="main"
45
- elif git rev-parse --verify master >/dev/null 2>&1; then DEFAULT_BRANCH="master"
46
- else echo "ERROR: No main or master branch found — skipping stale reconciliation" >&2; DEFAULT_BRANCH=""; fi
47
- fi
48
-
49
- # For each in_progress issue, check if its PR was already merged
50
- if [ -n "$DEFAULT_BRANCH" ]; then
51
- bd list --status=in_progress --json 2>/dev/null | jq -r '.[].id' | while read id; do
52
- # Search git log for the issue ID in commit messages (fixed-strings for literal match)
53
- if git log --oneline --first-parent "$DEFAULT_BRANCH" --fixed-strings --grep="$id" | grep -q .; then
54
- echo "STALE: $id — found in git history, likely already merged"
55
- fi
56
- done
57
- fi
58
- ```
59
-
60
- If stale issues are found, close them:
61
- ```bash
62
- bd close <id> --force --reason="Already merged — detected during status reconciliation"
63
- ```
64
-
65
- ### Step 2: Review Recent Commits
66
- ```bash
67
- git log --oneline -10
68
- ```
69
-
70
- ### Step 3: Determine Context
71
- - **New feature**: No active work, ready to start fresh
72
- - **Continuing work**: In-progress issues found, resume where left off
73
- - **Review needed**: Work marked complete, needs review/merge
74
-
75
- ### Team context
76
-
77
- Show current developer's active work and team overview:
78
-
79
- ```bash
80
- # Show my active issues
81
- forge team workload --me 2>&1 || true
82
-
83
- # One-line team summary
84
- forge team dashboard 2>&1 | head -5 || true
85
- ```
86
-
87
- ## Next Steps
88
-
89
- - **If starting new work**: Run `/plan <feature-name>`
90
- - **If continuing work**: Resume with appropriate phase command
91
- - **If reviewing**: Run `/review <pr-number>` or `/premerge <pr-number>`