forge-workflow 0.0.10 → 0.1.0-beta.3

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