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
@@ -0,0 +1,658 @@
1
+ # Forge Toolchain Reference
2
+
3
+ Complete reference for all tools integrated with the Forge workflow.
4
+
5
+ ## Overview
6
+
7
+ Forge is a local runtime control plane that coordinates several tool surfaces:
8
+
9
+ ```text
10
+ Forge runtime control plane
11
+ - workflow templates and stage skills
12
+ - local project state and protected surfaces
13
+ - kernel-backed issue wrappers and sync (Beads is an opt-out backend)
14
+ - validation, packaging, and release evidence
15
+ - review adapters and external service hooks
16
+ - harness projections for agent-specific commands, prompts, workflows, and skills
17
+ ```
18
+
19
+ The default TDD-first workflow is a core template shipped by Forge. It is not the only runtime primitive. Toolchain docs should describe tools by the surface they support: setup, state, workflow stages, validation, review, release, sync, and recovery.
20
+
21
+ ---
22
+
23
+ ## Shell Model
24
+
25
+ Forge commands and repo scripts run under the shell shown below:
26
+
27
+ | Platform | Shell used by Forge commands and scripts |
28
+ | --- | --- |
29
+ | Windows | Git Bash for helper-backed Forge stage flows |
30
+ | macOS/Linux | Default login shell |
31
+
32
+ Windows gotchas:
33
+
34
+ - Forge runtime health enforces Git Bash on Windows for helper-backed flows and reports `Git Bash is required on Windows for helper-backed flows.` when it is missing.
35
+ - Native PowerShell is still used by some bootstrap paths, such as Beads installation, but it is not the enforced shell for helper-backed stage execution.
36
+ - WSL may be useful for adjacent development tasks, but it is not the Windows shell policy currently enforced by Forge runtime checks.
37
+
38
+ ---
39
+
40
+ ## Beads - Opt-Out Dolt-Backed Issue Backend
41
+
42
+ **Package**: `@beads/bd`
43
+ **Repository**: [github.com/steveyegge/beads](https://github.com/steveyegge/beads)
44
+ **Purpose**: Distributed issue tracking designed for AI coding agents
45
+
46
+ > Forge issue wrappers use the built-in **kernel** backend by default — no `bd` install or `bd init` is required, and a fresh clone can track issues immediately. Beads is an **opt-out** backend selected (precedence, highest first) with `--issue-backend beads`, `FORGE_ISSUE_BACKEND=beads`, or `issueBackend: beads` in `.forge/config.yaml`. The rest of this section applies only when Beads is selected.
47
+
48
+ ### When Beads Is Selected
49
+
50
+ - Forge targets the stable Beads `v1.0.0` release for Beads-backed setup and CI.
51
+ - Routine team sync still goes through `forge sync`.
52
+ - Use `bd` directly for Beads features Forge does not wrap yet, such as `bd init`, `bd comments`, `bd dep`, `bd blocked`, `bd backup`, and `bd dolt *`.
53
+
54
+ ### Install or Update Beads
55
+
56
+ **Recommended**:
57
+ ```bash
58
+ bunx forge setup
59
+ bd --version
60
+ ```
61
+
62
+ **Manual install**:
63
+ ```bash
64
+ # Windows
65
+ irm https://raw.githubusercontent.com/steveyegge/beads/main/install.ps1 | iex
66
+ bd --version
67
+
68
+ # CI / pinned Linux install
69
+ BD_VERSION="1.0.0"
70
+ BD_URL="https://github.com/steveyegge/beads/releases/download/v${BD_VERSION}/beads_${BD_VERSION}_linux_amd64.tar.gz"
71
+ mkdir -p "$HOME/.local/bin"
72
+ curl -fsSL "$BD_URL" | tar -xz -C "$HOME/.local/bin" bd
73
+ chmod +x "$HOME/.local/bin/bd"
74
+ ```
75
+
76
+ Verify the installed CLI before using it:
77
+
78
+ ```bash
79
+ bd --version
80
+ bd doctor
81
+ ```
82
+
83
+ ### Supported Repo Layout
84
+
85
+ Forge treats `.beads/` as the repo-local Beads home directory. `.beads/` is local runtime/export state and is not committed to the repository. `forge setup` writes local Git exclude rules under `.git/info/exclude` so Beads state does not dirty downstream projects.
86
+
87
+ A local initialized checkout may contain:
88
+
89
+ ```text
90
+ .beads/
91
+ ├── config.yaml # local Beads config
92
+ ├── issues.jsonl # local/exported issue data
93
+ ├── metadata.json # local Beads metadata
94
+ ├── team-map.jsonl # local/team projection data
95
+ ├── backup/ # local backup/export state
96
+ ├── hooks/ # local hook shims created by Beads
97
+ └── .gitignore # local ignore guard for runtime files
98
+ ```
99
+
100
+ No `.beads/` files are expected to appear in `git ls-files .beads`. Legacy local database cache files are no longer part of the supported Forge setup instructions. When you need JSONL snapshots for migration verification or CI diffing, generate them explicitly with `bd backup --force` and publish them through the intended sync/projection path, not by committing live `.beads/` runtime files.
101
+
102
+ ### Migrate Legacy SQLite Data
103
+
104
+ Use the repo wrapper instead of hand-editing `.beads/`:
105
+
106
+ ```bash
107
+ bash scripts/beads-migrate-to-dolt.sh
108
+ ```
109
+
110
+ Default paths used by the wrapper:
111
+
112
+ - `--project-root`: current working directory
113
+ - `--legacy-backup-dir`: `.beads/backup`
114
+ - `--snapshot-root`: `.beads-migration-snapshots`
115
+ - `--migrated-dir`: `.beads-migrated`
116
+ - `--export-dir`: `.beads-migrated-export`
117
+
118
+ What the wrapper does:
119
+
120
+ 1. Snapshots the current `.beads/` directory into `.beads-migration-snapshots/<timestamp>/current-beads`.
121
+ 2. Restores the legacy JSONL backup into a fresh migrated workspace.
122
+ 3. Exports a fresh backup snapshot for parity verification.
123
+ 4. Verifies issue IDs, dependency edges, comment IDs, config keys, and record counts.
124
+ 5. Writes `.beads-migrated/migration-manifest.json` on success.
125
+
126
+ rollback behavior:
127
+
128
+ - The wrapper automatically restores the pre-migration `.beads/` snapshot if parity verification fails.
129
+ - If you need to inspect or restore manually, use the timestamped snapshot under `.beads-migration-snapshots/`.
130
+
131
+ See the script help for explicit path overrides:
132
+
133
+ ```bash
134
+ bash scripts/beads-migrate-to-dolt.sh --help
135
+ ```
136
+
137
+ ### Project Memory
138
+
139
+ Forge project memory is a **kernel-backed** read model. `lib/project-memory.js` persists memories in the per-repo Forge Kernel store (the `kernel_memories` table, via the built-in SQLite driver) — it does **not** call `bd`. No Beads install is required for `forge remember` / `forge recall`.
140
+
141
+ `forge remember` / `forge recall` route through this same `kernel_memories` table (via `lib/memory/router.js`), indexed by **FTS5** for token-AND BM25 recall: a `recall` query does full-text matching, and a no-query `recall` returns the newest notes plus a total count (never a full dump). Because the insights engine also writes `kernel_memories`, what it learns is recallable. Any legacy `.forge/memory/notes.jsonl` is imported once on first use, then retired. The opt-in **`graphiti`** backend is **experimental** — its config/doctor checks ship but the runtime write-through emitter is a fast-follow, so selecting it today still writes the local kernel floor. See [docs/guides/memory-backends.md](../guides/memory-backends.md).
142
+
143
+ Typed memory helpers in `lib/memory/typed-api.js` add category and provenance conventions on top of the same kernel store; they do not create a new datastore. The supported categories are:
144
+
145
+ | Category | Key prefix | Durable backend |
146
+ | --- | --- | --- |
147
+ | decisions | `decisions:` | Kernel memory index for canonical docs/work decisions |
148
+ | episodes | `episodes:` | Kernel-backed memory/audit context |
149
+ | skills | `skills:` | Kernel memory index for skill references |
150
+ | state | `state:` | Forge-owned state references |
151
+ | issues | `issues:` | Issue references (`beadsRefs` may cross-link Beads issues when that backend is selected) |
152
+ | audit | `audit:` | Kernel-backed audit references |
153
+ | preferences | `preferences:` | Kernel memory preferences |
154
+
155
+ Every typed write must include provenance fields: `actor`, `reason`, and `source`.
156
+
157
+ ### Post-Upgrade Smoke Verification
158
+
159
+ Run the repo smoke harness after upgrading:
160
+
161
+ ```bash
162
+ bash scripts/beads-upgrade-smoke.sh
163
+ ```
164
+
165
+ The harness records a machine-readable summary at `.artifacts/beads-upgrade-smoke/summary.json` by default and exercises this sequence:
166
+
167
+ 1. `bd create` primary smoke issue
168
+ 2. `bd create` dependent smoke issue
169
+ 3. `bd list --json --limit=0`
170
+ 4. `bd show <id> --json`
171
+ 5. `bd dep add <child> <parent>`
172
+ 6. `bd close <id>` cleanup for both smoke issues
173
+ 7. `bd sync` compatibility check
174
+
175
+ If any command fails, the summary captures `failedStep`, command output, and cleanup state. This is intentional: the harness does not silently substitute a different command for `bd sync`.
176
+
177
+ ### Day-to-Day Commands
178
+
179
+ ```bash
180
+ # Find work
181
+ forge ready
182
+ forge show <id>
183
+ forge claim <id>
184
+
185
+ # Issue operations
186
+ forge create "Title"
187
+ forge list
188
+ forge update <id> --priority 2
189
+ forge close <id>
190
+
191
+ # Direct beads operations
192
+ bd comments add <id> "Progress update"
193
+ bd dep add <child> <parent>
194
+ bd dep cycles
195
+ bd backup --force
196
+ bd dolt status
197
+
198
+ # Routine repo sync
199
+ forge sync
200
+ ```
201
+
202
+ ### Session Workflow
203
+
204
+ ```bash
205
+ # Start of session
206
+ forge ready
207
+ forge show <id>
208
+ forge claim <id>
209
+
210
+ # During work
211
+ bd comments add <id> "Progress update"
212
+ forge update <id> --notes "Found edge case"
213
+
214
+ # End of session
215
+ forge close <id>
216
+ forge sync
217
+ ```
218
+
219
+ ---
220
+
221
+ ## MCP Servers
222
+
223
+ ### Context7 - Library Documentation
224
+
225
+ **Package**: `@upstash/context7-mcp@2` (pin to major version, not `@latest`)
226
+ **Purpose**: Up-to-date documentation and code examples for any programming library
227
+ **Used in**: `/plan` stage (Phase 2 research); any library lookup
228
+
229
+ Context7 provides current documentation that may be more recent than the AI's training data.
230
+
231
+ **Installation**:
232
+
233
+ **Claude Code**: Add to `.mcp.json` in your project root:
234
+
235
+
236
+ ```json
237
+ {
238
+ "mcpServers": {
239
+ "context7": {
240
+ "command": "bunx",
241
+ "args": ["--bun", "@upstash/context7-mcp@2"]
242
+ }
243
+ }
244
+ }
245
+ ```
246
+
247
+ **Cursor**: Check Cursor Settings → MCP Servers for configuration options
248
+
249
+ **Other agents**: If your agent supports MCP, configure using the JSON format above
250
+
251
+ **Usage**:
252
+ ```
253
+ # The AI will automatically use Context7 when you ask about libraries
254
+ "How do I use React Query's useMutation hook?"
255
+ "What's the latest Next.js App Router API?"
256
+ "Show me Supabase RLS policy examples"
257
+ ```
258
+
259
+ **When to use Context7**:
260
+ - Before implementing a library feature
261
+ - When official docs may have changed since AI training
262
+ - To verify API signatures and patterns
263
+ - For current best practices
264
+
265
+ ### grep.app - Code Search
266
+
267
+ **Package**: `@ai-tools-all/grep_app_mcp` (recommended) or `@galprz/grep-mcp`
268
+ **Website**: [grep.app](https://grep.app)
269
+ **Purpose**: Search across 1M+ public GitHub repositories for real-world code examples
270
+ **Used in**: `/plan` stage (Phase 2 research); finding implementation patterns
271
+
272
+ grep.app provides code search across public GitHub repositories to find real-world examples and patterns.
273
+
274
+ **Installation (Claude Code)**:
275
+
276
+ Add to `.mcp.json` in your project root:
277
+
278
+ ```json
279
+ {
280
+ "mcpServers": {
281
+ "context7": {
282
+ "command": "bunx",
283
+ "args": ["--bun", "@upstash/context7-mcp@2"]
284
+ },
285
+ "grep-app": {
286
+ "command": "bunx",
287
+ "args": ["--bun", "@ai-tools-all/grep_app_mcp"]
288
+ }
289
+ }
290
+ }
291
+ ```
292
+
293
+ **Usage**:
294
+ ```
295
+ # The AI will use grep.app when you need real-world examples
296
+ "Find examples of React useEffect cleanup patterns"
297
+ "Show me how others implement JWT authentication in Express"
298
+ "Search for rate limiting implementations in Node.js"
299
+ ```
300
+
301
+ **When to use grep.app**:
302
+
303
+ - Finding real-world implementation examples
304
+ - Discovering coding patterns in production code
305
+ - Validating implementation approaches
306
+ - Learning from open source projects
307
+
308
+ **Context7 vs grep.app**:
309
+
310
+ | Tool | Purpose | Use When |
311
+ |----------------|--------------------------------|-------------------------------------------|
312
+ | **Context7** | Official library documentation | You need API reference, official patterns |
313
+ | **grep.app** | Real code in the wild | You want to see how others solve problems |
314
+
315
+ ---
316
+
317
+ ## External Services
318
+
319
+ ### Parallel AI - Web Research
320
+
321
+ **Website**: [platform.parallel.ai](https://platform.parallel.ai)
322
+ **Used in**: `/plan` stage (Phase 2 research)
323
+
324
+ 4 APIs for research:
325
+ - **Search** - Web search with AI analysis
326
+ - **Extract** - Scrape specific URLs
327
+ - **Task** - Structured data enrichment
328
+ - **Deep Research** - Multi-source analysis
329
+
330
+ ```bash
331
+ # Setup
332
+ # 1. Get key from https://platform.parallel.ai
333
+ # 2. Add to .env.local
334
+ PARALLEL_API_KEY=your-key
335
+
336
+ # Test
337
+ API_KEY=$(grep "^PARALLEL_API_KEY=" .env.local | cut -d= -f2)
338
+ curl -s -X POST "https://api.parallel.ai/v1beta/search" \
339
+ -H "x-api-key: $API_KEY" \
340
+ -H "Content-Type: application/json" \
341
+ -H "parallel-beta: search-extract-2025-10-10" \
342
+ -d '{"objective": "Next.js authentication best practices 2026"}'
343
+ ```
344
+
345
+ ---
346
+
347
+ ## Code Review Tools
348
+
349
+ Choose ONE code review tool based on your needs:
350
+
351
+ | Tool | Pricing | Best For | Setup |
352
+ |------|---------|----------|-------|
353
+ | **GitHub Code Quality** | FREE | All GitHub repos | Built-in, zero setup |
354
+ | **CodeRabbit** | FREE (OSS) | Open source projects | GitHub App |
355
+ | **Greptile** | $99+/mo | Enterprise | API key |
356
+
357
+ ### Option 1: GitHub Code Quality (FREE, Recommended)
358
+
359
+ **Status**: Built-in to GitHub
360
+ **Used in**: `/review` stage
361
+
362
+ Zero setup required - GitHub's code quality features are enabled by default.
363
+
364
+ Features:
365
+ - Automatic code scanning
366
+ - Dependency vulnerability alerts
367
+ - Secret scanning
368
+ - Code navigation
369
+
370
+ ### Option 2: CodeRabbit (FREE for Open Source)
371
+
372
+ **Website**: [coderabbit.ai](https://coderabbit.ai)
373
+ **Used in**: `/review` stage
374
+
375
+ AI-powered code review with deep context understanding.
376
+
377
+ ```bash
378
+ # Setup
379
+ # 1. Go to https://coderabbit.ai
380
+ # 2. Install the GitHub App
381
+ # 3. Enable for your repositories
382
+
383
+ # Configuration (optional)
384
+ # Create .coderabbit.yaml in repo root
385
+ ```
386
+
387
+ ### Option 3: Greptile (Paid - Enterprise)
388
+
389
+ **Website**: [greptile.com](https://greptile.com)
390
+ **Used in**: `/review` stage
391
+
392
+ Enterprise-grade AI code review that understands your codebase.
393
+
394
+ ```bash
395
+ # Setup
396
+ # 1. Get key from https://app.greptile.com
397
+ # 2. Add to .env.local
398
+ GREPTILE_API_KEY=your-key
399
+
400
+ # 3. Index repository (one-time)
401
+ curl -X POST "https://api.greptile.com/v2/repositories" \
402
+ -H "Authorization: Bearer $GREPTILE_API_KEY" \
403
+ -H "Content-Type: application/json" \
404
+ -d '{"remote": "github", "repository": "owner/repo"}'
405
+ ```
406
+
407
+ ---
408
+
409
+ ## Code Quality Tools
410
+
411
+ Choose ONE code quality scanner based on your needs:
412
+
413
+ | Tool | Pricing | Best For | Requirement |
414
+ |------|---------|----------|-------------|
415
+ | **ESLint** | FREE | All projects | Built-in |
416
+ | **SonarCloud** | 50k LoC free | Cloud-first teams | API key |
417
+ | **SonarQube Community** | FREE | Self-hosted, unlimited | Docker |
418
+
419
+ ### Option 1: ESLint Only (FREE, Recommended)
420
+
421
+ **Status**: Built-in
422
+ **Used in**: `/validate` stage
423
+
424
+ No external server required - uses your project's linting configuration.
425
+
426
+ ```bash
427
+ # Already configured via package.json or eslint.config.js
428
+ bun run lint
429
+ ```
430
+
431
+ ### Option 2: SonarCloud (Cloud-Hosted)
432
+
433
+ **Website**: [sonarcloud.io](https://sonarcloud.io)
434
+ **Used in**: `/validate` stage
435
+ **Free Tier**: 50,000 lines of code
436
+
437
+ Static analysis for bugs, vulnerabilities, code smells.
438
+
439
+ ```bash
440
+ # Setup
441
+ # 1. Create project at https://sonarcloud.io
442
+ # 2. Get token from Security settings
443
+ # 3. Add to .env.local
444
+ SONAR_TOKEN=your-token
445
+ SONAR_ORGANIZATION=your-org
446
+ SONAR_PROJECT_KEY=your-project
447
+
448
+ # 4. Create sonar-project.properties
449
+ echo "sonar.organization=$SONAR_ORGANIZATION
450
+ sonar.projectKey=$SONAR_PROJECT_KEY
451
+ sonar.sources=src" > sonar-project.properties
452
+
453
+ # 5. Run analysis
454
+ bunx sonarqube-scanner
455
+ ```
456
+
457
+ ### Option 3: SonarQube Community (Self-Hosted, FREE)
458
+
459
+ **Website**: [sonarqube.org](https://www.sonarsource.com/products/sonarqube/)
460
+ **Used in**: `/validate` stage
461
+ **Pricing**: FREE, unlimited lines of code
462
+
463
+ Self-hosted code quality analysis - no cloud dependency.
464
+
465
+ ```bash
466
+ # Setup with Docker
467
+ docker run -d --name sonarqube \
468
+ -p 9000:9000 \
469
+ sonarqube:community
470
+
471
+ # Access at http://localhost:9000
472
+ # Default credentials: admin/admin
473
+
474
+ # Add to .env.local
475
+ SONARQUBE_URL=http://localhost:9000
476
+ SONARQUBE_TOKEN=your-token # Generate in SonarQube UI
477
+
478
+ # Create sonar-project.properties
479
+ echo "sonar.host.url=$SONARQUBE_URL
480
+ sonar.login=$SONARQUBE_TOKEN
481
+ sonar.projectKey=your-project
482
+ sonar.sources=src" > sonar-project.properties
483
+
484
+ # Run analysis
485
+ bunx sonarqube-scanner
486
+ ```
487
+
488
+ **Docker Compose (Production)**:
489
+ ```yaml
490
+ # docker-compose.yml
491
+ version: '3'
492
+ services:
493
+ sonarqube:
494
+ image: sonarqube:community
495
+ ports:
496
+ - "9000:9000"
497
+ environment:
498
+ - SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true
499
+ volumes:
500
+ - sonarqube_data:/opt/sonarqube/data
501
+ - sonarqube_logs:/opt/sonarqube/logs
502
+
503
+ volumes:
504
+ sonarqube_data:
505
+ sonarqube_logs:
506
+ ```
507
+
508
+ ---
509
+
510
+ ### GitHub CLI - PR Workflow
511
+
512
+ **Installation**: [cli.github.com](https://cli.github.com)
513
+ **Used in**: `/ship` and `/review` stages
514
+
515
+ ```bash
516
+ # Install
517
+ # macOS: brew install gh
518
+ # Windows: winget install GitHub.cli
519
+ # Linux: sudo apt install gh
520
+
521
+ # Authenticate
522
+ gh auth login
523
+
524
+ # Common commands
525
+ gh pr create --title "..." --body "..."
526
+ gh pr view <number>
527
+ gh pr checks <number>
528
+ gh pr merge <number> --squash --delete-branch
529
+ gh issue create --title "..." --body "..."
530
+ ```
531
+
532
+ ---
533
+
534
+ ## Global CLI Tools
535
+
536
+ ### Beads (`bd`) — Minimum Version
537
+
538
+ **Recommended stable version**: `v1.0.0`
539
+ **Check installed version**:
540
+ ```bash
541
+ bd --version
542
+ ```
543
+
544
+ **Install / Update**:
545
+ ```bash
546
+ # Recommended
547
+ bunx forge setup
548
+
549
+ # Windows — use PowerShell installer (npm has EPERM bug)
550
+ irm https://raw.githubusercontent.com/steveyegge/beads/main/install.ps1 | iex
551
+ ```
552
+
553
+ > **Why Forge + Beads?** Forge wraps the supported day-to-day issue workflow
554
+ > (`forge ready`, `forge create`, `forge close`, `forge sync`). The kernel is the
555
+ > default underlying issue store for these commands; Beads is an opt-out backend
556
+ > for initialization, dependencies, comments, and Dolt-backed sync internals when
557
+ > selected. Backend selection precedence (highest first): the `--issue-backend`
558
+ > flag, then `FORGE_ISSUE_BACKEND`, then `.forge/config.yaml` (`issueBackend`),
559
+ > then the kernel default.
560
+
561
+ ---
562
+
563
+ ## Default Workflow Template Mapping
564
+
565
+ This table maps tools to the default workflow template. It is not the complete Forge product model and it is not a requirement that every project use every stage.
566
+
567
+ | Stage | Tools Used |
568
+ |-------|------------|
569
+ | `/status` | `forge ready`, `forge list`, `git status` |
570
+ | `/plan` (Phase 2) | Parallel AI, Context7, grep.app, codebase exploration |
571
+ | `/plan` | `forge create`, `git checkout -b` |
572
+ | `/dev` | Tests, code, `forge update`, `/tasks save` |
573
+ | `/validate` | Type check, lint, tests, SonarCloud |
574
+ | `/ship` | `forge close`, `gh pr create` |
575
+ | `/review` | `gh pr view`, Greptile, SonarCloud |
576
+ | `/verify` | Documentation cross-check |
577
+
578
+ Pre-merge is not a stage. Its work (`forge sync`, doc updates, hand off PR) runs inside the `/ship` and `/review` stages as an embedded documentation-and-handoff gate.
579
+
580
+ ---
581
+
582
+ ## Quick Reference Card
583
+
584
+ ### Beads (Issue Tracking)
585
+
586
+ ```bash
587
+ bd init # Initialize
588
+ forge ready # Find unblocked work
589
+ forge create "Title" # Create issue
590
+ forge show <id> # View details
591
+ forge update <id> --status X # Update status
592
+ bd dep add <a> <b> # a depends on b
593
+ forge close <id> # Complete
594
+ forge sync # Routine repo sync
595
+ bash scripts/beads-migrate-to-dolt.sh
596
+ bash scripts/beads-upgrade-smoke.sh
597
+ ```
598
+
599
+ ### GitHub CLI
600
+
601
+ ```bash
602
+ gh auth login # Authenticate
603
+ gh pr create # Create PR
604
+ gh pr view <n> # View PR
605
+ gh pr checks <n> # Check status
606
+ gh pr merge <n> --squash # Merge
607
+ ```
608
+
609
+ ---
610
+
611
+ ## Troubleshooting
612
+
613
+ ### Beads
614
+
615
+ **"bd: command not found"**
616
+ ```bash
617
+ # macOS / Linux
618
+ bun add -g @beads/bd
619
+ # Or use bunx @beads/bd <command>
620
+
621
+ # Windows — use PowerShell installer
622
+ irm https://raw.githubusercontent.com/steveyegge/beads/main/install.ps1 | iex
623
+ ```
624
+
625
+ **Windows EPERM error during `npm install -g @beads/bd`**
626
+ ```bash
627
+ # npm @beads/bd has a known EPERM bug on Windows (Issue #1031)
628
+ # Use the PowerShell installer instead:
629
+ irm https://raw.githubusercontent.com/steveyegge/beads/main/install.ps1 | iex
630
+ ```
631
+
632
+ **"database locked"**
633
+ ```bash
634
+ forge sync
635
+ ```
636
+
637
+ **Issues not showing after git pull**
638
+ ```bash
639
+ forge sync # Re-syncs Beads state through the Forge wrapper
640
+ ```
641
+
642
+ ### GitHub CLI
643
+
644
+ **"gh: not authenticated"**
645
+ ```bash
646
+ gh auth login
647
+ gh auth status
648
+ ```
649
+
650
+ ---
651
+
652
+ ## Resources
653
+
654
+ - **Beads**: [github.com/steveyegge/beads](https://github.com/steveyegge/beads)
655
+ - **Parallel AI**: [platform.parallel.ai](https://platform.parallel.ai)
656
+ - **Greptile**: [greptile.com](https://greptile.com)
657
+ - **SonarCloud**: [sonarcloud.io](https://sonarcloud.io)
658
+ - **GitHub CLI**: [cli.github.com](https://cli.github.com)