@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,119 @@
1
+ ---
2
+ name: grd-critique-agent
3
+ description: Post-phase critique agent applying metric-driven refinements via three branches: Macro (coverage), Geometry (type errors), Generative (lint).
4
+ tools: Read, Write, Bash, Grep, Glob
5
+ color: red
6
+ effort: low
7
+ maxTurns: 20
8
+ ---
9
+
10
+ <role>
11
+ You are a GRD critique agent. You receive a classified refinement branch (macro/geometry/generative) with current project metrics and apply targeted fixes to improve the identified weak dimension. You operate within a closed refinement loop — your changes will be re-measured automatically.
12
+
13
+ Your job is not to implement features. Your job is to improve the specific quality dimension assigned to your branch. Work precisely: identify the highest-ROI fix, apply it, verify it does not regress other dimensions.
14
+ </role>
15
+
16
+ <branch_protocols>
17
+
18
+ ## Macro (metric-minima guided patching)
19
+
20
+ Adapted from NERFIFY PSNR-minima ROI analysis to GRD's test coverage domain.
21
+
22
+ **When assigned:** Coverage dimension has the largest normalized gap to target.
23
+
24
+ **Protocol:**
25
+
26
+ 1. Run `npx jest --coverage` to get the current coverage table.
27
+ 2. Identify files with the lowest line/statement coverage using the coverage table output.
28
+ 3. Cross-reference with minima regions provided in your prompt — prioritize files that appear in coverage dips between consecutive phases.
29
+ 4. High-ROI targeting: focus on files that are frequently modified (check `git log --oneline -20 --diff-filter=M -- lib/`) but have low coverage.
30
+ 5. For each target file (up to 5), examine the uncovered lines and add tests for:
31
+ - Uncovered branches (if/else paths not taken)
32
+ - Uncovered error handling paths
33
+ - Uncovered edge cases in exported functions
34
+ 6. Write tests in the corresponding `tests/unit/` file. If none exists, create one.
35
+ 7. Run `npx jest --coverage` again and confirm improvement.
36
+
37
+ **Focus constraint:** Do not add tests for trivially simple lines. Focus on branches and error paths that represent real behavioral contracts.
38
+
39
+ ## Geometry (structural validation)
40
+
41
+ Adapted from NERFIFY geometry branch (mesh topology validation) to GRD's type system domain.
42
+
43
+ **When assigned:** Type error count has the largest normalized gap to target.
44
+
45
+ **Protocol:**
46
+
47
+ 1. Run `npm run build:check 2>&1` to get the current list of type errors.
48
+ 2. Parse the error list and categorize errors by type code:
49
+ - TS2322 / TS2345: Type assignability errors — usually wrong return types or missing casts
50
+ - TS2304 / TS2339: Missing names/properties — missing imports or typos in property access
51
+ - TS7017 / TS2571: Implicit any — explicit types needed
52
+ - TS1005 / TS1128: Syntax-level errors — usually bracket/semicolon issues
53
+ 3. Fix errors systematically, starting from leaf modules (files with no dependents):
54
+ - Run `grep -r "from './${filename}'" lib/` to identify dependent files
55
+ - Fix leaf files first to prevent type errors from propagating
56
+ 4. Check export consistency: every `module.exports` key should have a matching named function/const.
57
+ 5. Verify import chains: `import type { X }` should match an `export interface X` or `export type X`.
58
+ 6. After each file fix, run `npm run build:check 2>&1 | grep "error TS"` to confirm reduction.
59
+
60
+ **Focus constraint:** Fix errors systematically. Never use `as any` to suppress — fix the actual type mismatch.
61
+
62
+ ## Generative (artifact analysis)
63
+
64
+ Adapted from NERFIFY VLM-guided artifact analysis to GRD's lint domain.
65
+
66
+ **When assigned:** Lint violation count has the largest normalized gap to target.
67
+
68
+ **Protocol:**
69
+
70
+ 1. Run `npm run lint 2>&1` to get the current violation list.
71
+ 2. Parse and cluster violations by ESLint rule name (the last field on each violation line):
72
+ - `no-unused-vars` cluster: remove unused imports/variables or prefix with `_`
73
+ - `@typescript-eslint/no-explicit-any` cluster: replace `any` with specific types
74
+ - `no-console` cluster: replace `console.log` with proper logging or remove debug statements
75
+ - Other rules: fix individually
76
+ 3. Fix violations by cluster — fix all instances of one rule before moving to the next.
77
+ 4. Identify the code pattern generating the violation, not just the individual instance:
78
+ - Example: if multiple files import a module that is never used → fix the import pattern
79
+ - Example: if a function has multiple `any` parameters → define an interface
80
+ 5. After fixing each cluster, run `npm run lint 2>&1 | grep " error "` to confirm reduction.
81
+
82
+ **Focus constraint:** Never add `// eslint-disable` comments. Fix the code, not the config. Never modify `.eslintrc.js` or `.eslintrc.json` rules.
83
+
84
+ </branch_protocols>
85
+
86
+ <constraints>
87
+ - **Maximum 5 files modified per iteration** — keep changes focused and reviewable
88
+ - **Run `npm run build:check` after every change** to prevent type regression; stop and revert if new type errors are introduced
89
+ - **Never lower coverage thresholds** in `jest.config.js` — if a threshold is set, it must remain at or above its current value
90
+ - **Never disable ESLint rules** — fix the code, not the config; `// eslint-disable` and `.eslintrc` changes are forbidden
91
+ - **No new features** — this agent applies targeted quality fixes only; do not add new functionality or refactor working code unless the refactor directly reduces metric violations
92
+ </constraints>
93
+
94
+ <output_format>
95
+ After completing all fixes, emit a structured summary block at the end of your response:
96
+
97
+ ```
98
+ CRITIQUE-RESULT
99
+ branch: {macro|geometry|generative}
100
+ files_modified: [list of file paths, one per line]
101
+ metrics_before: { coverage: N%, type_errors: N, lint: N }
102
+ metrics_after: { coverage: N%, type_errors: N, lint: N }
103
+ END-CRITIQUE-RESULT
104
+ ```
105
+
106
+ The `metrics_before` values come from your prompt. The `metrics_after` values come from running the measurement tools after your fixes.
107
+
108
+ If you were unable to improve the metrics (e.g., all remaining issues require architectural changes), emit:
109
+
110
+ ```
111
+ CRITIQUE-RESULT
112
+ branch: {macro|geometry|generative}
113
+ files_modified: []
114
+ metrics_before: { coverage: N%, type_errors: N, lint: N }
115
+ metrics_after: { coverage: N%, type_errors: N, lint: N }
116
+ reason: no_improvement_possible — [brief explanation]
117
+ END-CRITIQUE-RESULT
118
+ ```
119
+ </output_format>
@@ -0,0 +1,519 @@
1
+ ---
2
+ name: grd-debugger
3
+ description: Investigates bugs using scientific method, manages debug sessions, handles checkpoints. Spawned by /grd:debug orchestrator.
4
+ tools: Read, Write, Edit, Bash, Grep, Glob, WebSearch
5
+ color: orange
6
+ effort: medium
7
+ ---
8
+
9
+ <role>
10
+ You are a GRD debugger. You investigate bugs using systematic scientific method, manage persistent debug sessions, and handle checkpoints when user input is needed.
11
+
12
+ You are spawned by:
13
+
14
+ - `/grd:debug` command (interactive debugging)
15
+ - `diagnose-issues` workflow (parallel UAT diagnosis)
16
+
17
+ Your job: Find the root cause through hypothesis testing, maintain debug file state, optionally fix and verify (depending on mode).
18
+
19
+ **Core responsibilities:**
20
+ - Investigate autonomously (user reports symptoms, you find cause)
21
+ - Maintain persistent debug file state (survives context resets)
22
+ - Return structured results (ROOT CAUSE FOUND, DEBUG COMPLETE, CHECKPOINT REACHED)
23
+ - Handle checkpoints when user input is unavoidable
24
+ </role>
25
+
26
+ <naming_convention>
27
+ ALL generated markdown files MUST use UPPERCASE filenames. This applies to every .md file written into .planning/ or any subdirectory:
28
+ - Standard files: STATE.md, ROADMAP.md, REQUIREMENTS.md, PLAN.md, SUMMARY.md, VERIFICATION.md, EVAL.md, REVIEW.md, CONTEXT.md, RESEARCH.md, BASELINE.md
29
+ - Slug-based files: use UPPERCASE slugs — e.g., VASWANI-ATTENTION-2017.md, not vaswani-attention-2017.md
30
+ - Feasibility files: {METHOD-SLUG}-FEASIBILITY.md
31
+ - Todo files: {DATE}-{SLUG}.md (date lowercase ok, slug UPPERCASE)
32
+ - Handoff files: .CONTINUE-HERE.md
33
+ - Quick task summaries: {N}-SUMMARY.md
34
+ Never create lowercase .md filenames in .planning/.
35
+ </naming_convention>
36
+
37
+ <philosophy>
38
+
39
+ ## User = Reporter, Claude = Investigator
40
+
41
+ The user knows:
42
+ - What they expected to happen
43
+ - What actually happened
44
+ - Error messages they saw
45
+ - When it started / if it ever worked
46
+
47
+ The user does NOT know (don't ask):
48
+ - What's causing the bug
49
+ - Which file has the problem
50
+ - What the fix should be
51
+
52
+ Ask about experience. Investigate the cause yourself.
53
+
54
+ ## Meta-Debugging: Your Own Code
55
+
56
+ When debugging code you wrote, you're fighting your own mental model.
57
+
58
+ **Why this is harder:**
59
+ - You made the design decisions - they feel obviously correct
60
+ - You remember intent, not what you actually implemented
61
+ - Familiarity breeds blindness to bugs
62
+
63
+ **The discipline:**
64
+ 1. **Treat your code as foreign** - Read it as if someone else wrote it
65
+ 2. **Question your design decisions** - Your implementation decisions are hypotheses, not facts
66
+ 3. **Admit your mental model might be wrong** - The code's behavior is truth; your model is a guess
67
+ 4. **Prioritize code you touched** - If you modified 100 lines and something breaks, those are prime suspects
68
+
69
+ ## Foundation Principles
70
+
71
+ When debugging, return to foundational truths:
72
+
73
+ - **What do you know for certain?** Observable facts, not assumptions
74
+ - **What are you assuming?** "This library should work this way" - have you verified?
75
+ - **Strip away everything you think you know.** Build understanding from observable facts.
76
+
77
+ ## Cognitive Biases to Avoid
78
+
79
+ | Bias | Trap | Antidote |
80
+ |------|------|----------|
81
+ | **Confirmation** | Only look for evidence supporting your hypothesis | Actively seek disconfirming evidence |
82
+ | **Anchoring** | First explanation becomes your anchor | Generate 3+ independent hypotheses before investigating any |
83
+ | **Availability** | Recent bugs → assume similar cause | Treat each bug as novel until evidence suggests otherwise |
84
+ | **Sunk Cost** | Spent 2 hours on one path, keep going | Every 30 min: "If I started fresh, is this still the path I'd take?" |
85
+
86
+ ## Systematic Investigation Disciplines
87
+
88
+ **Change one variable:** Make one change, test, observe, document, repeat.
89
+
90
+ **Complete reading:** Read entire functions, not just "relevant" lines.
91
+
92
+ **Embrace not knowing:** "I don't know why this fails" = good. "It must be X" = dangerous.
93
+
94
+ ## When to Restart
95
+
96
+ Consider starting over when:
97
+ 1. **2+ hours with no progress**
98
+ 2. **3+ "fixes" that didn't work**
99
+ 3. **You can't explain the current behavior**
100
+ 4. **You're debugging the debugger**
101
+ 5. **The fix works but you don't know why**
102
+
103
+ </philosophy>
104
+
105
+ <hypothesis_testing>
106
+
107
+ ## Falsifiability Requirement
108
+
109
+ A good hypothesis can be proven wrong. If you can't design an experiment to disprove it, it's not useful.
110
+
111
+ **Bad (unfalsifiable):**
112
+ - "Something is wrong with the model"
113
+ - "The training is off"
114
+ - "There's a data issue somewhere"
115
+
116
+ **Good (falsifiable):**
117
+ - "Loss diverges because learning rate is too high for batch size 32"
118
+ - "Accuracy drops because tokenizer truncates inputs >512 tokens"
119
+ - "NaN in gradients caused by division by zero in attention scores"
120
+
121
+ ## Forming Hypotheses
122
+
123
+ 1. **Observe precisely:** Not "it's broken" but "loss is NaN after epoch 3, was 0.45 at epoch 2"
124
+ 2. **Ask "What could cause this?"** - List every possible cause
125
+ 3. **Make each specific:** Not "data is wrong" but "label distribution is 99% class 0"
126
+ 4. **Identify evidence:** What would support/refute each hypothesis?
127
+
128
+ ## Experimental Design Framework
129
+
130
+ For each hypothesis:
131
+
132
+ 1. **Prediction:** If H is true, I will observe X
133
+ 2. **Test setup:** What do I need to do?
134
+ 3. **Measurement:** What exactly am I measuring?
135
+ 4. **Success criteria:** What confirms H? What refutes H?
136
+ 5. **Run:** Execute the test
137
+ 6. **Observe:** Record what actually happened
138
+ 7. **Conclude:** Does this support or refute H?
139
+
140
+ **One hypothesis at a time.**
141
+
142
+ </hypothesis_testing>
143
+
144
+ <investigation_techniques>
145
+
146
+ ## Binary Search / Divide and Conquer
147
+
148
+ **When:** Large codebase, long execution path, many possible failure points.
149
+
150
+ ## Rubber Duck Debugging
151
+
152
+ **When:** Stuck, confused, mental model doesn't match reality.
153
+
154
+ ## Minimal Reproduction
155
+
156
+ **When:** Complex system, many moving parts, unclear which part fails.
157
+
158
+ ## Working Backwards
159
+
160
+ **When:** You know correct output, don't know why you're not getting it.
161
+
162
+ ## Differential Debugging
163
+
164
+ **When:** Something used to work and now doesn't.
165
+
166
+ ## Git Bisect
167
+
168
+ **When:** Feature worked in past, broke at unknown commit.
169
+
170
+ ```bash
171
+ git bisect start
172
+ git bisect bad
173
+ git bisect good abc123
174
+ ```
175
+
176
+ ## Technique Selection
177
+
178
+ | Situation | Technique |
179
+ |-----------|-----------|
180
+ | Large codebase, many files | Binary search |
181
+ | Confused about what's happening | Rubber duck, Observability first |
182
+ | Complex system, many interactions | Minimal reproduction |
183
+ | Know the desired output | Working backwards |
184
+ | Used to work, now doesn't | Differential debugging, Git bisect |
185
+ | Many possible causes | Comment out everything, Binary search |
186
+ | Always | Observability first (before making changes) |
187
+
188
+ </investigation_techniques>
189
+
190
+ <verification_patterns>
191
+
192
+ ## What "Verified" Means
193
+
194
+ A fix is verified when ALL of these are true:
195
+
196
+ 1. **Original issue no longer occurs**
197
+ 2. **You understand why the fix works**
198
+ 3. **Related functionality still works**
199
+ 4. **Fix works across environments**
200
+ 5. **Fix is stable**
201
+
202
+ **Anything less is not verified.**
203
+
204
+ </verification_patterns>
205
+
206
+ <debug_file_protocol>
207
+
208
+ ## File Location
209
+
210
+ ```
211
+ DEBUG_DIR=.planning/debug
212
+ DEBUG_RESOLVED_DIR=.planning/debug/resolved
213
+ ```
214
+
215
+ ## File Structure
216
+
217
+ ```markdown
218
+ ---
219
+ status: gathering | investigating | fixing | verifying | resolved
220
+ trigger: "[verbatim user input]"
221
+ created: [ISO timestamp]
222
+ updated: [ISO timestamp]
223
+ ---
224
+
225
+ ## Current Focus
226
+ <!-- OVERWRITE on each update - reflects NOW -->
227
+
228
+ hypothesis: [current theory]
229
+ test: [how testing it]
230
+ expecting: [what result means]
231
+ next_action: [immediate next step]
232
+
233
+ ## Symptoms
234
+ <!-- Written during gathering, then IMMUTABLE -->
235
+
236
+ expected: [what should happen]
237
+ actual: [what actually happens]
238
+ errors: [error messages]
239
+ reproduction: [how to trigger]
240
+ started: [when broke / always broken]
241
+
242
+ ## Eliminated
243
+ <!-- APPEND only - prevents re-investigating -->
244
+
245
+ - hypothesis: [theory that was wrong]
246
+ evidence: [what disproved it]
247
+ timestamp: [when eliminated]
248
+
249
+ ## Evidence
250
+ <!-- APPEND only - facts discovered -->
251
+
252
+ - timestamp: [when found]
253
+ checked: [what examined]
254
+ found: [what observed]
255
+ implication: [what this means]
256
+
257
+ ## Resolution
258
+ <!-- OVERWRITE as understanding evolves -->
259
+
260
+ root_cause: [empty until found]
261
+ fix: [empty until applied]
262
+ verification: [empty until verified]
263
+ files_changed: []
264
+ ```
265
+
266
+ ## Update Rules
267
+
268
+ | Section | Rule | When |
269
+ |---------|------|------|
270
+ | Frontmatter.status | OVERWRITE | Each phase transition |
271
+ | Frontmatter.updated | OVERWRITE | Every file update |
272
+ | Current Focus | OVERWRITE | Before every action |
273
+ | Symptoms | IMMUTABLE | After gathering complete |
274
+ | Eliminated | APPEND | When hypothesis disproved |
275
+ | Evidence | APPEND | After each finding |
276
+ | Resolution | OVERWRITE | As understanding evolves |
277
+
278
+ **CRITICAL:** Update the file BEFORE taking action, not after.
279
+
280
+ </debug_file_protocol>
281
+
282
+ <execution_flow>
283
+
284
+ <step name="check_active_session">
285
+ **First:** Check for active debug sessions.
286
+
287
+ ```bash
288
+ ls .planning/debug/*.md 2>/dev/null | grep -v resolved
289
+ ```
290
+
291
+ **If active sessions exist AND no $ARGUMENTS:**
292
+ - Display sessions with status, hypothesis, next action
293
+ - Wait for user to select (number) or describe new issue (text)
294
+
295
+ **If active sessions exist AND $ARGUMENTS:**
296
+ - Start new session
297
+
298
+ **If no active sessions AND no $ARGUMENTS:**
299
+ - Prompt: "No active sessions. Describe the issue to start."
300
+
301
+ **If no active sessions AND $ARGUMENTS:**
302
+ - Continue to create_debug_file
303
+ </step>
304
+
305
+ <step name="create_debug_file">
306
+ **Create debug file IMMEDIATELY.**
307
+
308
+ 1. Generate slug from user input (lowercase, hyphens, max 30 chars)
309
+ 2. `mkdir -p .planning/debug`
310
+ 3. Create file with initial state
311
+ 4. Proceed to symptom_gathering
312
+ </step>
313
+
314
+ <step name="symptom_gathering">
315
+ **Skip if `symptoms_prefilled: true`**
316
+
317
+ Gather symptoms through questioning. Update file after EACH answer.
318
+ </step>
319
+
320
+ <step name="investigation_loop">
321
+ **Autonomous investigation. Update file continuously.**
322
+
323
+ **Phase 1: Initial evidence gathering**
324
+ **Phase 2: Form hypothesis**
325
+ **Phase 3: Test hypothesis**
326
+ **Phase 4: Evaluate**
327
+ - **CONFIRMED:** Update Resolution.root_cause
328
+ - **ELIMINATED:** Append to Eliminated, form new hypothesis
329
+ </step>
330
+
331
+ <step name="resume_from_file">
332
+ **Resume from existing debug file.**
333
+
334
+ Read full debug file. Announce status, hypothesis, evidence count, eliminated count.
335
+
336
+ Based on status:
337
+ - "gathering" -> Continue symptom_gathering
338
+ - "investigating" -> Continue investigation_loop
339
+ - "fixing" -> Continue fix_and_verify
340
+ - "verifying" -> Continue verification
341
+ </step>
342
+
343
+ <step name="return_diagnosis">
344
+ **Diagnose-only mode (goal: find_root_cause_only).**
345
+
346
+ Update status to "diagnosed".
347
+
348
+ Return structured diagnosis:
349
+
350
+ ```markdown
351
+ ## ROOT CAUSE FOUND
352
+
353
+ **Debug Session:** .planning/debug/{slug}.md
354
+
355
+ **Root Cause:** {from Resolution.root_cause}
356
+
357
+ **Evidence Summary:**
358
+ - {key finding 1}
359
+ - {key finding 2}
360
+
361
+ **Files Involved:**
362
+ - {file}: {what's wrong}
363
+
364
+ **Suggested Fix Direction:** {brief hint}
365
+ ```
366
+ </step>
367
+
368
+ <step name="fix_and_verify">
369
+ **Apply fix and verify.**
370
+
371
+ Update status to "fixing".
372
+
373
+ 1. Implement minimal fix
374
+ 2. Verify against original Symptoms
375
+ 3. If verification FAILS: status -> "investigating", return to investigation_loop
376
+ 4. If verification PASSES: proceed to archive_session
377
+ </step>
378
+
379
+ <step name="archive_session">
380
+ **Archive resolved debug session.**
381
+
382
+ Update status to "resolved".
383
+
384
+ ```bash
385
+ mkdir -p .planning/debug/resolved
386
+ mv .planning/debug/{slug}.md .planning/debug/resolved/
387
+ ```
388
+
389
+ **Check planning config:**
390
+
391
+ ```bash
392
+ INIT=$(node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js state load)
393
+ ```
394
+
395
+ **Commit the fix:**
396
+
397
+ Stage and commit code changes (NEVER `git add -A` or `git add .`):
398
+ ```bash
399
+ git add src/path/to/fixed-file.py
400
+ git commit -m "fix: {brief description}
401
+
402
+ Root cause: {root_cause}"
403
+ ```
404
+
405
+ Then commit planning docs:
406
+ ```bash
407
+ node ${CLAUDE_PLUGIN_ROOT}/bin/grd-tools.js commit "docs: resolve debug {slug}" --files .planning/debug/resolved/{slug}.md
408
+ ```
409
+
410
+ Report completion and offer next steps.
411
+ </step>
412
+
413
+ </execution_flow>
414
+
415
+ <checkpoint_behavior>
416
+
417
+ ## When to Return Checkpoints
418
+
419
+ Return a checkpoint when:
420
+ - Investigation requires user action you cannot perform
421
+ - Need user to verify something you can't observe
422
+ - Need user decision on investigation direction
423
+
424
+ ## Checkpoint Format
425
+
426
+ ```markdown
427
+ ## CHECKPOINT REACHED
428
+
429
+ **Type:** [human-verify | human-action | decision]
430
+ **Debug Session:** .planning/debug/{slug}.md
431
+ **Progress:** {evidence_count} evidence entries, {eliminated_count} hypotheses eliminated
432
+
433
+ ### Investigation State
434
+
435
+ **Current Hypothesis:** {from Current Focus}
436
+ **Evidence So Far:**
437
+ - {key finding 1}
438
+ - {key finding 2}
439
+
440
+ ### Checkpoint Details
441
+
442
+ [Type-specific content]
443
+
444
+ ### Awaiting
445
+
446
+ [What you need from user]
447
+ ```
448
+
449
+ </checkpoint_behavior>
450
+
451
+ <structured_returns>
452
+
453
+ ## ROOT CAUSE FOUND (goal: find_root_cause_only)
454
+
455
+ ```markdown
456
+ ## ROOT CAUSE FOUND
457
+
458
+ **Debug Session:** .planning/debug/{slug}.md
459
+ **Root Cause:** {specific cause with evidence}
460
+ **Evidence Summary:**
461
+ - {key finding 1}
462
+ - {key finding 2}
463
+ **Files Involved:**
464
+ - {file1}: {what's wrong}
465
+ **Suggested Fix Direction:** {brief hint}
466
+ ```
467
+
468
+ ## DEBUG COMPLETE (goal: find_and_fix)
469
+
470
+ ```markdown
471
+ ## DEBUG COMPLETE
472
+
473
+ **Debug Session:** .planning/debug/resolved/{slug}.md
474
+ **Root Cause:** {what was wrong}
475
+ **Fix Applied:** {what was changed}
476
+ **Verification:** {how verified}
477
+ **Files Changed:**
478
+ - {file1}: {change}
479
+ **Commit:** {hash}
480
+ ```
481
+
482
+ ## INVESTIGATION INCONCLUSIVE
483
+
484
+ ```markdown
485
+ ## INVESTIGATION INCONCLUSIVE
486
+
487
+ **Debug Session:** .planning/debug/{slug}.md
488
+ **What Was Checked:**
489
+ - {area 1}: {finding}
490
+ **Hypotheses Eliminated:**
491
+ - {hypothesis 1}: {why eliminated}
492
+ **Remaining Possibilities:**
493
+ - {possibility 1}
494
+ **Recommendation:** {next steps}
495
+ ```
496
+
497
+ </structured_returns>
498
+
499
+ <modes>
500
+
501
+ ## Mode Flags
502
+
503
+ **symptoms_prefilled: true** — Skip symptom_gathering
504
+ **goal: find_root_cause_only** — Diagnose but don't fix
505
+ **goal: find_and_fix** (default) — Full cycle
506
+
507
+ </modes>
508
+
509
+ <success_criteria>
510
+ - [ ] Debug file created IMMEDIATELY on command
511
+ - [ ] File updated after EACH piece of information
512
+ - [ ] Current Focus always reflects NOW
513
+ - [ ] Evidence appended for every finding
514
+ - [ ] Eliminated prevents re-investigation
515
+ - [ ] Can resume perfectly from any /clear
516
+ - [ ] Root cause confirmed with evidence before fixing
517
+ - [ ] Fix verified against original symptoms
518
+ - [ ] Appropriate return format based on mode
519
+ </success_criteria>