@jokerized/getresearchdone 0.4.1

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 (711) hide show
  1. package/.claude-plugin/plugin.json +103 -0
  2. package/README.md +211 -0
  3. package/agents/grd-baseline-assessor.md +684 -0
  4. package/agents/grd-code-reviewer.md +300 -0
  5. package/agents/grd-codebase-mapper.md +355 -0
  6. package/agents/grd-critique-agent.md +119 -0
  7. package/agents/grd-debugger.md +519 -0
  8. package/agents/grd-deep-diver.md +737 -0
  9. package/agents/grd-eval-planner.md +913 -0
  10. package/agents/grd-eval-reporter.md +717 -0
  11. package/agents/grd-executor.md +683 -0
  12. package/agents/grd-feasibility-analyst.md +624 -0
  13. package/agents/grd-integration-checker.md +367 -0
  14. package/agents/grd-knowledge-miner.md +81 -0
  15. package/agents/grd-migrator.md +88 -0
  16. package/agents/grd-phase-researcher.md +697 -0
  17. package/agents/grd-plan-checker.md +443 -0
  18. package/agents/grd-planner.md +1532 -0
  19. package/agents/grd-product-owner.md +562 -0
  20. package/agents/grd-project-researcher.md +513 -0
  21. package/agents/grd-research-synthesizer.md +273 -0
  22. package/agents/grd-roadmapper.md +798 -0
  23. package/agents/grd-surveyor.md +566 -0
  24. package/agents/grd-verifier.md +893 -0
  25. package/bin/gd.js +4 -0
  26. package/bin/gd.ts +227 -0
  27. package/bin/grd-manifest.js +4 -0
  28. package/bin/grd-manifest.ts +286 -0
  29. package/bin/grd-mcp-server.js +4 -0
  30. package/bin/grd-mcp-server.ts +124 -0
  31. package/bin/grd-tools.js +4 -0
  32. package/bin/grd-tools.ts +2471 -0
  33. package/bin/postinstall.js +4 -0
  34. package/bin/postinstall.ts +80 -0
  35. package/commands/add-phase.md +123 -0
  36. package/commands/add-todo.md +87 -0
  37. package/commands/assess-baseline.md +289 -0
  38. package/commands/autopilot.md +100 -0
  39. package/commands/autoplan.md +55 -0
  40. package/commands/check-todos.md +87 -0
  41. package/commands/compare-methods.md +262 -0
  42. package/commands/complete-milestone.md +225 -0
  43. package/commands/debug.md +372 -0
  44. package/commands/deep-dive.md +288 -0
  45. package/commands/discover.md +281 -0
  46. package/commands/discuss-phase.md +188 -0
  47. package/commands/discuss.md +55 -0
  48. package/commands/eval-report.md +310 -0
  49. package/commands/evolve.md +79 -0
  50. package/commands/execute-phase.md +1017 -0
  51. package/commands/feasibility.md +292 -0
  52. package/commands/help.md +407 -0
  53. package/commands/init.md +1508 -0
  54. package/commands/insert-phase.md +113 -0
  55. package/commands/iterate.md +327 -0
  56. package/commands/list-phase-assumptions.md +217 -0
  57. package/commands/long-term-roadmap.md +202 -0
  58. package/commands/map-codebase.md +111 -0
  59. package/commands/migrate.md +159 -0
  60. package/commands/new-milestone.md +169 -0
  61. package/commands/pause-work.md +83 -0
  62. package/commands/plan-milestone-gaps.md +373 -0
  63. package/commands/plan-phase.md +655 -0
  64. package/commands/principles.md +328 -0
  65. package/commands/product-plan.md +319 -0
  66. package/commands/progress.md +481 -0
  67. package/commands/quick.md +167 -0
  68. package/commands/reapply-patches.md +154 -0
  69. package/commands/remove-phase.md +97 -0
  70. package/commands/requirement.md +96 -0
  71. package/commands/resume-project.md +113 -0
  72. package/commands/settings.md +1144 -0
  73. package/commands/survey.md +242 -0
  74. package/commands/sync.md +246 -0
  75. package/commands/tracker-setup.md +322 -0
  76. package/commands/update.md +202 -0
  77. package/commands/verify-phase.md +335 -0
  78. package/commands/verify-work.md +701 -0
  79. package/commands/wireup.md +29 -0
  80. package/dist/bin/gd.d.ts +3 -0
  81. package/dist/bin/gd.d.ts.map +1 -0
  82. package/dist/bin/gd.js +178 -0
  83. package/dist/bin/gd.js.map +1 -0
  84. package/dist/bin/grd-manifest.d.ts +3 -0
  85. package/dist/bin/grd-manifest.d.ts.map +1 -0
  86. package/dist/bin/grd-manifest.js +202 -0
  87. package/dist/bin/grd-manifest.js.map +1 -0
  88. package/dist/bin/grd-mcp-server.d.ts +3 -0
  89. package/dist/bin/grd-mcp-server.d.ts.map +1 -0
  90. package/dist/bin/grd-mcp-server.js +71 -0
  91. package/dist/bin/grd-mcp-server.js.map +1 -0
  92. package/dist/bin/grd-tools.d.ts +3 -0
  93. package/dist/bin/grd-tools.d.ts.map +1 -0
  94. package/dist/bin/grd-tools.js +1680 -0
  95. package/dist/bin/grd-tools.js.map +1 -0
  96. package/dist/bin/postinstall.d.ts +3 -0
  97. package/dist/bin/postinstall.d.ts.map +1 -0
  98. package/dist/bin/postinstall.js +61 -0
  99. package/dist/bin/postinstall.js.map +1 -0
  100. package/dist/lib/autopilot-milestone.d.ts +2 -0
  101. package/dist/lib/autopilot-milestone.d.ts.map +1 -0
  102. package/dist/lib/autopilot-milestone.js +94 -0
  103. package/dist/lib/autopilot-milestone.js.map +1 -0
  104. package/dist/lib/autopilot-pipeline.d.ts +2 -0
  105. package/dist/lib/autopilot-pipeline.d.ts.map +1 -0
  106. package/dist/lib/autopilot-pipeline.js +830 -0
  107. package/dist/lib/autopilot-pipeline.js.map +1 -0
  108. package/dist/lib/autopilot-waves.d.ts +2 -0
  109. package/dist/lib/autopilot-waves.d.ts.map +1 -0
  110. package/dist/lib/autopilot-waves.js +266 -0
  111. package/dist/lib/autopilot-waves.js.map +1 -0
  112. package/dist/lib/autopilot.d.ts +2 -0
  113. package/dist/lib/autopilot.d.ts.map +1 -0
  114. package/dist/lib/autopilot.js +1314 -0
  115. package/dist/lib/autopilot.js.map +1 -0
  116. package/dist/lib/autoplan.d.ts +2 -0
  117. package/dist/lib/autoplan.d.ts.map +1 -0
  118. package/dist/lib/autoplan.js +198 -0
  119. package/dist/lib/autoplan.js.map +1 -0
  120. package/dist/lib/autoresearch.d.ts +2 -0
  121. package/dist/lib/autoresearch.d.ts.map +1 -0
  122. package/dist/lib/autoresearch.js +626 -0
  123. package/dist/lib/autoresearch.js.map +1 -0
  124. package/dist/lib/backend.d.ts +2 -0
  125. package/dist/lib/backend.d.ts.map +1 -0
  126. package/dist/lib/backend.js +1036 -0
  127. package/dist/lib/backend.js.map +1 -0
  128. package/dist/lib/benchmark.d.ts +99 -0
  129. package/dist/lib/benchmark.d.ts.map +1 -0
  130. package/dist/lib/benchmark.js +278 -0
  131. package/dist/lib/benchmark.js.map +1 -0
  132. package/dist/lib/citations.d.ts +2 -0
  133. package/dist/lib/citations.d.ts.map +1 -0
  134. package/dist/lib/citations.js +642 -0
  135. package/dist/lib/citations.js.map +1 -0
  136. package/dist/lib/cleanup.d.ts +2 -0
  137. package/dist/lib/cleanup.d.ts.map +1 -0
  138. package/dist/lib/cleanup.js +1222 -0
  139. package/dist/lib/cleanup.js.map +1 -0
  140. package/dist/lib/cli/adapters.d.ts +10 -0
  141. package/dist/lib/cli/adapters.d.ts.map +1 -0
  142. package/dist/lib/cli/adapters.js +27 -0
  143. package/dist/lib/cli/adapters.js.map +1 -0
  144. package/dist/lib/cli/agent.d.ts +17 -0
  145. package/dist/lib/cli/agent.d.ts.map +1 -0
  146. package/dist/lib/cli/agent.js +53 -0
  147. package/dist/lib/cli/agent.js.map +1 -0
  148. package/dist/lib/cli/index.d.ts +21 -0
  149. package/dist/lib/cli/index.d.ts.map +1 -0
  150. package/dist/lib/cli/index.js +264 -0
  151. package/dist/lib/cli/index.js.map +1 -0
  152. package/dist/lib/cli/output.d.ts +20 -0
  153. package/dist/lib/cli/output.d.ts.map +1 -0
  154. package/dist/lib/cli/output.js +22 -0
  155. package/dist/lib/cli/output.js.map +1 -0
  156. package/dist/lib/cli/scan-dispatch.d.ts +9 -0
  157. package/dist/lib/cli/scan-dispatch.d.ts.map +1 -0
  158. package/dist/lib/cli/scan-dispatch.js +107 -0
  159. package/dist/lib/cli/scan-dispatch.js.map +1 -0
  160. package/dist/lib/cli/tools.d.ts +16 -0
  161. package/dist/lib/cli/tools.d.ts.map +1 -0
  162. package/dist/lib/cli/tools.js +168 -0
  163. package/dist/lib/cli/tools.js.map +1 -0
  164. package/dist/lib/commands/_dashboard-parsers.d.ts +2 -0
  165. package/dist/lib/commands/_dashboard-parsers.d.ts.map +1 -0
  166. package/dist/lib/commands/_dashboard-parsers.js +192 -0
  167. package/dist/lib/commands/_dashboard-parsers.js.map +1 -0
  168. package/dist/lib/commands/analysis.d.ts +2 -0
  169. package/dist/lib/commands/analysis.d.ts.map +1 -0
  170. package/dist/lib/commands/analysis.js +1418 -0
  171. package/dist/lib/commands/analysis.js.map +1 -0
  172. package/dist/lib/commands/assumptions.d.ts +2 -0
  173. package/dist/lib/commands/assumptions.d.ts.map +1 -0
  174. package/dist/lib/commands/assumptions.js +166 -0
  175. package/dist/lib/commands/assumptions.js.map +1 -0
  176. package/dist/lib/commands/blame.d.ts +2 -0
  177. package/dist/lib/commands/blame.d.ts.map +1 -0
  178. package/dist/lib/commands/blame.js +133 -0
  179. package/dist/lib/commands/blame.js.map +1 -0
  180. package/dist/lib/commands/budget.d.ts +2 -0
  181. package/dist/lib/commands/budget.d.ts.map +1 -0
  182. package/dist/lib/commands/budget.js +100 -0
  183. package/dist/lib/commands/budget.js.map +1 -0
  184. package/dist/lib/commands/check-plans.d.ts +2 -0
  185. package/dist/lib/commands/check-plans.d.ts.map +1 -0
  186. package/dist/lib/commands/check-plans.js +190 -0
  187. package/dist/lib/commands/check-plans.js.map +1 -0
  188. package/dist/lib/commands/config.d.ts +2 -0
  189. package/dist/lib/commands/config.d.ts.map +1 -0
  190. package/dist/lib/commands/config.js +188 -0
  191. package/dist/lib/commands/config.js.map +1 -0
  192. package/dist/lib/commands/dashboard.d.ts +2 -0
  193. package/dist/lib/commands/dashboard.d.ts.map +1 -0
  194. package/dist/lib/commands/dashboard.js +466 -0
  195. package/dist/lib/commands/dashboard.js.map +1 -0
  196. package/dist/lib/commands/estimate.d.ts +2 -0
  197. package/dist/lib/commands/estimate.d.ts.map +1 -0
  198. package/dist/lib/commands/estimate.js +148 -0
  199. package/dist/lib/commands/estimate.js.map +1 -0
  200. package/dist/lib/commands/eval-diff.d.ts +2 -0
  201. package/dist/lib/commands/eval-diff.d.ts.map +1 -0
  202. package/dist/lib/commands/eval-diff.js +213 -0
  203. package/dist/lib/commands/eval-diff.js.map +1 -0
  204. package/dist/lib/commands/freshness.d.ts +2 -0
  205. package/dist/lib/commands/freshness.d.ts.map +1 -0
  206. package/dist/lib/commands/freshness.js +163 -0
  207. package/dist/lib/commands/freshness.js.map +1 -0
  208. package/dist/lib/commands/health.d.ts +2 -0
  209. package/dist/lib/commands/health.d.ts.map +1 -0
  210. package/dist/lib/commands/health.js +435 -0
  211. package/dist/lib/commands/health.js.map +1 -0
  212. package/dist/lib/commands/index.d.ts +2 -0
  213. package/dist/lib/commands/index.d.ts.map +1 -0
  214. package/dist/lib/commands/index.js +128 -0
  215. package/dist/lib/commands/index.js.map +1 -0
  216. package/dist/lib/commands/install.d.ts +56 -0
  217. package/dist/lib/commands/install.d.ts.map +1 -0
  218. package/dist/lib/commands/install.js +214 -0
  219. package/dist/lib/commands/install.js.map +1 -0
  220. package/dist/lib/commands/knowhow-aggregator.d.ts +2 -0
  221. package/dist/lib/commands/knowhow-aggregator.d.ts.map +1 -0
  222. package/dist/lib/commands/knowhow-aggregator.js +279 -0
  223. package/dist/lib/commands/knowhow-aggregator.js.map +1 -0
  224. package/dist/lib/commands/knowledge-search.d.ts +2 -0
  225. package/dist/lib/commands/knowledge-search.d.ts.map +1 -0
  226. package/dist/lib/commands/knowledge-search.js +113 -0
  227. package/dist/lib/commands/knowledge-search.js.map +1 -0
  228. package/dist/lib/commands/long-term-roadmap.d.ts +2 -0
  229. package/dist/lib/commands/long-term-roadmap.d.ts.map +1 -0
  230. package/dist/lib/commands/long-term-roadmap.js +272 -0
  231. package/dist/lib/commands/long-term-roadmap.js.map +1 -0
  232. package/dist/lib/commands/patterns.d.ts +91 -0
  233. package/dist/lib/commands/patterns.d.ts.map +1 -0
  234. package/dist/lib/commands/patterns.js +391 -0
  235. package/dist/lib/commands/patterns.js.map +1 -0
  236. package/dist/lib/commands/phase-info.d.ts +2 -0
  237. package/dist/lib/commands/phase-info.d.ts.map +1 -0
  238. package/dist/lib/commands/phase-info.js +509 -0
  239. package/dist/lib/commands/phase-info.js.map +1 -0
  240. package/dist/lib/commands/plan-lint.d.ts +56 -0
  241. package/dist/lib/commands/plan-lint.d.ts.map +1 -0
  242. package/dist/lib/commands/plan-lint.js +481 -0
  243. package/dist/lib/commands/plan-lint.js.map +1 -0
  244. package/dist/lib/commands/plan-phase.d.ts +53 -0
  245. package/dist/lib/commands/plan-phase.d.ts.map +1 -0
  246. package/dist/lib/commands/plan-phase.js +288 -0
  247. package/dist/lib/commands/plan-phase.js.map +1 -0
  248. package/dist/lib/commands/progress.d.ts +2 -0
  249. package/dist/lib/commands/progress.d.ts.map +1 -0
  250. package/dist/lib/commands/progress.js +266 -0
  251. package/dist/lib/commands/progress.js.map +1 -0
  252. package/dist/lib/commands/quality.d.ts +2 -0
  253. package/dist/lib/commands/quality.d.ts.map +1 -0
  254. package/dist/lib/commands/quality.js +80 -0
  255. package/dist/lib/commands/quality.js.map +1 -0
  256. package/dist/lib/commands/rollback.d.ts +2 -0
  257. package/dist/lib/commands/rollback.d.ts.map +1 -0
  258. package/dist/lib/commands/rollback.js +145 -0
  259. package/dist/lib/commands/rollback.js.map +1 -0
  260. package/dist/lib/commands/scan.d.ts +25 -0
  261. package/dist/lib/commands/scan.d.ts.map +1 -0
  262. package/dist/lib/commands/scan.js +28 -0
  263. package/dist/lib/commands/scan.js.map +1 -0
  264. package/dist/lib/commands/search.d.ts +2 -0
  265. package/dist/lib/commands/search.d.ts.map +1 -0
  266. package/dist/lib/commands/search.js +212 -0
  267. package/dist/lib/commands/search.js.map +1 -0
  268. package/dist/lib/commands/select-candidate.d.ts +128 -0
  269. package/dist/lib/commands/select-candidate.d.ts.map +1 -0
  270. package/dist/lib/commands/select-candidate.js +518 -0
  271. package/dist/lib/commands/select-candidate.js.map +1 -0
  272. package/dist/lib/commands/singularity.d.ts +2 -0
  273. package/dist/lib/commands/singularity.d.ts.map +1 -0
  274. package/dist/lib/commands/singularity.js +185 -0
  275. package/dist/lib/commands/singularity.js.map +1 -0
  276. package/dist/lib/commands/slug-timestamp.d.ts +2 -0
  277. package/dist/lib/commands/slug-timestamp.d.ts.map +1 -0
  278. package/dist/lib/commands/slug-timestamp.js +54 -0
  279. package/dist/lib/commands/slug-timestamp.js.map +1 -0
  280. package/dist/lib/commands/tail.d.ts +2 -0
  281. package/dist/lib/commands/tail.d.ts.map +1 -0
  282. package/dist/lib/commands/tail.js +100 -0
  283. package/dist/lib/commands/tail.js.map +1 -0
  284. package/dist/lib/commands/todo.d.ts +2 -0
  285. package/dist/lib/commands/todo.d.ts.map +1 -0
  286. package/dist/lib/commands/todo.js +200 -0
  287. package/dist/lib/commands/todo.js.map +1 -0
  288. package/dist/lib/commands/watch.d.ts +2 -0
  289. package/dist/lib/commands/watch.d.ts.map +1 -0
  290. package/dist/lib/commands/watch.js +72 -0
  291. package/dist/lib/commands/watch.js.map +1 -0
  292. package/dist/lib/complexity.d.ts +55 -0
  293. package/dist/lib/complexity.d.ts.map +1 -0
  294. package/dist/lib/complexity.js +80 -0
  295. package/dist/lib/complexity.js.map +1 -0
  296. package/dist/lib/context/agents.d.ts +2 -0
  297. package/dist/lib/context/agents.d.ts.map +1 -0
  298. package/dist/lib/context/agents.js +344 -0
  299. package/dist/lib/context/agents.js.map +1 -0
  300. package/dist/lib/context/base.d.ts +2 -0
  301. package/dist/lib/context/base.d.ts.map +1 -0
  302. package/dist/lib/context/base.js +81 -0
  303. package/dist/lib/context/base.js.map +1 -0
  304. package/dist/lib/context/execute.d.ts +2 -0
  305. package/dist/lib/context/execute.d.ts.map +1 -0
  306. package/dist/lib/context/execute.js +753 -0
  307. package/dist/lib/context/execute.js.map +1 -0
  308. package/dist/lib/context/index.d.ts +2 -0
  309. package/dist/lib/context/index.d.ts.map +1 -0
  310. package/dist/lib/context/index.js +88 -0
  311. package/dist/lib/context/index.js.map +1 -0
  312. package/dist/lib/context/progress.d.ts +2 -0
  313. package/dist/lib/context/progress.d.ts.map +1 -0
  314. package/dist/lib/context/progress.js +178 -0
  315. package/dist/lib/context/progress.js.map +1 -0
  316. package/dist/lib/context/project.d.ts +2 -0
  317. package/dist/lib/context/project.d.ts.map +1 -0
  318. package/dist/lib/context/project.js +413 -0
  319. package/dist/lib/context/project.js.map +1 -0
  320. package/dist/lib/context/research.d.ts +2 -0
  321. package/dist/lib/context/research.d.ts.map +1 -0
  322. package/dist/lib/context/research.js +466 -0
  323. package/dist/lib/context/research.js.map +1 -0
  324. package/dist/lib/dead-ends.d.ts +28 -0
  325. package/dist/lib/dead-ends.d.ts.map +1 -0
  326. package/dist/lib/dead-ends.js +451 -0
  327. package/dist/lib/dead-ends.js.map +1 -0
  328. package/dist/lib/deps.d.ts +2 -0
  329. package/dist/lib/deps.d.ts.map +1 -0
  330. package/dist/lib/deps.js +630 -0
  331. package/dist/lib/deps.js.map +1 -0
  332. package/dist/lib/discussion.d.ts +2 -0
  333. package/dist/lib/discussion.d.ts.map +1 -0
  334. package/dist/lib/discussion.js +1041 -0
  335. package/dist/lib/discussion.js.map +1 -0
  336. package/dist/lib/drift.d.ts +36 -0
  337. package/dist/lib/drift.d.ts.map +1 -0
  338. package/dist/lib/drift.js +481 -0
  339. package/dist/lib/drift.js.map +1 -0
  340. package/dist/lib/evolve/_dimensions-features.d.ts +2 -0
  341. package/dist/lib/evolve/_dimensions-features.d.ts.map +1 -0
  342. package/dist/lib/evolve/_dimensions-features.js +369 -0
  343. package/dist/lib/evolve/_dimensions-features.js.map +1 -0
  344. package/dist/lib/evolve/_dimensions.d.ts +2 -0
  345. package/dist/lib/evolve/_dimensions.d.ts.map +1 -0
  346. package/dist/lib/evolve/_dimensions.js +358 -0
  347. package/dist/lib/evolve/_dimensions.js.map +1 -0
  348. package/dist/lib/evolve/_product-ideation.d.ts +2 -0
  349. package/dist/lib/evolve/_product-ideation.d.ts.map +1 -0
  350. package/dist/lib/evolve/_product-ideation.js +281 -0
  351. package/dist/lib/evolve/_product-ideation.js.map +1 -0
  352. package/dist/lib/evolve/_prompts.d.ts +2 -0
  353. package/dist/lib/evolve/_prompts.d.ts.map +1 -0
  354. package/dist/lib/evolve/_prompts.js +153 -0
  355. package/dist/lib/evolve/_prompts.js.map +1 -0
  356. package/dist/lib/evolve/cli.d.ts +2 -0
  357. package/dist/lib/evolve/cli.d.ts.map +1 -0
  358. package/dist/lib/evolve/cli.js +224 -0
  359. package/dist/lib/evolve/cli.js.map +1 -0
  360. package/dist/lib/evolve/discovery.d.ts +2 -0
  361. package/dist/lib/evolve/discovery.d.ts.map +1 -0
  362. package/dist/lib/evolve/discovery.js +391 -0
  363. package/dist/lib/evolve/discovery.js.map +1 -0
  364. package/dist/lib/evolve/index.d.ts +2 -0
  365. package/dist/lib/evolve/index.d.ts.map +1 -0
  366. package/dist/lib/evolve/index.js +88 -0
  367. package/dist/lib/evolve/index.js.map +1 -0
  368. package/dist/lib/evolve/orchestrator.d.ts +2 -0
  369. package/dist/lib/evolve/orchestrator.d.ts.map +1 -0
  370. package/dist/lib/evolve/orchestrator.js +851 -0
  371. package/dist/lib/evolve/orchestrator.js.map +1 -0
  372. package/dist/lib/evolve/scoring.d.ts +2 -0
  373. package/dist/lib/evolve/scoring.d.ts.map +1 -0
  374. package/dist/lib/evolve/scoring.js +118 -0
  375. package/dist/lib/evolve/scoring.js.map +1 -0
  376. package/dist/lib/evolve/state.d.ts +2 -0
  377. package/dist/lib/evolve/state.d.ts.map +1 -0
  378. package/dist/lib/evolve/state.js +264 -0
  379. package/dist/lib/evolve/state.js.map +1 -0
  380. package/dist/lib/evolve/types.d.ts +249 -0
  381. package/dist/lib/evolve/types.d.ts.map +1 -0
  382. package/dist/lib/evolve/types.js +3 -0
  383. package/dist/lib/evolve/types.js.map +1 -0
  384. package/dist/lib/frontmatter.d.ts +2 -0
  385. package/dist/lib/frontmatter.d.ts.map +1 -0
  386. package/dist/lib/frontmatter.js +513 -0
  387. package/dist/lib/frontmatter.js.map +1 -0
  388. package/dist/lib/gates.d.ts +2 -0
  389. package/dist/lib/gates.d.ts.map +1 -0
  390. package/dist/lib/gates.js +578 -0
  391. package/dist/lib/gates.js.map +1 -0
  392. package/dist/lib/genome.d.ts +10 -0
  393. package/dist/lib/genome.d.ts.map +1 -0
  394. package/dist/lib/genome.js +368 -0
  395. package/dist/lib/genome.js.map +1 -0
  396. package/dist/lib/got.d.ts +2 -0
  397. package/dist/lib/got.d.ts.map +1 -0
  398. package/dist/lib/got.js +280 -0
  399. package/dist/lib/got.js.map +1 -0
  400. package/dist/lib/invariants.d.ts +2 -0
  401. package/dist/lib/invariants.d.ts.map +1 -0
  402. package/dist/lib/invariants.js +298 -0
  403. package/dist/lib/invariants.js.map +1 -0
  404. package/dist/lib/knowledge.d.ts +2 -0
  405. package/dist/lib/knowledge.d.ts.map +1 -0
  406. package/dist/lib/knowledge.js +658 -0
  407. package/dist/lib/knowledge.js.map +1 -0
  408. package/dist/lib/long-term-roadmap.d.ts +2 -0
  409. package/dist/lib/long-term-roadmap.d.ts.map +1 -0
  410. package/dist/lib/long-term-roadmap.js +602 -0
  411. package/dist/lib/long-term-roadmap.js.map +1 -0
  412. package/dist/lib/markdown-split.d.ts +2 -0
  413. package/dist/lib/markdown-split.d.ts.map +1 -0
  414. package/dist/lib/markdown-split.js +199 -0
  415. package/dist/lib/markdown-split.js.map +1 -0
  416. package/dist/lib/mcp-server.d.ts +2 -0
  417. package/dist/lib/mcp-server.d.ts.map +1 -0
  418. package/dist/lib/mcp-server.js +2424 -0
  419. package/dist/lib/mcp-server.js.map +1 -0
  420. package/dist/lib/metrics.d.ts +16 -0
  421. package/dist/lib/metrics.d.ts.map +1 -0
  422. package/dist/lib/metrics.js +48 -0
  423. package/dist/lib/metrics.js.map +1 -0
  424. package/dist/lib/overstory.d.ts +2 -0
  425. package/dist/lib/overstory.d.ts.map +1 -0
  426. package/dist/lib/overstory.js +211 -0
  427. package/dist/lib/overstory.js.map +1 -0
  428. package/dist/lib/parallel.d.ts +2 -0
  429. package/dist/lib/parallel.d.ts.map +1 -0
  430. package/dist/lib/parallel.js +349 -0
  431. package/dist/lib/parallel.js.map +1 -0
  432. package/dist/lib/paths.d.ts +2 -0
  433. package/dist/lib/paths.d.ts.map +1 -0
  434. package/dist/lib/paths.js +254 -0
  435. package/dist/lib/paths.js.map +1 -0
  436. package/dist/lib/phase-complete-llm.d.ts +22 -0
  437. package/dist/lib/phase-complete-llm.d.ts.map +1 -0
  438. package/dist/lib/phase-complete-llm.js +331 -0
  439. package/dist/lib/phase-complete-llm.js.map +1 -0
  440. package/dist/lib/phase-complete.d.ts +46 -0
  441. package/dist/lib/phase-complete.d.ts.map +1 -0
  442. package/dist/lib/phase-complete.js +278 -0
  443. package/dist/lib/phase-complete.js.map +1 -0
  444. package/dist/lib/phase-io.d.ts +2 -0
  445. package/dist/lib/phase-io.d.ts.map +1 -0
  446. package/dist/lib/phase-io.js +126 -0
  447. package/dist/lib/phase-io.js.map +1 -0
  448. package/dist/lib/phase.d.ts +2 -0
  449. package/dist/lib/phase.d.ts.map +1 -0
  450. package/dist/lib/phase.js +1344 -0
  451. package/dist/lib/phase.js.map +1 -0
  452. package/dist/lib/plan-tournament.d.ts +63 -0
  453. package/dist/lib/plan-tournament.d.ts.map +1 -0
  454. package/dist/lib/plan-tournament.js +353 -0
  455. package/dist/lib/plan-tournament.js.map +1 -0
  456. package/dist/lib/refinement.d.ts +74 -0
  457. package/dist/lib/refinement.d.ts.map +1 -0
  458. package/dist/lib/refinement.js +283 -0
  459. package/dist/lib/refinement.js.map +1 -0
  460. package/dist/lib/requirements.d.ts +2 -0
  461. package/dist/lib/requirements.d.ts.map +1 -0
  462. package/dist/lib/requirements.js +355 -0
  463. package/dist/lib/requirements.js.map +1 -0
  464. package/dist/lib/research-bundle.d.ts +2 -0
  465. package/dist/lib/research-bundle.d.ts.map +1 -0
  466. package/dist/lib/research-bundle.js +246 -0
  467. package/dist/lib/research-bundle.js.map +1 -0
  468. package/dist/lib/roadmap.d.ts +2 -0
  469. package/dist/lib/roadmap.d.ts.map +1 -0
  470. package/dist/lib/roadmap.js +541 -0
  471. package/dist/lib/roadmap.js.map +1 -0
  472. package/dist/lib/sample.d.ts +16 -0
  473. package/dist/lib/sample.d.ts.map +1 -0
  474. package/dist/lib/sample.js +20 -0
  475. package/dist/lib/sample.js.map +1 -0
  476. package/dist/lib/scaffold.d.ts +2 -0
  477. package/dist/lib/scaffold.d.ts.map +1 -0
  478. package/dist/lib/scaffold.js +355 -0
  479. package/dist/lib/scaffold.js.map +1 -0
  480. package/dist/lib/scan/_utils.d.ts +11 -0
  481. package/dist/lib/scan/_utils.d.ts.map +1 -0
  482. package/dist/lib/scan/_utils.js +36 -0
  483. package/dist/lib/scan/_utils.js.map +1 -0
  484. package/dist/lib/scan/base64.d.ts +15 -0
  485. package/dist/lib/scan/base64.d.ts.map +1 -0
  486. package/dist/lib/scan/base64.js +66 -0
  487. package/dist/lib/scan/base64.js.map +1 -0
  488. package/dist/lib/scan/ignorefile.d.ts +30 -0
  489. package/dist/lib/scan/ignorefile.d.ts.map +1 -0
  490. package/dist/lib/scan/ignorefile.js +101 -0
  491. package/dist/lib/scan/ignorefile.js.map +1 -0
  492. package/dist/lib/scan/injection.d.ts +14 -0
  493. package/dist/lib/scan/injection.d.ts.map +1 -0
  494. package/dist/lib/scan/injection.js +39 -0
  495. package/dist/lib/scan/injection.js.map +1 -0
  496. package/dist/lib/scan/patterns.d.ts +17 -0
  497. package/dist/lib/scan/patterns.d.ts.map +1 -0
  498. package/dist/lib/scan/patterns.js +123 -0
  499. package/dist/lib/scan/patterns.js.map +1 -0
  500. package/dist/lib/scan/strip-markdown.d.ts +7 -0
  501. package/dist/lib/scan/strip-markdown.d.ts.map +1 -0
  502. package/dist/lib/scan/strip-markdown.js +38 -0
  503. package/dist/lib/scan/strip-markdown.js.map +1 -0
  504. package/dist/lib/scan/types.d.ts +23 -0
  505. package/dist/lib/scan/types.d.ts.map +1 -0
  506. package/dist/lib/scan/types.js +3 -0
  507. package/dist/lib/scan/types.js.map +1 -0
  508. package/dist/lib/scheduler-wait.d.ts +2 -0
  509. package/dist/lib/scheduler-wait.d.ts.map +1 -0
  510. package/dist/lib/scheduler-wait.js +59 -0
  511. package/dist/lib/scheduler-wait.js.map +1 -0
  512. package/dist/lib/scheduler.d.ts +254 -0
  513. package/dist/lib/scheduler.d.ts.map +1 -0
  514. package/dist/lib/scheduler.js +1147 -0
  515. package/dist/lib/scheduler.js.map +1 -0
  516. package/dist/lib/state.d.ts +2 -0
  517. package/dist/lib/state.d.ts.map +1 -0
  518. package/dist/lib/state.js +744 -0
  519. package/dist/lib/state.js.map +1 -0
  520. package/dist/lib/think.d.ts +18 -0
  521. package/dist/lib/think.d.ts.map +1 -0
  522. package/dist/lib/think.js +317 -0
  523. package/dist/lib/think.js.map +1 -0
  524. package/dist/lib/tracker.d.ts +2 -0
  525. package/dist/lib/tracker.d.ts.map +1 -0
  526. package/dist/lib/tracker.js +1121 -0
  527. package/dist/lib/tracker.js.map +1 -0
  528. package/dist/lib/types.d.ts +1514 -0
  529. package/dist/lib/types.d.ts.map +1 -0
  530. package/dist/lib/types.js +4 -0
  531. package/dist/lib/types.js.map +1 -0
  532. package/dist/lib/utils.d.ts +2 -0
  533. package/dist/lib/utils.d.ts.map +1 -0
  534. package/dist/lib/utils.js +1363 -0
  535. package/dist/lib/utils.js.map +1 -0
  536. package/dist/lib/verify.d.ts +2 -0
  537. package/dist/lib/verify.d.ts.map +1 -0
  538. package/dist/lib/verify.js +1153 -0
  539. package/dist/lib/verify.js.map +1 -0
  540. package/dist/lib/wireup/autofix.d.ts +2 -0
  541. package/dist/lib/wireup/autofix.d.ts.map +1 -0
  542. package/dist/lib/wireup/autofix.js +188 -0
  543. package/dist/lib/wireup/autofix.js.map +1 -0
  544. package/dist/lib/wireup/cli.d.ts +2 -0
  545. package/dist/lib/wireup/cli.d.ts.map +1 -0
  546. package/dist/lib/wireup/cli.js +194 -0
  547. package/dist/lib/wireup/cli.js.map +1 -0
  548. package/dist/lib/wireup/detection.d.ts +47 -0
  549. package/dist/lib/wireup/detection.d.ts.map +1 -0
  550. package/dist/lib/wireup/detection.js +410 -0
  551. package/dist/lib/wireup/detection.js.map +1 -0
  552. package/dist/lib/wireup/discovery.d.ts +2 -0
  553. package/dist/lib/wireup/discovery.d.ts.map +1 -0
  554. package/dist/lib/wireup/discovery.js +934 -0
  555. package/dist/lib/wireup/discovery.js.map +1 -0
  556. package/dist/lib/wireup/execution.d.ts +2 -0
  557. package/dist/lib/wireup/execution.d.ts.map +1 -0
  558. package/dist/lib/wireup/execution.js +573 -0
  559. package/dist/lib/wireup/execution.js.map +1 -0
  560. package/dist/lib/wireup/index.d.ts +2 -0
  561. package/dist/lib/wireup/index.d.ts.map +1 -0
  562. package/dist/lib/wireup/index.js +85 -0
  563. package/dist/lib/wireup/index.js.map +1 -0
  564. package/dist/lib/wireup/orchestrator.d.ts +2 -0
  565. package/dist/lib/wireup/orchestrator.d.ts.map +1 -0
  566. package/dist/lib/wireup/orchestrator.js +366 -0
  567. package/dist/lib/wireup/orchestrator.js.map +1 -0
  568. package/dist/lib/wireup/report.d.ts +47 -0
  569. package/dist/lib/wireup/report.d.ts.map +1 -0
  570. package/dist/lib/wireup/report.js +201 -0
  571. package/dist/lib/wireup/report.js.map +1 -0
  572. package/dist/lib/wireup/scenarios.d.ts +2 -0
  573. package/dist/lib/wireup/scenarios.d.ts.map +1 -0
  574. package/dist/lib/wireup/scenarios.js +516 -0
  575. package/dist/lib/wireup/scenarios.js.map +1 -0
  576. package/dist/lib/wireup/state.d.ts +2 -0
  577. package/dist/lib/wireup/state.d.ts.map +1 -0
  578. package/dist/lib/wireup/state.js +102 -0
  579. package/dist/lib/wireup/state.js.map +1 -0
  580. package/dist/lib/wireup/types.d.ts +376 -0
  581. package/dist/lib/wireup/types.d.ts.map +1 -0
  582. package/dist/lib/wireup/types.js +3 -0
  583. package/dist/lib/wireup/types.js.map +1 -0
  584. package/dist/lib/worktree.d.ts +2 -0
  585. package/dist/lib/worktree.d.ts.map +1 -0
  586. package/dist/lib/worktree.js +999 -0
  587. package/dist/lib/worktree.js.map +1 -0
  588. package/lib/autopilot-milestone.ts +136 -0
  589. package/lib/autopilot-pipeline.ts +1179 -0
  590. package/lib/autopilot-waves.ts +361 -0
  591. package/lib/autopilot.ts +1874 -0
  592. package/lib/autoplan.ts +280 -0
  593. package/lib/autoresearch.js +4 -0
  594. package/lib/autoresearch.ts +886 -0
  595. package/lib/backend.ts +1252 -0
  596. package/lib/benchmark.ts +341 -0
  597. package/lib/citations.ts +760 -0
  598. package/lib/cleanup.ts +1588 -0
  599. package/lib/cli/adapters.ts +41 -0
  600. package/lib/cli/agent.ts +83 -0
  601. package/lib/cli/index.ts +273 -0
  602. package/lib/cli/output.ts +33 -0
  603. package/lib/cli/scan-dispatch.ts +130 -0
  604. package/lib/cli/tools.ts +198 -0
  605. package/lib/commands/_dashboard-parsers.ts +275 -0
  606. package/lib/commands/analysis.ts +1851 -0
  607. package/lib/commands/assumptions.ts +232 -0
  608. package/lib/commands/blame.ts +174 -0
  609. package/lib/commands/budget.ts +148 -0
  610. package/lib/commands/check-plans.ts +233 -0
  611. package/lib/commands/config.ts +287 -0
  612. package/lib/commands/dashboard.ts +680 -0
  613. package/lib/commands/estimate.ts +204 -0
  614. package/lib/commands/eval-diff.ts +252 -0
  615. package/lib/commands/freshness.ts +213 -0
  616. package/lib/commands/health.ts +607 -0
  617. package/lib/commands/index.ts +266 -0
  618. package/lib/commands/install.ts +307 -0
  619. package/lib/commands/knowhow-aggregator.ts +345 -0
  620. package/lib/commands/knowledge-search.ts +153 -0
  621. package/lib/commands/long-term-roadmap.ts +390 -0
  622. package/lib/commands/patterns.ts +465 -0
  623. package/lib/commands/phase-info.ts +698 -0
  624. package/lib/commands/plan-lint.ts +546 -0
  625. package/lib/commands/plan-phase.ts +375 -0
  626. package/lib/commands/progress.ts +319 -0
  627. package/lib/commands/quality.ts +138 -0
  628. package/lib/commands/rollback.ts +195 -0
  629. package/lib/commands/scan.ts +72 -0
  630. package/lib/commands/search.ts +300 -0
  631. package/lib/commands/select-candidate.ts +687 -0
  632. package/lib/commands/singularity.ts +222 -0
  633. package/lib/commands/slug-timestamp.ts +74 -0
  634. package/lib/commands/tail.ts +129 -0
  635. package/lib/commands/todo.ts +273 -0
  636. package/lib/commands/watch.ts +80 -0
  637. package/lib/complexity.ts +117 -0
  638. package/lib/context/agents.ts +505 -0
  639. package/lib/context/base.ts +123 -0
  640. package/lib/context/execute.ts +977 -0
  641. package/lib/context/index.ts +110 -0
  642. package/lib/context/progress.ts +278 -0
  643. package/lib/context/project.ts +531 -0
  644. package/lib/context/research.ts +646 -0
  645. package/lib/dead-ends.ts +506 -0
  646. package/lib/deps.ts +773 -0
  647. package/lib/discussion.ts +1275 -0
  648. package/lib/drift.ts +519 -0
  649. package/lib/evolve/_dimensions-features.ts +525 -0
  650. package/lib/evolve/_dimensions.ts +511 -0
  651. package/lib/evolve/_product-ideation.ts +405 -0
  652. package/lib/evolve/_prompts.ts +178 -0
  653. package/lib/evolve/cli.ts +330 -0
  654. package/lib/evolve/discovery.ts +571 -0
  655. package/lib/evolve/index.ts +105 -0
  656. package/lib/evolve/orchestrator.ts +1139 -0
  657. package/lib/evolve/scoring.ts +167 -0
  658. package/lib/evolve/state.ts +330 -0
  659. package/lib/evolve/types.ts +290 -0
  660. package/lib/frontmatter.ts +615 -0
  661. package/lib/gates.ts +695 -0
  662. package/lib/genome.ts +402 -0
  663. package/lib/got.js +4 -0
  664. package/lib/got.ts +361 -0
  665. package/lib/invariants.ts +378 -0
  666. package/lib/knowledge.ts +768 -0
  667. package/lib/long-term-roadmap.ts +806 -0
  668. package/lib/markdown-split.ts +273 -0
  669. package/lib/mcp-server.ts +3292 -0
  670. package/lib/metrics.ts +49 -0
  671. package/lib/overstory.ts +270 -0
  672. package/lib/parallel.ts +570 -0
  673. package/lib/paths.ts +293 -0
  674. package/lib/phase-complete-llm.ts +376 -0
  675. package/lib/phase-complete.ts +366 -0
  676. package/lib/phase-io.ts +101 -0
  677. package/lib/phase.ts +1981 -0
  678. package/lib/plan-tournament.ts +426 -0
  679. package/lib/refinement.ts +349 -0
  680. package/lib/requirements.ts +469 -0
  681. package/lib/research-bundle.ts +300 -0
  682. package/lib/roadmap.ts +775 -0
  683. package/lib/scaffold.ts +480 -0
  684. package/lib/scan/_utils.ts +37 -0
  685. package/lib/scan/base64.ts +90 -0
  686. package/lib/scan/ignorefile.ts +109 -0
  687. package/lib/scan/injection.ts +67 -0
  688. package/lib/scan/patterns.ts +139 -0
  689. package/lib/scan/strip-markdown.ts +39 -0
  690. package/lib/scan/types.ts +28 -0
  691. package/lib/scheduler-wait.ts +58 -0
  692. package/lib/scheduler.ts +1370 -0
  693. package/lib/state.ts +1000 -0
  694. package/lib/think.ts +365 -0
  695. package/lib/tracker.ts +1591 -0
  696. package/lib/types.ts +1663 -0
  697. package/lib/utils.ts +1479 -0
  698. package/lib/verify.ts +1434 -0
  699. package/lib/wireup/autofix.ts +241 -0
  700. package/lib/wireup/cli.ts +278 -0
  701. package/lib/wireup/detection.ts +542 -0
  702. package/lib/wireup/discovery.ts +1063 -0
  703. package/lib/wireup/execution.ts +686 -0
  704. package/lib/wireup/index.ts +117 -0
  705. package/lib/wireup/orchestrator.ts +519 -0
  706. package/lib/wireup/report.ts +286 -0
  707. package/lib/wireup/scenarios.ts +616 -0
  708. package/lib/wireup/state.ts +139 -0
  709. package/lib/wireup/types.ts +436 -0
  710. package/lib/worktree.ts +1309 -0
  711. package/package.json +67 -0
