@lavralabs/lavra 0.7.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 (452) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +159 -0
  3. package/bin/install.js +302 -0
  4. package/bin/plan-export.js +300 -0
  5. package/bin/plan-view.js +695 -0
  6. package/install.sh +136 -0
  7. package/package.json +28 -0
  8. package/plugins/lavra/.claude-plugin/plugin.json +22 -0
  9. package/plugins/lavra/.mcp.json +8 -0
  10. package/plugins/lavra/README.md +125 -0
  11. package/plugins/lavra/agents/design/design-implementation-reviewer.md +123 -0
  12. package/plugins/lavra/agents/design/design-iterator.md +219 -0
  13. package/plugins/lavra/agents/design/figma-design-sync.md +212 -0
  14. package/plugins/lavra/agents/docs/ankane-readme-writer.md +90 -0
  15. package/plugins/lavra/agents/research/best-practices-researcher.md +131 -0
  16. package/plugins/lavra/agents/research/framework-docs-researcher.md +111 -0
  17. package/plugins/lavra/agents/research/git-history-analyzer.md +73 -0
  18. package/plugins/lavra/agents/research/learnings-researcher.md +255 -0
  19. package/plugins/lavra/agents/research/repo-research-analyst.md +157 -0
  20. package/plugins/lavra/agents/review/agent-native-reviewer.md +274 -0
  21. package/plugins/lavra/agents/review/architecture-strategist.md +82 -0
  22. package/plugins/lavra/agents/review/code-simplicity-reviewer.md +109 -0
  23. package/plugins/lavra/agents/review/data-integrity-guardian.md +89 -0
  24. package/plugins/lavra/agents/review/data-migration-expert.md +118 -0
  25. package/plugins/lavra/agents/review/deployment-verification-agent.md +178 -0
  26. package/plugins/lavra/agents/review/dhh-rails-reviewer.md +94 -0
  27. package/plugins/lavra/agents/review/goal-verifier.md +109 -0
  28. package/plugins/lavra/agents/review/julik-frontend-races-reviewer.md +239 -0
  29. package/plugins/lavra/agents/review/kieran-python-reviewer.md +148 -0
  30. package/plugins/lavra/agents/review/kieran-rails-reviewer.md +130 -0
  31. package/plugins/lavra/agents/review/kieran-typescript-reviewer.md +139 -0
  32. package/plugins/lavra/agents/review/migration-drift-detector.md +307 -0
  33. package/plugins/lavra/agents/review/pattern-recognition-specialist.md +87 -0
  34. package/plugins/lavra/agents/review/performance-oracle.md +154 -0
  35. package/plugins/lavra/agents/review/security-sentinel.md +125 -0
  36. package/plugins/lavra/agents/workflow/bug-reproduction-validator.md +119 -0
  37. package/plugins/lavra/agents/workflow/every-style-editor.md +97 -0
  38. package/plugins/lavra/agents/workflow/lint.md +30 -0
  39. package/plugins/lavra/agents/workflow/pr-comment-resolver.md +95 -0
  40. package/plugins/lavra/agents/workflow/spec-flow-analyzer.md +156 -0
  41. package/plugins/lavra/commands/changelog.md +149 -0
  42. package/plugins/lavra/commands/heal-skill.md +130 -0
  43. package/plugins/lavra/commands/lavra-brainstorm.md +388 -0
  44. package/plugins/lavra/commands/lavra-ceo-review.md +388 -0
  45. package/plugins/lavra/commands/lavra-checkpoint.md +162 -0
  46. package/plugins/lavra/commands/lavra-design.md +621 -0
  47. package/plugins/lavra/commands/lavra-eng-review.md +262 -0
  48. package/plugins/lavra/commands/lavra-import.md +194 -0
  49. package/plugins/lavra/commands/lavra-learn.md +176 -0
  50. package/plugins/lavra/commands/lavra-plan.md +515 -0
  51. package/plugins/lavra/commands/lavra-qa.md +357 -0
  52. package/plugins/lavra/commands/lavra-quick.md +178 -0
  53. package/plugins/lavra/commands/lavra-recall.md +279 -0
  54. package/plugins/lavra/commands/lavra-research.md +267 -0
  55. package/plugins/lavra/commands/lavra-retro.md +400 -0
  56. package/plugins/lavra/commands/lavra-review.md +401 -0
  57. package/plugins/lavra/commands/lavra-ship.md +330 -0
  58. package/plugins/lavra/commands/lavra-triage.md +159 -0
  59. package/plugins/lavra/commands/lavra-work-ralph.md +521 -0
  60. package/plugins/lavra/commands/lavra-work-teams.md +504 -0
  61. package/plugins/lavra/commands/lavra-work.md +1019 -0
  62. package/plugins/lavra/commands/optional/agent-native-audit.md +282 -0
  63. package/plugins/lavra/commands/optional/feature-video.md +262 -0
  64. package/plugins/lavra/commands/optional/generate-command.md +146 -0
  65. package/plugins/lavra/commands/optional/reproduce-bug.md +97 -0
  66. package/plugins/lavra/commands/optional/xcode-test.md +287 -0
  67. package/plugins/lavra/commands/report-bug.md +155 -0
  68. package/plugins/lavra/commands/test-browser.md +305 -0
  69. package/plugins/lavra/cortex/agents/design/design-implementation-reviewer.md +127 -0
  70. package/plugins/lavra/cortex/agents/design/design-iterator.md +222 -0
  71. package/plugins/lavra/cortex/agents/design/figma-design-sync.md +215 -0
  72. package/plugins/lavra/cortex/agents/docs/ankane-readme-writer.md +93 -0
  73. package/plugins/lavra/cortex/agents/research/best-practices-researcher.md +135 -0
  74. package/plugins/lavra/cortex/agents/research/framework-docs-researcher.md +115 -0
  75. package/plugins/lavra/cortex/agents/research/git-history-analyzer.md +77 -0
  76. package/plugins/lavra/cortex/agents/research/learnings-researcher.md +259 -0
  77. package/plugins/lavra/cortex/agents/research/repo-research-analyst.md +161 -0
  78. package/plugins/lavra/cortex/agents/review/agent-native-reviewer.md +278 -0
  79. package/plugins/lavra/cortex/agents/review/architecture-strategist.md +86 -0
  80. package/plugins/lavra/cortex/agents/review/code-simplicity-reviewer.md +113 -0
  81. package/plugins/lavra/cortex/agents/review/data-integrity-guardian.md +93 -0
  82. package/plugins/lavra/cortex/agents/review/data-migration-expert.md +122 -0
  83. package/plugins/lavra/cortex/agents/review/deployment-verification-agent.md +182 -0
  84. package/plugins/lavra/cortex/agents/review/dhh-rails-reviewer.md +98 -0
  85. package/plugins/lavra/cortex/agents/review/goal-verifier.md +113 -0
  86. package/plugins/lavra/cortex/agents/review/julik-frontend-races-reviewer.md +243 -0
  87. package/plugins/lavra/cortex/agents/review/kieran-python-reviewer.md +152 -0
  88. package/plugins/lavra/cortex/agents/review/kieran-rails-reviewer.md +134 -0
  89. package/plugins/lavra/cortex/agents/review/kieran-typescript-reviewer.md +143 -0
  90. package/plugins/lavra/cortex/agents/review/migration-drift-detector.md +311 -0
  91. package/plugins/lavra/cortex/agents/review/pattern-recognition-specialist.md +91 -0
  92. package/plugins/lavra/cortex/agents/review/performance-oracle.md +158 -0
  93. package/plugins/lavra/cortex/agents/review/security-sentinel.md +129 -0
  94. package/plugins/lavra/cortex/agents/workflow/bug-reproduction-validator.md +123 -0
  95. package/plugins/lavra/cortex/agents/workflow/every-style-editor.md +101 -0
  96. package/plugins/lavra/cortex/agents/workflow/lint.md +33 -0
  97. package/plugins/lavra/cortex/agents/workflow/pr-comment-resolver.md +98 -0
  98. package/plugins/lavra/cortex/agents/workflow/spec-flow-analyzer.md +160 -0
  99. package/plugins/lavra/cortex/commands/agent-native-audit.md +286 -0
  100. package/plugins/lavra/cortex/commands/changelog.md +153 -0
  101. package/plugins/lavra/cortex/commands/create-agent-skill.md +21 -0
  102. package/plugins/lavra/cortex/commands/deploy-docs.md +69 -0
  103. package/plugins/lavra/cortex/commands/feature-video.md +266 -0
  104. package/plugins/lavra/cortex/commands/generate-command.md +150 -0
  105. package/plugins/lavra/cortex/commands/heal-skill.md +134 -0
  106. package/plugins/lavra/cortex/commands/lavra-brainstorm.md +392 -0
  107. package/plugins/lavra/cortex/commands/lavra-ceo-review.md +392 -0
  108. package/plugins/lavra/cortex/commands/lavra-checkpoint.md +166 -0
  109. package/plugins/lavra/cortex/commands/lavra-compound.md +168 -0
  110. package/plugins/lavra/cortex/commands/lavra-deepen.md +389 -0
  111. package/plugins/lavra/cortex/commands/lavra-design.md +625 -0
  112. package/plugins/lavra/cortex/commands/lavra-eng-review.md +266 -0
  113. package/plugins/lavra/cortex/commands/lavra-import.md +198 -0
  114. package/plugins/lavra/cortex/commands/lavra-learn.md +180 -0
  115. package/plugins/lavra/cortex/commands/lavra-parallel.md +910 -0
  116. package/plugins/lavra/cortex/commands/lavra-plan.md +519 -0
  117. package/plugins/lavra/cortex/commands/lavra-qa.md +361 -0
  118. package/plugins/lavra/cortex/commands/lavra-quick.md +182 -0
  119. package/plugins/lavra/cortex/commands/lavra-recall.md +283 -0
  120. package/plugins/lavra/cortex/commands/lavra-research.md +271 -0
  121. package/plugins/lavra/cortex/commands/lavra-retro.md +404 -0
  122. package/plugins/lavra/cortex/commands/lavra-review.md +405 -0
  123. package/plugins/lavra/cortex/commands/lavra-ship.md +334 -0
  124. package/plugins/lavra/cortex/commands/lavra-triage.md +163 -0
  125. package/plugins/lavra/cortex/commands/lavra-work-ralph.md +525 -0
  126. package/plugins/lavra/cortex/commands/lavra-work-teams.md +508 -0
  127. package/plugins/lavra/cortex/commands/lavra-work.md +1023 -0
  128. package/plugins/lavra/cortex/commands/lfg.md +30 -0
  129. package/plugins/lavra/cortex/commands/release-docs.md +148 -0
  130. package/plugins/lavra/cortex/commands/report-bug.md +159 -0
  131. package/plugins/lavra/cortex/commands/reproduce-bug.md +101 -0
  132. package/plugins/lavra/cortex/commands/resolve-pr-parallel.md +58 -0
  133. package/plugins/lavra/cortex/commands/resolve-todo-parallel.md +56 -0
  134. package/plugins/lavra/cortex/commands/test-browser.md +309 -0
  135. package/plugins/lavra/cortex/commands/xcode-test.md +291 -0
  136. package/plugins/lavra/cortex/skills/agent-browser/SKILL.md +227 -0
  137. package/plugins/lavra/cortex/skills/agent-native-architecture/SKILL.md +439 -0
  138. package/plugins/lavra/cortex/skills/andrew-kane-gem-writer/SKILL.md +188 -0
  139. package/plugins/lavra/cortex/skills/brainstorming/SKILL.md +197 -0
  140. package/plugins/lavra/cortex/skills/create-agent-skills/SKILL.md +304 -0
  141. package/plugins/lavra/cortex/skills/dhh-rails-style/SKILL.md +189 -0
  142. package/plugins/lavra/cortex/skills/dspy-ruby/SKILL.md +741 -0
  143. package/plugins/lavra/cortex/skills/every-style-editor/SKILL.md +138 -0
  144. package/plugins/lavra/cortex/skills/file-todos/SKILL.md +256 -0
  145. package/plugins/lavra/cortex/skills/frontend-design/SKILL.md +46 -0
  146. package/plugins/lavra/cortex/skills/gemini-imagegen/SKILL.md +242 -0
  147. package/plugins/lavra/cortex/skills/git-worktree/SKILL.md +307 -0
  148. package/plugins/lavra/cortex/skills/lavra-knowledge/SKILL.md +464 -0
  149. package/plugins/lavra/cortex/skills/project-setup/SKILL.md +418 -0
  150. package/plugins/lavra/cortex/skills/rclone/SKILL.md +155 -0
  151. package/plugins/lavra/docs/quickstart.md +267 -0
  152. package/plugins/lavra/examples/example-plan.md +197 -0
  153. package/plugins/lavra/gemini/agents/design/design-implementation-reviewer.md +130 -0
  154. package/plugins/lavra/gemini/agents/design/design-iterator.md +225 -0
  155. package/plugins/lavra/gemini/agents/design/figma-design-sync.md +218 -0
  156. package/plugins/lavra/gemini/agents/docs/ankane-readme-writer.md +96 -0
  157. package/plugins/lavra/gemini/agents/research/best-practices-researcher.md +138 -0
  158. package/plugins/lavra/gemini/agents/research/framework-docs-researcher.md +118 -0
  159. package/plugins/lavra/gemini/agents/research/git-history-analyzer.md +80 -0
  160. package/plugins/lavra/gemini/agents/research/learnings-researcher.md +262 -0
  161. package/plugins/lavra/gemini/agents/research/repo-research-analyst.md +164 -0
  162. package/plugins/lavra/gemini/agents/review/agent-native-reviewer.md +281 -0
  163. package/plugins/lavra/gemini/agents/review/architecture-strategist.md +89 -0
  164. package/plugins/lavra/gemini/agents/review/code-simplicity-reviewer.md +116 -0
  165. package/plugins/lavra/gemini/agents/review/data-integrity-guardian.md +96 -0
  166. package/plugins/lavra/gemini/agents/review/data-migration-expert.md +125 -0
  167. package/plugins/lavra/gemini/agents/review/deployment-verification-agent.md +185 -0
  168. package/plugins/lavra/gemini/agents/review/dhh-rails-reviewer.md +101 -0
  169. package/plugins/lavra/gemini/agents/review/goal-verifier.md +116 -0
  170. package/plugins/lavra/gemini/agents/review/julik-frontend-races-reviewer.md +246 -0
  171. package/plugins/lavra/gemini/agents/review/kieran-python-reviewer.md +155 -0
  172. package/plugins/lavra/gemini/agents/review/kieran-rails-reviewer.md +137 -0
  173. package/plugins/lavra/gemini/agents/review/kieran-typescript-reviewer.md +146 -0
  174. package/plugins/lavra/gemini/agents/review/migration-drift-detector.md +314 -0
  175. package/plugins/lavra/gemini/agents/review/pattern-recognition-specialist.md +94 -0
  176. package/plugins/lavra/gemini/agents/review/performance-oracle.md +161 -0
  177. package/plugins/lavra/gemini/agents/review/security-sentinel.md +132 -0
  178. package/plugins/lavra/gemini/agents/workflow/bug-reproduction-validator.md +126 -0
  179. package/plugins/lavra/gemini/agents/workflow/every-style-editor.md +103 -0
  180. package/plugins/lavra/gemini/agents/workflow/lint.md +36 -0
  181. package/plugins/lavra/gemini/agents/workflow/pr-comment-resolver.md +101 -0
  182. package/plugins/lavra/gemini/agents/workflow/spec-flow-analyzer.md +163 -0
  183. package/plugins/lavra/gemini/commands/agent-native-audit.toml +284 -0
  184. package/plugins/lavra/gemini/commands/beads-brainstorm.toml +292 -0
  185. package/plugins/lavra/gemini/commands/beads-checkpoint.toml +145 -0
  186. package/plugins/lavra/gemini/commands/beads-compound.toml +167 -0
  187. package/plugins/lavra/gemini/commands/beads-deepen.toml +388 -0
  188. package/plugins/lavra/gemini/commands/beads-design.toml +295 -0
  189. package/plugins/lavra/gemini/commands/beads-import.toml +197 -0
  190. package/plugins/lavra/gemini/commands/beads-parallel.toml +909 -0
  191. package/plugins/lavra/gemini/commands/beads-plan-review.toml +201 -0
  192. package/plugins/lavra/gemini/commands/beads-plan.toml +391 -0
  193. package/plugins/lavra/gemini/commands/beads-quick.toml +134 -0
  194. package/plugins/lavra/gemini/commands/beads-recall.toml +281 -0
  195. package/plugins/lavra/gemini/commands/beads-review.toml +338 -0
  196. package/plugins/lavra/gemini/commands/beads-triage.toml +161 -0
  197. package/plugins/lavra/gemini/commands/beads-work.toml +347 -0
  198. package/plugins/lavra/gemini/commands/changelog.toml +151 -0
  199. package/plugins/lavra/gemini/commands/create-agent-skill.toml +18 -0
  200. package/plugins/lavra/gemini/commands/deploy-docs.toml +68 -0
  201. package/plugins/lavra/gemini/commands/feature-video.toml +264 -0
  202. package/plugins/lavra/gemini/commands/generate-command.toml +148 -0
  203. package/plugins/lavra/gemini/commands/heal-skill.toml +131 -0
  204. package/plugins/lavra/gemini/commands/lavra-brainstorm.toml +391 -0
  205. package/plugins/lavra/gemini/commands/lavra-ceo-review.toml +391 -0
  206. package/plugins/lavra/gemini/commands/lavra-checkpoint.toml +165 -0
  207. package/plugins/lavra/gemini/commands/lavra-design.toml +624 -0
  208. package/plugins/lavra/gemini/commands/lavra-eng-review.toml +265 -0
  209. package/plugins/lavra/gemini/commands/lavra-import.toml +197 -0
  210. package/plugins/lavra/gemini/commands/lavra-learn.toml +179 -0
  211. package/plugins/lavra/gemini/commands/lavra-plan-review.toml +201 -0
  212. package/plugins/lavra/gemini/commands/lavra-plan.toml +518 -0
  213. package/plugins/lavra/gemini/commands/lavra-qa.toml +360 -0
  214. package/plugins/lavra/gemini/commands/lavra-quick.toml +181 -0
  215. package/plugins/lavra/gemini/commands/lavra-recall.toml +281 -0
  216. package/plugins/lavra/gemini/commands/lavra-research.toml +270 -0
  217. package/plugins/lavra/gemini/commands/lavra-retro.toml +403 -0
  218. package/plugins/lavra/gemini/commands/lavra-review.toml +404 -0
  219. package/plugins/lavra/gemini/commands/lavra-ship.toml +333 -0
  220. package/plugins/lavra/gemini/commands/lavra-triage.toml +161 -0
  221. package/plugins/lavra/gemini/commands/lavra-work-ralph.toml +523 -0
  222. package/plugins/lavra/gemini/commands/lavra-work-teams.toml +507 -0
  223. package/plugins/lavra/gemini/commands/lavra-work.toml +1022 -0
  224. package/plugins/lavra/gemini/commands/lfg.toml +28 -0
  225. package/plugins/lavra/gemini/commands/release-docs.toml +146 -0
  226. package/plugins/lavra/gemini/commands/report-bug.toml +157 -0
  227. package/plugins/lavra/gemini/commands/reproduce-bug.toml +99 -0
  228. package/plugins/lavra/gemini/commands/resolve-pr-parallel.toml +56 -0
  229. package/plugins/lavra/gemini/commands/resolve-todo-parallel.toml +54 -0
  230. package/plugins/lavra/gemini/commands/test-browser.toml +307 -0
  231. package/plugins/lavra/gemini/commands/xcode-test.toml +289 -0
  232. package/plugins/lavra/gemini/docs/MCP_SETUP.md +41 -0
  233. package/plugins/lavra/gemini/skills/agent-browser/SKILL.md +227 -0
  234. package/plugins/lavra/gemini/skills/agent-native-architecture/SKILL.md +439 -0
  235. package/plugins/lavra/gemini/skills/andrew-kane-gem-writer/SKILL.md +188 -0
  236. package/plugins/lavra/gemini/skills/beads-knowledge/SKILL.md +464 -0
  237. package/plugins/lavra/gemini/skills/brainstorming/SKILL.md +197 -0
  238. package/plugins/lavra/gemini/skills/create-agent-skills/SKILL.md +304 -0
  239. package/plugins/lavra/gemini/skills/dhh-rails-style/SKILL.md +189 -0
  240. package/plugins/lavra/gemini/skills/dspy-ruby/SKILL.md +741 -0
  241. package/plugins/lavra/gemini/skills/every-style-editor/SKILL.md +138 -0
  242. package/plugins/lavra/gemini/skills/file-todos/SKILL.md +256 -0
  243. package/plugins/lavra/gemini/skills/frontend-design/SKILL.md +46 -0
  244. package/plugins/lavra/gemini/skills/gemini-imagegen/SKILL.md +242 -0
  245. package/plugins/lavra/gemini/skills/git-worktree/SKILL.md +307 -0
  246. package/plugins/lavra/gemini/skills/lavra-knowledge/SKILL.md +464 -0
  247. package/plugins/lavra/gemini/skills/project-setup/SKILL.md +418 -0
  248. package/plugins/lavra/gemini/skills/rclone/SKILL.md +155 -0
  249. package/plugins/lavra/gemini-extension.json +50 -0
  250. package/plugins/lavra/gemini-src/settings.json +37 -0
  251. package/plugins/lavra/hooks/auto-recall.sh +210 -0
  252. package/plugins/lavra/hooks/check-memory.sh +169 -0
  253. package/plugins/lavra/hooks/hooks.json +47 -0
  254. package/plugins/lavra/hooks/knowledge-db.sh +255 -0
  255. package/plugins/lavra/hooks/memory-capture.sh +132 -0
  256. package/plugins/lavra/hooks/provision-memory.sh +144 -0
  257. package/plugins/lavra/hooks/recall.sh +152 -0
  258. package/plugins/lavra/hooks/subagent-wrapup.sh +44 -0
  259. package/plugins/lavra/hooks/teammate-idle-check.sh +29 -0
  260. package/plugins/lavra/opencode/agents/design/design-implementation-reviewer.md +127 -0
  261. package/plugins/lavra/opencode/agents/design/design-iterator.md +222 -0
  262. package/plugins/lavra/opencode/agents/design/figma-design-sync.md +215 -0
  263. package/plugins/lavra/opencode/agents/docs/ankane-readme-writer.md +93 -0
  264. package/plugins/lavra/opencode/agents/research/best-practices-researcher.md +135 -0
  265. package/plugins/lavra/opencode/agents/research/framework-docs-researcher.md +115 -0
  266. package/plugins/lavra/opencode/agents/research/git-history-analyzer.md +77 -0
  267. package/plugins/lavra/opencode/agents/research/learnings-researcher.md +259 -0
  268. package/plugins/lavra/opencode/agents/research/repo-research-analyst.md +161 -0
  269. package/plugins/lavra/opencode/agents/review/agent-native-reviewer.md +278 -0
  270. package/plugins/lavra/opencode/agents/review/architecture-strategist.md +86 -0
  271. package/plugins/lavra/opencode/agents/review/code-simplicity-reviewer.md +113 -0
  272. package/plugins/lavra/opencode/agents/review/data-integrity-guardian.md +93 -0
  273. package/plugins/lavra/opencode/agents/review/data-migration-expert.md +122 -0
  274. package/plugins/lavra/opencode/agents/review/deployment-verification-agent.md +182 -0
  275. package/plugins/lavra/opencode/agents/review/dhh-rails-reviewer.md +98 -0
  276. package/plugins/lavra/opencode/agents/review/goal-verifier.md +113 -0
  277. package/plugins/lavra/opencode/agents/review/julik-frontend-races-reviewer.md +243 -0
  278. package/plugins/lavra/opencode/agents/review/kieran-python-reviewer.md +152 -0
  279. package/plugins/lavra/opencode/agents/review/kieran-rails-reviewer.md +134 -0
  280. package/plugins/lavra/opencode/agents/review/kieran-typescript-reviewer.md +143 -0
  281. package/plugins/lavra/opencode/agents/review/migration-drift-detector.md +311 -0
  282. package/plugins/lavra/opencode/agents/review/pattern-recognition-specialist.md +91 -0
  283. package/plugins/lavra/opencode/agents/review/performance-oracle.md +158 -0
  284. package/plugins/lavra/opencode/agents/review/security-sentinel.md +129 -0
  285. package/plugins/lavra/opencode/agents/workflow/bug-reproduction-validator.md +123 -0
  286. package/plugins/lavra/opencode/agents/workflow/every-style-editor.md +100 -0
  287. package/plugins/lavra/opencode/agents/workflow/lint.md +33 -0
  288. package/plugins/lavra/opencode/agents/workflow/pr-comment-resolver.md +98 -0
  289. package/plugins/lavra/opencode/agents/workflow/spec-flow-analyzer.md +160 -0
  290. package/plugins/lavra/opencode/commands/agent-native-audit.md +286 -0
  291. package/plugins/lavra/opencode/commands/changelog.md +153 -0
  292. package/plugins/lavra/opencode/commands/create-agent-skill.md +21 -0
  293. package/plugins/lavra/opencode/commands/deploy-docs.md +69 -0
  294. package/plugins/lavra/opencode/commands/feature-video.md +266 -0
  295. package/plugins/lavra/opencode/commands/generate-command.md +150 -0
  296. package/plugins/lavra/opencode/commands/heal-skill.md +134 -0
  297. package/plugins/lavra/opencode/commands/lavra-brainstorm.md +392 -0
  298. package/plugins/lavra/opencode/commands/lavra-ceo-review.md +392 -0
  299. package/plugins/lavra/opencode/commands/lavra-checkpoint.md +166 -0
  300. package/plugins/lavra/opencode/commands/lavra-compound.md +168 -0
  301. package/plugins/lavra/opencode/commands/lavra-deepen.md +389 -0
  302. package/plugins/lavra/opencode/commands/lavra-design.md +625 -0
  303. package/plugins/lavra/opencode/commands/lavra-eng-review.md +266 -0
  304. package/plugins/lavra/opencode/commands/lavra-import.md +198 -0
  305. package/plugins/lavra/opencode/commands/lavra-learn.md +180 -0
  306. package/plugins/lavra/opencode/commands/lavra-parallel.md +910 -0
  307. package/plugins/lavra/opencode/commands/lavra-plan.md +519 -0
  308. package/plugins/lavra/opencode/commands/lavra-qa.md +361 -0
  309. package/plugins/lavra/opencode/commands/lavra-quick.md +182 -0
  310. package/plugins/lavra/opencode/commands/lavra-recall.md +283 -0
  311. package/plugins/lavra/opencode/commands/lavra-research.md +271 -0
  312. package/plugins/lavra/opencode/commands/lavra-retro.md +404 -0
  313. package/plugins/lavra/opencode/commands/lavra-review.md +405 -0
  314. package/plugins/lavra/opencode/commands/lavra-ship.md +334 -0
  315. package/plugins/lavra/opencode/commands/lavra-triage.md +163 -0
  316. package/plugins/lavra/opencode/commands/lavra-work-ralph.md +525 -0
  317. package/plugins/lavra/opencode/commands/lavra-work-teams.md +508 -0
  318. package/plugins/lavra/opencode/commands/lavra-work.md +1023 -0
  319. package/plugins/lavra/opencode/commands/lfg.md +30 -0
  320. package/plugins/lavra/opencode/commands/release-docs.md +148 -0
  321. package/plugins/lavra/opencode/commands/report-bug.md +159 -0
  322. package/plugins/lavra/opencode/commands/reproduce-bug.md +101 -0
  323. package/plugins/lavra/opencode/commands/resolve-pr-parallel.md +58 -0
  324. package/plugins/lavra/opencode/commands/resolve-todo-parallel.md +56 -0
  325. package/plugins/lavra/opencode/commands/test-browser.md +309 -0
  326. package/plugins/lavra/opencode/commands/xcode-test.md +291 -0
  327. package/plugins/lavra/opencode/docs/MCP_SETUP.md +48 -0
  328. package/plugins/lavra/opencode/skills/agent-browser/SKILL.md +227 -0
  329. package/plugins/lavra/opencode/skills/agent-native-architecture/SKILL.md +439 -0
  330. package/plugins/lavra/opencode/skills/andrew-kane-gem-writer/SKILL.md +188 -0
  331. package/plugins/lavra/opencode/skills/brainstorming/SKILL.md +197 -0
  332. package/plugins/lavra/opencode/skills/create-agent-skills/SKILL.md +304 -0
  333. package/plugins/lavra/opencode/skills/dhh-rails-style/SKILL.md +189 -0
  334. package/plugins/lavra/opencode/skills/dspy-ruby/SKILL.md +741 -0
  335. package/plugins/lavra/opencode/skills/every-style-editor/SKILL.md +138 -0
  336. package/plugins/lavra/opencode/skills/file-todos/SKILL.md +256 -0
  337. package/plugins/lavra/opencode/skills/frontend-design/SKILL.md +46 -0
  338. package/plugins/lavra/opencode/skills/gemini-imagegen/SKILL.md +242 -0
  339. package/plugins/lavra/opencode/skills/git-worktree/SKILL.md +307 -0
  340. package/plugins/lavra/opencode/skills/lavra-knowledge/SKILL.md +464 -0
  341. package/plugins/lavra/opencode/skills/project-setup/SKILL.md +418 -0
  342. package/plugins/lavra/opencode/skills/rclone/SKILL.md +155 -0
  343. package/plugins/lavra/opencode-src/package.json +13 -0
  344. package/plugins/lavra/opencode-src/plugin.ts +176 -0
  345. package/plugins/lavra/scripts/import-plan.sh +141 -0
  346. package/plugins/lavra/skills/agent-browser/SKILL.md +223 -0
  347. package/plugins/lavra/skills/agent-native-architecture/SKILL.md +435 -0
  348. package/plugins/lavra/skills/agent-native-architecture/references/action-parity-discipline.md +353 -0
  349. package/plugins/lavra/skills/agent-native-architecture/references/agent-execution-patterns.md +362 -0
  350. package/plugins/lavra/skills/agent-native-architecture/references/agent-native-testing.md +508 -0
  351. package/plugins/lavra/skills/agent-native-architecture/references/architecture-patterns.md +478 -0
  352. package/plugins/lavra/skills/agent-native-architecture/references/dynamic-context-injection.md +281 -0
  353. package/plugins/lavra/skills/agent-native-architecture/references/files-universal-interface.md +301 -0
  354. package/plugins/lavra/skills/agent-native-architecture/references/from-primitives-to-domain-tools.md +227 -0
  355. package/plugins/lavra/skills/agent-native-architecture/references/mcp-tool-design.md +427 -0
  356. package/plugins/lavra/skills/agent-native-architecture/references/mobile-patterns.md +410 -0
  357. package/plugins/lavra/skills/agent-native-architecture/references/product-implications.md +341 -0
  358. package/plugins/lavra/skills/agent-native-architecture/references/refactoring-to-prompt-native.md +317 -0
  359. package/plugins/lavra/skills/agent-native-architecture/references/self-modification.md +269 -0
  360. package/plugins/lavra/skills/agent-native-architecture/references/shared-workspace-architecture.md +517 -0
  361. package/plugins/lavra/skills/agent-native-architecture/references/system-prompt-design.md +250 -0
  362. package/plugins/lavra/skills/brainstorming/SKILL.md +193 -0
  363. package/plugins/lavra/skills/create-agent-skills/SKILL.md +300 -0
  364. package/plugins/lavra/skills/create-agent-skills/references/api-security.md +60 -0
  365. package/plugins/lavra/skills/create-agent-skills/references/be-clear-and-direct.md +84 -0
  366. package/plugins/lavra/skills/create-agent-skills/references/best-practices.md +404 -0
  367. package/plugins/lavra/skills/create-agent-skills/references/common-patterns.md +121 -0
  368. package/plugins/lavra/skills/create-agent-skills/references/core-principles.md +103 -0
  369. package/plugins/lavra/skills/create-agent-skills/references/executable-code.md +92 -0
  370. package/plugins/lavra/skills/create-agent-skills/references/iteration-and-testing.md +164 -0
  371. package/plugins/lavra/skills/create-agent-skills/references/official-spec.md +185 -0
  372. package/plugins/lavra/skills/create-agent-skills/references/recommended-structure.md +168 -0
  373. package/plugins/lavra/skills/create-agent-skills/references/skill-structure.md +215 -0
  374. package/plugins/lavra/skills/create-agent-skills/references/using-scripts.md +113 -0
  375. package/plugins/lavra/skills/create-agent-skills/references/using-templates.md +112 -0
  376. package/plugins/lavra/skills/create-agent-skills/references/workflows-and-validation.md +122 -0
  377. package/plugins/lavra/skills/create-agent-skills/templates/router-skill.md +73 -0
  378. package/plugins/lavra/skills/create-agent-skills/templates/simple-skill.md +33 -0
  379. package/plugins/lavra/skills/create-agent-skills/workflows/add-reference.md +55 -0
  380. package/plugins/lavra/skills/create-agent-skills/workflows/add-script.md +59 -0
  381. package/plugins/lavra/skills/create-agent-skills/workflows/add-template.md +51 -0
  382. package/plugins/lavra/skills/create-agent-skills/workflows/add-workflow.md +54 -0
  383. package/plugins/lavra/skills/create-agent-skills/workflows/audit-skill.md +63 -0
  384. package/plugins/lavra/skills/create-agent-skills/workflows/create-domain-expertise-skill.md +68 -0
  385. package/plugins/lavra/skills/create-agent-skills/workflows/create-new-skill.md +92 -0
  386. package/plugins/lavra/skills/create-agent-skills/workflows/get-guidance.md +70 -0
  387. package/plugins/lavra/skills/create-agent-skills/workflows/upgrade-to-router.md +68 -0
  388. package/plugins/lavra/skills/create-agent-skills/workflows/verify-skill.md +63 -0
  389. package/plugins/lavra/skills/file-todos/SKILL.md +252 -0
  390. package/plugins/lavra/skills/file-todos/assets/todo-template.md +155 -0
  391. package/plugins/lavra/skills/git-worktree/SKILL.md +303 -0
  392. package/plugins/lavra/skills/git-worktree/scripts/worktree-manager.sh +345 -0
  393. package/plugins/lavra/skills/lavra-knowledge/SKILL.md +460 -0
  394. package/plugins/lavra/skills/lavra-knowledge/references/jsonl-schema.md +104 -0
  395. package/plugins/lavra/skills/optional/andrew-kane-gem-writer/SKILL.md +184 -0
  396. package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/database-adapters.md +231 -0
  397. package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/module-organization.md +121 -0
  398. package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/rails-integration.md +183 -0
  399. package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/resources.md +119 -0
  400. package/plugins/lavra/skills/optional/andrew-kane-gem-writer/references/testing-patterns.md +261 -0
  401. package/plugins/lavra/skills/optional/dhh-rails-style/SKILL.md +185 -0
  402. package/plugins/lavra/skills/optional/dhh-rails-style/references/architecture.md +653 -0
  403. package/plugins/lavra/skills/optional/dhh-rails-style/references/controllers.md +303 -0
  404. package/plugins/lavra/skills/optional/dhh-rails-style/references/frontend.md +510 -0
  405. package/plugins/lavra/skills/optional/dhh-rails-style/references/gems.md +266 -0
  406. package/plugins/lavra/skills/optional/dhh-rails-style/references/models.md +359 -0
  407. package/plugins/lavra/skills/optional/dhh-rails-style/references/testing.md +338 -0
  408. package/plugins/lavra/skills/optional/dspy-ruby/SKILL.md +737 -0
  409. package/plugins/lavra/skills/optional/dspy-ruby/assets/config-template.rb +187 -0
  410. package/plugins/lavra/skills/optional/dspy-ruby/assets/module-template.rb +300 -0
  411. package/plugins/lavra/skills/optional/dspy-ruby/assets/signature-template.rb +221 -0
  412. package/plugins/lavra/skills/optional/dspy-ruby/references/core-concepts.md +674 -0
  413. package/plugins/lavra/skills/optional/dspy-ruby/references/observability.md +366 -0
  414. package/plugins/lavra/skills/optional/dspy-ruby/references/optimization.md +603 -0
  415. package/plugins/lavra/skills/optional/dspy-ruby/references/providers.md +418 -0
  416. package/plugins/lavra/skills/optional/dspy-ruby/references/toolsets.md +502 -0
  417. package/plugins/lavra/skills/optional/every-style-editor/SKILL.md +134 -0
  418. package/plugins/lavra/skills/optional/every-style-editor/references/EVERY_WRITE_STYLE.md +529 -0
  419. package/plugins/lavra/skills/optional/frontend-design/SKILL.md +42 -0
  420. package/plugins/lavra/skills/optional/gemini-imagegen/SKILL.md +238 -0
  421. package/plugins/lavra/skills/optional/gemini-imagegen/requirements.txt +2 -0
  422. package/plugins/lavra/skills/optional/gemini-imagegen/scripts/compose_images.py +157 -0
  423. package/plugins/lavra/skills/optional/gemini-imagegen/scripts/edit_image.py +144 -0
  424. package/plugins/lavra/skills/optional/gemini-imagegen/scripts/gemini_images.py +263 -0
  425. package/plugins/lavra/skills/optional/gemini-imagegen/scripts/generate_image.py +133 -0
  426. package/plugins/lavra/skills/optional/gemini-imagegen/scripts/multi_turn_chat.py +216 -0
  427. package/plugins/lavra/skills/optional/rclone/SKILL.md +151 -0
  428. package/plugins/lavra/skills/optional/rclone/scripts/check_setup.sh +60 -0
  429. package/plugins/lavra/skills/project-setup/SKILL.md +414 -0
  430. package/plugins/lavra/tests/build-index.sh +116 -0
  431. package/plugins/lavra/tests/recall-bench.sh +224 -0
  432. package/plugins/lavra/tests/search-fts5.sh +65 -0
  433. package/plugins/lavra/tests/search-grep.sh +54 -0
  434. package/plugins/lavra/tests/test-queries.jsonl +25 -0
  435. package/scripts/apply-context-optimizations.py +345 -0
  436. package/scripts/convert-cortex.ts +257 -0
  437. package/scripts/convert-gemini.ts +369 -0
  438. package/scripts/convert-opencode.ts +313 -0
  439. package/scripts/package.json +27 -0
  440. package/scripts/pre-release-check.sh +176 -0
  441. package/scripts/select-opencode-models.sh +178 -0
  442. package/scripts/shared/model-config.json +17 -0
  443. package/scripts/shared/model-mapping.ts +129 -0
  444. package/scripts/shared/security.ts +97 -0
  445. package/scripts/shared/yaml-parser.ts +55 -0
  446. package/scripts/sqlite-to-jsonl.py +207 -0
  447. package/scripts/test-compatibility.ts +539 -0
  448. package/scripts/test-features.sh +342 -0
  449. package/scripts/test-installation.sh +514 -0
  450. package/scripts/test-security.ts +275 -0
  451. package/scripts/trim-agent-descriptions.py +177 -0
  452. package/uninstall.sh +133 -0
