forge-workflow 0.0.10 → 0.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/.claude/rules/{greptile-review-process.md → review-process.md} +56 -41
  2. package/.claude/scripts/{greptile-resolve.sh → review-resolve.sh} +13 -3
  3. package/.cursor/rules/permissions-guidance.mdc +2 -2
  4. package/.forge/hooks/check-tdd.js +82 -5
  5. package/.forge/hooks/forge-native-hook.js +431 -0
  6. package/.forge/protected-paths.yaml +157 -0
  7. package/AGENTS.md +151 -61
  8. package/CHANGELOG.md +709 -0
  9. package/CLAUDE.md +9 -118
  10. package/QUICKSTART.md +175 -0
  11. package/README.md +275 -365
  12. package/bin/forge-cmd.js +120 -9
  13. package/bin/forge-preflight.js +26 -5
  14. package/bin/forge.js +532 -489
  15. package/docs/INDEX.md +93 -0
  16. package/docs/PROJECT_DESIGN.md +685 -0
  17. package/docs/architecture/index.md +66 -0
  18. package/docs/architecture/notes/README.md +35 -0
  19. package/docs/architecture/subsystems/README.md +46 -0
  20. package/docs/forge/TOOLCHAIN.md +670 -0
  21. package/docs/forge/VALIDATION.md +82 -0
  22. package/docs/{AGENT_INSTALL_PROMPT.md → guides/AGENT_INSTALL_PROMPT.md} +3 -3
  23. package/docs/guides/BEADS_GITHUB_SYNC.md +32 -0
  24. package/docs/{ENHANCED_ONBOARDING.md → guides/ENHANCED_ONBOARDING.md} +16 -12
  25. package/docs/guides/GREPTILE_SETUP.md +46 -0
  26. package/docs/guides/MANUAL_REVIEW_GUIDE.md +58 -0
  27. package/docs/guides/MIGRATION.md +56 -0
  28. package/docs/guides/SETUP.md +121 -0
  29. package/docs/guides/SUPPORT.md +190 -0
  30. package/docs/guides/WORKFLOW_TEMPLATES.md +74 -0
  31. package/docs/guides/memory-backends.md +183 -0
  32. package/docs/reference/ADAPTERS.md +128 -0
  33. package/docs/reference/AGENT_SKILL_PARITY.md +175 -0
  34. package/docs/reference/COMMANDS.md +214 -0
  35. package/docs/reference/DECISION_DRIFT_GUARDS.md +97 -0
  36. package/docs/{EXAMPLES.md → reference/EXAMPLES.md} +7 -5
  37. package/docs/reference/FORGE_KERNEL_STORAGE_MODEL.md +135 -0
  38. package/docs/reference/HERMES_INTEGRATION.md +118 -0
  39. package/docs/reference/INSIGHTS_RECAP.md +63 -0
  40. package/docs/reference/INSTALL.md +164 -0
  41. package/docs/reference/KERNEL_TAXONOMY_VALIDATION.md +161 -0
  42. package/docs/reference/PROTECTED_PATH_MANIFEST.md +25 -0
  43. package/docs/reference/RELEASE.md +68 -0
  44. package/docs/reference/RESEARCH_TEMPLATE.md +292 -0
  45. package/docs/{ROADMAP.md → reference/ROADMAP.md} +12 -9
  46. package/docs/reference/SKILLS.md +35 -0
  47. package/docs/reference/STATUS_BOARD.md +80 -0
  48. package/docs/reference/TEMPLATES.md +106 -0
  49. package/docs/{TOOLCHAIN.md → reference/TOOLCHAIN.md} +62 -47
  50. package/docs/reference/VALIDATION.md +82 -0
  51. package/docs/reference/agent-permissions.md +169 -0
  52. package/docs/reference/beads-to-kernel-migration-ux.md +61 -0
  53. package/docs/reference/control-plane-guarantees.md +125 -0
  54. package/docs/reference/dependency-chain.md +331 -0
  55. package/docs/reference/forge-kernel-issue-command-contract.md +161 -0
  56. package/docs/reference/forge-kernel-schema.md +72 -0
  57. package/docs/reference/kernel-conflict-evaluators.md +27 -0
  58. package/docs/reference/patch-md-format.md +77 -0
  59. package/docs/reference/protected-state-surfaces.md +59 -0
  60. package/docs/reference/shepherd.md +155 -0
  61. package/docs/reference/superpowers-analysis.md +320 -0
  62. package/docs/reference/superpowers-integration-options.md +404 -0
  63. package/docs/reference/test-environment.md +519 -0
  64. package/docs/reference/upgrade-safety.md +59 -0
  65. package/lefthook.yml +18 -0
  66. package/lib/activation/ensure-forge-home.js +135 -0
  67. package/lib/adapter-cli.js +307 -0
  68. package/lib/adapters/beads-issue-adapter.js +127 -0
  69. package/lib/adapters/beads-kernel-compat.js +1109 -0
  70. package/lib/adapters/greptile-review-adapter.js +141 -0
  71. package/lib/adapters/kernel-issue-adapter.js +101 -0
  72. package/lib/adapters/pr-state-adapter.js +484 -0
  73. package/lib/adoption-profiles.js +139 -0
  74. package/lib/agents/README.md +2 -6
  75. package/lib/agents/claude.plugin.json +3 -8
  76. package/lib/agents/codex.plugin.json +9 -1
  77. package/lib/agents/cursor.plugin.json +2 -6
  78. package/lib/agents/hermes.plugin.json +22 -0
  79. package/lib/agents-config.js +39 -1236
  80. package/lib/audit-evidence.js +282 -0
  81. package/lib/beads-detect.js +60 -0
  82. package/lib/beads-nudge.js +91 -0
  83. package/lib/beads-setup.js +121 -0
  84. package/lib/beads-sync-scaffold.js +25 -101
  85. package/lib/codex-skills.js +51 -1
  86. package/lib/commands/_aliases.js +248 -0
  87. package/lib/commands/_issue.js +780 -77
  88. package/lib/commands/_manifest.js +93 -0
  89. package/lib/commands/_registry.js +99 -34
  90. package/lib/commands/_resolve-command-opts.js +230 -0
  91. package/lib/commands/_serve-security.js +270 -0
  92. package/lib/commands/adapter.js +12 -0
  93. package/lib/commands/add.js +118 -0
  94. package/lib/commands/audit.js +70 -0
  95. package/lib/commands/blocked.js +5 -0
  96. package/lib/commands/board.js +64 -0
  97. package/lib/commands/claim.js +21 -2
  98. package/lib/commands/claims.js +7 -0
  99. package/lib/commands/clean.js +485 -75
  100. package/lib/commands/close.js +2 -2
  101. package/lib/commands/comment.js +5 -0
  102. package/lib/commands/control.js +148 -0
  103. package/lib/commands/create.js +2 -2
  104. package/lib/commands/dev.js +185 -7
  105. package/lib/commands/doc-gate.js +336 -0
  106. package/lib/commands/doctor.js +156 -0
  107. package/lib/commands/explain.js +15 -0
  108. package/lib/commands/export.js +237 -0
  109. package/lib/commands/gate.js +209 -0
  110. package/lib/commands/hooks.js +377 -0
  111. package/lib/commands/inbox.js +118 -0
  112. package/lib/commands/init.js +604 -0
  113. package/lib/commands/insights.js +79 -0
  114. package/lib/commands/issue.js +12 -1
  115. package/lib/commands/issues.js +17 -0
  116. package/lib/commands/lint.js +5 -0
  117. package/lib/commands/list.js +2 -2
  118. package/lib/commands/memory.js +81 -0
  119. package/lib/commands/merge.js +312 -0
  120. package/lib/commands/migrate.js +362 -0
  121. package/lib/commands/new.js +12 -0
  122. package/lib/commands/options.js +241 -0
  123. package/lib/commands/orient.js +13 -0
  124. package/lib/commands/orphans.js +5 -0
  125. package/lib/commands/patch.js +67 -0
  126. package/lib/commands/plan.js +481 -29
  127. package/lib/commands/pr.js +88 -0
  128. package/lib/commands/preflight.js +211 -0
  129. package/lib/commands/prime.js +13 -0
  130. package/lib/commands/push.js +135 -2
  131. package/lib/commands/ready.js +2 -2
  132. package/lib/commands/recall.js +171 -0
  133. package/lib/commands/recap.js +75 -0
  134. package/lib/commands/recommend.js +0 -1
  135. package/lib/commands/release.js +104 -0
  136. package/lib/commands/remember.js +140 -0
  137. package/lib/commands/role.js +99 -0
  138. package/lib/commands/serve.js +581 -0
  139. package/lib/commands/setup.js +900 -971
  140. package/lib/commands/shepherd.js +501 -0
  141. package/lib/commands/ship.js +59 -1
  142. package/lib/commands/show.js +2 -2
  143. package/lib/commands/stage.js +192 -0
  144. package/lib/commands/stale.js +5 -0
  145. package/lib/commands/status.js +158 -21
  146. package/lib/commands/sync.js +34 -46
  147. package/lib/commands/team.js +4 -1
  148. package/lib/commands/test.js +43 -27
  149. package/lib/commands/update.js +2 -2
  150. package/lib/commands/upgrade.js +47 -0
  151. package/lib/commands/validate.js +43 -18
  152. package/lib/commands/worktree.js +362 -99
  153. package/lib/config-writer.js +202 -0
  154. package/lib/control-plane.js +236 -0
  155. package/lib/core/runtime-graph.js +977 -0
  156. package/lib/dep-guard/keyword-ripple.js +2 -2
  157. package/lib/deprecated-sync-cleanup.js +362 -0
  158. package/lib/detect-agent.js +2 -28
  159. package/lib/detect-worktree.js +35 -9
  160. package/lib/doc-gate/declaration.js +177 -0
  161. package/lib/doc-gate/detect.js +289 -0
  162. package/lib/doc-gate/gate.js +375 -0
  163. package/lib/doc-gate/okf-config.js +128 -0
  164. package/lib/doc-gate/okf.js +429 -0
  165. package/lib/docs-command.js +1161 -6
  166. package/lib/forge-issues.js +382 -11
  167. package/lib/forge-lock.js +262 -0
  168. package/lib/gate-events.js +192 -0
  169. package/lib/global-flags.js +104 -0
  170. package/lib/greptile-match.js +7 -63
  171. package/lib/grounding/context-events.js +230 -0
  172. package/lib/grounding/read-first.js +112 -0
  173. package/lib/harness-capability-matrix.js +380 -0
  174. package/lib/hook-global-installer.js +347 -0
  175. package/lib/hook-renderer.js +541 -0
  176. package/lib/inbox.js +391 -0
  177. package/lib/insights.js +397 -0
  178. package/lib/issue-adapter.js +156 -0
  179. package/lib/issue-backend.js +145 -0
  180. package/lib/issue-render.js +220 -0
  181. package/lib/kernel/backing-issue.js +311 -0
  182. package/lib/kernel/broker.js +1218 -0
  183. package/lib/kernel/cli-broker-factory.js +130 -0
  184. package/lib/kernel/conflict-signal.js +82 -0
  185. package/lib/kernel/evaluators.js +195 -0
  186. package/lib/kernel/fs-class.js +495 -0
  187. package/lib/kernel/issue-command-contract.js +559 -0
  188. package/lib/kernel/issue-id-resolver.js +186 -0
  189. package/lib/kernel/lease-enforcer.js +158 -0
  190. package/lib/kernel/migrations.js +333 -0
  191. package/lib/kernel/owned-kernel.js +43 -0
  192. package/lib/kernel/planning-buckets-schema.js +109 -0
  193. package/lib/kernel/projection-jsonl-writer.js +450 -0
  194. package/lib/kernel/readiness-model.js +329 -0
  195. package/lib/kernel/schema.js +356 -0
  196. package/lib/kernel/sqlite-driver.js +2540 -0
  197. package/lib/kernel/taxonomy-validator.js +394 -0
  198. package/lib/lefthook-check.js +3 -2
  199. package/lib/lefthook-wiring.js +413 -0
  200. package/lib/mcp-config-renderer.js +288 -0
  201. package/lib/memory/graphiti-mcp.js +106 -0
  202. package/lib/memory/router.js +387 -0
  203. package/lib/memory/typed-api.js +102 -0
  204. package/lib/memory-digest.js +195 -0
  205. package/lib/merge-rules.js +395 -0
  206. package/lib/migrate-dry-run.js +466 -0
  207. package/lib/orientation.js +863 -0
  208. package/lib/package-manager-remediation.js +103 -0
  209. package/lib/package-root.js +381 -0
  210. package/lib/patch-intent.js +890 -0
  211. package/lib/plugin-catalog.js +3 -4
  212. package/lib/plugin-manager.js +0 -5
  213. package/lib/pr-bundle.js +186 -0
  214. package/lib/pr-monitor/auto-actions.js +175 -0
  215. package/lib/pr-monitor/differ.js +195 -0
  216. package/lib/pr-monitor/digest.js +206 -0
  217. package/lib/pr-monitor/events.js +0 -0
  218. package/lib/pr-monitor/gather.js +124 -0
  219. package/lib/pr-monitor/journal.js +299 -0
  220. package/lib/pr-monitor/monitor.js +146 -0
  221. package/lib/pr-monitor/render-sticky.js +192 -0
  222. package/lib/pr-monitor/upsert-sticky.js +169 -0
  223. package/lib/pr-monitor/watch-lifecycle.js +95 -0
  224. package/lib/pr-monitor/watch.js +247 -0
  225. package/lib/pr-pull.js +1314 -0
  226. package/lib/pr-shepherd.js +494 -0
  227. package/lib/pr-state-validator.js +59 -0
  228. package/lib/preflight/gates.js +237 -0
  229. package/lib/preflight/runner.js +116 -0
  230. package/lib/project-discovery.js +0 -53
  231. package/lib/project-memory.js +99 -497
  232. package/lib/protected-path-manifest.js +281 -0
  233. package/lib/protected-state-surfaces.js +387 -0
  234. package/lib/release-readiness.js +2105 -0
  235. package/lib/reset.js +59 -45
  236. package/lib/review-adapter.js +68 -0
  237. package/lib/rules-sync.js +260 -0
  238. package/lib/runtime-health.js +241 -20
  239. package/lib/safety-config-renderer.js +268 -0
  240. package/lib/setup-action-log.js +1 -7
  241. package/lib/setup.js +27 -65
  242. package/lib/shell-utils.js +76 -6
  243. package/lib/skills-sync.js +330 -0
  244. package/lib/smart-status/scoring.js +17 -3
  245. package/lib/status/beads-snapshot.js +45 -2
  246. package/lib/status/presenter.js +169 -18
  247. package/lib/status/snapshot.js +186 -0
  248. package/lib/sync-backend.js +202 -0
  249. package/lib/untrusted-content.js +52 -0
  250. package/lib/upgrade-safety.js +251 -0
  251. package/lib/workflow/enforce-stage.js +351 -45
  252. package/lib/workflow/stage-transition.js +115 -0
  253. package/lib/workflow/stages.js +30 -6
  254. package/lib/workflow/state-manager.js +11 -22
  255. package/lib/workflow/state.js +23 -1
  256. package/lib/workflow-profiles.js +17 -5
  257. package/package.json +37 -35
  258. package/rules/documentation.md +19 -0
  259. package/rules/kernel-tracking.md +26 -0
  260. package/rules/security.md +22 -0
  261. package/rules/tdd.md +20 -0
  262. package/rules/workflow.md +27 -0
  263. package/scripts/auto-backing-issue.js +47 -0
  264. package/scripts/beads-context.sh +81 -57
  265. package/scripts/beads-upgrade-smoke.sh +24 -3
  266. package/scripts/bootstrap-windows-tools.sh +78 -0
  267. package/scripts/branch-protection.js +2 -3
  268. package/scripts/check-agents.js +34 -137
  269. package/scripts/commitlint.js +3 -1
  270. package/scripts/conflict-detect.sh +3 -0
  271. package/scripts/dep-guard.sh +22 -3
  272. package/scripts/file-index.sh +3 -0
  273. package/scripts/forge-team/lib/claim.sh +34 -18
  274. package/scripts/forge-team/lib/dashboard.sh +61 -86
  275. package/scripts/forge-team/lib/epic.sh +99 -263
  276. package/scripts/forge-team/lib/hooks.sh +26 -28
  277. package/scripts/forge-team/lib/identity.sh +4 -4
  278. package/scripts/forge-team/lib/sync-github.sh +49 -84
  279. package/scripts/forge-team/lib/verify.sh +93 -83
  280. package/scripts/forge-team/lib/workload.sh +41 -65
  281. package/scripts/forge-team/tests/claim.test.sh +25 -19
  282. package/scripts/forge-team/tests/dashboard.test.sh +31 -46
  283. package/scripts/forge-team/tests/epic.test.sh +52 -71
  284. package/scripts/forge-team/tests/hooks.test.sh +38 -50
  285. package/scripts/forge-team/tests/identity.test.sh +3 -3
  286. package/scripts/forge-team/tests/integration.test.sh +44 -66
  287. package/scripts/forge-team/tests/sync-github.test.sh +50 -83
  288. package/scripts/forge-team/tests/verify.test.sh +37 -46
  289. package/scripts/forge-team/tests/workflow-integration.test.sh +4 -4
  290. package/scripts/forge-team/tests/workload.test.sh +32 -66
  291. package/scripts/gen-command-manifest.js +153 -0
  292. package/scripts/gen-embedded-assets.mjs +129 -0
  293. package/scripts/install.ps1 +139 -0
  294. package/scripts/install.sh +268 -0
  295. package/scripts/lib/release-asset.mjs +84 -0
  296. package/scripts/parity-check.mjs +145 -0
  297. package/scripts/parity-check.test.mjs +58 -0
  298. package/scripts/pin-agentic-workflow-images.js +112 -0
  299. package/scripts/pr-auto-actions.js +93 -0
  300. package/scripts/pr-coordinator.sh +3 -0
  301. package/scripts/pr-verdict-label.js +50 -0
  302. package/scripts/preflight-sonar.eslint.config.mjs +44 -0
  303. package/scripts/preflight.sh +21 -94
  304. package/scripts/protected-state-check.js +104 -0
  305. package/scripts/smart-status.sh +60 -57
  306. package/scripts/spikes/config-race-bench.js +111 -0
  307. package/scripts/spikes/harness-capability-matrix.js +13 -0
  308. package/scripts/spikes/patch-anchor-stability-bench.js +125 -0
  309. package/scripts/spikes/protected-path-manifest.js +20 -0
  310. package/scripts/spikes/skill-auto-invoke-parity.js +292 -0
  311. package/scripts/sync-agent-skills.js +62 -0
  312. package/scripts/sync-utils.sh +3 -0
  313. package/scripts/test-ci-shard.js +13 -6
  314. package/scripts/test.js +95 -12
  315. package/skills/claim-safety/SKILL.md +102 -0
  316. package/skills/claim-safety/evals/evals.json +46 -0
  317. package/{.github/prompts/dev.prompt.md → skills/dev/SKILL.md} +44 -50
  318. package/skills/dev/evals/evals.json +50 -0
  319. package/skills/hermes-forge/SKILL.md +185 -0
  320. package/skills/hermes-forge/evals/evals.json +46 -0
  321. package/skills/issue-basics/SKILL.md +111 -0
  322. package/skills/issue-basics/evals/evals.json +46 -0
  323. package/skills/kernel/SKILL.md +166 -0
  324. package/skills/kernel/evals/evals.json +50 -0
  325. package/skills/memory/SKILL.md +102 -0
  326. package/skills/parallel-deep-research/SKILL.md +14 -11
  327. package/skills/parallel-deep-research/evals/evals.json +11 -27
  328. package/{.github/prompts/plan.prompt.md → skills/plan/SKILL.md} +132 -157
  329. package/skills/plan/evals/evals.json +42 -0
  330. package/skills/research/SKILL.md +195 -0
  331. package/skills/research/evals/evals.json +42 -0
  332. package/{.github/prompts/review.prompt.md → skills/review/SKILL.md} +98 -62
  333. package/skills/review/evals/evals.json +42 -0
  334. package/skills/rollback/SKILL.md +110 -0
  335. package/skills/rollback/evals/evals.json +46 -0
  336. package/skills/rollback/references/methods.md +204 -0
  337. package/{.cursor/commands/rollback.md → skills/rollback/references/workflow-integration.md} +10 -284
  338. package/skills/shepherd/SKILL.md +66 -0
  339. package/skills/shepherd/evals/evals.json +42 -0
  340. package/{.github/prompts/ship.prompt.md → skills/ship/SKILL.md} +81 -45
  341. package/skills/ship/evals/evals.json +42 -0
  342. package/skills/smith/SKILL.md +142 -0
  343. package/skills/smith/evals/evals.json +46 -0
  344. package/skills/smith/references/autonomy-and-gates.md +94 -0
  345. package/{.github/prompts/sonarcloud.prompt.md → skills/sonarcloud/SKILL.md} +14 -3
  346. package/skills/sonarcloud/evals/evals.json +46 -0
  347. package/skills/sonarcloud-analysis/SKILL.md +18 -13
  348. package/skills/sonarcloud-analysis/evals/evals.json +11 -15
  349. package/{.github/prompts/status.prompt.md → skills/status/SKILL.md} +20 -10
  350. package/skills/status/evals/evals.json +50 -0
  351. package/skills/triage-ready/SKILL.md +121 -0
  352. package/skills/triage-ready/evals/evals.json +42 -0
  353. package/{.github/prompts/validate.prompt.md → skills/validate/SKILL.md} +52 -29
  354. package/skills/validate/evals/evals.json +42 -0
  355. package/skills/verify/SKILL.md +299 -0
  356. package/skills/verify/evals/evals.json +50 -0
  357. package/.claude/commands/dev.md +0 -345
  358. package/.claude/commands/plan.md +0 -566
  359. package/.claude/commands/premerge.md +0 -186
  360. package/.claude/commands/research.md +0 -42
  361. package/.claude/commands/review.md +0 -451
  362. package/.claude/commands/rollback.md +0 -721
  363. package/.claude/commands/ship.md +0 -213
  364. package/.claude/commands/sonarcloud.md +0 -152
  365. package/.claude/commands/status.md +0 -90
  366. package/.claude/commands/validate.md +0 -288
  367. package/.claude/commands/verify.md +0 -269
  368. package/.claude/rules/workflow.md +0 -121
  369. package/.cline/workflows/dev.md +0 -342
  370. package/.cline/workflows/plan.md +0 -563
  371. package/.cline/workflows/premerge.md +0 -183
  372. package/.cline/workflows/research.md +0 -39
  373. package/.cline/workflows/review.md +0 -448
  374. package/.cline/workflows/rollback.md +0 -718
  375. package/.cline/workflows/ship.md +0 -210
  376. package/.cline/workflows/sonarcloud.md +0 -146
  377. package/.cline/workflows/status.md +0 -87
  378. package/.cline/workflows/validate.md +0 -285
  379. package/.cline/workflows/verify.md +0 -266
  380. package/.codex/config.toml +0 -11
  381. package/.codex/skills/dev/SKILL.md +0 -345
  382. package/.codex/skills/plan/SKILL.md +0 -566
  383. package/.codex/skills/premerge/SKILL.md +0 -186
  384. package/.codex/skills/research/SKILL.md +0 -42
  385. package/.codex/skills/review/SKILL.md +0 -451
  386. package/.codex/skills/rollback/SKILL.md +0 -721
  387. package/.codex/skills/ship/SKILL.md +0 -213
  388. package/.codex/skills/sonarcloud/SKILL.md +0 -149
  389. package/.codex/skills/status/SKILL.md +0 -90
  390. package/.codex/skills/validate/SKILL.md +0 -288
  391. package/.codex/skills/verify/SKILL.md +0 -269
  392. package/.cursor/commands/dev.md +0 -342
  393. package/.cursor/commands/plan.md +0 -563
  394. package/.cursor/commands/premerge.md +0 -183
  395. package/.cursor/commands/research.md +0 -39
  396. package/.cursor/commands/review.md +0 -448
  397. package/.cursor/commands/ship.md +0 -210
  398. package/.cursor/commands/sonarcloud.md +0 -146
  399. package/.cursor/commands/status.md +0 -87
  400. package/.cursor/commands/validate.md +0 -285
  401. package/.cursor/commands/verify.md +0 -266
  402. package/.cursorrules +0 -149
  403. package/.github/prompts/premerge.prompt.md +0 -188
  404. package/.github/prompts/research.prompt.md +0 -44
  405. package/.github/prompts/rollback.prompt.md +0 -723
  406. package/.github/prompts/verify.prompt.md +0 -271
  407. package/.github/workflows/beads-to-github.yml +0 -89
  408. package/.github/workflows/github-to-beads.yml +0 -100
  409. package/.kilocode/workflows/dev.md +0 -346
  410. package/.kilocode/workflows/plan.md +0 -567
  411. package/.kilocode/workflows/premerge.md +0 -187
  412. package/.kilocode/workflows/research.md +0 -43
  413. package/.kilocode/workflows/review.md +0 -452
  414. package/.kilocode/workflows/rollback.md +0 -722
  415. package/.kilocode/workflows/ship.md +0 -214
  416. package/.kilocode/workflows/sonarcloud.md +0 -150
  417. package/.kilocode/workflows/status.md +0 -91
  418. package/.kilocode/workflows/validate.md +0 -289
  419. package/.kilocode/workflows/verify.md +0 -270
  420. package/.opencode/commands/dev.md +0 -345
  421. package/.opencode/commands/plan.md +0 -566
  422. package/.opencode/commands/premerge.md +0 -186
  423. package/.opencode/commands/research.md +0 -42
  424. package/.opencode/commands/review.md +0 -451
  425. package/.opencode/commands/rollback.md +0 -721
  426. package/.opencode/commands/ship.md +0 -213
  427. package/.opencode/commands/sonarcloud.md +0 -149
  428. package/.opencode/commands/status.md +0 -90
  429. package/.opencode/commands/validate.md +0 -288
  430. package/.opencode/commands/verify.md +0 -269
  431. package/.roo/commands/dev.md +0 -346
  432. package/.roo/commands/plan.md +0 -567
  433. package/.roo/commands/premerge.md +0 -187
  434. package/.roo/commands/research.md +0 -43
  435. package/.roo/commands/review.md +0 -452
  436. package/.roo/commands/rollback.md +0 -722
  437. package/.roo/commands/ship.md +0 -214
  438. package/.roo/commands/sonarcloud.md +0 -150
  439. package/.roo/commands/status.md +0 -91
  440. package/.roo/commands/validate.md +0 -289
  441. package/.roo/commands/verify.md +0 -270
  442. package/docs/BEADS_GITHUB_SYNC.md +0 -281
  443. package/docs/GREPTILE_SETUP.md +0 -400
  444. package/docs/MANUAL_REVIEW_GUIDE.md +0 -106
  445. package/docs/SETUP.md +0 -663
  446. package/docs/VALIDATION.md +0 -363
  447. package/lib/agents/cline.plugin.json +0 -29
  448. package/lib/agents/copilot.plugin.json +0 -24
  449. package/lib/agents/kilocode.plugin.json +0 -22
  450. package/lib/agents/opencode.plugin.json +0 -23
  451. package/lib/agents/roo.plugin.json +0 -30
  452. package/lib/beads-bootstrap.js +0 -225
  453. package/lib/beads-health-check.js +0 -188
  454. package/lib/commands/commands-reset.js +0 -147
  455. package/opencode.json +0 -67
  456. package/scripts/beads-context.test.js +0 -584
  457. package/scripts/github-beads-sync/comment.mjs +0 -64
  458. package/scripts/github-beads-sync/config.mjs +0 -148
  459. package/scripts/github-beads-sync/github-api.mjs +0 -131
  460. package/scripts/github-beads-sync/index.mjs +0 -356
  461. package/scripts/github-beads-sync/label-mapper.mjs +0 -54
  462. package/scripts/github-beads-sync/mapping.mjs +0 -132
  463. package/scripts/github-beads-sync/reverse-sync-cli.mjs +0 -31
  464. package/scripts/github-beads-sync/reverse-sync.mjs +0 -162
  465. package/scripts/github-beads-sync/run-bd.mjs +0 -161
  466. package/scripts/github-beads-sync/sanitize.mjs +0 -121
  467. package/scripts/github-beads-sync.config.json +0 -26
  468. package/scripts/sync-commands.js +0 -600
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,38 +142,98 @@ 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
146
151
  - Offers guided recovery (add tests now, skip with tech debt tracking, emergency override)