@@ -0,0 +1,578 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const { loadConfig, normalizePhaseName, safeReadFile, stripShippedSections, createRunCache, } = require('./utils');
6
+ const { phasesDir: getPhasesDirPath } = require('./paths');
7
+ const { validateStructural, validateCrossPhase, extractPlanArtifact } = require('./invariants');
8
+ const { buildCitationGraph, findUnresolved } = require('./citations');
9
+ // ─── File Content Cache ───────────────────────────────────────────────────────
10
+ const _gatesCache = createRunCache();
11
+ function _gatesCachedRead(p) {
12
+ return _gatesCache.get(p, safeReadFile);
13
+ }
14
+ // ─── Gate Check Functions ─────────────────────────────────────────────────────
15
+ /**
16
+ * Check for phase directories on disk that are not in ROADMAP.md.
17
+ */
18
+ function checkOrphanedPhases(cwd) {
19
+ const violations = [];
20
+ const roadmapPath = path.join(cwd, '.planning', 'ROADMAP.md');
21
+ const phasesDir = getPhasesDirPath(cwd);
22
+ const roadmapContent = _gatesCachedRead(roadmapPath);
23
+ if (!roadmapContent)
24
+ return violations;
25
+ const activeContent = stripShippedSections(roadmapContent);
26
+ // Extract phases from ROADMAP
27
+ const roadmapPhases = new Set();
28
+ const phasePattern = /#{2,3}\s*Phase\s+(\d+(?:\.\d+)?)\s*:/gi;
29
+ let m;
30
+ while ((m = phasePattern.exec(activeContent)) !== null) {
31
+ roadmapPhases.add(m[1]);
32
+ }
33
+ // Get phases on disk
34
+ try {
35
+ const entries = fs.readdirSync(phasesDir, {
36
+ withFileTypes: true,
37
+ });
38
+ const dirs = entries
39
+ .filter((e) => e.isDirectory())
40
+ .map((e) => e.name);
41
+ for (const dir of dirs) {
42
+ const dm = dir.match(/^(\d+(?:\.\d+)?)/);
43
+ if (!dm)
44
+ continue;
45
+ const phaseNum = dm[1];
46
+ const unpadded = String(parseInt(phaseNum, 10));
47
+ if (!roadmapPhases.has(phaseNum) && !roadmapPhases.has(unpadded)) {
48
+ violations.push({
49
+ code: 'ORPHANED_PHASE',
50
+ severity: 'error',
51
+ message: `Phase directory "${dir}" exists on disk but not in ROADMAP.md`,
52
+ fix: 'Run `/grd:complete-milestone` to archive old phase directories, or manually remove the orphaned directory',
53
+ context: { directory: dir, phase_number: phaseNum },
54
+ });
55
+ }
56
+ }
57
+ }
58
+ catch (err) {
59
+ // ENOENT: phases dir may not exist — silent
60
+ const fsErr = err;
61
+ if (fsErr.code !== 'ENOENT') {
62
+ process.stderr.write(`Warning: unexpected error reading phases directory: ${fsErr.message}\n`);
63
+ }
64
+ }
65
+ return violations;
66
+ }
67
+ /**
68
+ * Check that a target phase exists in ROADMAP.md.
69
+ */
70
+ function checkPhaseInRoadmap(cwd, phase) {
71
+ const violations = [];
72
+ if (!phase)
73
+ return violations;
74
+ const roadmapPath = path.join(cwd, '.planning', 'ROADMAP.md');
75
+ const phasesDir = getPhasesDirPath(cwd);
76
+ const roadmapContent = _gatesCachedRead(roadmapPath);
77
+ if (!roadmapContent)
78
+ return violations;
79
+ const activeContent = stripShippedSections(roadmapContent);
80
+ // Only flag if the phase exists on disk but not in ROADMAP.
81
+ // If it doesn't exist on disk either, let normal command logic handle "not found".
82
+ const normalized = normalizePhaseName(phase);
83
+ let existsOnDisk = false;
84
+ try {
85
+ const entries = fs.readdirSync(phasesDir, {
86
+ withFileTypes: true,
87
+ });
88
+ const dirs = entries
89
+ .filter((e) => e.isDirectory())
90
+ .map((e) => e.name);
91
+ existsOnDisk = dirs.some((d) => d.startsWith(normalized));
92
+ }
93
+ catch {
94
+ // phases dir may not exist
95
+ }
96
+ if (!existsOnDisk)
97
+ return violations;
98
+ const unpadded = String(parseInt(normalized, 10));
99
+ const phaseRegex = new RegExp(`#{2,}\\s*Phase\\s+(?:${normalized}|${unpadded})\\s*:`, 'i');
100
+ if (!phaseRegex.test(activeContent)) {
101
+ violations.push({
102
+ code: 'PHASE_NOT_IN_ROADMAP',
103
+ severity: 'error',
104
+ message: `Phase ${phase} not found in ROADMAP.md — may be from a previous milestone`,
105
+ fix: 'Ensure the phase exists in the current ROADMAP.md, or archive old phases with `/grd:complete-milestone`',
106
+ context: { phase },
107
+ });
108
+ }
109
+ return violations;
110
+ }
111
+ /**
112
+ * Check that a target phase has at least one plan.
113
+ */
114
+ function checkPhaseHasPlans(cwd, phase) {
115
+ const violations = [];
116
+ if (!phase)
117
+ return violations;
118
+ const phasesDir = getPhasesDirPath(cwd);
119
+ const normalized = normalizePhaseName(phase);
120
+ try {
121
+ const entries = fs.readdirSync(phasesDir, {
122
+ withFileTypes: true,
123
+ });
124
+ const dirs = entries
125
+ .filter((e) => e.isDirectory())
126
+ .map((e) => e.name);
127
+ const match = dirs.find((d) => d.startsWith(normalized));
128
+ if (!match)
129
+ return violations;
130
+ const phaseFiles = fs.readdirSync(path.join(phasesDir, match));
131
+ const plans = phaseFiles.filter((f) => f.endsWith('-PLAN.md') || f === 'PLAN.md');
132
+ if (plans.length === 0) {
133
+ violations.push({
134
+ code: 'PHASE_NO_PLANS',
135
+ severity: 'error',
136
+ message: `Phase ${phase} has no plans — run /grd:plan-phase ${phase} first`,
137
+ fix: `Run \`/grd:plan-phase ${phase}\` to create execution plans`,
138
+ context: { phase, directory: match },
139
+ });
140
+ }
141
+ }
142
+ catch {
143
+ // phase dir may not exist
144
+ }
145
+ return violations;
146
+ }
147
+ /**
148
+ * Check for stale artifacts (summaries without matching plans).
149
+ */
150
+ function checkNoStaleArtifacts(cwd, phase) {
151
+ const violations = [];
152
+ if (!phase)
153
+ return violations;
154
+ const phasesDir = getPhasesDirPath(cwd);
155
+ const normalized = normalizePhaseName(phase);
156
+ try {
157
+ const entries = fs.readdirSync(phasesDir, {
158
+ withFileTypes: true,
159
+ });
160
+ const dirs = entries
161
+ .filter((e) => e.isDirectory())
162
+ .map((e) => e.name);
163
+ const match = dirs.find((d) => d.startsWith(normalized));
164
+ if (!match)
165
+ return violations;
166
+ const phaseFiles = fs.readdirSync(path.join(phasesDir, match));
167
+ const plans = new Set(phaseFiles
168
+ .filter((f) => f.endsWith('-PLAN.md'))
169
+ .map((f) => f.replace('-PLAN.md', '')));
170
+ const summaries = phaseFiles
171
+ .filter((f) => f.endsWith('-SUMMARY.md'))
172
+ .map((f) => f.replace('-SUMMARY.md', ''));
173
+ for (const sid of summaries) {
174
+ if (!plans.has(sid)) {
175
+ violations.push({
176
+ code: 'STALE_ARTIFACTS',
177
+ severity: 'warning',
178
+ message: `Summary ${sid}-SUMMARY.md in phase ${phase} has no matching PLAN.md`,
179
+ fix: 'Remove the orphaned summary or recreate the missing plan',
180
+ context: { phase, summary: `${sid}-SUMMARY.md` },
181
+ });
182
+ }
183
+ }
184
+ }
185
+ catch {
186
+ // phase dir may not exist
187
+ }
188
+ return violations;
189
+ }
190
+ /**
191
+ * Check that completed milestone phases have been archived.
192
+ */
193
+ function checkOldPhasesArchived(cwd) {
194
+ const violations = [];
195
+ const statePath = path.join(cwd, '.planning', 'STATE.md');
196
+ const phasesDir = getPhasesDirPath(cwd);
197
+ const stateContent = safeReadFile(statePath);
198
+ if (!stateContent)
199
+ return violations;
200
+ // Check if STATE.md indicates a milestone was completed
201
+ const milestoneCompletePattern = /milestone\s+complete/i;
202
+ if (!milestoneCompletePattern.test(stateContent))
203
+ return violations;
204
+ // If milestone is marked complete, phases dir should be empty
205
+ try {
206
+ const entries = fs.readdirSync(phasesDir, {
207
+ withFileTypes: true,
208
+ });
209
+ const dirs = entries
210
+ .filter((e) => e.isDirectory())
211
+ .map((e) => e.name);
212
+ if (dirs.length > 0) {
213
+ violations.push({
214
+ code: 'UNARCHIVED_PHASES',
215
+ severity: 'error',
216
+ message: `STATE.md indicates milestone complete but ${dirs.length} phase directories remain on disk`,
217
+ fix: 'Run `/grd:complete-milestone` to properly archive phase directories before starting a new milestone',
218
+ context: { phase_count: dirs.length, directories: dirs },
219
+ });
220
+ }
221
+ }
222
+ catch {
223
+ // phases dir may not exist
224
+ }
225
+ return violations;
226
+ }
227
+ /**
228
+ * Check milestone state coherence between STATE.md and disk state.
229
+ */
230
+ function checkMilestoneStateCoherence(cwd) {
231
+ const violations = [];
232
+ const statePath = path.join(cwd, '.planning', 'STATE.md');
233
+ const roadmapPath = path.join(cwd, '.planning', 'ROADMAP.md');
234
+ const stateContent = safeReadFile(statePath);
235
+ if (!stateContent)
236
+ return violations;
237
+ const roadmapContent = _gatesCachedRead(roadmapPath);
238
+ const activeContent = roadmapContent ? stripShippedSections(roadmapContent) : null;
239
+ // Check: STATE references a phase that doesn't exist in ROADMAP
240
+ const activePhaseMatch = stateContent.match(/\*\*(?:Active phase|Current Phase):\*\*\s*(\d+(?:\.\d+)?)/i);
241
+ if (activePhaseMatch && activeContent) {
242
+ const activePhase = activePhaseMatch[1];
243
+ const unpadded = String(parseInt(activePhase, 10));
244
+ const phaseInRoadmap = new RegExp(`#{2,}\\s*Phase\\s+(?:${activePhase}|${unpadded})\\s*:`, 'i');
245
+ if (!phaseInRoadmap.test(activeContent)) {
246
+ violations.push({
247
+ code: 'MILESTONE_STATE_CONFUSION',
248
+ severity: 'error',
249
+ message: `STATE.md references Phase ${activePhase} but it does not exist in ROADMAP.md`,
250
+ fix: 'Update STATE.md to reference a valid phase, or run `/grd:complete-milestone` to reset state',
251
+ context: { active_phase: activePhase },
252
+ });
253
+ }
254
+ }
255
+ return violations;
256
+ }
257
+ /**
258
+ * Check plan invariants: structural validity for each plan and cross-phase consistency.
259
+ *
260
+ * Satisfies REQ-180 (Pre-Flight Validation Gate): invalid plans are hard-rejected
261
+ * before execution. Reads all *-PLAN.md files in the target phase directory,
262
+ * runs validateStructural per plan, then validateCrossPhase across all plans.
263
+ */
264
+ function checkInvariantValidation(cwd, opts) {
265
+ const violations = [];
266
+ if (!opts.phase)
267
+ return violations;
268
+ const phasesDir = getPhasesDirPath(cwd);
269
+ const normalized = normalizePhaseName(opts.phase);
270
+ // Locate the phase directory on disk
271
+ let phaseDir;
272
+ try {
273
+ const entries = fs.readdirSync(phasesDir, { withFileTypes: true });
274
+ const match = entries
275
+ .filter((e) => e.isDirectory())
276
+ .map((e) => e.name)
277
+ .find((d) => d.startsWith(normalized));
278
+ if (!match)
279
+ return violations;
280
+ phaseDir = path.join(phasesDir, match);
281
+ }
282
+ catch {
283
+ return violations;
284
+ }
285
+ // Read all *-PLAN.md files
286
+ let planFiles;
287
+ try {
288
+ const phaseContents = fs.readdirSync(phaseDir);
289
+ planFiles = phaseContents.filter((f) => f.endsWith('-PLAN.md') || f === 'PLAN.md');
290
+ }
291
+ catch {
292
+ return violations;
293
+ }
294
+ if (planFiles.length === 0)
295
+ return violations;
296
+ const planArtifacts = [];
297
+ // Structural validation per plan
298
+ for (const planFile of planFiles) {
299
+ const planPath = path.join(phaseDir, planFile);
300
+ const content = safeReadFile(planPath);
301
+ if (!content)
302
+ continue;
303
+ const artifact = extractPlanArtifact(content);
304
+ planArtifacts.push(artifact);
305
+ const result = validateStructural(artifact);
306
+ for (const err of result.errors) {
307
+ violations.push({
308
+ code: 'INVARIANT_STRUCTURAL',
309
+ severity: 'error',
310
+ message: `${planFile}: ${err}`,
311
+ fix: `Fix the structural issue in ${planFile} before execution`,
312
+ context: { plan: planFile, error: err },
313
+ });
314
+ }
315
+ for (const warn of result.warnings) {
316
+ violations.push({
317
+ code: 'INVARIANT_STRUCTURAL',
318
+ severity: 'warning',
319
+ message: `${planFile}: ${warn}`,
320
+ fix: `Consider fixing the structural warning in ${planFile}`,
321
+ context: { plan: planFile, warning: warn },
322
+ });
323
+ }
324
+ }
325
+ // Cross-phase validation across all plans in the set
326
+ if (planArtifacts.length > 0) {
327
+ const crossResult = validateCrossPhase(planArtifacts);
328
+ for (const err of crossResult.errors) {
329
+ violations.push({
330
+ code: 'INVARIANT_CROSS_PHASE',
331
+ severity: 'error',
332
+ message: err,
333
+ fix: 'Resolve cross-phase dependency conflicts between plans',
334
+ context: { error: err },
335
+ });
336
+ }
337
+ for (const warn of crossResult.warnings) {
338
+ violations.push({
339
+ code: 'INVARIANT_CROSS_PHASE',
340
+ severity: 'warning',
341
+ message: warn,
342
+ fix: 'Consider adding provides/requires to plans for dependency tracking',
343
+ context: { warning: warn },
344
+ });
345
+ }
346
+ }
347
+ return violations;
348
+ }
349
+ /**
350
+ * Check for unresolved critical citation dependencies.
351
+ *
352
+ * Only runs when citation_gate is enabled in config (default: false).
353
+ * Reads the citation graph from .planning/research/PAPERS.md if it exists.
354
+ * Returns GateViolation[] for each critical unresolved CitationNode.
355
+ *
356
+ * Satisfies REQ-184 (Citation Recovery — configurable gate).
357
+ */
358
+ function checkCitationGate(cwd, _opts) {
359
+ const violations = [];
360
+ const config = loadConfig(cwd);
361
+ // Only run if citation_gate is enabled in config (default: false)
362
+ const citationGateEnabled = config.citation_gate === true;
363
+ if (!citationGateEnabled)
364
+ return violations;
365
+ // Find research directory for current milestone
366
+ const researchDir = path.join(cwd, '.planning', 'research');
367
+ const papersPath = path.join(researchDir, 'PAPERS.md');
368
+ // Only check if PAPERS.md exists
369
+ try {
370
+ fs.statSync(papersPath);
371
+ }
372
+ catch {
373
+ return violations;
374
+ }
375
+ try {
376
+ const graph = buildCitationGraph(researchDir);
377
+ const criticalUnresolved = findUnresolved(graph, 'critical');
378
+ for (const node of criticalUnresolved) {
379
+ violations.push({
380
+ code: 'CITATION_UNRESOLVED_CRITICAL',
381
+ severity: 'error',
382
+ message: `Critical citation dependency "${node.slug}" (${node.title}) is unresolved — run citation recovery before planning`,
383
+ fix: 'Run `/grd:research-phase` with citation recovery enabled, or manually resolve the dependency',
384
+ context: { slug: node.slug, title: node.title, priority: node.priority },
385
+ });
386
+ }
387
+ }
388
+ catch {
389
+ // Citation graph build failed — non-blocking
390
+ }
391
+ return violations;
392
+ }
393
+ /**
394
+ * Check for unresolved transitive citation dependencies (warning severity).
395
+ *
396
+ * Only runs when transitive_citation_gate is enabled in config (default: false).
397
+ * Performs BFS traversal of the citation graph and reports unresolved leaf nodes
398
+ * as warnings — these do not block plan-phase execution.
399
+ *
400
+ * Warning (not error) severity follows the principle that transitive dependencies
401
+ * are informational — they inform what additional work may be needed without
402
+ * blocking a researcher from planning a phase.
403
+ */
404
+ function checkTransitiveCitationGate(cwd, _opts) {
405
+ const violations = [];
406
+ const config = loadConfig(cwd);
407
+ const enabled = config.transitive_citation_gate === true;
408
+ if (!enabled)
409
+ return violations;
410
+ const researchDir = path.join(cwd, '.planning', 'research');
411
+ const papersPath = path.join(researchDir, 'PAPERS.md');
412
+ try {
413
+ fs.statSync(papersPath);
414
+ }
415
+ catch {
416
+ return violations;
417
+ }
418
+ try {
419
+ const graph = buildCitationGraph(researchDir);
420
+ const { traverseCitationGraph } = require('./citations');
421
+ const result = traverseCitationGraph(graph);
422
+ for (const node of result.unresolved_leaves) {
423
+ violations.push({
424
+ code: 'CITATION_UNRESOLVED_TRANSITIVE',
425
+ severity: 'warning',
426
+ message: `Transitive citation dependency "${node.slug}" is unresolved — consider running auto-retrieval`,
427
+ fix: 'Enable transitive auto-retrieval or manually add a PAPERS.md entry for this dependency',
428
+ context: { slug: node.slug, priority: node.priority },
429
+ });
430
+ }
431
+ }
432
+ catch {
433
+ // Non-blocking
434
+ }
435
+ return violations;
436
+ }
437
+ // ─── Gate Registry ────────────────────────────────────────────────────────────
438
+ /**
439
+ * Declarative mapping of commands to their required gate checks.
440
+ */
441
+ const GATE_REGISTRY = {
442
+ 'execute-phase': [
443
+ 'orphaned-phases',
444
+ 'phase-in-roadmap',
445
+ 'phase-has-plans',
446
+ 'invariant-validation',
447
+ ],
448
+ 'plan-phase': [
449
+ 'orphaned-phases',
450
+ 'phase-in-roadmap',
451
+ 'no-stale-artifacts',
452
+ 'invariant-validation',
453
+ 'citation-gate',
454
+ 'transitive-citation-gate',
455
+ ],
456
+ 'new-milestone': ['old-phases-archived', 'milestone-state-coherence'],
457
+ 'phase-add': ['orphaned-phases'],
458
+ 'phase-insert': ['orphaned-phases'],
459
+ 'phase-complete': ['phase-in-roadmap'],
460
+ 'milestone-complete': ['milestone-state-coherence'],
461
+ 'verify-work': ['phase-in-roadmap'],
462
+ iterate: ['phase-in-roadmap', 'phase-has-plans'],
463
+ };
464
+ /**
465
+ * Map gate names to check functions.
466
+ */
467
+ const GATE_CHECKS = {
468
+ 'orphaned-phases': (cwd) => checkOrphanedPhases(cwd),
469
+ 'phase-in-roadmap': (cwd, opts) => checkPhaseInRoadmap(cwd, opts.phase || ''),
470
+ 'phase-has-plans': (cwd, opts) => checkPhaseHasPlans(cwd, opts.phase || ''),
471
+ 'no-stale-artifacts': (cwd, opts) => checkNoStaleArtifacts(cwd, opts.phase || ''),
472
+ 'old-phases-archived': (cwd) => checkOldPhasesArchived(cwd),
473
+ 'milestone-state-coherence': (cwd) => checkMilestoneStateCoherence(cwd),
474
+ 'invariant-validation': (cwd, opts) => checkInvariantValidation(cwd, opts),
475
+ 'citation-gate': (cwd, opts) => checkCitationGate(cwd, opts),
476
+ 'transitive-citation-gate': (cwd, opts) => checkTransitiveCitationGate(cwd, opts),
477
+ };
478
+ // ─── Main Entry Point ─────────────────────────────────────────────────────────
479
+ /**
480
+ * Run pre-flight gate checks for a command.
481
+ */
482
+ function runPreflightGates(cwd, command, options = {}) {
483
+ const result = {
484
+ passed: true,
485
+ bypassed: false,
486
+ errors: [],
487
+ warnings: [],
488
+ command,
489
+ };
490
+ // skipGates: true bypasses all checks immediately
491
+ if (options.skipGates) {
492
+ result.bypassed = true;
493
+ return result;
494
+ }
495
+ // New project safety: if no ROADMAP.md exists, all checks pass
496
+ const roadmapPath = path.join(cwd, '.planning', 'ROADMAP.md');
497
+ try {
498
+ fs.statSync(roadmapPath);
499
+ }
500
+ catch {
501
+ return result;
502
+ }
503
+ // Look up gates for this command
504
+ const gateNames = GATE_REGISTRY[command];
505
+ if (!gateNames)
506
+ return result;
507
+ _gatesCache.init();
508
+ try {
509
+ // Run each gate check
510
+ for (const gateName of gateNames) {
511
+ const checkFn = GATE_CHECKS[gateName];
512
+ if (!checkFn)
513
+ continue;
514
+ try {
515
+ const violations = checkFn(cwd, options);
516
+ for (const v of violations) {
517
+ if (v.severity === 'error') {
518
+ result.errors.push(v);
519
+ }
520
+ else {
521
+ result.warnings.push(v);
522
+ }
523
+ }
524
+ }
525
+ catch (e) {
526
+ const msg = e.message || String(e);
527
+ process.stderr.write(`[gates] gate '${gateName}' threw: ${msg}\n`);
528
+ result.warnings.push({
529
+ code: 'GATE_ERROR',
530
+ severity: 'warning',
531
+ message: `Gate '${gateName}' internal error: ${msg}`,
532
+ fix: 'Check the gate implementation for bugs or update the failing check',
533
+ context: {},
534
+ });
535
+ }
536
+ }
537
+ // YOLO bypass: if autonomous_mode is enabled, pass regardless of errors
538
+ const config = loadConfig(cwd);
539
+ if (config.autonomous_mode) {
540
+ result.bypassed = true;
541
+ result.passed = true;
542
+ return result;
543
+ }
544
+ // Determine pass/fail based on errors
545
+ if (result.errors.length > 0) {
546
+ result.passed = false;
547
+ }
548
+ return result;
549
+ }
550
+ finally {
551
+ _gatesCache.reset();
552
+ }
553
+ }
554
+ /**
555
+ * Reset the internal gates run cache (useful for testing).
556
+ */
557
+ function resetGatesCache() {
558
+ _gatesCache.reset();
559
+ }
560
+ // ─── Exports ──────────────────────────────────────────────────────────────────
561
+ module.exports = {
562
+ // Gate check functions (for direct use and testing)
563
+ checkOrphanedPhases,
564
+ checkPhaseInRoadmap,
565
+ checkPhaseHasPlans,
566
+ checkNoStaleArtifacts,
567
+ checkOldPhasesArchived,
568
+ checkMilestoneStateCoherence,
569
+ checkInvariantValidation,
570
+ checkCitationGate,
571
+ checkTransitiveCitationGate,
572
+ // Registry and runner
573
+ GATE_REGISTRY,
574
+ _GATE_CHECKS: GATE_CHECKS,
575
+ runPreflightGates,
576
+ resetGatesCache,
577
+ };
578
+ //# sourceMappingURL=gates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gates.js","sourceRoot":"","sources":["../../lib/gates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface SnapshotResult {
2
+ action: 'created' | 'appended';
3
+ snapshot_date: string;
4
+ path: string;
5
+ }
6
+ /** Sentinel error thrown by runGenomeSnapshot when GENOME.md is split-index. */
7
+ export declare class GenomeSplitIndexError extends Error {
8
+ constructor(message: string);
9
+ }
10
+ //# sourceMappingURL=genome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genome.d.ts","sourceRoot":"","sources":["../../lib/genome.ts"],"names":[],"mappings":"AAuPA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gFAAgF;AAChF,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B"}