@rryando/arcs 3.0.0

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 (370) hide show
  1. package/README.md +448 -0
  2. package/dist/cli/arcs-orchestrate-caveman.d.ts +16 -0
  3. package/dist/cli/arcs-orchestrate-caveman.d.ts.map +1 -0
  4. package/dist/cli/arcs-orchestrate-caveman.js +109 -0
  5. package/dist/cli/arcs-orchestrate-caveman.js.map +1 -0
  6. package/dist/cli/arcs-orchestrate.d.ts +2 -0
  7. package/dist/cli/arcs-orchestrate.d.ts.map +1 -0
  8. package/dist/cli/arcs-orchestrate.js +431 -0
  9. package/dist/cli/arcs-orchestrate.js.map +1 -0
  10. package/dist/cli/arg-parser.d.ts +20 -0
  11. package/dist/cli/arg-parser.d.ts.map +1 -0
  12. package/dist/cli/arg-parser.js +216 -0
  13. package/dist/cli/arg-parser.js.map +1 -0
  14. package/dist/cli/brief-renderer.d.ts +32 -0
  15. package/dist/cli/brief-renderer.d.ts.map +1 -0
  16. package/dist/cli/brief-renderer.js +67 -0
  17. package/dist/cli/brief-renderer.js.map +1 -0
  18. package/dist/cli/bundle-installer.d.ts +77 -0
  19. package/dist/cli/bundle-installer.d.ts.map +1 -0
  20. package/dist/cli/bundle-installer.js +328 -0
  21. package/dist/cli/bundle-installer.js.map +1 -0
  22. package/dist/cli/command-registry.d.ts +52 -0
  23. package/dist/cli/command-registry.d.ts.map +1 -0
  24. package/dist/cli/command-registry.js +68 -0
  25. package/dist/cli/command-registry.js.map +1 -0
  26. package/dist/cli/commands/batch.d.ts +2 -0
  27. package/dist/cli/commands/batch.d.ts.map +1 -0
  28. package/dist/cli/commands/batch.js +307 -0
  29. package/dist/cli/commands/batch.js.map +1 -0
  30. package/dist/cli/commands/brief.d.ts +2 -0
  31. package/dist/cli/commands/brief.d.ts.map +1 -0
  32. package/dist/cli/commands/brief.js +146 -0
  33. package/dist/cli/commands/brief.js.map +1 -0
  34. package/dist/cli/commands/bundle.d.ts +2 -0
  35. package/dist/cli/commands/bundle.d.ts.map +1 -0
  36. package/dist/cli/commands/bundle.js +90 -0
  37. package/dist/cli/commands/bundle.js.map +1 -0
  38. package/dist/cli/commands/dependency.d.ts +2 -0
  39. package/dist/cli/commands/dependency.d.ts.map +1 -0
  40. package/dist/cli/commands/dependency.js +260 -0
  41. package/dist/cli/commands/dependency.js.map +1 -0
  42. package/dist/cli/commands/diagnostics.d.ts +2 -0
  43. package/dist/cli/commands/diagnostics.d.ts.map +1 -0
  44. package/dist/cli/commands/diagnostics.js +91 -0
  45. package/dist/cli/commands/diagnostics.js.map +1 -0
  46. package/dist/cli/commands/diagram.d.ts +2 -0
  47. package/dist/cli/commands/diagram.d.ts.map +1 -0
  48. package/dist/cli/commands/diagram.js +305 -0
  49. package/dist/cli/commands/diagram.js.map +1 -0
  50. package/dist/cli/commands/done.d.ts +2 -0
  51. package/dist/cli/commands/done.d.ts.map +1 -0
  52. package/dist/cli/commands/done.js +140 -0
  53. package/dist/cli/commands/done.js.map +1 -0
  54. package/dist/cli/commands/graph.d.ts +2 -0
  55. package/dist/cli/commands/graph.d.ts.map +1 -0
  56. package/dist/cli/commands/graph.js +105 -0
  57. package/dist/cli/commands/graph.js.map +1 -0
  58. package/dist/cli/commands/index.d.ts +21 -0
  59. package/dist/cli/commands/index.d.ts.map +1 -0
  60. package/dist/cli/commands/index.js +22 -0
  61. package/dist/cli/commands/index.js.map +1 -0
  62. package/dist/cli/commands/knowledge-search.d.ts +2 -0
  63. package/dist/cli/commands/knowledge-search.d.ts.map +1 -0
  64. package/dist/cli/commands/knowledge-search.js +43 -0
  65. package/dist/cli/commands/knowledge-search.js.map +1 -0
  66. package/dist/cli/commands/knowledge.d.ts +2 -0
  67. package/dist/cli/commands/knowledge.d.ts.map +1 -0
  68. package/dist/cli/commands/knowledge.js +416 -0
  69. package/dist/cli/commands/knowledge.js.map +1 -0
  70. package/dist/cli/commands/loop.d.ts +2 -0
  71. package/dist/cli/commands/loop.d.ts.map +1 -0
  72. package/dist/cli/commands/loop.js +192 -0
  73. package/dist/cli/commands/loop.js.map +1 -0
  74. package/dist/cli/commands/maintenance.d.ts +2 -0
  75. package/dist/cli/commands/maintenance.d.ts.map +1 -0
  76. package/dist/cli/commands/maintenance.js +231 -0
  77. package/dist/cli/commands/maintenance.js.map +1 -0
  78. package/dist/cli/commands/next.d.ts +2 -0
  79. package/dist/cli/commands/next.d.ts.map +1 -0
  80. package/dist/cli/commands/next.js +116 -0
  81. package/dist/cli/commands/next.js.map +1 -0
  82. package/dist/cli/commands/plan.d.ts +2 -0
  83. package/dist/cli/commands/plan.d.ts.map +1 -0
  84. package/dist/cli/commands/plan.js +340 -0
  85. package/dist/cli/commands/plan.js.map +1 -0
  86. package/dist/cli/commands/project-updates.d.ts +2 -0
  87. package/dist/cli/commands/project-updates.d.ts.map +1 -0
  88. package/dist/cli/commands/project-updates.js +243 -0
  89. package/dist/cli/commands/project-updates.js.map +1 -0
  90. package/dist/cli/commands/project.d.ts +2 -0
  91. package/dist/cli/commands/project.d.ts.map +1 -0
  92. package/dist/cli/commands/project.js +362 -0
  93. package/dist/cli/commands/project.js.map +1 -0
  94. package/dist/cli/commands/remember.d.ts +2 -0
  95. package/dist/cli/commands/remember.d.ts.map +1 -0
  96. package/dist/cli/commands/remember.js +70 -0
  97. package/dist/cli/commands/remember.js.map +1 -0
  98. package/dist/cli/commands/status.d.ts +2 -0
  99. package/dist/cli/commands/status.d.ts.map +1 -0
  100. package/dist/cli/commands/status.js +104 -0
  101. package/dist/cli/commands/status.js.map +1 -0
  102. package/dist/cli/commands/task.d.ts +6 -0
  103. package/dist/cli/commands/task.d.ts.map +1 -0
  104. package/dist/cli/commands/task.js +361 -0
  105. package/dist/cli/commands/task.js.map +1 -0
  106. package/dist/cli/commands/utility.d.ts +9 -0
  107. package/dist/cli/commands/utility.d.ts.map +1 -0
  108. package/dist/cli/commands/utility.js +302 -0
  109. package/dist/cli/commands/utility.js.map +1 -0
  110. package/dist/cli/config.d.ts +42 -0
  111. package/dist/cli/config.d.ts.map +1 -0
  112. package/dist/cli/config.js +134 -0
  113. package/dist/cli/config.js.map +1 -0
  114. package/dist/cli/dag-commands.d.ts +7 -0
  115. package/dist/cli/dag-commands.d.ts.map +1 -0
  116. package/dist/cli/dag-commands.js +152 -0
  117. package/dist/cli/dag-commands.js.map +1 -0
  118. package/dist/cli/diagram-renderer.d.ts +26 -0
  119. package/dist/cli/diagram-renderer.d.ts.map +1 -0
  120. package/dist/cli/diagram-renderer.js +118 -0
  121. package/dist/cli/diagram-renderer.js.map +1 -0
  122. package/dist/cli/help-generator.d.ts +21 -0
  123. package/dist/cli/help-generator.d.ts.map +1 -0
  124. package/dist/cli/help-generator.js +100 -0
  125. package/dist/cli/help-generator.js.map +1 -0
  126. package/dist/cli/index.d.ts +8 -0
  127. package/dist/cli/index.d.ts.map +1 -0
  128. package/dist/cli/index.js +95 -0
  129. package/dist/cli/index.js.map +1 -0
  130. package/dist/cli/instructions.d.ts +53 -0
  131. package/dist/cli/instructions.d.ts.map +1 -0
  132. package/dist/cli/instructions.js +219 -0
  133. package/dist/cli/instructions.js.map +1 -0
  134. package/dist/cli/lean-output.d.ts +15 -0
  135. package/dist/cli/lean-output.d.ts.map +1 -0
  136. package/dist/cli/lean-output.js +66 -0
  137. package/dist/cli/lean-output.js.map +1 -0
  138. package/dist/cli/md-renderer.d.ts +6 -0
  139. package/dist/cli/md-renderer.d.ts.map +1 -0
  140. package/dist/cli/md-renderer.js +396 -0
  141. package/dist/cli/md-renderer.js.map +1 -0
  142. package/dist/cli/output-envelope.d.ts +15 -0
  143. package/dist/cli/output-envelope.d.ts.map +1 -0
  144. package/dist/cli/output-envelope.js +61 -0
  145. package/dist/cli/output-envelope.js.map +1 -0
  146. package/dist/cli/setup.d.ts +11 -0
  147. package/dist/cli/setup.d.ts.map +1 -0
  148. package/dist/cli/setup.js +415 -0
  149. package/dist/cli/setup.js.map +1 -0
  150. package/dist/cli/status-dashboard.d.ts +5 -0
  151. package/dist/cli/status-dashboard.d.ts.map +1 -0
  152. package/dist/cli/status-dashboard.js +248 -0
  153. package/dist/cli/status-dashboard.js.map +1 -0
  154. package/dist/index.d.ts +3 -0
  155. package/dist/index.d.ts.map +1 -0
  156. package/dist/index.js +25 -0
  157. package/dist/index.js.map +1 -0
  158. package/dist/retrieval/bm25.d.ts +23 -0
  159. package/dist/retrieval/bm25.d.ts.map +1 -0
  160. package/dist/retrieval/bm25.js +92 -0
  161. package/dist/retrieval/bm25.js.map +1 -0
  162. package/dist/retrieval/cross-project-search.d.ts +30 -0
  163. package/dist/retrieval/cross-project-search.d.ts.map +1 -0
  164. package/dist/retrieval/cross-project-search.js +109 -0
  165. package/dist/retrieval/cross-project-search.js.map +1 -0
  166. package/dist/retrieval/graph-builder.d.ts +6 -0
  167. package/dist/retrieval/graph-builder.d.ts.map +1 -0
  168. package/dist/retrieval/graph-builder.js +196 -0
  169. package/dist/retrieval/graph-builder.js.map +1 -0
  170. package/dist/retrieval/graph-cache.d.ts +15 -0
  171. package/dist/retrieval/graph-cache.d.ts.map +1 -0
  172. package/dist/retrieval/graph-cache.js +66 -0
  173. package/dist/retrieval/graph-cache.js.map +1 -0
  174. package/dist/retrieval/graph-invalidate.d.ts +18 -0
  175. package/dist/retrieval/graph-invalidate.d.ts.map +1 -0
  176. package/dist/retrieval/graph-invalidate.js +23 -0
  177. package/dist/retrieval/graph-invalidate.js.map +1 -0
  178. package/dist/retrieval/graph-retrieval.d.ts +24 -0
  179. package/dist/retrieval/graph-retrieval.d.ts.map +1 -0
  180. package/dist/retrieval/graph-retrieval.js +165 -0
  181. package/dist/retrieval/graph-retrieval.js.map +1 -0
  182. package/dist/retrieval/graph-traverse.d.ts +3 -0
  183. package/dist/retrieval/graph-traverse.d.ts.map +1 -0
  184. package/dist/retrieval/graph-traverse.js +53 -0
  185. package/dist/retrieval/graph-traverse.js.map +1 -0
  186. package/dist/retrieval/graph-types.d.ts +37 -0
  187. package/dist/retrieval/graph-types.d.ts.map +1 -0
  188. package/dist/retrieval/graph-types.js +12 -0
  189. package/dist/retrieval/graph-types.js.map +1 -0
  190. package/dist/retrieval/index-builder.d.ts +21 -0
  191. package/dist/retrieval/index-builder.d.ts.map +1 -0
  192. package/dist/retrieval/index-builder.js +94 -0
  193. package/dist/retrieval/index-builder.js.map +1 -0
  194. package/dist/retrieval/knowledge-selection.d.ts +7 -0
  195. package/dist/retrieval/knowledge-selection.d.ts.map +1 -0
  196. package/dist/retrieval/knowledge-selection.js +80 -0
  197. package/dist/retrieval/knowledge-selection.js.map +1 -0
  198. package/dist/retrieval/task-scoped.d.ts +23 -0
  199. package/dist/retrieval/task-scoped.d.ts.map +1 -0
  200. package/dist/retrieval/task-scoped.js +51 -0
  201. package/dist/retrieval/task-scoped.js.map +1 -0
  202. package/dist/utils/content-assembly.d.ts +44 -0
  203. package/dist/utils/content-assembly.d.ts.map +1 -0
  204. package/dist/utils/content-assembly.js +101 -0
  205. package/dist/utils/content-assembly.js.map +1 -0
  206. package/dist/utils/dag.d.ts +28 -0
  207. package/dist/utils/dag.d.ts.map +1 -0
  208. package/dist/utils/dag.js +68 -0
  209. package/dist/utils/dag.js.map +1 -0
  210. package/dist/utils/diagram-generator.d.ts +17 -0
  211. package/dist/utils/diagram-generator.d.ts.map +1 -0
  212. package/dist/utils/diagram-generator.js +38 -0
  213. package/dist/utils/diagram-generator.js.map +1 -0
  214. package/dist/utils/errors.d.ts +40 -0
  215. package/dist/utils/errors.d.ts.map +1 -0
  216. package/dist/utils/errors.js +83 -0
  217. package/dist/utils/errors.js.map +1 -0
  218. package/dist/utils/file-lock.d.ts +13 -0
  219. package/dist/utils/file-lock.d.ts.map +1 -0
  220. package/dist/utils/file-lock.js +80 -0
  221. package/dist/utils/file-lock.js.map +1 -0
  222. package/dist/utils/git.d.ts +14 -0
  223. package/dist/utils/git.d.ts.map +1 -0
  224. package/dist/utils/git.js +56 -0
  225. package/dist/utils/git.js.map +1 -0
  226. package/dist/utils/graphify-knowledge.d.ts +6 -0
  227. package/dist/utils/graphify-knowledge.d.ts.map +1 -0
  228. package/dist/utils/graphify-knowledge.js +60 -0
  229. package/dist/utils/graphify-knowledge.js.map +1 -0
  230. package/dist/utils/graphify.d.ts +49 -0
  231. package/dist/utils/graphify.d.ts.map +1 -0
  232. package/dist/utils/graphify.js +306 -0
  233. package/dist/utils/graphify.js.map +1 -0
  234. package/dist/utils/json-schemas.d.ts +723 -0
  235. package/dist/utils/json-schemas.d.ts.map +1 -0
  236. package/dist/utils/json-schemas.js +147 -0
  237. package/dist/utils/json-schemas.js.map +1 -0
  238. package/dist/utils/json.d.ts +15 -0
  239. package/dist/utils/json.d.ts.map +1 -0
  240. package/dist/utils/json.js +39 -0
  241. package/dist/utils/json.js.map +1 -0
  242. package/dist/utils/knowledge-store.d.ts +49 -0
  243. package/dist/utils/knowledge-store.d.ts.map +1 -0
  244. package/dist/utils/knowledge-store.js +191 -0
  245. package/dist/utils/knowledge-store.js.map +1 -0
  246. package/dist/utils/loop-state.d.ts +51 -0
  247. package/dist/utils/loop-state.d.ts.map +1 -0
  248. package/dist/utils/loop-state.js +123 -0
  249. package/dist/utils/loop-state.js.map +1 -0
  250. package/dist/utils/paths.d.ts +16 -0
  251. package/dist/utils/paths.d.ts.map +1 -0
  252. package/dist/utils/paths.js +66 -0
  253. package/dist/utils/paths.js.map +1 -0
  254. package/dist/utils/plan-store.d.ts +46 -0
  255. package/dist/utils/plan-store.d.ts.map +1 -0
  256. package/dist/utils/plan-store.js +184 -0
  257. package/dist/utils/plan-store.js.map +1 -0
  258. package/dist/utils/project-documents.d.ts +20 -0
  259. package/dist/utils/project-documents.d.ts.map +1 -0
  260. package/dist/utils/project-documents.js +10 -0
  261. package/dist/utils/project-documents.js.map +1 -0
  262. package/dist/utils/project-memory.d.ts +16 -0
  263. package/dist/utils/project-memory.d.ts.map +1 -0
  264. package/dist/utils/project-memory.js +16 -0
  265. package/dist/utils/project-memory.js.map +1 -0
  266. package/dist/utils/project-resolver.d.ts +28 -0
  267. package/dist/utils/project-resolver.d.ts.map +1 -0
  268. package/dist/utils/project-resolver.js +119 -0
  269. package/dist/utils/project-resolver.js.map +1 -0
  270. package/dist/utils/quick-scan.d.ts +13 -0
  271. package/dist/utils/quick-scan.d.ts.map +1 -0
  272. package/dist/utils/quick-scan.js +156 -0
  273. package/dist/utils/quick-scan.js.map +1 -0
  274. package/dist/utils/schemas.d.ts +13 -0
  275. package/dist/utils/schemas.d.ts.map +1 -0
  276. package/dist/utils/schemas.js +6 -0
  277. package/dist/utils/schemas.js.map +1 -0
  278. package/dist/utils/slug.d.ts +10 -0
  279. package/dist/utils/slug.d.ts.map +1 -0
  280. package/dist/utils/slug.js +18 -0
  281. package/dist/utils/slug.js.map +1 -0
  282. package/dist/utils/stdin.d.ts +6 -0
  283. package/dist/utils/stdin.d.ts.map +1 -0
  284. package/dist/utils/stdin.js +25 -0
  285. package/dist/utils/stdin.js.map +1 -0
  286. package/dist/utils/storage-utils.d.ts +48 -0
  287. package/dist/utils/storage-utils.d.ts.map +1 -0
  288. package/dist/utils/storage-utils.js +175 -0
  289. package/dist/utils/storage-utils.js.map +1 -0
  290. package/dist/utils/task-store.d.ts +49 -0
  291. package/dist/utils/task-store.d.ts.map +1 -0
  292. package/dist/utils/task-store.js +178 -0
  293. package/dist/utils/task-store.js.map +1 -0
  294. package/dist/utils/template.d.ts +15 -0
  295. package/dist/utils/template.d.ts.map +1 -0
  296. package/dist/utils/template.js +27 -0
  297. package/dist/utils/template.js.map +1 -0
  298. package/dist/utils/tool-response.d.ts +37 -0
  299. package/dist/utils/tool-response.d.ts.map +1 -0
  300. package/dist/utils/tool-response.js +44 -0
  301. package/dist/utils/tool-response.js.map +1 -0
  302. package/dist/utils/workflow-policy.d.ts +50 -0
  303. package/dist/utils/workflow-policy.d.ts.map +1 -0
  304. package/dist/utils/workflow-policy.js +111 -0
  305. package/dist/utils/workflow-policy.js.map +1 -0
  306. package/dist/utils/workspace-match.d.ts +35 -0
  307. package/dist/utils/workspace-match.d.ts.map +1 -0
  308. package/dist/utils/workspace-match.js +58 -0
  309. package/dist/utils/workspace-match.js.map +1 -0
  310. package/opencode/arcs/.opencode/plugins/arcs.js +348 -0
  311. package/opencode/arcs/bundle-runtime.json +68 -0
  312. package/opencode/arcs/manifest.json +279 -0
  313. package/opencode/arcs/prompts/arcs-docs.txt +124 -0
  314. package/opencode/arcs/prompts/arcs-orchestrate-caveman.txt +529 -0
  315. package/opencode/arcs/prompts/arcs-orchestrate.txt +437 -0
  316. package/opencode/arcs/prompts/code-reviewer.txt +55 -0
  317. package/opencode/arcs/prompts/devil-advocate.txt +121 -0
  318. package/opencode/arcs/prompts/docs-researcher.txt +54 -0
  319. package/opencode/arcs/prompts/oncall-ops.txt +54 -0
  320. package/opencode/arcs/prompts/qa-analyst.txt +54 -0
  321. package/opencode/arcs/prompts/software-engineer.txt +48 -0
  322. package/opencode/arcs/prompts/system-architect.txt +60 -0
  323. package/opencode/arcs/prompts/tech-architect.txt +54 -0
  324. package/opencode/arcs/skills/brainstorming/SKILL.md +144 -0
  325. package/opencode/arcs/skills/brainstorming/scripts/frame-template.html +214 -0
  326. package/opencode/arcs/skills/brainstorming/scripts/helper.js +88 -0
  327. package/opencode/arcs/skills/brainstorming/scripts/server.js +338 -0
  328. package/opencode/arcs/skills/brainstorming/scripts/start-server.sh +137 -0
  329. package/opencode/arcs/skills/brainstorming/scripts/stop-server.sh +31 -0
  330. package/opencode/arcs/skills/brainstorming/spec-document-reviewer-prompt.md +50 -0
  331. package/opencode/arcs/skills/brainstorming/visual-companion.md +277 -0
  332. package/opencode/arcs/skills/caveman-commit/SKILL.md +51 -0
  333. package/opencode/arcs/skills/code-agent/SKILL.md +58 -0
  334. package/opencode/arcs/skills/deep-pr-review/SKILL.md +191 -0
  335. package/opencode/arcs/skills/deep-pr-review/graphify-diff.md +102 -0
  336. package/opencode/arcs/skills/deep-pr-review/review-template.md +69 -0
  337. package/opencode/arcs/skills/executing-plans/SKILL.md +91 -0
  338. package/opencode/arcs/skills/init-project/SKILL.md +150 -0
  339. package/opencode/arcs/skills/quick-dev/SKILL.md +47 -0
  340. package/opencode/arcs/skills/requesting-code-review/SKILL.md +47 -0
  341. package/opencode/arcs/skills/requesting-code-review/code-reviewer.md +179 -0
  342. package/opencode/arcs/skills/subagent-driven-development/SKILL.md +162 -0
  343. package/opencode/arcs/skills/subagent-driven-development/code-quality-reviewer-prompt.md +53 -0
  344. package/opencode/arcs/skills/subagent-driven-development/implementer-prompt.md +148 -0
  345. package/opencode/arcs/skills/subagent-driven-development/spec-reviewer-prompt.md +85 -0
  346. package/opencode/arcs/skills/systematic-debugging/SKILL.md +174 -0
  347. package/opencode/arcs/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  348. package/opencode/arcs/skills/systematic-debugging/condition-based-waiting.md +115 -0
  349. package/opencode/arcs/skills/systematic-debugging/defense-in-depth.md +122 -0
  350. package/opencode/arcs/skills/systematic-debugging/find-polluter.sh +63 -0
  351. package/opencode/arcs/skills/systematic-debugging/phases-reference.md +168 -0
  352. package/opencode/arcs/skills/systematic-debugging/root-cause-tracing.md +169 -0
  353. package/opencode/arcs/skills/test-driven-development/SKILL.md +72 -0
  354. package/opencode/arcs/skills/test-driven-development/tdd-rationalizations-and-examples.md +157 -0
  355. package/opencode/arcs/skills/test-driven-development/testing-anti-patterns.md +299 -0
  356. package/opencode/arcs/skills/to-diagram/SKILL.md +235 -0
  357. package/opencode/arcs/skills/to-diagram/scripts/manage-diagram.mjs +963 -0
  358. package/opencode/arcs/skills/writing-plans/SKILL.md +179 -0
  359. package/opencode/arcs/skills/writing-plans/plan-document-reviewer-prompt.md +52 -0
  360. package/package.json +60 -0
  361. package/scripts/arcs-cli.mjs +45 -0
  362. package/skills/explore-dag.md +57 -0
  363. package/skills/init-project.md +105 -0
  364. package/skills/orchestrate.md +94 -0
  365. package/skills/update-docs.md +72 -0
  366. package/templates/dependency.md.tmpl +9 -0
  367. package/templates/knowledge.md.tmpl +15 -0
  368. package/templates/project-meta.json.tmpl +13 -0
  369. package/templates/project.md.tmpl +11 -0
  370. package/templates/task.md.tmpl +9 -0
