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
@@ -0,0 +1,157 @@
1
+ version: 1
2
+ schemaVersion: 1.0.0
3
+ kind: ProtectedPathManifest
4
+ manifestPath: .forge/protected-paths.yaml
5
+ surfacesDeprecated: true
6
+ surfacesMigrationNote: Legacy surfaces remain for 0.0.19 protected-state docs/runtime parity; every example below must be covered by the authoritative W1 categories.
7
+ surfaces:
8
+ immutable:
9
+ examples:
10
+ - .git/
11
+ repair: Use git or the owning runtime tool.
12
+ secrets:
13
+ examples:
14
+ - .env.local
15
+ - secrets.json
16
+ repair: Use the secret manager or local environment setup command.
17
+ append_only_logs:
18
+ examples:
19
+ - .forge/log.jsonl
20
+ - .forge/audit.log
21
+ - .beads/interactions.jsonl
22
+ repair: Use the append-only Forge or Beads audit writer.
23
+ beads_state:
24
+ examples:
25
+ - .beads/issues.jsonl
26
+ - .beads/config.yaml
27
+ repair: Use bd or Forge issue commands.
28
+ forge_config:
29
+ examples:
30
+ - .forge/config.yaml
31
+ - .forge/protected-paths.yaml
32
+ repair: Use Forge setup/config commands or the protected Forge API writer.
33
+ extension_manifests:
34
+ examples:
35
+ - .forge/extensions/example/manifest.json
36
+ - .github/PLUGIN_TEMPLATE.json
37
+ repair: Use the Forge extension/plugin manager.
38
+ lockfiles:
39
+ examples:
40
+ - bun.lock
41
+ - package-lock.json
42
+ - .forge/extensions.lock
43
+ repair: Regenerate through the package manager or extension installer.
44
+ workflows:
45
+ examples:
46
+ - .github/workflows/
47
+ - .claude/commands/
48
+ - .forge/hooks/
49
+ - lefthook.yml
50
+ repair: Use Forge workflow/setup commands.
51
+ generated_harness:
52
+ examples:
53
+ - AGENTS.md
54
+ - CLAUDE.md
55
+ - .codex/skills/
56
+ - .cursor/rules/
57
+ repair: Regenerate with forge setup or the owning Forge API surface.
58
+ memory_projection:
59
+ examples:
60
+ - docs/sessions/
61
+ - docs/memory/
62
+ - .forge/memory/
63
+ repair: Use the Forge memory projection writer.
64
+ categories:
65
+ - id: forge_core
66
+ mode: checksum-verified
67
+ paths:
68
+ - lib/**
69
+ - bin/**
70
+ - scripts/**
71
+ - skills/**
72
+ ownerSurface: Forge core release or checksum updater
73
+ repairHint: Use the Forge release/update flow; do not hand-edit checksum-protected core files.
74
+ - id: user_protocol
75
+ mode: cli-only
76
+ paths:
77
+ - AGENTS.md
78
+ - CLAUDE.md
79
+ - .cursorrules
80
+ - .mcp.json
81
+ - .forge/config.yaml
82
+ - .forge/config.yml
83
+ - .forge/config.json
84
+ - .forge/protected-paths.yaml
85
+ ownerSurface: forge setup or forge options
86
+ repairHint: Use Forge setup/options commands so harness protocol files stay synchronized.
87
+ - id: generated_artifacts
88
+ mode: ci-blocked
89
+ paths:
90
+ - .claude/commands/**
91
+ - .claude/skills/**
92
+ - .cursor/rules/**
93
+ - .cursor/skills/**
94
+ - .codex/skills/**
95
+ - .github/workflows/**
96
+ - .forge/hooks/**
97
+ - lefthook.yml
98
+ - .forge/extensions/*/manifest.json
99
+ - .github/PLUGIN_TEMPLATE.json
100
+ - plugins/*/plugin.json
101
+ - plugins/*/extension.json
102
+ - plugins/*/manifest.json
103
+ - bun.lock
104
+ - package-lock.json
105
+ - pnpm-lock.yaml
106
+ - yarn.lock
107
+ - requirements.lock
108
+ - poetry.lock
109
+ - Cargo.lock
110
+ - go.sum
111
+ - .forge/extensions.lock
112
+ - docs/sessions/**
113
+ - docs/memory/**
114
+ - .forge/memory/**
115
+ - memory.md
116
+ - MEMORY.md
117
+ - "**/memory.md"
118
+ - "**/MEMORY.md"
119
+ ownerSurface: Forge harness renderer
120
+ repairHint: Regenerate harness artifacts from the canonical Forge contract.
121
+ - id: append_only_logs
122
+ mode: runtime-only
123
+ paths:
124
+ - .forge/*.jsonl
125
+ - .forge/audit.log
126
+ - .forge/agent-log.ndjson
127
+ - .beads/*.jsonl
128
+ - .beads/interactions.jsonl
129
+ ownerSurface: Forge or Beads audit writer
130
+ repairHint: Append through the runtime writer; do not rewrite audit history.
131
+ - id: secrets
132
+ mode: secret-scan-blocked
133
+ paths:
134
+ - .env
135
+ - .env.*
136
+ - "**/.env"
137
+ - "**/.env.*"
138
+ - secrets.json
139
+ - "**/secrets.json"
140
+ - credentials.json
141
+ - "**/credentials.json"
142
+ ownerSurface: secret manager
143
+ repairHint: Move secrets to the configured secret manager or local ignored env file.
144
+ - id: beads_state
145
+ mode: bd-cli-only
146
+ paths:
147
+ - .beads/**
148
+ ownerSurface: bd CLI or Forge issue adapter
149
+ repairHint: Use bd or Forge issue commands instead of editing Beads state files.
150
+ - id: immutable
151
+ mode: tool-owned
152
+ paths:
153
+ - .git/**
154
+ - .hg/**
155
+ - .svn/**
156
+ ownerSurface: VCS tool
157
+ repairHint: Use the owning VCS command instead of editing runtime internals.
package/AGENTS.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Project Workflow Instructions
2
2
 
3
- ## 7-Stage TDD-First Workflow
3
+ ## Default TDD-First Workflow Template
4
4
 
5
- This project enforces a **strict TDD-first development workflow** with 7 stages:
5
+ This project ships a **default TDD-first workflow template** with 6 workflow stages plus a composable **research** skill (a phase of `/plan` and usable standalone). In v3, these stages are one configurable composition over Forge runtime building blocks, not a product-wide mandatory ladder. Commands may be invoked as full stages or as smaller skill fragments when the active plan permits it. Pre-merge is an embedded gate in `/ship` and `/review` (not a numbered stage); `/status` and `/shepherd` are utilities (not stages).
6
6
 
7
7
  | Stage | Command | Purpose | Required For |
8
8
  |-------|-------------|-----------------------------------------------------------|--------------|
@@ -11,24 +11,27 @@ This project enforces a **strict TDD-first development workflow** with 7 stages:
11
11
  | 3 | `/validate` | Validate + 4-phase debug mode on failure | All types |
12
12
  | 4 | `/ship` | Create PR with documentation | All types |
13
13
  | 5 | `/review` | Address ALL PR feedback | Critical, Standard |
14
- | 6 | `/premerge` | Complete docs on feature branch, hand off PR | All types |
15
- | 7 | `/verify` | Post-merge health check (CI, deployments) | All types |
14
+ | 6 | `/verify` | Post-merge health check (CI, deployments) | All types |
15
+
16
+ **Pre-merge gate (not a numbered stage)**: Completing docs on the feature branch and handing off the PR for merge is a **task-type gate and checkpoint**, not a standalone workflow stage. The gate runs for Critical, Standard, and Refactor work and is embedded in the `/ship` and `/review` stages — finish the doc updates, confirm CI is green, then hand off the PR. Simple, Hotfix, and Docs work skip the gate.
16
17
 
17
18
  **Utility**: `/status` — Context check before starting work (not a numbered stage)
18
19
 
20
+ **Utility**: `/shepherd <pr>` — Monitor-driven PR shepherd: one bounded pass that reads CI and check state, re-runs a flaky required check (Tier-A), or escalates, then hands off. It is a utility command, **not** a workflow stage, and does not sit between `/review` and the handoff. It **never merges** (the human merges in the GitHub UI) and **never resolves review threads** (that stays with `/review`). `--auto-rebase` is opt-in and default OFF. See [docs/reference/shepherd.md](docs/reference/shepherd.md).
21
+
19
22
  ## Automatic Change Classification
20
23
 
21
24
  When the user requests work, **you MUST automatically classify** the change type:
22
25
 
23
- ### Critical (Full 7-stage workflow)
26
+ ### Critical (Full default workflow template)
24
27
  **Triggers:** Security, authentication, payments, breaking changes, new architecture, data migrations
25
28
  **Example:** "Add OAuth login", "Migrate database schema", "Implement payment gateway"
26
- **Workflow:** plan → dev → validate → ship → review → premerge verify
29
+ **Workflow:** plan → dev → validate → ship → review → verify (pre-merge gate before merge)
27
30
 
28
- ### Standard (6-stage workflow)
31
+ ### Standard (default workflow without post-merge verify)
29
32
  **Triggers:** Normal features, enhancements, new components
30
33
  **Example:** "Add user profile page", "Create notification system"
31
- **Workflow:** plan → dev → validate → ship → review premerge
34
+ **Workflow:** plan → dev → validate → ship → review (pre-merge gate before merge)
32
35
 
33
36
  ### Simple (3-stage workflow, skip plan)
34
37
  **Triggers:** Bug fixes, UI tweaks, small changes, minor refactors
@@ -48,7 +51,7 @@ When the user requests work, **you MUST automatically classify** the change type
48
51
  ### Refactor (5-stage workflow for safe cleanup)
49
52
  **Triggers:** Code cleanup, performance optimization, technical debt reduction
50
53
  **Example:** "Refactor auth service", "Extract utility functions"
51
- **Workflow:** plan → dev → validate → ship premerge
54
+ **Workflow:** plan → dev → validate → ship (pre-merge gate before merge)
52
55
 
53
56
  ## Enforcement Philosophy
54
57
 
@@ -66,7 +69,7 @@ When the user requests work, **you MUST automatically classify** the change type
66
69
 
67
70
  "Skipping tests creates technical debt. I'll:
68
71
  ✓ Allow this commit
69
- ✓ Create follow-up Beads issue for tests
72
+ ✓ Create follow-up issue for tests
70
73
  ✓ Document in commit message as [tech-debt]
71
74
 
72
75
  Proceed?"
@@ -75,11 +78,11 @@ When the user requests work, **you MUST automatically classify** the change type
75
78
 
76
79
  Command files (`.claude/commands/*.md` and agent equivalents) must never hardcode example output when a script generates that output dynamically. Reference the script and describe what it does — don't duplicate its output with fake data that becomes stale.
77
80
 
78
- ## TDD Development (Stage 2: /dev)
81
+ ## TDD Development (`/dev` Command)
79
82
 
80
83
  **Subagent-driven per-task implementation loop:**
81
84
 
82
- 1. **Read task list** → Pre-made task list from `/plan` Phase 3 at `docs/plans/YYYY-MM-DD-<slug>-tasks.md`
85
+ 1. **Read task list** → Pre-made task list from `/plan` Phase 3 at `docs/work/YYYY-MM-DD-<slug>/tasks.md`
83
86
  2. **Dispatch implementer subagent per task** → Fresh context, complete task text, relevant design doc sections
84
87
  3. **TDD inside implementer** → RED-GREEN-REFACTOR enforced by HARD-GATE:
85
88
  - RED: Write failing test first (must run test and show failing output)
@@ -92,8 +95,8 @@ Command files (`.claude/commands/*.md` and agent equivalents) must never hardcod
92
95
  **Example execution:**
93
96
  ```
94
97
  /dev starts:
95
- ✓ Read task list: docs/plans/2026-02-26-stripe-billing-tasks.md (8 tasks)
96
- ✓ Created decisions log: docs/plans/2026-02-26-stripe-billing-decisions.md
98
+ ✓ Read task list: docs/work/2026-02-26-stripe-billing/tasks.md (8 tasks)
99
+ ✓ Created decisions log: docs/work/2026-02-26-stripe-billing/decisions.md
97
100
 
98
101
  Task 1: Types and interfaces
99
102
  ✓ Implementer: test written → failing → implementation → passing → committed
@@ -112,13 +115,13 @@ Task 2: Validation logic
112
115
 
113
116
  ## State Management (Single Source of Truth)
114
117
 
115
- > GitHub issue lifecycle may sync to Beads via CI -- see [docs/BEADS_GITHUB_SYNC.md](docs/BEADS_GITHUB_SYNC.md).
118
+ > GitHub issue lifecycle may sync to Beads via CI -- see [docs/guides/BEADS_GITHUB_SYNC.md](docs/guides/BEADS_GITHUB_SYNC.md).
116
119
 
117
- **All workflow state stored in Beads metadata** (survives compaction):
120
+ **Current implementation**: The Forge Kernel is the default issue-state authority; issue commands read and write the kernel store unless Beads is explicitly selected (`--issue-backend beads`, `FORGE_ISSUE_BACKEND=beads`, or `issueBackend: beads` in `.forge/config.yaml`), where it serves as an import/export/projection compatibility layer. **Direction (D44)**: continue consolidating issue/workflow/run authority in the Kernel with Beads remaining a compatibility projection. New authority work must follow [docs/work/2026-04-28-skeleton-pivot/forge-kernel-authority-control-plane.md](docs/work/2026-04-28-skeleton-pivot/forge-kernel-authority-control-plane.md) and [docs/reference/FORGE_KERNEL_STORAGE_MODEL.md](docs/reference/FORGE_KERNEL_STORAGE_MODEL.md).
118
121
 
119
122
  ```json
120
123
  {
121
- "id": "bd-x7y2",
124
+ "id": "9f2c41d7-3a8e-4b6f-9c21-5e7d0a184c3b",
122
125
  "type": "critical",
123
126
  "currentStage": "dev",
124
127
  "completedStages": ["plan"],
@@ -139,7 +142,9 @@ Task 2: Validation logic
139
142
  }
140
143
  ```
141
144
 
142
- ## Git Hooks (Automatic Enforcement)
145
+ ## Git Hooks & Push Workflow (Automatic Enforcement)
146
+
147
+ This project uses the **Professional Git Workflow** with Lefthook for automated quality gates.
143
148
 
144
149
  **Pre-commit hook enforces TDD:**
145
150
  - Blocks commits if source code modified without test files
@@ -147,30 +152,87 @@ Task 2: Validation logic
147
152
  - No AI decision required - automatic validation
148
153
 
149
154
  **Pre-push hook validates tests:**
155
+ - Branch protection: blocks direct push to `main`/`master`
156
+ - ESLint: blocks on errors and warnings (strict mode, `--max-warnings 0`)
150
157
  - All tests must pass before push
151
158
  - Can skip for hotfixes with documentation
152
159
 
160
+ **Pull Request workflow:**
161
+ - PR template auto-fills with a standardized format; the self-review checklist catches most bugs before review
162
+ - Reference the issue id in the PR body (e.g. the Forge Kernel issue id); **all review comments must be resolved** before merge
163
+ - Squash-only merging for a clean, linear history
164
+
165
+ **⚠️ AI agents must NEVER use `LEFTHOOK=0`, `--no-verify`, or any hook bypass.** If a hook fails, fix the underlying issue. Only humans may bypass hooks in emergencies, documented in the PR description.
166
+
167
+ **Preferred push workflow (AI agents and humans):**
168
+
169
+ ```bash
170
+ forge push # Branch protection + lint + tests, then push
171
+ forge push --quick # Review-cycle: lint-only push (CI runs full suite)
172
+ forge worktree create <slug> # Create a worktree
173
+ forge test # Run tests with correct timeouts
174
+ forge sync # Sync issue data
175
+ forge clean # Remove merged worktrees
176
+ ```
177
+
178
+ ## Build, Shell, and MCP
179
+
180
+ **Package manager**: Bun (preferred for performance).
181
+
182
+ ```bash
183
+ bun install # Install dependencies
184
+ bun run dev # Start development
185
+ bun run build # Production build
186
+ bun test # Run tests
187
+ ```
188
+
189
+ **GitHub CLI**: `gh auth login` for the PR workflow.
190
+
191
+ ### Shell Model
192
+
193
+ | Platform | Shell used by Forge commands and scripts |
194
+ | --- | --- |
195
+ | Windows | Git Bash for helper-backed Forge stage flows |
196
+ | macOS/Linux | Default login shell |
197
+
198
+ On Windows, Forge runtime health enforces Git Bash for helper-backed stage flows. Native PowerShell is still used by some bootstrap paths, and WSL may be useful for adjacent development tasks. See [docs/reference/TOOLCHAIN.md](docs/reference/TOOLCHAIN.md#shell-model).
199
+
200
+ ### MCP Servers (Optional)
201
+
202
+ If your agent supports MCP, these enhance research:
203
+
204
+ - **Context7** - up-to-date library documentation and API reference
205
+ - **grep.app** - search 1M+ GitHub repos for real-world code examples
206
+
207
+ See [.mcp.json.example](.mcp.json.example) for configuration (Claude Code: copy it to `.mcp.json`) and [docs/reference/TOOLCHAIN.md](docs/reference/TOOLCHAIN.md) for detailed setup.
208
+
153
209
  ## Documentation Index (Context Pointers)
154
210
 
155
- **Detailed command instructions** are located in:
156
- - [.claude/commands/status.md](.claude/commands/status.md) - How to check current context (utility)
157
- - [.claude/commands/plan.md](.claude/commands/plan.md) - How to plan features (3 phases: design intent + research + branch/worktree/tasks)
158
- - [.claude/commands/dev.md](.claude/commands/dev.md) - How to implement with subagent-driven TDD and decision gate
159
- - [.claude/commands/validate.md](.claude/commands/validate.md) - How to run validation (with HARD-GATE exit)
160
- - [.claude/commands/ship.md](.claude/commands/ship.md) - How to create PRs
161
- - [.claude/commands/review.md](.claude/commands/review.md) - How to address PR feedback (with HARD-GATE exit)
162
- - [.claude/commands/premerge.md](.claude/commands/premerge.md) - How to complete docs and hand off PR for merge
163
- - [.claude/commands/verify.md](.claude/commands/verify.md) - How to verify post-merge health
211
+ **Detailed stage skill instructions** are located in:
212
+ - [skills/status/SKILL.md](skills/status/SKILL.md) - How to check current context (utility)
213
+ - [skills/plan/SKILL.md](skills/plan/SKILL.md) - How to plan features (3 phases: design intent + research + branch/worktree/tasks)
214
+ - [skills/dev/SKILL.md](skills/dev/SKILL.md) - How to implement with subagent-driven TDD and decision gate
215
+ - [skills/validate/SKILL.md](skills/validate/SKILL.md) - How to run validation (with HARD-GATE exit)
216
+ - [skills/ship/SKILL.md](skills/ship/SKILL.md) - How to create PRs
217
+ - [skills/review/SKILL.md](skills/review/SKILL.md) - How to address PR feedback (with HARD-GATE exit)
218
+ - [skills/shepherd/SKILL.md](skills/shepherd/SKILL.md) - How to run a bounded PR monitor pass (utility; never merges, never resolves threads)
219
+ - [skills/verify/SKILL.md](skills/verify/SKILL.md) - How to verify post-merge health
164
220
 
165
221
  **Planning documents** (created by `/plan`, consumed by `/dev`):
166
- - `docs/plans/YYYY-MM-DD-<slug>-design.md` - Design intent + technical research
167
- - `docs/plans/YYYY-MM-DD-<slug>-tasks.md` - Task list with TDD steps
168
- - `docs/plans/YYYY-MM-DD-<slug>-decisions.md` - Decisions log from /dev
222
+ - `docs/work/YYYY-MM-DD-<slug>/plan.md` - Design intent + technical research
223
+ - `docs/work/YYYY-MM-DD-<slug>/tasks.md` - Task list with TDD steps
224
+ - `docs/work/YYYY-MM-DD-<slug>/decisions.md` - Decisions log from /dev
169
225
 
170
226
  **Comprehensive workflow guide:**
171
227
  - This file (AGENTS.md) is the single source of truth for the complete workflow
172
- - [docs/TOOLCHAIN.md](docs/TOOLCHAIN.md) - Tool setup and configuration
173
- - [docs/VALIDATION.md](docs/VALIDATION.md) - Enforcement and validation details
228
+ - [docs/reference/TOOLCHAIN.md](docs/reference/TOOLCHAIN.md) - Tool setup and configuration
229
+ - [docs/reference/VALIDATION.md](docs/reference/VALIDATION.md) - Enforcement and validation details
230
+
231
+ **Forge v3 / Kernel Plan (active design):**
232
+ - [docs/work/2026-04-28-skeleton-pivot/forge-kernel-authority-control-plane.md](docs/work/2026-04-28-skeleton-pivot/forge-kernel-authority-control-plane.md) — canonical Forge Kernel authority reset plan for issue authority, local broker, team authority, adapters, storage, and gates
233
+ - [docs/work/2026-04-28-skeleton-pivot/locked-decisions.md](docs/work/2026-04-28-skeleton-pivot/locked-decisions.md) — D1–D44 decisions ledger with rationale + tradeoffs + anti-decisions; D44 supersedes Beads-only authority portions of earlier decisions
234
+ - [docs/work/2026-04-28-skeleton-pivot/v3-redesign-strategy.md](docs/work/2026-04-28-skeleton-pivot/v3-redesign-strategy.md) — historical v3 strategy and background; do not use its legacy default-substrate language over D44
235
+ - See [docs/INDEX.md](docs/INDEX.md) for the full reading order across the v3 design folder
174
236
 
175
237
  **Load these files when you need detailed instructions for a specific stage.**
176
238
 
@@ -187,47 +249,40 @@ Every stage transition should carry structured context so the next stage (or a n
187
249
  | /validate | All checks pass/fail summary | Failures diagnosed | Scripts/commands run | Ship readiness |
188
250
  | /ship | PR created, checks pending | Template sections filled | PR URL, branch name | Review focus areas |
189
251
  | /review | All feedback addressed | Comment resolutions | Fixed files, commit SHAs | Doc update needs |
190
- | /premerge | Docs updated, CI green | N/A | Updated doc files | Merge instructions |
252
+ | pre-merge gate | Docs updated, CI green | N/A | Updated doc files | Merge instructions |
191
253
 
192
- ### Validation Command
254
+ ### Recording Stage Context
193
255
 
194
- Run at each stage exit to check for missing context:
256
+ Record the stage-exit context as a kernel issue comment so the next stage (or a
257
+ fresh session) can resume from the issue record itself:
195
258
 
196
259
  ```bash
197
- bash scripts/beads-context.sh validate <beads-issue-id>
260
+ forge issue comment <issue-id> "stage: dev -> validate
261
+ summary: All 5 tasks done, 1 decision gate fired
262
+ decisions: Used streaming parser over DOM for memory efficiency
263
+ artifacts: lib/parser.js test/parser.test.js
264
+ next: Run lint first — streaming approach may trigger no-await rule"
198
265
  ```
199
266
 
200
- This checks: (1) issue has a description, (2) at least one stage transition exists, (3) most recent transition has a summary, (4) design metadata is set if past the plan stage. Exits 0 when context checks run (even if warnings are found); exits 1 only if the issue cannot be retrieved.
267
+ Check-after-write verification (`gate.issue_verify`, default-on) confirms the
268
+ comment actually landed. Read context back with `forge show <issue-id>` (or
269
+ `forge recap <issue-id>` for the bounded orientation envelope).
201
270
 
202
271
  ### Field Definitions
203
272
 
204
273
  - **Summary**: 1-2 sentence recap of what was accomplished in this stage. Example: `--summary "All 5 tasks done, 1 decision gate fired"`
205
274
  - **Decisions**: Key choices made during this stage that affect downstream work. Example: `--decisions "Used streaming parser over DOM for memory efficiency"`
206
- - **Artifacts**: File paths or URLs produced by this stage. Example: `--artifacts "lib/parser.js test/parser.test.js docs/plans/2026-03-26-parser-design.md"`
275
+ - **Artifacts**: File paths or URLs produced by this stage. Example: `--artifacts "lib/parser.js test/parser.test.js docs/work/2026-03-26-parser/plan.md"`
207
276
  - **Next**: Guidance for the next stage on what to focus on. Example: `--next "Run lint first — streaming approach may trigger no-await rule"`
208
277
 
209
- ### Usage in Stage Transitions
210
-
211
- ```bash
212
- # Basic (backward compatible)
213
- bash scripts/beads-context.sh stage-transition <id> dev validate
214
-
215
- # With context fields (recommended)
216
- bash scripts/beads-context.sh stage-transition <id> dev validate \
217
- --summary "All 5 tasks done, 0 gates fired" \
218
- --decisions "Used approach A per design doc" \
219
- --artifacts "lib/foo.js test/foo.test.js" \
220
- --next "Run type check and lint"
221
- ```
222
-
223
278
  ### Enforcement Level
224
279
 
225
- This convention is **advisory only**. The `validate` subcommand prints warnings but always exits 0. It does not block any stage transition. The goal is to build good habits, not to create friction.
280
+ This convention is **advisory only** missing fields never block a stage
281
+ transition. The goal is to build good habits, not to create friction.
226
282
 
227
- <!-- BEGIN BEADS INTEGRATION v:1 profile:minimal hash:ca08a54f -->
228
- ## Beads Issue Tracker
283
+ ## Forge Issue Tracker
229
284
 
230
- This project uses **bd (beads)** for issue tracking. Run `bd prime` to see full workflow context and commands.
285
+ This project uses the **Forge Kernel** for issue tracking. Run `forge prime` to see full workflow context and commands.
231
286
 
232
287
  ### Quick Reference
233
288
 
@@ -238,11 +293,46 @@ forge claim <id> # Claim work
238
293
  forge close <id> # Complete work
239
294
  ```
240
295
 
296
+ **More commands worth knowing** (run `forge <command> --help` for full usage):
297
+
298
+ ```bash
299
+ forge remember <note> # Persist a project-memory note to a file-backed store
300
+ forge recall [query] # Retrieve project-memory notes back (the read half of remember)
301
+ forge insights # Detect recurring evidence patterns, suggest conservative follow-ups
302
+ forge upgrade # Preview and self-heal safe Forge upgrade readiness
303
+ forge gate <verb> <gate-id> # Toggle a workflow gate, or record/query human-gate approval events
304
+ forge role <role> --use <skill> # Bind a role to a skill/ideology in .forge/config.yaml
305
+ forge merge --auto <pr> # Opt-in conditional auto-merge — merges only when configured rules pass (OFF by default)
306
+ ```
307
+
241
308
  ### Rules
242
309
 
243
- - Use `forge` as the routine command surface for bd-backed issue tracking and sync workflows — do NOT use TodoWrite, TaskCreate, or markdown TODO lists. Exception: `/plan` Phase 3 generates task lists at `docs/plans/YYYY-MM-DD-<slug>-tasks.md` — these are approved artifacts consumed by `/dev`, but Beads (`bd`) remains the source of truth for issue state and IDs. Use `bd` directly only for operations Forge does not wrap yet, such as `bd init`, `bd comments`, `bd dep`, and `bd dolt *`. GitHub issues may be used for external/public tracking; CI may sync GitHub issue lifecycle to Beads (see `docs/BEADS_GITHUB_SYNC.md`).
244
- - Run `bd prime` for detailed command reference and session close protocol
245
- - Use `bd remember` for persistent knowledge — do NOT use MEMORY.md files
310
+ - Use `forge` as the routine command surface for issue tracking and sync workflows — do NOT use TodoWrite, TaskCreate, or markdown TODO lists. Exception: `/plan` Phase 3 generates task lists at `docs/work/YYYY-MM-DD-<slug>/tasks.md` — these are approved artifacts consumed by `/dev`. New issue-authority work routes through the Forge Kernel design. Use `forge issue` subcommands (e.g. `forge issue dep`, `forge issue comment`) for operations beyond the shortcuts above. GitHub issues may be used for external/public tracking; CI may sync GitHub issue lifecycle to the issue store.
311
+ - Run `forge prime` for detailed command reference and session close protocol
312
+ - Use `forge remember` for persistent knowledge and `forge recall` to retrieve it back — do NOT use MEMORY.md files
313
+
314
+ ### Kernel Tracking (nothing discussed goes missing)
315
+
316
+ **NON-NEGOTIABLE, default-on.** Anything raised in a session — a bug, an idea, a
317
+ design decision, a follow-up, a TODO, a risk noticed in passing — MUST become a
318
+ Forge Kernel issue **immediately** via `forge issue create`, before it can be
319
+ forgotten. Triage it (set a type, link its epic/parent) so it is discoverable.
320
+ When you defer scope, file the follow-up issue and reference it — never leave
321
+ work unfiled. The Kernel is the single source of truth; do NOT substitute
322
+ TodoWrite, markdown TODO lists, or memory notes for a filed issue.
323
+
324
+ This policy is canonicalized in `rules/kernel-tracking.md` (rendered to every
325
+ port: `.cursor/rules/kernel-tracking.mdc` for Cursor, this projection for
326
+ Claude/Codex/Hermes) and governed by the default-on `rail.kernel_tracking`
327
+ runtime rail. Turn it off only deliberately: `forge gate disable rail.kernel_tracking`.
328
+
329
+ ## Project Learnings
330
+
331
+ - **Scope discipline**: Do ONLY what was explicitly asked. Answer a question → stop. Check something → stop. Never auto-continue to next steps or pending work unless told to.
332
+ - **Stage names**: The validation stage command is `/validate` — renamed in PR #50; do not use the old name.
333
+ - **Unused params**: Prefix with `_` (e.g., `_searchTerm`) — ESLint `no-unused-vars` enforced with `--max-warnings 0`.
334
+ - **Pre-push test env**: `test-env/` fixture tests can fail during actual `git push` due to git mid-push state. Fix the root cause — never use `LEFTHOOK=0`.
335
+ - **Skill sync**: Canonical skills live in `skills/<name>/SKILL.md`; per-agent copies are generated from them. `.agents/skills` (Codex's repo-local discovery path) is committed so a fresh clone gets discovery without `forge setup` — a pre-commit hook keeps it byte-identical to `skills/` and the drift gate enforces it. The other mirrors (`.claude/skills`, `.codex/skills`, `.cursor/skills`, `.hermes/skills`) are gitignored and regenerated at `forge setup`. Never hand-edit a generated mirror — edit the canonical `skills/` source.
246
336
 
247
337
  ## Session Completion
248
338
 
@@ -256,7 +346,7 @@ forge close <id> # Complete work
256
346
  4. **PUSH TO REMOTE** - This is MANDATORY:
257
347
  ```bash
258
348
  git pull --rebase
259
- forge sync # wraps the supported Beads sync flow when Beads is configured
349
+ forge sync # wraps the supported issue-store sync flow when the issue store is configured
260
350
  git push
261
351
  git status # MUST show "up to date with origin"
262
352
  ```
@@ -270,4 +360,3 @@ forge close <id> # Complete work
270
360
  - NEVER say "ready to push when you are" - YOU must push
271
361
  - If push fails, resolve and retry until it succeeds
272
362
  - After fixing review feedback, always push the changes and resolve the related GitHub review threads via the GraphQL API before considering the work complete
273
- <!-- END BEADS INTEGRATION -->