147
152
  - No AI decision required - automatic validation
153
+ - **Strong default, not a hard floor.** The TDD gate is the default-ON `rail.tdd_intent` rail; turn it off with `forge gate disable rail.tdd_intent` (the `minimal` adoption profile ships it off). The installed hooks read the resolved config at run time, so a disabled rail makes them genuinely inert — enforcement honestly follows your config.
148
154
 
149
155
  **Pre-push hook validates tests:**
156
+ - Branch protection: blocks direct push to `main`/`master`
157
+ - ESLint: blocks on errors and warnings (strict mode, `--max-warnings 0`)
150
158
  - All tests must pass before push
151
159
  - Can skip for hotfixes with documentation
152
160
 
161
+ **Pull Request workflow:**
162
+ - PR template auto-fills with a standardized format; the self-review checklist catches most bugs before review
163
+ - Reference the issue id in the PR body (e.g. the Forge Kernel issue id); **all review comments must be resolved** before merge
164
+ - Squash-only merging for a clean, linear history
165
+
166
+ **⚠️ 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.
167
+
168
+ **Preferred push workflow (AI agents and humans):**
169
+
170
+ ```bash
171
+ forge push # Branch protection + lint + tests, then push
172
+ forge push --quick # Review-cycle: lint-only push (CI runs full suite)
173
+ forge worktree create <slug> # Create a worktree
174
+ forge test # Run tests with correct timeouts
175
+ forge sync # Sync issue data
176
+ forge clean # Remove merged worktrees
177
+ ```
178
+
179
+ ## Build, Shell, and MCP
180
+
181
+ **Package manager**: Bun (preferred for performance).
182
+
183
+ ```bash
184
+ bun install # Install dependencies
185
+ bun run dev # Start development
186
+ bun run build # Production build
187
+ bun test # Run tests
188
+ ```
189
+
190
+ **GitHub CLI**: `gh auth login` for the PR workflow.
191
+
192
+ ### Shell Model
193
+
194
+ | Platform | Shell used by Forge commands and scripts |
195
+ | --- | --- |
196
+ | Windows | Git Bash for helper-backed Forge stage flows |
197
+ | macOS/Linux | Default login shell |
198
+
199
+ 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).
200
+
201
+ ### MCP Servers (Optional)
202
+
203
+ If your agent supports MCP, these enhance research:
204
+
205
+ - **Context7** - up-to-date library documentation and API reference
206
+ - **grep.app** - search 1M+ GitHub repos for real-world code examples
207
+
208
+ 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.
209
+
153
210
  ## Documentation Index (Context Pointers)