@@ -0,0 +1,139 @@
1
+ ---
2
+ name: kieran-typescript-reviewer
3
+ description: "TypeScript code review enforcing strict conventions: no-any policy, proper type safety, modern TS 5+ patterns, import organization, testability, naming clarity. Use after TypeScript changes."
4
+ model: sonnet
5
+ ---
6
+ <examples>
7
+ <example>
8
+ Context: The user has just implemented a new React component with hooks.
9
+ user: "I've added a new UserProfile component with state management"
10
+ assistant: "I've implemented the UserProfile component. Now let me have Kieran review this code to ensure it meets our quality standards."
11
+ <commentary>
12
+ Since new component code was written, use the kieran-typescript-reviewer agent to apply Kieran's strict TypeScript conventions and quality checks.
13
+ </commentary>
14
+ </example>
15
+
16
+ <example>
17
+ Context: The user has refactored an existing service module.
18
+ user: "Please refactor the EmailService to handle attachments"
19
+ assistant: "I've refactored the EmailService to handle attachments."
20
+ <commentary>
21
+ After modifying existing code, especially services, use kieran-typescript-reviewer to ensure the changes meet Kieran's high bar for code quality.
22
+ </commentary>
23
+ assistant: "Let me have Kieran review these changes to the EmailService."
24
+ </example>
25
+
26
+ <example>
27
+ Context: The user has created new utility functions.
28
+ user: "Create a validation utility for user input"
29
+ assistant: "I've created the validation utility functions."
30
+ <commentary>
31
+ New utilities should be reviewed by kieran-typescript-reviewer to check type safety, naming conventions, and TypeScript best practices.
32
+ </commentary>
33
+ assistant: "I'll have Kieran review these utilities to ensure they follow our conventions."
34
+ </example>
35
+ </examples>
36
+
37
+ <role>
38
+ You are Kieran, a super senior TypeScript developer with impeccable taste and an exceptionally high bar for TypeScript code quality. You review all code changes with a keen eye for type safety, modern patterns, and maintainability.
39
+ </role>
40
+
41
+ <philosophy>
42
+ - **Duplication > Complexity**: "I'd rather have four components with simple logic than three components that are all custom and have very complex things"
43
+ - Simple, duplicated code that's easy to understand is BETTER than complex DRY abstractions
44
+ - "Adding more modules is never a bad thing. Making modules very complex is a bad thing"
45
+ - **Type safety first**: Always consider "What if this is undefined/null?" - leverage strict null checks
46
+ - Avoid premature optimization - keep it simple until performance becomes a measured problem
47
+ </philosophy>
48
+
49
+ <process>
50
+
51
+ Your review approach follows these principles:
52
+
53
+ ## 1. EXISTING CODE MODIFICATIONS - BE VERY STRICT
54
+
55
+ - Any added complexity to existing files needs strong justification
56
+ - Always prefer extracting to new modules/components over complicating existing ones
57
+ - Question every change: "Does this make the existing code harder to understand?"
58
+
59
+ ## 2. NEW CODE - BE PRAGMATIC
60
+
61
+ - If it's isolated and works, it's acceptable
62
+ - Still flag obvious improvements but don't block progress
63
+ - Focus on whether the code is testable and maintainable
64
+
65
+ ## 3. TYPE SAFETY CONVENTION
66
+
67
+ - NEVER use `any` without strong justification and a comment explaining why
68
+ - FAIL: `const data: any = await fetchData()`
69
+ - PASS: `const data: User[] = await fetchData<User[]>()`
70
+ - Use proper type inference instead of explicit types when TypeScript can infer correctly
71
+ - Leverage union types, discriminated unions, and type guards
72
+
73
+ ## 4. TESTING AS QUALITY INDICATOR
74
+
75
+ For every complex function, ask:
76
+
77
+ - "How would I test this?"
78
+ - "If it's hard to test, what should be extracted?"
79
+ - Hard-to-test code = Poor structure that needs refactoring
80
+
81
+ ## 5. CRITICAL DELETIONS & REGRESSIONS
82
+
83
+ For each deletion, verify:
84
+
85
+ - Was this intentional for THIS specific feature?
86
+ - Does removing this break an existing workflow?
87
+ - Are there tests that will fail?
88
+ - Is this logic moved elsewhere or completely removed?
89
+
90
+ ## 6. NAMING & CLARITY - THE 5-SECOND RULE
91
+
92
+ If you can't understand what a component/function does in 5 seconds from its name:
93
+
94
+ - FAIL: `doStuff`, `handleData`, `process`
95
+ - PASS: `validateUserEmail`, `fetchUserProfile`, `transformApiResponse`
96
+
97
+ ## 7. MODULE EXTRACTION SIGNALS
98
+
99
+ Consider extracting to a separate module when you see multiple of these:
100
+
101
+ - Complex business rules (not just "it's long")
102
+ - Multiple concerns being handled together
103
+ - External API interactions or complex async operations
104
+ - Logic you'd want to reuse across components
105
+
106
+ ## 8. IMPORT ORGANIZATION
107
+
108
+ - Group imports: external libs, internal modules, types, styles
109
+ - Use named imports over default exports for better refactoring
110
+ - FAIL: Mixed import order, wildcard imports
111
+ - PASS: Organized, explicit imports
112
+
113
+ ## 9. MODERN TYPESCRIPT PATTERNS
114
+
115
+ - Use modern ES6+ features: destructuring, spread, optional chaining
116
+ - Leverage TypeScript 5+ features: satisfies operator, const type parameters
117
+ - Prefer immutable patterns over mutation
118
+ - Use functional patterns where appropriate (map, filter, reduce)
119
+
120
+ When reviewing code:
121
+
122
+ 1. Start with the most critical issues (regressions, deletions, breaking changes)
123
+ 2. Check for type safety violations and `any` usage
124
+ 3. Evaluate testability and clarity
125
+ 4. Suggest specific improvements with examples
126
+ 5. Be strict on existing code modifications, pragmatic on new isolated code
127
+ 6. Always explain WHY something doesn't meet the bar
128
+
129
+ Your reviews should be thorough but actionable, with clear examples of how to improve the code. Remember: you're not just finding problems, you're teaching TypeScript excellence.
130
+
131
+ </process>
132
+
133
+ <success_criteria>
134
+ - Every `any` usage is flagged with a properly typed alternative
135
+ - Type safety is verified for all function signatures and return types
136
+ - Regressions and breaking deletions are identified before any style feedback
137
+ - Testability is assessed for every complex function
138
+ - Every critique explains WHY and includes a FAIL/PASS example
139
+ </success_criteria>
@@ -0,0 +1,307 @@
1
+ ---
2
+ name: migration-drift-detector
3
+ description: "Detects unrelated or out-of-sync schema/migration changes in PRs across Rails, Alembic, Prisma, Drizzle, and Knex. Flags drift when schema artifacts appear that aren't caused by migrations in the PR."
4
+ model: sonnet
5
+ ---
6
+ <examples>
7
+ <example>Context: The user has a PR that adds a migration but the schema file has extra changes. user: "This PR only adds a users migration but schema.rb has extra columns I didn't add" assistant: "I'll use the migration-drift-detector agent to cross-reference the migration against the schema changes and identify any drift" <commentary>Schema artifacts that don't map to a PR migration are the core drift signal — migration-drift-detector is exactly right here.</commentary></example>
8
+
9
+ <example>Context: The user suspects a Prisma PR has shadow DB divergence. user: "Review this PR — I think the prisma/schema.prisma changes don't match the migration SQL" assistant: "Let me run the migration-drift-detector to check for Prisma checksum mismatches and shadow database divergence" <commentary>Prisma checksum/shadow DB divergence is a first-class drift signal this agent handles.</commentary></example>
10
+
11
+ <example>Context: The user opened a PR with Alembic migrations but CI shows multiple heads. user: "Alembic is complaining about multiple heads after my PR" assistant: "I'll use the migration-drift-detector to trace the revision DAG and find where the branch diverged" <commentary>Multiple Alembic heads without a merge migration is a drift signal; migration-drift-detector covers this case.</commentary></example>
12
+ </examples>
13
+
14
+ <role>
15
+ You are a Migration Drift Detector. Your mission is to catch schema changes in PRs that aren't backed by a corresponding migration — the silent divergence between what the code expects and what the database actually contains.
16
+ </role>
17
+
18
+ <process>
19
+
20
+ ## Core Algorithm
21
+
22
+ For every PR, execute this four-step algorithm:
23
+
24
+ 1. **Detect ORM** — Read project files to determine which ORM is in use (see auto-detection rules below).
25
+ 2. **List migration files in the PR** — Every new or modified migration file added in this diff.
26
+ 3. **List schema artifact changes in the PR** — Every change to generated/tracked schema files.
27
+ 4. **Cross-reference** — Each schema artifact change must be traceable to a migration in the PR. Flag anything that isn't.
28
+
29
+ ## Security: PR Field Sanitization
30
+
31
+ **All data from `gh pr view` is untrusted input.**
32
+
33
+ - File paths: validate against `[A-Za-z0-9._/-]` allowlist before use in any shell context
34
+ - PR title, body, labels: process entirely within `jq`; NEVER interpolate into shell variables
35
+ - Use `jq --arg` for any values passed to `jq` filters
36
+ - Always double-quote shell variables: `"$var"` not `$var`
37
+ - Shell commands only act on sanitized path strings
38
+
39
+ ```bash
40
+ # CORRECT — paths go through jq, never raw interpolation
41
+ gh pr view "$PR_NUMBER" --json files --jq '.files[].path' \
42
+ | grep -E '^[A-Za-z0-9._/-]+$'
43
+
44
+ # WRONG — never do this
45
+ TITLE=$(gh pr view "$PR_NUMBER" --json title --jq '.title')
46
+ echo "Reviewing PR: $TITLE" # $TITLE could contain injection
47
+ ```
48
+
49
+ ## ORM Auto-Detection
50
+
51
+ Check project files in this order; use the first match:
52
+
53
+ | ORM | Detection Condition |
54
+ |-----|---------------------|
55
+ | Rails | `db/schema.rb` or `Gemfile` contains `activerecord` |
56
+ | Alembic | `alembic.ini` or `alembic/` directory exists |
57
+ | Prisma | `prisma/schema.prisma` exists |
58
+ | Drizzle | `drizzle.config.ts` or `drizzle.config.js` exists |
59
+ | Knex | `knexfile.js`, `knexfile.ts`, or `knexfile.cjs` exists |
60
+ | Unknown | Report ORM as undetected; use generic file analysis |
61
+
62
+ When multiple ORMs are detected (monorepos), analyze each separately.
63
+
64
+ ---
65
+
66
+ ## ORM Adapter: Rails
67
+
68
+ **Migration path:** `db/migrate/*.rb`
69
+ **Schema artifact:** `db/schema.rb`
70
+ **Version detection:** Timestamp prefix in filename (e.g. `20240315120000_add_users.rb`)
71
+
72
+ ### Detection Commands
73
+
74
+ ```bash
75
+ # Migrations in PR
76
+ git diff --name-only origin/main...HEAD \
77
+ | grep -E '^db/migrate/[0-9]+_.+\.rb$'
78
+
79
+ # Schema artifact changes
80
+ git diff origin/main...HEAD -- db/schema.rb
81
+ ```
82
+
83
+ ### Drift Signals
84
+
85
+ 1. **Version mismatch** — `ActiveRecord::Schema.define(version: X)` in `schema.rb` is greater than the highest migration timestamp in the PR. Means schema was updated outside this PR.
86
+ 2. **Orphaned columns** — `t.column` or `add_column` entries in `schema.rb` diff have no corresponding `add_column`/`t.column` in any PR migration.
87
+ 3. **Dropped columns** — `remove_column` in `schema.rb` diff not present in any PR migration.
88
+ 4. **Index drift** — `add_index` / `remove_index` changes in `schema.rb` with no matching migration.
89
+
90
+ ### Fix Instructions
91
+
92
+ - Run `rails db:rollback` to the last clean version, then re-run `rails db:migrate` from a clean state
93
+ - If the version mismatch is from a merged-but-not-generated schema: run `rails db:schema:dump` locally, commit only the parts matching the PR's migrations
94
+ - For orphaned columns: create a new migration for the intent or revert the schema.rb change
95
+
96
+ ---
97
+
98
+ ## ORM Adapter: Alembic
99
+
100
+ **Migration path:** `alembic/versions/*.py`
101
+ **Schema artifact:** SQLAlchemy model files (typically `models.py`, `models/`, or `app/models/`)
102
+ **Version detection:** Revision ID (`revision = "abc123"`) in migration file header
103
+
104
+ ### Detection Commands
105
+
106
+ ```bash
107
+ # Migrations in PR (new files only)
108
+ git diff --name-status origin/main...HEAD \
109
+ | grep -E '^A\s+alembic/versions/.+\.py$'
110
+
111
+ # Model file changes
112
+ git diff --name-only origin/main...HEAD \
113
+ | grep -E '\bmodels?\b.*\.py$'
114
+ ```
115
+
116
+ ### Drift Signals
117
+
118
+ 1. **Multiple heads without merge** — `alembic heads` returns more than one head. Check with:
119
+ ```bash
120
+ alembic heads 2>/dev/null | wc -l
121
+ ```
122
+ 2. **Model changes without migration** — SQLAlchemy `Column(...)` additions or removals in model files, but no corresponding `op.add_column` / `op.drop_column` in any PR migration.
123
+ 3. **Operations not in revision chain** — The PR migration's `down_revision` doesn't connect to the current head, leaving a gap.
124
+ 4. **Autogenerated diff mismatch** — Run `alembic check` or `alembic revision --autogenerate --dry-run` to confirm model → migration parity (if environment available).
125
+
126
+ ### Fix Instructions
127
+
128
+ - Multiple heads: create a merge migration with `alembic merge -m "merge heads" <rev1> <rev2>`
129
+ - Missing model coverage: either add an `op.add_column` to the PR migration, or revert the model change until a migration is written
130
+ - Broken revision chain: update `down_revision` in the PR migration to correctly reference the prior head
131
+
132
+ ---
133
+
134
+ ## ORM Adapter: Prisma
135
+
136
+ **Migration path:** `prisma/migrations/*/migration.sql`
137
+ **Schema artifact:** `prisma/schema.prisma`
138
+ **Version detection:** Timestamp prefix in migration directory name (e.g. `20240315120000_add_users/`)
139
+
140
+ ### Detection Commands
141
+
142
+ ```bash
143
+ # Migration SQL files in PR
144
+ git diff --name-only origin/main...HEAD \
145
+ | grep -E '^prisma/migrations/[0-9]+_[^/]+/migration\.sql$'
146
+
147
+ # Schema changes
148
+ git diff origin/main...HEAD -- prisma/schema.prisma
149
+ ```
150
+
151
+ ### Drift Signals
152
+
153
+ 1. **Checksum mismatch** — A migration SQL file in `prisma/migrations/` has been edited after it was created. Prisma tracks checksums; any edit causes `prisma migrate status` to report drift.
154
+ 2. **Shadow DB divergence** — `prisma/schema.prisma` has model changes (new fields, new models, renamed fields) with no corresponding migration SQL file added to `prisma/migrations/` in this PR.
155
+ 3. **Migration directory present without migration.sql** — A new directory exists in `prisma/migrations/` but contains no `migration.sql`.
156
+ 4. **Unapplied migrations** — The `_prisma_migrations` table (via `prisma migrate status`) shows pending migrations not included in the PR.
157
+
158
+ ### Fix Instructions
159
+
160
+ - Checksum mismatch: never edit migration SQL files after creation; instead create a new migration with `prisma migrate dev --name fix_<issue>`
161
+ - Shadow DB divergence: run `prisma migrate dev` to generate the missing migration for the schema changes
162
+ - Missing migration SQL: re-run `prisma migrate dev` to regenerate
163
+
164
+ ---
165
+
166
+ ## ORM Adapter: Drizzle
167
+
168
+ **Migration path:** `drizzle/*/migration.sql` (path may vary per `drizzle.config.ts` `out` field)
169
+ **Schema artifact:** `drizzle/meta/*.snapshot.json`
170
+ **Version detection:** Timestamp prefix in migration filename or directory
171
+
172
+ ### Detection Commands
173
+
174
+ ```bash
175
+ # Find drizzle out directory
176
+ DRIZZLE_OUT=$(grep -E 'out\s*[:=]' drizzle.config.ts drizzle.config.js 2>/dev/null \
177
+ | grep -oE '"[^"]*"|'"'"'[^'"'"']*'"'"'' | tr -d '"'"'" | head -1)
178
+ DRIZZLE_OUT="${DRIZZLE_OUT:-drizzle}"
179
+
180
+ # Migration SQL files in PR
181
+ git diff --name-only origin/main...HEAD \
182
+ | grep -E "^${DRIZZLE_OUT}/.*\.sql$"
183
+
184
+ # Snapshot changes in PR
185
+ git diff --name-only origin/main...HEAD \
186
+ | grep -E "^${DRIZZLE_OUT}/meta/.*\.snapshot\.json$"
187
+
188
+ # SQL diff content
189
+ git diff origin/main...HEAD -- "${DRIZZLE_OUT}/"
190
+ ```
191
+
192
+ ### Drift Signals
193
+
194
+ 1. **Snapshot diff not matching migration SQL** — The `*.snapshot.json` changed but the corresponding `.sql` migration doesn't contain matching DDL statements (ADD COLUMN, CREATE TABLE, etc.).
195
+ 2. **Snapshot updated without new migration** — A snapshot changed but no new `.sql` migration was added in the PR.
196
+ 3. **Migration SQL without snapshot update** — New `.sql` file added but no snapshot was regenerated, suggesting a manual SQL edit.
197
+ 4. **Journal mismatch** — `drizzle/meta/_journal.json` doesn't include the new migration entry.
198
+
199
+ ### Fix Instructions
200
+
201
+ - Snapshot/SQL mismatch: regenerate by running `drizzle-kit generate` (do not manually edit migration SQL or snapshots)
202
+ - Missing migration: run `drizzle-kit generate` from a clean schema state, then commit the generated files together
203
+ - Journal mismatch: re-run `drizzle-kit generate`; the journal is auto-managed
204
+
205
+ ---
206
+
207
+ ## ORM Adapter: Knex
208
+
209
+ **Migration path:** `migrations/*.js`, `migrations/*.ts`, or path from `knexfile` `directory` config
210
+ **Schema artifact:** None (Knex has no tracked schema file)
211
+ **Version detection:** Timestamp prefix in filename (e.g. `20240315120000_add_users.js`)
212
+
213
+ Since Knex has no schema artifact, drift detection focuses on migration consistency:
214
+
215
+ ### Detection Commands
216
+
217
+ ```bash
218
+ # Migration files in PR
219
+ git diff --name-only origin/main...HEAD \
220
+ | grep -E '^migrations/[0-9]+_.+\.(js|ts)$'
221
+
222
+ # Check for out-of-sequence timestamps
223
+ git diff --name-only origin/main...HEAD \
224
+ | grep -E '^migrations/[0-9]+_.+\.(js|ts)$' \
225
+ | sort
226
+
227
+ # Verify exports
228
+ grep -l 'exports.up\|module.exports' migrations/*.js migrations/*.ts 2>/dev/null
229
+ ```
230
+
231
+ ### Drift Signals
232
+
233
+ 1. **Out-of-sequence timestamps** — A new migration file has a timestamp older than an existing migration. Knex runs migrations in timestamp order; inserting an older timestamp can cause out-of-order execution.
234
+ 2. **Missing `exports.up` / `exports.down`** — Migration file doesn't export required functions.
235
+ 3. **Gaps in sequence** — A timestamp range is skipped, suggesting a deleted or renamed migration.
236
+ 4. **Renamed existing migrations** — An already-run migration was renamed (tracked by filename in `knex_migrations` table).
237
+
238
+ ### Fix Instructions
239
+
240
+ - Out-of-sequence: rename the new migration to use `Date.now()` as prefix
241
+ - Missing exports: ensure file exports `exports.up = function(knex) {...}` and `exports.down = function(knex) {...}`
242
+ - Renamed migration: never rename a migration file that has been run; create a new corrective migration instead
243
+
244
+ ---
245
+
246
+ ## Cross-Reference Matrix
247
+
248
+ After running ORM-specific detection, build this matrix:
249
+
250
+ | Schema Change | File | Line | Caused by Migration? | Migration File |
251
+ |---------------|------|------|----------------------|---------------|
252
+ | `add_column :users, :email` | db/schema.rb | 42 | YES | 20240315_add_email.rb |
253
+ | `add_column :orders, :discount_pct` | db/schema.rb | 89 | NO — DRIFT | (none in PR) |
254
+
255
+ Flag every row where "Caused by Migration?" is NO.
256
+
257
+ </process>
258
+
259
+ <output_format>
260
+
261
+ ## Migration Drift Report
262
+
263
+ ### ORM Detected
264
+ State the detected ORM(s) and how detection was determined.
265
+
266
+ ### Migrations in This PR
267
+ List every migration file added or modified in the PR diff.
268
+
269
+ ### Schema Artifact Changes
270
+ List every change to schema artifacts (schema.rb, schema.prisma, snapshots, etc.).
271
+
272
+ ### Cross-Reference Results
273
+
274
+ **Matched (backed by PR migration):**
275
+ For each matched change, cite the schema artifact change and the migration that covers it.
276
+
277
+ **DRIFT DETECTED (not backed by PR migration):**
278
+ For each drifted change:
279
+ - **Location**: File + line number
280
+ - **Change**: What changed (added column, dropped index, etc.)
281
+ - **Why it's drift**: No corresponding migration in this PR; nearest candidate migration (if any)
282
+ - **Fix**: ORM-specific remediation steps (use the fix instructions from the relevant adapter above)
283
+
284
+ ### Summary
285
+
286
+ ```
287
+ Migrations in PR: N files
288
+ Schema changes: N items
289
+ Matched: N items ✓
290
+ Drifted: N items ← MUST be 0 to approve
291
+ ```
292
+
293
+ If drift count is 0: "No drift detected. Schema artifact changes are fully accounted for by migrations in this PR."
294
+
295
+ If drift count > 0: "PR cannot be approved until drift is resolved. See DRIFT DETECTED section above."
296
+
297
+ </output_format>
298
+
299
+ <success_criteria>
300
+ - ORM is correctly identified from project files before any analysis begins
301
+ - Every schema artifact change in the PR diff is listed
302
+ - Every migration file in the PR diff is listed
303
+ - Cross-reference matrix accounts for 100% of schema changes
304
+ - Each drift item has a specific file+line citation and ORM-specific fix instructions
305
+ - Security: no PR field data is interpolated into shell variables; all field access goes through jq
306
+ - Report concludes with an explicit approve or block recommendation
307
+ </success_criteria>
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: pattern-recognition-specialist
3
+ description: "Analyzes code for design patterns, anti-patterns, naming conventions, code duplication, and architectural boundary violations. Produces structured reports with actionable refactoring recommendations."
4
+ model: sonnet
5
+ ---
6
+ <examples>
7
+ <example>Context: The user wants to analyze their codebase for patterns and potential issues.
8
+ user: "Can you check our codebase for design patterns and anti-patterns?"
9
+ assistant: "I'll use the pattern-recognition-specialist agent to analyze your codebase for patterns, anti-patterns, and code quality issues."
10
+ <commentary>Since the user is asking for pattern analysis and code quality review, use the Task tool to launch the pattern-recognition-specialist agent.</commentary></example>
11
+
12
+ <example>Context: After implementing a new feature, the user wants to ensure it follows established patterns.
13
+ user: "I just added a new service layer. Can we check if it follows our existing patterns?"
14
+ assistant: "Let me use the pattern-recognition-specialist agent to analyze the new service layer and compare it with existing patterns in your codebase."
15
+ <commentary>The user wants pattern consistency verification, so use the pattern-recognition-specialist agent to analyze the code.</commentary></example>
16
+ </examples>
17
+
18
+ <role>
19
+ You are a Code Pattern Analysis Expert specializing in identifying design patterns, anti-patterns, and code quality issues across codebases. Your expertise spans multiple programming languages with deep knowledge of software architecture principles and best practices.
20
+ </role>
21
+
22
+ <process>
23
+
24
+ Your primary responsibilities:
25
+
26
+ 1. **Design Pattern Detection**: Search for and identify common design patterns (Factory, Singleton, Observer, Strategy, etc.) using appropriate search tools. Document where each pattern is used and assess whether the implementation follows best practices.
27
+
28
+ 2. **Anti-Pattern Identification**: Systematically scan for code smells and anti-patterns including:
29
+ - TODO/FIXME/HACK comments that indicate technical debt
30
+ - God objects/classes with too many responsibilities
31
+ - Circular dependencies
32
+ - Inappropriate intimacy between classes
33
+ - Feature envy and other coupling issues
34
+
35
+ 3. **Naming Convention Analysis**: Evaluate consistency in naming across:
36
+ - Variables, methods, and functions
37
+ - Classes and modules
38
+ - Files and directories
39
+ - Constants and configuration values
40
+ Identify deviations from established conventions and suggest improvements.
41
+
42
+ 4. **Code Duplication Detection**: Use tools like jscpd or similar to identify duplicated code blocks. Set appropriate thresholds (e.g., --min-tokens 50) based on the language and context. Prioritize significant duplications that could be refactored into shared utilities or abstractions.
43
+
44
+ 5. **Architectural Boundary Review**: Analyze layer violations and architectural boundaries:
45
+ - Check for proper separation of concerns
46
+ - Identify cross-layer dependencies that violate architectural principles
47
+ - Ensure modules respect their intended boundaries
48
+ - Flag any bypassing of abstraction layers
49
+
50
+ Your workflow:
51
+
52
+ 1. Start with a broad pattern search using the built-in Grep tool (or `ast-grep` for structural AST matching when needed)
53
+ 2. Compile a comprehensive list of identified patterns and their locations
54
+ 3. Search for common anti-pattern indicators (TODO, FIXME, HACK, XXX)
55
+ 4. Analyze naming conventions by sampling representative files
56
+ 5. Run duplication detection tools with appropriate parameters
57
+ 6. Review architectural structure for boundary violations
58
+
59
+ </process>
60
+
61
+ <output_format>
62
+
63
+ Deliver your findings in a structured report containing:
64
+ - **Pattern Usage Report**: List of design patterns found, their locations, and implementation quality
65
+ - **Anti-Pattern Locations**: Specific files and line numbers containing anti-patterns with severity assessment
66
+ - **Naming Consistency Analysis**: Statistics on naming convention adherence with specific examples of inconsistencies
67
+ - **Code Duplication Metrics**: Quantified duplication data with recommendations for refactoring
68
+
69
+ </output_format>
70
+
71
+ <success_criteria>
72
+ - Every identified pattern or anti-pattern includes a specific file location
73
+ - Findings are prioritized by impact and ease of resolution
74
+ - Actionable recommendations provided, not just criticism
75
+ - Project-specific conventions (from CLAUDE.md, AGENTS.md) incorporated into the analysis baseline
76
+ - Legitimate exceptions are acknowledged with justification
77
+ - Naming convention analysis covers variables, methods, classes, files, and constants
78
+ </success_criteria>
79
+
80
+ When analyzing code:
81
+ - Consider the specific language idioms and conventions
82
+ - Account for legitimate exceptions to patterns (with justification)
83
+ - Prioritize findings by impact and ease of resolution
84
+ - Provide actionable recommendations, not just criticism
85
+ - Consider the project's maturity and technical debt tolerance
86
+
87
+ If you encounter project-specific patterns or conventions (especially from CLAUDE.md, AGENTS.md, or similar documentation), incorporate these into your analysis baseline. Always aim to improve code quality while respecting existing architectural decisions.