@@ -0,0 +1,69 @@
1
+ # GitHub Review Body Template
2
+
3
+ Used as the `body` field of `gh api repos/{owner}/{repo}/pulls/{pull_number}/reviews` when posting. Inline comments live in the `comments[]` array; this is the top-level summary.
4
+
5
+ ## Template
6
+
7
+ ```markdown
8
+ ## Deep PR Review
9
+
10
+ **Scope:** <N files, +X/-Y LOC, modules: <list>>
11
+ **Rubric:** <activated dimensions> — others cleared (not applicable)
12
+ **Posting mode:** <1-Critical-only | 2-Critical+actionable | 3-All | 4-Summary>
13
+
14
+ ### Summary
15
+ <1-3 sentences: overall shape of the PR, biggest concern, what's well done>
16
+
17
+ ### Findings
18
+ - 🔴 <count> bug(s)
19
+ - 🟠 <count> risk(s)
20
+ - 🟡 <count> suggestion(s)
21
+ - 🔵 <count> nit(s)
22
+ - ❓ <count> question(s)
23
+
24
+ <inline comments below this body provide line-level detail>
25
+
26
+ ### Architectural / Performance Handoffs
27
+ <only if any; otherwise omit section>
28
+ - [architecture-review] <reason — e.g. crosses 3 modules, touches god node X>
29
+ - [performance-diagnosis] <reason — e.g. new query in render path>
30
+
31
+ ### Citations Used
32
+ - AGENTS.md §<section> — <what was checked>
33
+ - knowledge/<id> — <what was checked>
34
+ - graphify — <observations, if run>
35
+
36
+ ---
37
+ <!-- arcs:deep-review:meta version=1 commit=<HEAD_SHA> rubric=<activated> mode=<posting-mode> -->
38
+ ```
39
+
40
+ ## Field rules
41
+
42
+ - **Posting mode** field is informational for the author — they see what severity threshold was applied
43
+ - Findings counts are **as posted**, not as found. Mode 1 with 4 nits found shows `🔵 0 nit(s)` — those were dropped
44
+ - Architectural / Performance Handoffs section is omitted entirely if no handoffs (don't show empty headings)
45
+ - The trailing HTML comment is mandatory — used by re-review detection to find prior AI reviews
46
+
47
+ ## Inline comment template (per finding)
48
+
49
+ ```markdown
50
+ <severity-emoji> <severity>: <one-line problem>. <one-line fix>.
51
+
52
+ <optional 1-2 sentences of why, only if not obvious from problem>
53
+
54
+ Citation: <AGENTS.md §x | knowledge/<id> | graphify | principle: <name>>
55
+
56
+ ​```suggestion
57
+ <replacement code — only for small line replacements>
58
+ ​```
59
+
60
+ <!-- arcs:deep-review:<finding-id> -->
61
+ ```
62
+
63
+ ## Approve-with-comments override
64
+
65
+ If the user explicitly says "approve" / "lgtm" / "post approve":
66
+ - Set `event: "APPROVE"` on the review API call
67
+ - Top-level body must still list any 🟡 / 🔵 findings as advisory notes
68
+ - Append to body: `**Approved with <N> non-blocking suggestion(s).**`
69
+ - Never auto-elevate to APPROVE without explicit user phrase
@@ -0,0 +1,91 @@
1
+ ---
2
+ name: executing-plans
3
+ description: Use when you have a written implementation plan to execute in a separate session with review checkpoints
4
+ ---
5
+
6
+ # Skill: executing-plans
7
+
8
+ ## When
9
+
10
+ You have a written implementation plan to execute task-by-task with verification checkpoints.
11
+
12
+ **NOT for:**
13
+ - If subagents are available → use `subagent-driven-development` instead (parallel dispatch, two-stage review)
14
+ - If the task needs iterative self-correction without a structured plan → use `loop` instead
15
+
16
+ > CLI: `arcs --commands --json` for discovery. Mutating commands run directly — no token.
17
+
18
+ ## Flow
19
+
20
+ ```mermaid
21
+ flowchart TD
22
+ A[Load plan] --> B{Diagram exists?}
23
+ B -->|Yes| C[arcs diagram ready slug planId]
24
+ B -->|No| D[Read plan body for task list]
25
+ C --> E[Extract per-node metadata]
26
+ D --> E
27
+ E --> F{Concerns about plan?}
28
+ F -->|Yes| G[Raise with human — STOP]
29
+ F -->|No| H[Select next ready task]
30
+ H --> I[Transition task → in_progress]
31
+ I --> J[Execute steps exactly]
32
+ J --> K[Run verification command]
33
+ K --> L{Passes?}
34
+ L -->|No| M{Repeated failure?}
35
+ M -->|Yes| N[STOP — ask for help]
36
+ M -->|No| J
37
+ L -->|Yes| O[Transition task → done]
38
+ O --> P{More ready tasks?}
39
+ P -->|Yes| H
40
+ P -->|No| Q{All tasks done?}
41
+ Q -->|No| R[Re-scan: arcs diagram ready]
42
+ R --> P
43
+ Q -->|Yes| S[Use finishing-a-development-branch skill]
44
+ ```
45
+
46
+ ## Diagram-First Task Selection
47
+
48
+ When plan has `.diagram.mmd`:
49
+ 1. `arcs diagram ready <slug> <planId>` → executable nodes (deps all `:::done`)
50
+ 2. Read per-node `%%` metadata: `node`, `skill`, `scope`, `files`, `acceptance`, `verify`
51
+ 3. After each transition, re-scan for newly-unblocked nodes
52
+ 4. If metadata incomplete → fall back to plan body for that task
53
+
54
+ **Transition requires both flags:** `arcs task transition <slug> <taskId> done --diagramNodeId=T001 --planId=<planId>`
55
+
56
+ ## Sub-Agent Context
57
+
58
+ Include in sub-agent prompts:
59
+ ```bash
60
+ arcs context <slug> --audience=implementer --lean --json
61
+ arcs search <slug> "<task-keywords>" --lean --json
62
+ ```
63
+
64
+ Sub-agents MUST NOT edit `.mmd` files — orchestrator owns diagram updates.
65
+
66
+ ## Review Checkpoint Criteria
67
+
68
+ **STOP executing immediately when:**
69
+ - Missing dependency or unclear instruction
70
+ - Verification fails repeatedly (2+ attempts)
71
+ - Plan has critical gaps preventing progress
72
+ - Fundamental approach needs rethinking
73
+
74
+ Ask for clarification rather than guessing. Don't force through blockers.
75
+
76
+ ## Auto-Sync Triggers
77
+
78
+ Post-execution DAG sync fires automatically when:
79
+ - 3+ tasks transitioned this session
80
+ - New knowledge entries created from discoveries
81
+ - `lastSyncedAt` > 7 days ago
82
+ - Plan reached `done` status
83
+
84
+ ## Constraints
85
+
86
+ - Review plan critically before starting — raise concerns first
87
+ - Follow plan steps exactly — don't improvise
88
+ - Never skip verifications
89
+ - Never start on main/master without explicit consent
90
+ - Reference sub-skills when plan specifies them
91
+ - Use `finishing-a-development-branch` after all tasks complete
@@ -0,0 +1,150 @@
1
+ ---
2
+ name: init-project
3
+ description: Use when initializing a new ARCS project — bootstrapping a repo into the DAG with metadata, docs, and structural knowledge entries. Covers gather → present summary → init → graphify ingestion → fan-out analysis across typed sub-agents.
4
+ ---
5
+
6
+ # Skill: init-project
7
+
8
+ ## When
9
+
10
+ User wants to track a new project, bootstrap documentation, or connect a repo to the ARCS DAG. Triggers: "new project", "track this repo", "add project X", "init <repo>".
11
+
12
+ > **Canonical orchestrator workflow:** `src/cli/arcs-orchestrate.ts` under `### INIT Workflow` — this skill mirrors that flow with full operational detail. If the two diverge, the orchestrator prompt wins.
13
+
14
+ ## Flow
15
+
16
+ ```mermaid
17
+ flowchart TD
18
+ classDef sub fill:#8b5cf6,color:#fff
19
+
20
+ A[Gather: name, description, repoUrl?, dependsOn?] --> B[arcs project list → conflict check]
21
+ B --> C[Present summary to user]
22
+ C -->|user confirms| D[arcs project init]
23
+ D --> E[arcs project update-doc × 4]
24
+ E --> F{graphify on PATH?}
25
+ F -->|yes| G[graphify update --force --no-cluster]
26
+ F -->|no| H[Skip graph step, log gap]
27
+ G --> G2[ingestGraph → ≤20 proposals]
28
+ G2 --> G3[graphify query / explain for enrichment]:::sub
29
+ H & G3 --> I[Fan out: system-architect + docs-researcher + tech-architect]:::sub
30
+ I --> J[Collect proposals → dedup → arcs knowledge create × N]
31
+ J --> K[Done]
32
+ ```
33
+
34
+ ## CLI Primer
35
+
36
+ ```bash
37
+ arcs project init "Foo" --description="..." --path="$(pwd)" --json
38
+ ```
39
+ Discovery: `arcs --commands --json`. Mutating commands run directly — no token.
40
+
41
+ ## Constraints
42
+
43
+ - Do NOT read repo to infer name/description — gather from user
44
+ - Verify `dependsOn` targets exist via `arcs project list --json`
45
+ - `arcs project init` creates empty `plans/`, `knowledge/`, `tasks/` indexes — don't pre-populate
46
+ - Repo analysis is **fan-out across typed agents**, never a generic "analysis sub-agent" (see Agent Dispatch below)
47
+ - Never block INIT on graphify — it's optional. Skip cleanly if missing.
48
+
49
+ ## Graphify Sub-Flow (DEFAULT: ON when binary present)
50
+
51
+ The orchestrator runs graphify directly during INIT to seed knowledge entries with structural evidence before any sub-agent reads code. This is the default path when `graphify` is on PATH; skip cleanly otherwise.
52
+
53
+ 1. **Detect:** call `detectGraphify()` from `src/utils/graphify.ts`. If unavailable, log "graphify not on PATH; proceeding without graph signal" and skip steps 3–5.
54
+ 2. **Trust the gitignore guarantee:** `runExtraction()` already auto-appends `graphify-out/` to `.gitignore` via `ensureGitignoreEntry`. Do NOT redundantly check or modify `.gitignore` from agents — running extraction is sufficient.
55
+ 3. **Extract** (AST-only, no LLM API key required):
56
+ ```bash
57
+ graphify update <workspacePath> --force --no-cluster
58
+ ```
59
+ Produces `<workspacePath>/graphify-out/graph.json`.
60
+ 4. **Ingest:** call internal `ingestGraph(graphJsonPath, slug)` → up to 20 `KnowledgeProposal` records (test files filtered):
61
+ - 8 god nodes (`kind=module`, top 5% degree)
62
+ - 8 architecture clusters (`kind=architecture`, by community or directory grouping)
63
+ - 5 cross-module couplings (`kind=gotcha`, high-degree links across top-level dirs)
64
+ 5. **Enrich** with read-only graph queries (sub-agents may run these):
65
+ - `graphify query "entry points and main commands" --graph graphify-out/graph.json --budget 2000` → seeds for "key files" reference entries
66
+ - `graphify query "core data flow" --graph graphify-out/graph.json --budget 2000` → seeds for "core modules" entries
67
+ - `graphify explain "<godNodeLabel>" --graph graphify-out/graph.json` → plain-language summary for module entry bodies
68
+ - `graphify affected "<critical-symbol>" --graph graphify-out/graph.json --depth 2` → reverse-impact map for high-risk modules
69
+ - `graphify path "<A>" "<B>" --graph graphify-out/graph.json` → shortest dependency path for architecture entries
70
+ 6. **Hand to typed agents:** the proposals + query results go to the sub-agents listed in **Agent Dispatch** below; they merge graph evidence with code reading and return finalized knowledge entries.
71
+ 7. **Write** the entries directly: `arcs batch --file=ops.json` for one batched invocation, or repeated `arcs knowledge create` per entry.
72
+
73
+ ## Content Guidelines
74
+
75
+ | Doc | Format |
76
+ |-----|--------|
77
+ | `overview.md` | 2-3 sentence summary + goals |
78
+ | `tasks.md` | `[ ]` backlog / `[/]` in-progress / `[x]` done |
79
+ | `dependencies.md` | Upstream + downstream sections |
80
+ | `knowledge.md` | High-level context + pointers to structured entries |
81
+
82
+ Update via `arcs project update-doc <slug> <doc> --content="..."`.
83
+
84
+ ## Agent Dispatch (named typed agents — DO NOT default to a generic analysis agent)
85
+
86
+ | Sub-agent | Owns | Knowledge kinds it produces |
87
+ |-----------|------|----------------------------|
88
+ | `system-architect` | Module boundaries, clusters, dependency direction | `architecture`, `module` |
89
+ | `docs-researcher` | Tech stack, third-party libraries, key files, features | `reference`, `feature` |
90
+ | `tech-architect` | Cross-module couplings, structural gotchas, lessons | `gotcha`, `lesson` |
91
+ | `qa-analyst` (optional) | Coding-style + convention scan from existing code | `pattern` |
92
+
93
+ Dispatch in parallel — load `dispatching-parallel-agents`. Each agent receives:
94
+ - The relevant `KnowledgeProposal` records from `ingestGraph` (so they don't rediscover what graphify already found)
95
+ - Targeted graphify queries for evidence (e.g., `graphify explain` output for the modules they own)
96
+ - Explicit scope (which files / which kinds to produce)
97
+
98
+ Each agent returns finalized proposals: `{title, kind, summary, keywords, sourceFiles, body}`. The orchestrator dedups, then writes the entries directly via `arcs knowledge create` (or `arcs batch`).
99
+
100
+ ## Knowledge Categories for Analysis Sub-Agents
101
+
102
+ | Category | Kind | What to discover | Primary agent |
103
+ |----------|------|------------------|---------------|
104
+ | tech stack | `architecture` | Languages, frameworks, runtimes, build tools, versions | `docs-researcher` |
105
+ | key files | `reference` | Entry points, config files, main modules, purposes | `docs-researcher` (use `graphify query "entry points"`) |
106
+ | code patterns | `pattern` | Recurring design patterns, abstractions, error handling | `qa-analyst` or `system-architect` |
107
+ | coding style | `pattern` | Formatting, linting, import ordering, file organization | `qa-analyst` |
108
+ | core modules | `module` | Core modules / shared functions — what, where, interconnections | `system-architect` (god nodes from graphify) |
109
+ | external services | `module` | APIs, databases, message queues the project interacts with | `docs-researcher` |
110
+ | third-party libraries | `reference` | Key dependencies and why they are used | `docs-researcher` |
111
+ | features | `feature` | Major user-facing or system-facing features | `docs-researcher` |
112
+ | cross-module couplings | `gotcha` | Hot edges between modules surfaced by graphify | `tech-architect` (auto from `ingestGraph`) |
113
+ | architecture clusters | `architecture` | Community / directory groupings from graphify | `system-architect` (auto from `ingestGraph`) |
114
+
115
+ ## Worked Example
116
+
117
+ ```bash
118
+ # 1. Conflict check
119
+ arcs project list --json
120
+
121
+ # 2. Present summary to user; on confirmation, init
122
+ arcs project init "Foo" --description="Foo CLI tool" --path="$(pwd)" --json
123
+
124
+ # 3. Update docs
125
+ arcs project update-doc foo overview --content="..." --json
126
+ # ... repeat for tasks, dependencies, knowledge
127
+
128
+ # 4. Graphify (if available)
129
+ graphify update . --force --no-cluster
130
+ # ingestGraph produces proposals; enrich with graphify query/explain
131
+
132
+ # 5. Fan out typed agents (parallel)
133
+ # system-architect → architecture/module entries
134
+ # docs-researcher → reference/feature entries
135
+ # tech-architect → gotcha/lesson entries
136
+
137
+ # 6. Write knowledge entries directly
138
+ arcs knowledge create foo "Tech stack: TypeScript + Node 20" --kind=architecture --summary="..." --body="..." --json
139
+ # ... repeat per entry, or use arcs batch
140
+ ```
141
+
142
+ ## Exit Conditions
143
+
144
+ | Condition | Action |
145
+ |-----------|--------|
146
+ | Project already in DAG (slug collision) | Stop. Surface conflict; ask user to rename or use existing |
147
+ | User declines summary | Stop. No mutations performed |
148
+ | `graphify` missing | Continue without graph signal; sub-agents run with code reading only |
149
+ | `dependsOn` target missing | Stop. Ask user to init dependencies first or remove the link |
150
+ | Init succeeds but knowledge fan-out fails | Project exists in DAG; rerun knowledge phase later via SYNC |
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: quick-dev
3
+ description: Use when the task is fully bounded with no open decisions — rename, refactor, extract, multi-var/multi-file change, API shape already known, config nudge, copy update, trivial targeted bugfix
4
+ ---
5
+
6
+ # Skill: quick-dev
7
+
8
+ ## When
9
+
10
+ Task is fully bounded — no open decisions, success criteria derivable without asking.
11
+
12
+ ## Flow
13
+
14
+ ```mermaid
15
+ flowchart TD
16
+ A[Orient: arcs brief --lean --json] --> K[Knowledge: arcs knowledge search slug keywords]
17
+ K --> B{Fully bounded?}
18
+ B -->|Yes| C[Execute change directly]
19
+ B -->|No| D[Escalate to code-agent or brainstorming]
20
+ C --> E[Verify: typecheck + lint + affected tests]
21
+ E --> F[Done — commit only when asked]
22
+ ```
23
+
24
+ ## Phase 0: Knowledge Check
25
+
26
+ ```bash
27
+ arcs knowledge search <slug> "<keywords>" --lean --json
28
+ ```
29
+
30
+ Check for patterns, gotchas, and lessons before implementing. Skip only if the change is purely mechanical (rename, config nudge).
31
+
32
+ ## Behaviour
33
+
34
+ 1. Orient with ARCS context + search if pattern-related
35
+ 2. Execute directly — no planning doc, no brainstorming, no TDD ritual
36
+ 3. Run focused verification (not full suite unless pervasive)
37
+
38
+ ## Escalation
39
+
40
+ If hidden complexity surfaces mid-task — **pause immediately**, state the issue, offer to switch to `code-agent` or `brainstorming`. Do not silently expand scope.
41
+
42
+ If self-confidence drops below 80% per `confidence-gate` (open decision, unverified assumption, sibling pattern unclear), escalate to `code-agent` — `quick-dev` does not permit exploration loops; `code-agent` does.
43
+
44
+ ## NOT for
45
+
46
+ - Tasks with open design decisions → `code-agent`
47
+ - New behaviour or UX changes → `brainstorming`
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: requesting-code-review
3
+ description: Use when completing tasks, implementing major features, or before merging to verify work meets requirements
4
+ ---
5
+
6
+ # Skill: requesting-code-review
7
+
8
+ ## When
9
+
10
+ After completing a task, major feature, or before merge. Dispatch `arcs:code-reviewer` subagent.
11
+
12
+ ## Flow
13
+
14
+ ```mermaid
15
+ flowchart TD
16
+ A[Work complete] --> B[Get BASE_SHA and HEAD_SHA]
17
+ B --> C[Gather project conventions]
18
+ C --> D[Fill code-reviewer.md template]
19
+ D --> E[Dispatch arcs:code-reviewer subagent]
20
+ E --> F{Review results}
21
+ F -->|Critical| G[Fix immediately]
22
+ F -->|Important| H[Fix before proceeding]
23
+ F -->|Minor| I[Note for later]
24
+ G --> E
25
+ H --> E
26
+ ```
27
+
28
+ ## Template Placeholders
29
+
30
+ - `{WHAT_WAS_IMPLEMENTED}` — what you built
31
+ - `{PLAN_OR_REQUIREMENTS}` — what it should do
32
+ - `{BASE_SHA}` / `{HEAD_SHA}` — commit range
33
+ - `{PROJECT_CONVENTIONS}` — CLAUDE.md / linter configs / style guides
34
+
35
+ ## When to Request
36
+
37
+ **Mandatory:** after each subagent task, after major features, before merge to main.
38
+ **Optional:** when stuck, before refactoring, after complex bugfix.
39
+
40
+ ## Red Flags
41
+
42
+ - Never skip because "it's simple"
43
+ - Never ignore Critical issues
44
+ - Never proceed with unfixed Important issues
45
+ - Always include project conventions in reviewer context
46
+
47
+ See template at: `requesting-code-review/code-reviewer.md`
@@ -0,0 +1,179 @@
1
+ # Code Review Agent
2
+
3
+ You are reviewing code changes for production readiness. Write your findings like a thoughtful teammate, not a linter.
4
+
5
+ **Your task:**
6
+ 1. Read the project conventions below **before judging anything**
7
+ 2. Review {WHAT_WAS_IMPLEMENTED}
8
+ 3. Compare against {PLAN_OR_REQUIREMENTS}
9
+ 4. Check code quality, architecture, testing
10
+ 5. Categorize issues by severity with inline diff anchors
11
+ 6. Assess production readiness
12
+
13
+ ## Project Conventions
14
+
15
+ {PROJECT_CONVENTIONS}
16
+
17
+ **Rule:** Never flag something as wrong if it matches the project's own established patterns.
18
+
19
+ ## What Was Implemented
20
+
21
+ {DESCRIPTION}
22
+
23
+ ## Requirements/Plan
24
+
25
+ {PLAN_REFERENCE}
26
+
27
+ ## Git Range to Review
28
+
29
+ **Base:** {BASE_SHA}
30
+ **Head:** {HEAD_SHA}
31
+
32
+ ```bash
33
+ git diff --stat {BASE_SHA}..{HEAD_SHA}
34
+ git diff {BASE_SHA}..{HEAD_SHA}
35
+ ```
36
+
37
+ ## Review Checklist
38
+
39
+ **Project Conventions (check first):**
40
+ - Does the code follow naming, structure, and style patterns already established in this repo?
41
+ - Any deviation from the patterns documented in {PROJECT_CONVENTIONS}?
42
+
43
+ **Code Quality:**
44
+ - Clean separation of concerns?
45
+ - Proper error handling?
46
+ - Type safety (if applicable)?
47
+ - DRY principle followed?
48
+ - Edge cases handled?
49
+
50
+ **Architecture:**
51
+ - Sound design decisions?
52
+ - Scalability considerations?
53
+ - Performance implications?
54
+ - Security concerns?
55
+
56
+ **Testing:**
57
+ - Tests actually test logic (not mocks)?
58
+ - Edge cases covered?
59
+ - Integration tests where needed?
60
+ - All tests passing?
61
+
62
+ **Requirements:**
63
+ - All plan requirements met?
64
+ - Implementation matches spec?
65
+ - No scope creep?
66
+ - Breaking changes documented?
67
+
68
+ **Production Readiness:**
69
+ - Migration strategy (if schema changes)?
70
+ - Backward compatibility considered?
71
+ - Documentation complete?
72
+ - No obvious bugs?
73
+
74
+ ## Output Format
75
+
76
+ ### Strengths
77
+ [What's well done? Be specific. Sound like a colleague giving genuine praise, not a form response.]
78
+
79
+ ### Issues
80
+
81
+ All issues must include a **file:line anchor** pointing to the specific diff line. Write in a collegial tone — direct but not harsh.
82
+
83
+ #### Critical (Must Fix)
84
+ [Bugs, security issues, data loss risks, broken functionality]
85
+
86
+ #### Important (Should Fix)
87
+ [Architecture problems, missing features, poor error handling, test gaps]
88
+
89
+ #### Minor (Nice to Have)
90
+ [Code style, optimization opportunities, documentation improvements]
91
+
92
+ **For each issue:**
93
+ ```
94
+ 📍 path/to/file.ts:42
95
+ Change: [what changed — show old → new if helpful]
96
+ Finding: [what looks off]
97
+ Why it matters: [practical impact]
98
+ Suggested direction: [concrete fix or question]
99
+ ```
100
+
101
+ **Tone guide:**
102
+ - "Heads up — this can throw if X is null (line 42), since you removed the guard"
103
+ - "Worth double-checking: the fallback here (line 88) looks unreachable given the condition above"
104
+ - "Minor nit: this magic number (line 130) could be a named constant for readability"
105
+
106
+ Not:
107
+ - "VIOLATION: null check missing"
108
+ - "This is wrong"
109
+
110
+ ### Recommendations
111
+ [Improvements for code quality, architecture, or process — written as suggestions, not mandates]
112
+
113
+ ### Assessment
114
+
115
+ **Ready to merge?** [Yes/No/With fixes]
116
+
117
+ **Reasoning:** [Technical assessment in 1-2 sentences]
118
+
119
+ ## Critical Rules
120
+
121
+ **DO:**
122
+ - Read project conventions before evaluating style or patterns
123
+ - Categorize by actual severity (not everything is Critical)
124
+ - Be specific with file:line anchors
125
+ - Explain WHY issues matter
126
+ - Acknowledge strengths
127
+ - Give clear verdict
128
+ - Sound like a teammate, not a linter
129
+
130
+ **DON'T:**
131
+ - Flag something as wrong if it matches the project's own conventions
132
+ - Say "looks good" without checking
133
+ - Mark nitpicks as Critical
134
+ - Give feedback on code you didn't review
135
+ - Be vague ("improve error handling")
136
+ - Avoid giving a clear verdict
137
+ - Use harsh or robotic phrasing
138
+
139
+ ## Example Output
140
+
141
+ ```
142
+ ### Strengths
143
+ - Clean database schema with proper migrations (db.ts:15-42) — easy to follow
144
+ - Comprehensive test coverage (18 tests, all edge cases hit)
145
+ - Good error handling with fallbacks (summarizer.ts:85-92)
146
+
147
+ ### Issues
148
+
149
+ #### Important
150
+
151
+ 1. 📍 index-conversations:1-31
152
+ Change: Added CLI wrapper without help flag
153
+ Finding: No --help flag; users won't discover --concurrency
154
+ Why it matters: Discoverability — first-time users will hit a wall
155
+ Suggested direction: Add `--help` case with a short usage example
156
+
157
+ 2. 📍 search.ts:25-27
158
+ Change: Added date filtering without validation
159
+ Finding: Invalid dates silently return no results instead of erroring
160
+ Why it matters: Silent failures are hard to debug
161
+ Suggested direction: Validate ISO format and throw with an example date
162
+
163
+ #### Minor
164
+
165
+ 1. 📍 indexer.ts:130
166
+ Change: Added batch loop with no progress output
167
+ Finding: Long operations give no feedback
168
+ Suggested direction: A simple "X of Y" counter would help
169
+
170
+ ### Recommendations
171
+ - Consider a config file for excluded projects — hardcoded list will grow
172
+ - Progress reporting would meaningfully improve UX for large repos
173
+
174
+ ### Assessment
175
+
176
+ **Ready to merge: With fixes**
177
+
178
+ **Reasoning:** Core implementation is solid with good architecture and tests. The Important issues (help text, date validation) are quick fixes and don't affect core functionality.
179
+ ```