154
211
 
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
212
+ **Detailed stage skill instructions** are located in:
213
+ - [skills/status/SKILL.md](skills/status/SKILL.md) - How to check current context (utility)
214
+ - [skills/plan/SKILL.md](skills/plan/SKILL.md) - How to plan features (3 phases: design intent + research + branch/worktree/tasks)
215
+ - [skills/dev/SKILL.md](skills/dev/SKILL.md) - How to implement with subagent-driven TDD and decision gate
216
+ - [skills/validate/SKILL.md](skills/validate/SKILL.md) - How to run validation (with HARD-GATE exit)
217
+ - [skills/ship/SKILL.md](skills/ship/SKILL.md) - How to create PRs
218
+ - [skills/review/SKILL.md](skills/review/SKILL.md) - How to address PR feedback (with HARD-GATE exit)
219
+ - [skills/shepherd/SKILL.md](skills/shepherd/SKILL.md) - How to run a bounded PR monitor pass (utility; never merges, never resolves threads)
220
+ - [skills/verify/SKILL.md](skills/verify/SKILL.md) - How to verify post-merge health
164
221
 
165
222
  **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
223
+ - `docs/work/YYYY-MM-DD-<slug>/plan.md` - Design intent + technical research
224
+ - `docs/work/YYYY-MM-DD-<slug>/tasks.md` - Task list with TDD steps
225
+ - `docs/work/YYYY-MM-DD-<slug>/decisions.md` - Decisions log from /dev
169
226
 
170
227
  **Comprehensive workflow guide:**
171
228
  - 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
229
+ - [docs/reference/TOOLCHAIN.md](docs/reference/TOOLCHAIN.md) - Tool setup and configuration
230
+ - [docs/reference/VALIDATION.md](docs/reference/VALIDATION.md) - Enforcement and validation details
231
+
232
+ **Forge v3 / Kernel Plan (active design):**
233
+ - [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
234
+ - [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
235
+ - [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
236
+ - See [docs/INDEX.md](docs/INDEX.md) for the full reading order across the v3 design folder
174
237
 
175
238
  **Load these files when you need detailed instructions for a specific stage.**
176
239
 
@@ -187,47 +250,40 @@ Every stage transition should carry structured context so the next stage (or a n
187
250
  | /validate | All checks pass/fail summary | Failures diagnosed | Scripts/commands run | Ship readiness |
188
251
  | /ship | PR created, checks pending | Template sections filled | PR URL, branch name | Review focus areas |
189
252
  | /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 |
253
+ | pre-merge gate | Docs updated, CI green | N/A | Updated doc files | Merge instructions |
191
254
 
192
- ### Validation Command
255
+ ### Recording Stage Context
193
256
 
194
- Run at each stage exit to check for missing context:
257
+ Record the stage-exit context as a kernel issue comment so the next stage (or a
258
+ fresh session) can resume from the issue record itself:
195
259
 
196
260
  ```bash
197
- bash scripts/beads-context.sh validate <beads-issue-id>
261
+ forge issue comment <issue-id> "stage: dev -> validate
262
+ summary: All 5 tasks done, 1 decision gate fired
263
+ decisions: Used streaming parser over DOM for memory efficiency
264
+ artifacts: lib/parser.js test/parser.test.js
265
+ next: Run lint first — streaming approach may trigger no-await rule"
198
266
  ```
199
267
 
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.
268
+ Check-after-write verification (`gate.issue_verify`, default-on) confirms the
269
+ comment actually landed. Read context back with `forge show <issue-id>` (or
270
+ `forge recap <issue-id>` for the bounded orientation envelope).
201
271
 
202
272
  ### Field Definitions
203
273
 
204
274
  - **Summary**: 1-2 sentence recap of what was accomplished in this stage. Example: `--summary "All 5 tasks done, 1 decision gate fired"`
205
275
  - **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"`
276
+ - **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
277
  - **Next**: Guidance for the next stage on what to focus on. Example: `--next "Run lint first — streaming approach may trigger no-await rule"`
208
278
 
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
279
  ### Enforcement Level
224
280
 
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.
281
+ This convention is **advisory only** missing fields never block a stage
282
+ transition. The goal is to build good habits, not to create friction.
226
283
 
227
- <!-- BEGIN BEADS INTEGRATION v:1 profile:minimal hash:ca08a54f -->
228
- ## Beads Issue Tracker
284
+ ## Forge Issue Tracker
229
285
 
230
- This project uses **bd (beads)** for issue tracking. Run `bd prime` to see full workflow context and commands.
286
+ This project uses the **Forge Kernel** for issue tracking. Run `forge prime` to see full workflow context and commands.
231
287
 
232
288
  ### Quick Reference
233
289
 
@@ -238,11 +294,46 @@ forge claim <id> # Claim work
238
294
  forge close <id> # Complete work
239
295
  ```
240
296
 
297
+ **More commands worth knowing** (run `forge <command> --help` for full usage):
298
+
299
+ ```bash
300
+ forge remember <note> # Persist a project-memory note to a file-backed store
301
+ forge recall [query] # Retrieve project-memory notes back (the read half of remember)
302
+ forge insights # Detect recurring evidence patterns, suggest conservative follow-ups
303
+ forge upgrade # Preview and self-heal safe Forge upgrade readiness
304
+ forge gate <verb> <gate-id> # Toggle a workflow gate, or record/query human-gate approval events
305
+ forge role <role> --use <skill> # Bind a role to a skill/ideology in .forge/config.yaml
306
+ forge merge --auto <pr> # Opt-in conditional auto-merge — merges only when configured rules pass (OFF by default)
307
+ ```
308
+
241
309
  ### Rules
242
310
 
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
311
+ - 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.
312
+ - Run `forge prime` for detailed command reference and session close protocol
313
+ - Use `forge remember` for persistent knowledge and `forge recall` to retrieve it back — do NOT use MEMORY.md files
314
+
315
+ ### Kernel Tracking (nothing discussed goes missing)
316
+
317
+ **NON-NEGOTIABLE, default-on.** Anything raised in a session — a bug, an idea, a
318
+ design decision, a follow-up, a TODO, a risk noticed in passing — MUST become a
319
+ Forge Kernel issue **immediately** via `forge issue create`, before it can be
320
+ forgotten. Triage it (set a type, link its epic/parent) so it is discoverable.
321
+ When you defer scope, file the follow-up issue and reference it — never leave
322
+ work unfiled. The Kernel is the single source of truth; do NOT substitute
323
+ TodoWrite, markdown TODO lists, or memory notes for a filed issue.
324
+
325
+ This policy is canonicalized in `rules/kernel-tracking.md` (rendered to every
326
+ port: `.cursor/rules/kernel-tracking.mdc` for Cursor, this projection for
327
+ Claude/Codex/Hermes) and governed by the default-on `rail.kernel_tracking`
328
+ runtime rail. Turn it off only deliberately: `forge gate disable rail.kernel_tracking`.
329
+
330
+ ## Project Learnings
331
+
332
+ - **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.
333
+ - **Stage names**: The validation stage command is `/validate` — renamed in PR #50; do not use the old name.
334
+ - **Unused params**: Prefix with `_` (e.g., `_searchTerm`) — ESLint `no-unused-vars` enforced with `--max-warnings 0`.
335
+ - **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`.
336
+ - **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
337
 
247
338
  ## Session Completion
248
339
 
@@ -256,7 +347,7 @@ forge close <id> # Complete work
256
347
  4. **PUSH TO REMOTE** - This is MANDATORY:
257
348
  ```bash
258
349
  git pull --rebase
259
- forge sync # wraps the supported Beads sync flow when Beads is configured
350
+ forge sync # wraps the supported issue-store sync flow when the issue store is configured
260
351
  git push
261
352
  git status # MUST show "up to date with origin"
262
353
  ```
@@ -270,4 +361,3 @@ forge close <id> # Complete work
270
361
  - NEVER say "ready to push when you are" - YOU must push
271
362
  - If push fails, resolve and retry until it succeeds
272
363
  - 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 -->