devflow-kit 0.8.1 → 1.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 (395) hide show
  1. package/CHANGELOG.md +185 -29
  2. package/LICENSE +1 -1
  3. package/README.md +179 -308
  4. package/dist/cli.js +3 -1
  5. package/dist/commands/init.d.ts +21 -0
  6. package/dist/commands/init.js +311 -575
  7. package/dist/commands/list.d.ts +3 -0
  8. package/dist/commands/list.js +20 -0
  9. package/dist/commands/uninstall.d.ts +10 -0
  10. package/dist/commands/uninstall.js +351 -78
  11. package/dist/plugins.d.ts +46 -0
  12. package/dist/plugins.js +162 -0
  13. package/dist/utils/cli.d.ts +5 -0
  14. package/dist/utils/cli.js +14 -0
  15. package/dist/utils/installer.d.ts +41 -0
  16. package/dist/utils/installer.js +177 -0
  17. package/dist/utils/paths.d.ts +10 -0
  18. package/dist/utils/paths.js +23 -3
  19. package/dist/utils/post-install.d.ts +68 -0
  20. package/dist/utils/post-install.js +427 -0
  21. package/dist/utils/safe-delete-install.d.ts +22 -0
  22. package/dist/utils/safe-delete-install.js +156 -0
  23. package/dist/utils/safe-delete.d.ts +12 -0
  24. package/dist/utils/safe-delete.js +83 -0
  25. package/package.json +18 -8
  26. package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +7 -0
  27. package/plugins/devflow-audit-claude/README.md +46 -0
  28. package/plugins/devflow-audit-claude/agents/claude-md-auditor.md +134 -0
  29. package/plugins/devflow-audit-claude/commands/audit-claude.md +85 -0
  30. package/plugins/devflow-code-review/.claude-plugin/plugin.json +31 -0
  31. package/plugins/devflow-code-review/README.md +73 -0
  32. package/plugins/devflow-code-review/agents/git.md +272 -0
  33. package/plugins/devflow-code-review/agents/reviewer.md +119 -0
  34. package/plugins/devflow-code-review/agents/synthesizer.md +204 -0
  35. package/plugins/devflow-code-review/commands/code-review-teams.md +262 -0
  36. package/plugins/devflow-code-review/commands/code-review.md +141 -0
  37. package/plugins/devflow-code-review/skills/accessibility/SKILL.md +229 -0
  38. package/plugins/devflow-code-review/skills/accessibility/references/detection.md +171 -0
  39. package/plugins/devflow-code-review/skills/accessibility/references/patterns.md +670 -0
  40. package/plugins/devflow-code-review/skills/accessibility/references/violations.md +419 -0
  41. package/plugins/devflow-code-review/skills/agent-teams/SKILL.md +124 -0
  42. package/plugins/devflow-code-review/skills/agent-teams/references/cleanup.md +104 -0
  43. package/plugins/devflow-code-review/skills/agent-teams/references/communication.md +122 -0
  44. package/plugins/devflow-code-review/skills/agent-teams/references/team-patterns.md +217 -0
  45. package/plugins/devflow-code-review/skills/architecture-patterns/SKILL.md +153 -0
  46. package/plugins/devflow-code-review/skills/architecture-patterns/references/detection.md +337 -0
  47. package/plugins/devflow-code-review/skills/architecture-patterns/references/patterns.md +873 -0
  48. package/plugins/devflow-code-review/skills/architecture-patterns/references/violations.md +575 -0
  49. package/plugins/devflow-code-review/skills/complexity-patterns/SKILL.md +143 -0
  50. package/plugins/devflow-code-review/skills/complexity-patterns/references/detection.md +264 -0
  51. package/plugins/devflow-code-review/skills/complexity-patterns/references/patterns.md +487 -0
  52. package/plugins/devflow-code-review/skills/complexity-patterns/references/violations.md +361 -0
  53. package/plugins/devflow-code-review/skills/consistency-patterns/SKILL.md +140 -0
  54. package/plugins/devflow-code-review/skills/consistency-patterns/references/detection.md +207 -0
  55. package/plugins/devflow-code-review/skills/consistency-patterns/references/patterns.md +202 -0
  56. package/plugins/devflow-code-review/skills/consistency-patterns/references/violations.md +213 -0
  57. package/plugins/devflow-code-review/skills/database-patterns/SKILL.md +134 -0
  58. package/plugins/devflow-code-review/skills/database-patterns/references/detection.md +208 -0
  59. package/plugins/devflow-code-review/skills/database-patterns/references/patterns.md +394 -0
  60. package/plugins/devflow-code-review/skills/database-patterns/references/violations.md +332 -0
  61. package/plugins/devflow-code-review/skills/dependencies-patterns/SKILL.md +141 -0
  62. package/plugins/devflow-code-review/skills/dependencies-patterns/references/detection.md +181 -0
  63. package/plugins/devflow-code-review/skills/dependencies-patterns/references/patterns.md +225 -0
  64. package/plugins/devflow-code-review/skills/dependencies-patterns/references/violations.md +247 -0
  65. package/plugins/devflow-code-review/skills/documentation-patterns/SKILL.md +125 -0
  66. package/plugins/devflow-code-review/skills/documentation-patterns/references/detection.md +190 -0
  67. package/plugins/devflow-code-review/skills/documentation-patterns/references/patterns.md +189 -0
  68. package/plugins/devflow-code-review/skills/documentation-patterns/references/violations.md +163 -0
  69. package/plugins/devflow-code-review/skills/frontend-design/SKILL.md +254 -0
  70. package/plugins/devflow-code-review/skills/frontend-design/references/detection.md +184 -0
  71. package/plugins/devflow-code-review/skills/frontend-design/references/patterns.md +511 -0
  72. package/plugins/devflow-code-review/skills/frontend-design/references/violations.md +453 -0
  73. package/plugins/devflow-code-review/skills/performance-patterns/SKILL.md +154 -0
  74. package/plugins/devflow-code-review/skills/performance-patterns/references/detection.md +351 -0
  75. package/plugins/devflow-code-review/skills/performance-patterns/references/patterns.md +503 -0
  76. package/plugins/devflow-code-review/skills/performance-patterns/references/violations.md +354 -0
  77. package/plugins/devflow-code-review/skills/react/SKILL.md +276 -0
  78. package/plugins/devflow-code-review/skills/react/references/patterns.md +1331 -0
  79. package/plugins/devflow-code-review/skills/react/references/violations.md +565 -0
  80. package/plugins/devflow-code-review/skills/regression-patterns/SKILL.md +146 -0
  81. package/plugins/devflow-code-review/skills/regression-patterns/references/detection.md +237 -0
  82. package/plugins/devflow-code-review/skills/regression-patterns/references/patterns.md +226 -0
  83. package/plugins/devflow-code-review/skills/regression-patterns/references/violations.md +225 -0
  84. package/plugins/devflow-code-review/skills/review-methodology/SKILL.md +119 -0
  85. package/plugins/devflow-code-review/skills/review-methodology/references/patterns.md +186 -0
  86. package/plugins/devflow-code-review/skills/review-methodology/references/report-template.md +142 -0
  87. package/plugins/devflow-code-review/skills/review-methodology/references/violations.md +125 -0
  88. package/plugins/devflow-code-review/skills/security-patterns/SKILL.md +156 -0
  89. package/plugins/devflow-code-review/skills/security-patterns/references/detection.md +287 -0
  90. package/plugins/devflow-code-review/skills/security-patterns/references/patterns.md +507 -0
  91. package/plugins/devflow-code-review/skills/security-patterns/references/violations.md +237 -0
  92. package/plugins/devflow-code-review/skills/test-patterns/SKILL.md +183 -0
  93. package/plugins/devflow-code-review/skills/test-patterns/references/detection.md +149 -0
  94. package/plugins/devflow-code-review/skills/test-patterns/references/patterns.md +220 -0
  95. package/plugins/devflow-code-review/skills/test-patterns/references/report-template.md +108 -0
  96. package/plugins/devflow-code-review/skills/test-patterns/references/violations.md +221 -0
  97. package/plugins/devflow-core-skills/.claude-plugin/plugin.json +27 -0
  98. package/plugins/devflow-core-skills/README.md +50 -0
  99. package/plugins/devflow-core-skills/skills/accessibility/SKILL.md +229 -0
  100. package/plugins/devflow-core-skills/skills/accessibility/references/detection.md +171 -0
  101. package/plugins/devflow-core-skills/skills/accessibility/references/patterns.md +670 -0
  102. package/plugins/devflow-core-skills/skills/accessibility/references/violations.md +419 -0
  103. package/plugins/devflow-core-skills/skills/core-patterns/SKILL.md +162 -0
  104. package/plugins/devflow-core-skills/skills/core-patterns/references/checklist.md +276 -0
  105. package/plugins/devflow-core-skills/skills/core-patterns/references/code-smell-violations.md +144 -0
  106. package/plugins/devflow-core-skills/skills/core-patterns/references/detection.md +303 -0
  107. package/plugins/devflow-core-skills/skills/core-patterns/references/patterns.md +576 -0
  108. package/plugins/devflow-core-skills/skills/core-patterns/references/violations.md +369 -0
  109. package/plugins/devflow-core-skills/skills/docs-framework/SKILL.md +134 -0
  110. package/plugins/devflow-core-skills/skills/docs-framework/references/patterns.md +346 -0
  111. package/plugins/devflow-core-skills/skills/docs-framework/references/violations.md +221 -0
  112. package/plugins/devflow-core-skills/skills/frontend-design/SKILL.md +254 -0
  113. package/plugins/devflow-core-skills/skills/frontend-design/references/detection.md +184 -0
  114. package/plugins/devflow-core-skills/skills/frontend-design/references/patterns.md +511 -0
  115. package/plugins/devflow-core-skills/skills/frontend-design/references/violations.md +453 -0
  116. package/plugins/devflow-core-skills/skills/git-safety/SKILL.md +122 -0
  117. package/plugins/devflow-core-skills/skills/git-safety/references/detection.md +290 -0
  118. package/plugins/devflow-core-skills/skills/git-safety/references/patterns.md +289 -0
  119. package/plugins/devflow-core-skills/skills/git-safety/references/violations.md +18 -0
  120. package/plugins/devflow-core-skills/skills/git-workflow/SKILL.md +158 -0
  121. package/plugins/devflow-core-skills/skills/git-workflow/references/commit-patterns.md +115 -0
  122. package/plugins/devflow-core-skills/skills/git-workflow/references/commit-violations.md +77 -0
  123. package/plugins/devflow-core-skills/skills/git-workflow/references/pr-patterns.md +127 -0
  124. package/plugins/devflow-core-skills/skills/git-workflow/references/pr-violations.md +96 -0
  125. package/plugins/devflow-core-skills/skills/github-patterns/SKILL.md +153 -0
  126. package/plugins/devflow-core-skills/skills/github-patterns/references/patterns.md +572 -0
  127. package/plugins/devflow-core-skills/skills/github-patterns/references/violations.md +298 -0
  128. package/plugins/devflow-core-skills/skills/input-validation/SKILL.md +148 -0
  129. package/plugins/devflow-core-skills/skills/input-validation/references/detection.md +283 -0
  130. package/plugins/devflow-core-skills/skills/input-validation/references/patterns.md +361 -0
  131. package/plugins/devflow-core-skills/skills/input-validation/references/violations.md +224 -0
  132. package/plugins/devflow-core-skills/skills/react/SKILL.md +276 -0
  133. package/plugins/devflow-core-skills/skills/react/references/patterns.md +1331 -0
  134. package/plugins/devflow-core-skills/skills/react/references/violations.md +565 -0
  135. package/plugins/devflow-core-skills/skills/test-patterns/SKILL.md +183 -0
  136. package/plugins/devflow-core-skills/skills/test-patterns/references/detection.md +149 -0
  137. package/plugins/devflow-core-skills/skills/test-patterns/references/patterns.md +220 -0
  138. package/plugins/devflow-core-skills/skills/test-patterns/references/report-template.md +108 -0
  139. package/plugins/devflow-core-skills/skills/test-patterns/references/violations.md +221 -0
  140. package/plugins/devflow-core-skills/skills/typescript/SKILL.md +176 -0
  141. package/plugins/devflow-core-skills/skills/typescript/references/patterns.md +1105 -0
  142. package/plugins/devflow-core-skills/skills/typescript/references/violations.md +433 -0
  143. package/plugins/devflow-debug/.claude-plugin/plugin.json +18 -0
  144. package/plugins/devflow-debug/README.md +65 -0
  145. package/plugins/devflow-debug/agents/git.md +272 -0
  146. package/plugins/devflow-debug/commands/debug-teams.md +231 -0
  147. package/plugins/devflow-debug/commands/debug.md +160 -0
  148. package/plugins/devflow-debug/skills/agent-teams/SKILL.md +124 -0
  149. package/plugins/devflow-debug/skills/agent-teams/references/cleanup.md +104 -0
  150. package/plugins/devflow-debug/skills/agent-teams/references/communication.md +122 -0
  151. package/plugins/devflow-debug/skills/agent-teams/references/team-patterns.md +217 -0
  152. package/plugins/devflow-debug/skills/git-safety/SKILL.md +122 -0
  153. package/plugins/devflow-debug/skills/git-safety/references/detection.md +290 -0
  154. package/plugins/devflow-debug/skills/git-safety/references/patterns.md +289 -0
  155. package/plugins/devflow-debug/skills/git-safety/references/violations.md +18 -0
  156. package/plugins/devflow-implement/.claude-plugin/plugin.json +21 -0
  157. package/plugins/devflow-implement/README.md +71 -0
  158. package/plugins/devflow-implement/agents/coder.md +122 -0
  159. package/plugins/devflow-implement/agents/git.md +272 -0
  160. package/plugins/devflow-implement/agents/scrutinizer.md +80 -0
  161. package/plugins/devflow-implement/agents/shepherd.md +94 -0
  162. package/plugins/devflow-implement/agents/simplifier.md +62 -0
  163. package/plugins/devflow-implement/agents/skimmer.md +88 -0
  164. package/plugins/devflow-implement/agents/synthesizer.md +204 -0
  165. package/plugins/devflow-implement/agents/validator.md +86 -0
  166. package/plugins/devflow-implement/commands/implement-teams.md +608 -0
  167. package/plugins/devflow-implement/commands/implement.md +426 -0
  168. package/plugins/devflow-implement/skills/accessibility/SKILL.md +229 -0
  169. package/plugins/devflow-implement/skills/accessibility/references/detection.md +171 -0
  170. package/plugins/devflow-implement/skills/accessibility/references/patterns.md +670 -0
  171. package/plugins/devflow-implement/skills/accessibility/references/violations.md +419 -0
  172. package/plugins/devflow-implement/skills/agent-teams/SKILL.md +124 -0
  173. package/plugins/devflow-implement/skills/agent-teams/references/cleanup.md +104 -0
  174. package/plugins/devflow-implement/skills/agent-teams/references/communication.md +122 -0
  175. package/plugins/devflow-implement/skills/agent-teams/references/team-patterns.md +217 -0
  176. package/plugins/devflow-implement/skills/frontend-design/SKILL.md +254 -0
  177. package/plugins/devflow-implement/skills/frontend-design/references/detection.md +184 -0
  178. package/plugins/devflow-implement/skills/frontend-design/references/patterns.md +511 -0
  179. package/plugins/devflow-implement/skills/frontend-design/references/violations.md +453 -0
  180. package/plugins/devflow-implement/skills/implementation-patterns/SKILL.md +162 -0
  181. package/plugins/devflow-implement/skills/implementation-patterns/references/patterns.md +1063 -0
  182. package/plugins/devflow-implement/skills/implementation-patterns/references/violations.md +483 -0
  183. package/plugins/devflow-implement/skills/self-review/SKILL.md +149 -0
  184. package/plugins/devflow-implement/skills/self-review/references/patterns.md +405 -0
  185. package/plugins/devflow-implement/skills/self-review/references/report-template.md +253 -0
  186. package/plugins/devflow-implement/skills/self-review/references/violations.md +308 -0
  187. package/plugins/devflow-resolve/.claude-plugin/plugin.json +19 -0
  188. package/plugins/devflow-resolve/README.md +65 -0
  189. package/plugins/devflow-resolve/agents/git.md +272 -0
  190. package/plugins/devflow-resolve/agents/resolver.md +131 -0
  191. package/plugins/devflow-resolve/agents/simplifier.md +62 -0
  192. package/plugins/devflow-resolve/commands/resolve-teams.md +298 -0
  193. package/plugins/devflow-resolve/commands/resolve.md +237 -0
  194. package/plugins/devflow-resolve/skills/agent-teams/SKILL.md +124 -0
  195. package/plugins/devflow-resolve/skills/agent-teams/references/cleanup.md +104 -0
  196. package/plugins/devflow-resolve/skills/agent-teams/references/communication.md +122 -0
  197. package/plugins/devflow-resolve/skills/agent-teams/references/team-patterns.md +217 -0
  198. package/plugins/devflow-resolve/skills/implementation-patterns/SKILL.md +162 -0
  199. package/plugins/devflow-resolve/skills/implementation-patterns/references/patterns.md +1063 -0
  200. package/plugins/devflow-resolve/skills/implementation-patterns/references/violations.md +483 -0
  201. package/plugins/devflow-resolve/skills/security-patterns/SKILL.md +156 -0
  202. package/plugins/devflow-resolve/skills/security-patterns/references/detection.md +287 -0
  203. package/plugins/devflow-resolve/skills/security-patterns/references/patterns.md +507 -0
  204. package/plugins/devflow-resolve/skills/security-patterns/references/violations.md +237 -0
  205. package/plugins/devflow-self-review/.claude-plugin/plugin.json +7 -0
  206. package/plugins/devflow-self-review/README.md +38 -0
  207. package/plugins/devflow-self-review/agents/scrutinizer.md +80 -0
  208. package/plugins/devflow-self-review/agents/simplifier.md +62 -0
  209. package/plugins/devflow-self-review/agents/validator.md +86 -0
  210. package/plugins/devflow-self-review/commands/self-review.md +126 -0
  211. package/plugins/devflow-self-review/skills/core-patterns/SKILL.md +162 -0
  212. package/plugins/devflow-self-review/skills/core-patterns/references/checklist.md +276 -0
  213. package/plugins/devflow-self-review/skills/core-patterns/references/code-smell-violations.md +144 -0
  214. package/plugins/devflow-self-review/skills/core-patterns/references/detection.md +303 -0
  215. package/plugins/devflow-self-review/skills/core-patterns/references/patterns.md +576 -0
  216. package/plugins/devflow-self-review/skills/core-patterns/references/violations.md +369 -0
  217. package/plugins/devflow-self-review/skills/self-review/SKILL.md +149 -0
  218. package/plugins/devflow-self-review/skills/self-review/references/patterns.md +405 -0
  219. package/plugins/devflow-self-review/skills/self-review/references/report-template.md +253 -0
  220. package/plugins/devflow-self-review/skills/self-review/references/violations.md +308 -0
  221. package/plugins/devflow-specify/.claude-plugin/plugin.json +15 -0
  222. package/plugins/devflow-specify/README.md +46 -0
  223. package/plugins/devflow-specify/agents/skimmer.md +88 -0
  224. package/plugins/devflow-specify/agents/synthesizer.md +204 -0
  225. package/plugins/devflow-specify/commands/specify-teams.md +314 -0
  226. package/plugins/devflow-specify/commands/specify.md +179 -0
  227. package/plugins/devflow-specify/skills/agent-teams/SKILL.md +124 -0
  228. package/plugins/devflow-specify/skills/agent-teams/references/cleanup.md +104 -0
  229. package/plugins/devflow-specify/skills/agent-teams/references/communication.md +122 -0
  230. package/plugins/devflow-specify/skills/agent-teams/references/team-patterns.md +217 -0
  231. package/scripts/hooks/background-memory-update.sh +167 -0
  232. package/scripts/hooks/pre-compact-memory.sh +81 -0
  233. package/scripts/hooks/session-start-memory.sh +84 -0
  234. package/scripts/hooks/stop-update-memory.sh +81 -0
  235. package/shared/agents/coder.md +122 -0
  236. package/shared/agents/git.md +272 -0
  237. package/shared/agents/resolver.md +131 -0
  238. package/shared/agents/reviewer.md +119 -0
  239. package/shared/agents/scrutinizer.md +80 -0
  240. package/shared/agents/shepherd.md +94 -0
  241. package/shared/agents/simplifier.md +62 -0
  242. package/shared/agents/skimmer.md +88 -0
  243. package/shared/agents/synthesizer.md +204 -0
  244. package/shared/agents/validator.md +86 -0
  245. package/shared/skills/accessibility/SKILL.md +229 -0
  246. package/shared/skills/accessibility/references/detection.md +171 -0
  247. package/shared/skills/accessibility/references/patterns.md +670 -0
  248. package/shared/skills/accessibility/references/violations.md +419 -0
  249. package/shared/skills/agent-teams/SKILL.md +124 -0
  250. package/shared/skills/agent-teams/references/cleanup.md +104 -0
  251. package/shared/skills/agent-teams/references/communication.md +122 -0
  252. package/shared/skills/agent-teams/references/team-patterns.md +217 -0
  253. package/shared/skills/architecture-patterns/SKILL.md +153 -0
  254. package/shared/skills/architecture-patterns/references/detection.md +337 -0
  255. package/shared/skills/architecture-patterns/references/patterns.md +873 -0
  256. package/shared/skills/architecture-patterns/references/violations.md +575 -0
  257. package/shared/skills/complexity-patterns/SKILL.md +143 -0
  258. package/shared/skills/complexity-patterns/references/detection.md +264 -0
  259. package/shared/skills/complexity-patterns/references/patterns.md +487 -0
  260. package/shared/skills/complexity-patterns/references/violations.md +361 -0
  261. package/shared/skills/consistency-patterns/SKILL.md +140 -0
  262. package/shared/skills/consistency-patterns/references/detection.md +207 -0
  263. package/shared/skills/consistency-patterns/references/patterns.md +202 -0
  264. package/shared/skills/consistency-patterns/references/violations.md +213 -0
  265. package/shared/skills/core-patterns/SKILL.md +162 -0
  266. package/shared/skills/core-patterns/references/checklist.md +276 -0
  267. package/shared/skills/core-patterns/references/code-smell-violations.md +144 -0
  268. package/shared/skills/core-patterns/references/detection.md +303 -0
  269. package/shared/skills/core-patterns/references/patterns.md +576 -0
  270. package/shared/skills/core-patterns/references/violations.md +369 -0
  271. package/shared/skills/database-patterns/SKILL.md +134 -0
  272. package/shared/skills/database-patterns/references/detection.md +208 -0
  273. package/shared/skills/database-patterns/references/patterns.md +394 -0
  274. package/shared/skills/database-patterns/references/violations.md +332 -0
  275. package/shared/skills/dependencies-patterns/SKILL.md +141 -0
  276. package/shared/skills/dependencies-patterns/references/detection.md +181 -0
  277. package/shared/skills/dependencies-patterns/references/patterns.md +225 -0
  278. package/shared/skills/dependencies-patterns/references/violations.md +247 -0
  279. package/shared/skills/docs-framework/SKILL.md +134 -0
  280. package/shared/skills/docs-framework/references/patterns.md +346 -0
  281. package/shared/skills/docs-framework/references/violations.md +221 -0
  282. package/shared/skills/documentation-patterns/SKILL.md +125 -0
  283. package/shared/skills/documentation-patterns/references/detection.md +190 -0
  284. package/shared/skills/documentation-patterns/references/patterns.md +189 -0
  285. package/shared/skills/documentation-patterns/references/violations.md +163 -0
  286. package/shared/skills/frontend-design/SKILL.md +254 -0
  287. package/shared/skills/frontend-design/references/detection.md +184 -0
  288. package/shared/skills/frontend-design/references/patterns.md +511 -0
  289. package/shared/skills/frontend-design/references/violations.md +453 -0
  290. package/shared/skills/git-safety/SKILL.md +122 -0
  291. package/shared/skills/git-safety/references/detection.md +290 -0
  292. package/shared/skills/git-safety/references/patterns.md +289 -0
  293. package/shared/skills/git-safety/references/violations.md +18 -0
  294. package/shared/skills/git-workflow/SKILL.md +158 -0
  295. package/shared/skills/git-workflow/references/commit-patterns.md +115 -0
  296. package/shared/skills/git-workflow/references/commit-violations.md +77 -0
  297. package/shared/skills/git-workflow/references/pr-patterns.md +127 -0
  298. package/shared/skills/git-workflow/references/pr-violations.md +96 -0
  299. package/shared/skills/github-patterns/SKILL.md +153 -0
  300. package/shared/skills/github-patterns/references/patterns.md +572 -0
  301. package/shared/skills/github-patterns/references/violations.md +298 -0
  302. package/shared/skills/implementation-patterns/SKILL.md +162 -0
  303. package/shared/skills/implementation-patterns/references/patterns.md +1063 -0
  304. package/shared/skills/implementation-patterns/references/violations.md +483 -0
  305. package/shared/skills/input-validation/SKILL.md +148 -0
  306. package/shared/skills/input-validation/references/detection.md +283 -0
  307. package/shared/skills/input-validation/references/patterns.md +361 -0
  308. package/shared/skills/input-validation/references/violations.md +224 -0
  309. package/shared/skills/performance-patterns/SKILL.md +154 -0
  310. package/shared/skills/performance-patterns/references/detection.md +351 -0
  311. package/shared/skills/performance-patterns/references/patterns.md +503 -0
  312. package/shared/skills/performance-patterns/references/violations.md +354 -0
  313. package/shared/skills/react/SKILL.md +276 -0
  314. package/shared/skills/react/references/patterns.md +1331 -0
  315. package/shared/skills/react/references/violations.md +565 -0
  316. package/shared/skills/regression-patterns/SKILL.md +146 -0
  317. package/shared/skills/regression-patterns/references/detection.md +237 -0
  318. package/shared/skills/regression-patterns/references/patterns.md +226 -0
  319. package/shared/skills/regression-patterns/references/violations.md +225 -0
  320. package/shared/skills/review-methodology/SKILL.md +119 -0
  321. package/shared/skills/review-methodology/references/patterns.md +186 -0
  322. package/shared/skills/review-methodology/references/report-template.md +142 -0
  323. package/shared/skills/review-methodology/references/violations.md +125 -0
  324. package/shared/skills/security-patterns/SKILL.md +156 -0
  325. package/shared/skills/security-patterns/references/detection.md +287 -0
  326. package/shared/skills/security-patterns/references/patterns.md +507 -0
  327. package/shared/skills/security-patterns/references/violations.md +237 -0
  328. package/shared/skills/self-review/SKILL.md +149 -0
  329. package/shared/skills/self-review/references/patterns.md +405 -0
  330. package/shared/skills/self-review/references/report-template.md +253 -0
  331. package/shared/skills/self-review/references/violations.md +308 -0
  332. package/shared/skills/test-patterns/SKILL.md +183 -0
  333. package/shared/skills/test-patterns/references/detection.md +149 -0
  334. package/shared/skills/test-patterns/references/patterns.md +220 -0
  335. package/shared/skills/test-patterns/references/report-template.md +108 -0
  336. package/shared/skills/test-patterns/references/violations.md +221 -0
  337. package/shared/skills/typescript/SKILL.md +176 -0
  338. package/shared/skills/typescript/references/patterns.md +1105 -0
  339. package/shared/skills/typescript/references/violations.md +433 -0
  340. package/src/templates/claudeignore.template +188 -0
  341. package/src/templates/managed-settings.json +146 -0
  342. package/src/templates/settings.json +59 -0
  343. package/dist/cli.d.ts.map +0 -1
  344. package/dist/cli.js.map +0 -1
  345. package/dist/commands/init.d.ts.map +0 -1
  346. package/dist/commands/init.js.map +0 -1
  347. package/dist/commands/uninstall.d.ts.map +0 -1
  348. package/dist/commands/uninstall.js.map +0 -1
  349. package/dist/utils/git.d.ts.map +0 -1
  350. package/dist/utils/git.js.map +0 -1
  351. package/dist/utils/paths.d.ts.map +0 -1
  352. package/dist/utils/paths.js.map +0 -1
  353. package/src/claude/CLAUDE.md +0 -400
  354. package/src/claude/agents/devflow/audit-architecture.md +0 -132
  355. package/src/claude/agents/devflow/audit-complexity.md +0 -132
  356. package/src/claude/agents/devflow/audit-database.md +0 -132
  357. package/src/claude/agents/devflow/audit-dependencies.md +0 -132
  358. package/src/claude/agents/devflow/audit-documentation.md +0 -132
  359. package/src/claude/agents/devflow/audit-performance.md +0 -256
  360. package/src/claude/agents/devflow/audit-security.md +0 -259
  361. package/src/claude/agents/devflow/audit-tests.md +0 -132
  362. package/src/claude/agents/devflow/audit-typescript.md +0 -132
  363. package/src/claude/agents/devflow/brainstorm.md +0 -279
  364. package/src/claude/agents/devflow/catch-up.md +0 -345
  365. package/src/claude/agents/devflow/code-review.md +0 -307
  366. package/src/claude/agents/devflow/commit.md +0 -380
  367. package/src/claude/agents/devflow/debug.md +0 -476
  368. package/src/claude/agents/devflow/design.md +0 -491
  369. package/src/claude/agents/devflow/pr-comments.md +0 -285
  370. package/src/claude/agents/devflow/project-state.md +0 -419
  371. package/src/claude/agents/devflow/pull-request.md +0 -423
  372. package/src/claude/agents/devflow/release.md +0 -1137
  373. package/src/claude/agents/devflow/tech-debt.md +0 -338
  374. package/src/claude/commands/devflow/brainstorm.md +0 -68
  375. package/src/claude/commands/devflow/breakdown.md +0 -125
  376. package/src/claude/commands/devflow/catch-up.md +0 -29
  377. package/src/claude/commands/devflow/code-review.md +0 -237
  378. package/src/claude/commands/devflow/commit.md +0 -17
  379. package/src/claude/commands/devflow/debug.md +0 -56
  380. package/src/claude/commands/devflow/design.md +0 -82
  381. package/src/claude/commands/devflow/devlog.md +0 -408
  382. package/src/claude/commands/devflow/implement.md +0 -100
  383. package/src/claude/commands/devflow/plan.md +0 -223
  384. package/src/claude/commands/devflow/pull-request.md +0 -269
  385. package/src/claude/commands/devflow/release.md +0 -251
  386. package/src/claude/commands/devflow/resolve-comments.md +0 -583
  387. package/src/claude/scripts/statusline.sh +0 -47
  388. package/src/claude/settings.json +0 -6
  389. package/src/claude/skills/devflow/code-smell/SKILL.md +0 -428
  390. package/src/claude/skills/devflow/debug/SKILL.md +0 -119
  391. package/src/claude/skills/devflow/error-handling/SKILL.md +0 -597
  392. package/src/claude/skills/devflow/input-validation/SKILL.md +0 -514
  393. package/src/claude/skills/devflow/pattern-check/SKILL.md +0 -238
  394. package/src/claude/skills/devflow/research/SKILL.md +0 -138
  395. package/src/claude/skills/devflow/test-design/SKILL.md +0 -384
@@ -0,0 +1,369 @@
1
+ # Extended Violation Examples
2
+
3
+ Additional code smell patterns and violations beyond the core examples in SKILL.md.
4
+
5
+ ---
6
+
7
+ ## Result Types - Extended Violations
8
+
9
+ ### Try/Catch in Business Logic
10
+
11
+ ```typescript
12
+ // VIOLATION: Try/catch in business logic
13
+ function calculate(items: Item[]): number {
14
+ try {
15
+ return items.reduce((sum, i) => sum + i.price, 0);
16
+ } catch {
17
+ return 0; // Silent failure - BAD
18
+ }
19
+ }
20
+
21
+ // VIOLATION: Nested try/catch
22
+ async function processOrder(id: string): Promise<Order> {
23
+ try {
24
+ const order = await fetchOrder(id);
25
+ try {
26
+ await validateOrder(order);
27
+ } catch {
28
+ // Swallowed validation error
29
+ }
30
+ return order;
31
+ } catch {
32
+ return null; // Silent failure
33
+ }
34
+ }
35
+
36
+ // VIOLATION: Error type erasure
37
+ function parseConfig(raw: string): Config {
38
+ try {
39
+ return JSON.parse(raw);
40
+ } catch (e) {
41
+ throw new Error('Parse failed'); // Lost original error context
42
+ }
43
+ }
44
+ ```
45
+
46
+ ### Implicit Error States
47
+
48
+ ```typescript
49
+ // VIOLATION: Using null/undefined for errors
50
+ function findUser(id: string): User | null {
51
+ // Caller can't distinguish "not found" from "error occurred"
52
+ return null;
53
+ }
54
+
55
+ // VIOLATION: Using sentinel values
56
+ function calculateDiscount(userId: string): number {
57
+ // Returns -1 for errors - magic value
58
+ if (!userId) return -1;
59
+ return computeDiscount(userId);
60
+ }
61
+
62
+ // VIOLATION: Throwing in async without Result
63
+ async function fetchData(url: string): Promise<Data> {
64
+ const response = await fetch(url);
65
+ if (!response.ok) {
66
+ throw new Error('Fetch failed'); // Should return Result
67
+ }
68
+ return response.json();
69
+ }
70
+ ```
71
+
72
+ ---
73
+
74
+ ## Dependency Injection - Extended Violations
75
+
76
+ ### Hidden Dependencies
77
+
78
+ ```typescript
79
+ // VIOLATION: Hidden dependencies via imports
80
+ import { config } from './config'; // Global config
81
+ import { analytics } from './analytics'; // Global analytics
82
+
83
+ class UserService {
84
+ createUser(data: UserData) {
85
+ // Uses global config - can't test with different config
86
+ if (config.features.requireEmailVerification) {
87
+ // ...
88
+ }
89
+ // Uses global analytics - can't mock in tests
90
+ analytics.track('user_created', data);
91
+ }
92
+ }
93
+
94
+ // VIOLATION: Static method dependencies
95
+ class OrderService {
96
+ processOrder(order: Order) {
97
+ // Can't mock static methods
98
+ const tax = TaxCalculator.calculate(order.total);
99
+ const shipping = ShippingService.getRate(order.address);
100
+ }
101
+ }
102
+
103
+ // VIOLATION: Service locator anti-pattern
104
+ class PaymentService {
105
+ process(payment: Payment) {
106
+ // Runtime dependency resolution - untestable
107
+ const gateway = ServiceLocator.resolve<PaymentGateway>('paymentGateway');
108
+ return gateway.charge(payment);
109
+ }
110
+ }
111
+ ```
112
+
113
+ ### Partial Injection
114
+
115
+ ```typescript
116
+ // VIOLATION: Some dependencies injected, others not
117
+ class ReportService {
118
+ constructor(private db: Database) {} // Injected
119
+
120
+ generate(reportId: string) {
121
+ const data = this.db.query(reportId);
122
+ // But logger is global
123
+ logger.info('Report generated'); // BAD
124
+ // And config is imported
125
+ if (config.features.pdfExport) { // BAD
126
+ // ...
127
+ }
128
+ }
129
+ }
130
+ ```
131
+
132
+ ---
133
+
134
+ ## Immutability - Extended Violations
135
+
136
+ ### Array Mutations
137
+
138
+ ```typescript
139
+ // VIOLATION: In-place array modifications
140
+ function processItems(items: Item[]): Item[] {
141
+ items.push({ id: 'new' }); // BAD - mutates input
142
+ items.splice(0, 1); // BAD - mutates input
143
+ items.reverse(); // BAD - mutates in place
144
+ items.fill({ id: 'default' }); // BAD - mutates in place
145
+ return items;
146
+ }
147
+
148
+ // VIOLATION: Sorting without copy
149
+ function getSortedUsers(users: User[]): User[] {
150
+ return users.sort((a, b) => a.name.localeCompare(b.name)); // Mutates original!
151
+ }
152
+
153
+ // VIOLATION: Using forEach for transformation
154
+ function transformItems(items: Item[]): Item[] {
155
+ items.forEach(item => {
156
+ item.processed = true; // BAD - mutation
157
+ });
158
+ return items;
159
+ }
160
+ ```
161
+
162
+ ### Object Mutations
163
+
164
+ ```typescript
165
+ // VIOLATION: Nested object mutation
166
+ function updateAddress(user: User, city: string): User {
167
+ user.address.city = city; // BAD - nested mutation
168
+ return user;
169
+ }
170
+
171
+ // VIOLATION: Object.assign mutating first argument
172
+ function mergeConfig(base: Config, overrides: Partial<Config>): Config {
173
+ return Object.assign(base, overrides); // BAD - mutates base
174
+ }
175
+
176
+ // VIOLATION: Deleting properties
177
+ function removeField(obj: Record<string, unknown>, field: string) {
178
+ delete obj[field]; // BAD - mutation
179
+ return obj;
180
+ }
181
+ ```
182
+
183
+ ---
184
+
185
+ ## Pure Functions - Extended Violations
186
+
187
+ ### Side Effect Patterns
188
+
189
+ ```typescript
190
+ // VIOLATION: Accessing global state
191
+ let counter = 0;
192
+ function getNextId(): string {
193
+ return `id-${counter++}`; // BAD - global state modification
194
+ }
195
+
196
+ // VIOLATION: Date/time dependency
197
+ function isExpired(expiry: Date): boolean {
198
+ return new Date() > expiry; // BAD - depends on current time
199
+ }
200
+
201
+ // VIOLATION: Random values
202
+ function generateToken(): string {
203
+ return Math.random().toString(36); // BAD - non-deterministic
204
+ }
205
+
206
+ // VIOLATION: Environment access
207
+ function getApiUrl(): string {
208
+ return process.env.API_URL || 'http://localhost'; // BAD - env dependency
209
+ }
210
+ ```
211
+
212
+ ### Hidden I/O
213
+
214
+ ```typescript
215
+ // VIOLATION: Caching with side effects
216
+ const cache = new Map();
217
+ function expensiveCalculation(input: string): number {
218
+ if (cache.has(input)) return cache.get(input); // BAD - reads global state
219
+ const result = compute(input);
220
+ cache.set(input, result); // BAD - writes global state
221
+ return result;
222
+ }
223
+
224
+ // VIOLATION: Lazy initialization
225
+ let initialized = false;
226
+ function ensureInitialized(): void {
227
+ if (!initialized) {
228
+ performSetup(); // BAD - side effect
229
+ initialized = true; // BAD - global state
230
+ }
231
+ }
232
+ ```
233
+
234
+ ---
235
+
236
+ ## Type Safety - Extended Violations
237
+
238
+ ### Type Assertions Abuse
239
+
240
+ ```typescript
241
+ // VIOLATION: Unsafe type assertion
242
+ const user = data as User; // No runtime check
243
+
244
+ // VIOLATION: Non-null assertion
245
+ const name = user!.profile!.name!; // Assumes non-null
246
+
247
+ // VIOLATION: Any escape hatch
248
+ function process(data: unknown) {
249
+ return (data as any).property.nested; // BAD
250
+ }
251
+
252
+ // VIOLATION: Type assertion to bypass checks
253
+ const items: Item[] = response.data as Item[]; // No validation
254
+ ```
255
+
256
+ ### Incomplete Discrimination
257
+
258
+ ```typescript
259
+ // VIOLATION: Default case hiding missing patterns
260
+ function handleEvent(event: Event): void {
261
+ switch (event.type) {
262
+ case 'click':
263
+ handleClick(event);
264
+ break;
265
+ default:
266
+ // Silently ignores new event types
267
+ break;
268
+ }
269
+ }
270
+
271
+ // VIOLATION: Using if/else instead of exhaustive switch
272
+ function getLabel(status: Status): string {
273
+ if (status === 'pending') return 'Waiting';
274
+ if (status === 'active') return 'Running';
275
+ return 'Unknown'; // BAD - misses new status types
276
+ }
277
+ ```
278
+
279
+ ---
280
+
281
+ ## Resource Cleanup - Extended Violations
282
+
283
+ ### Connection Leaks
284
+
285
+ ```typescript
286
+ // VIOLATION: Connection not released on error
287
+ async function queryDatabase(sql: string) {
288
+ const conn = await pool.getConnection();
289
+ const result = await conn.query(sql); // If this throws, connection leaks
290
+ conn.release();
291
+ return result;
292
+ }
293
+
294
+ // VIOLATION: Stream not closed
295
+ function readFile(path: string) {
296
+ const stream = fs.createReadStream(path);
297
+ stream.on('data', chunk => process(chunk));
298
+ // No close handler - stream never closed on error
299
+ }
300
+
301
+ // VIOLATION: Subscription not unsubscribed
302
+ function setupListener(emitter: EventEmitter) {
303
+ emitter.on('event', handler);
304
+ // No cleanup - memory leak
305
+ }
306
+ ```
307
+
308
+ ### Timer Leaks
309
+
310
+ ```typescript
311
+ // VIOLATION: Interval not cleared
312
+ function startPolling() {
313
+ setInterval(() => {
314
+ fetchData();
315
+ }, 1000);
316
+ // No way to stop polling
317
+ }
318
+
319
+ // VIOLATION: Timeout not cleared on early exit
320
+ async function withTimeout(promise: Promise<unknown>, ms: number) {
321
+ const timeout = setTimeout(() => { throw new Error('Timeout'); }, ms);
322
+ const result = await promise; // If this resolves, timeout still pending
323
+ return result;
324
+ }
325
+ ```
326
+
327
+ ---
328
+
329
+ ## API Consistency - Extended Violations
330
+
331
+ ### Mixed Error Handling
332
+
333
+ ```typescript
334
+ // VIOLATION: Mixed error handling in same module
335
+ class UserRepository {
336
+ // Returns null for not found
337
+ findById(id: string): User | null { ... }
338
+
339
+ // Throws for not found
340
+ getById(id: string): User {
341
+ const user = this.findById(id);
342
+ if (!user) throw new NotFoundError(); // Inconsistent!
343
+ return user;
344
+ }
345
+
346
+ // Returns Result
347
+ findByEmail(email: string): Result<User, Error> { ... } // Third pattern!
348
+ }
349
+ ```
350
+
351
+ ### Mixed Async Patterns
352
+
353
+ ```typescript
354
+ // VIOLATION: Mixing callbacks and promises
355
+ function fetchUser(id: string, callback?: (err: Error, user: User) => void): Promise<User> {
356
+ const promise = api.get(`/users/${id}`);
357
+ if (callback) {
358
+ promise.then(user => callback(null, user)).catch(err => callback(err, null));
359
+ }
360
+ return promise;
361
+ }
362
+
363
+ // VIOLATION: Fire-and-forget async
364
+ async function processOrder(order: Order) {
365
+ saveOrder(order); // Missing await - fire and forget
366
+ await sendEmail(order.email); // This one awaits
367
+ logAnalytics(order); // Missing await again
368
+ }
369
+ ```
@@ -0,0 +1,134 @@
1
+ ---
2
+ name: database-patterns
3
+ description: Database analysis patterns for code review. Detects missing indexes, slow queries, unsafe migrations, schema design issues, and connection pool misuse. Loaded by Reviewer agent when focus=database.
4
+ user-invocable: false
5
+ allowed-tools: Read, Grep, Glob
6
+ ---
7
+
8
+ # Database Patterns
9
+
10
+ Domain expertise for database design and optimization. Use alongside `review-methodology` for complete database reviews.
11
+
12
+ ## Iron Law
13
+
14
+ > **EVERY QUERY MUST HAVE AN EXECUTION PLAN**
15
+ >
16
+ > Never deploy a query without understanding its execution plan. Every WHERE clause needs
17
+ > an index analysis. Every JOIN needs cardinality consideration. "It works in dev" is not
18
+ > validation. Production data volumes will expose every missing index and inefficient join.
19
+
20
+ ## Database Categories
21
+
22
+ ### 1. Schema Design Issues
23
+
24
+ | Issue | Problem | Solution |
25
+ |-------|---------|----------|
26
+ | Missing Foreign Keys | No referential integrity, orphaned records | Add FK with ON DELETE action |
27
+ | Denormalization | Unnecessary duplication, update anomalies | Normalize unless performance requires |
28
+ | Poor Data Types | VARCHAR for everything, lost precision | Use appropriate types (DECIMAL, BOOLEAN, TIMESTAMP) |
29
+ | Missing Constraints | No data validation at DB level | Add NOT NULL, CHECK, UNIQUE constraints |
30
+
31
+ **Example - Missing Constraints:**
32
+ ```sql
33
+ -- VIOLATION
34
+ CREATE TABLE products (id SERIAL, name VARCHAR(100), price DECIMAL);
35
+
36
+ -- CORRECT
37
+ CREATE TABLE products (
38
+ id SERIAL PRIMARY KEY,
39
+ name VARCHAR(100) NOT NULL CHECK (LENGTH(TRIM(name)) > 0),
40
+ price DECIMAL(10, 2) NOT NULL CHECK (price >= 0)
41
+ );
42
+ ```
43
+
44
+ ### 2. Query Optimization Issues
45
+
46
+ | Issue | Problem | Solution |
47
+ |-------|---------|----------|
48
+ | N+1 Queries | Query per iteration, O(n) round trips | JOIN or batch with IN/ANY |
49
+ | Missing Indexes | Full table scans on large tables | Add indexes for WHERE/JOIN columns |
50
+ | Full Table Scans | Functions prevent index use | Functional indexes or query rewrite |
51
+ | Inefficient JOINs | Joining before filtering | Filter early, select specific columns |
52
+
53
+ **Example - N+1 Query:**
54
+ ```typescript
55
+ // VIOLATION: 101 queries for 100 users
56
+ for (const user of users) {
57
+ user.orders = await db.query('SELECT * FROM orders WHERE user_id = ?', [user.id]);
58
+ }
59
+
60
+ // CORRECT: 2 queries total
61
+ const orders = await db.query('SELECT * FROM orders WHERE user_id = ANY($1)', [userIds]);
62
+ ```
63
+
64
+ ### 3. Migration Issues
65
+
66
+ | Issue | Problem | Solution |
67
+ |-------|---------|----------|
68
+ | Breaking Changes | Data loss, no recovery path | Phased approach with backups |
69
+ | Data Loss Risk | Type changes truncate data | Validate before changing types |
70
+ | Missing Rollback | Cannot undo migration | Always implement down() method |
71
+ | Performance Impact | Table locks during migration | Add columns nullable, backfill in batches |
72
+
73
+ **Example - Safe Column Addition:**
74
+ ```sql
75
+ -- Step 1: Add nullable (instant)
76
+ ALTER TABLE users ADD COLUMN phone VARCHAR(20);
77
+ -- Step 2: Backfill in batches
78
+ UPDATE users SET phone = 'UNKNOWN' WHERE phone IS NULL AND id BETWEEN 1 AND 10000;
79
+ -- Step 3: Add constraint after backfill
80
+ ALTER TABLE users ALTER COLUMN phone SET NOT NULL;
81
+ ```
82
+
83
+ ### 4. Security Issues
84
+
85
+ | Issue | Problem | Solution |
86
+ |-------|---------|----------|
87
+ | SQL Injection | String interpolation in queries | Parameterized queries only |
88
+ | Excessive Privileges | App has GRANT ALL | Minimum required privileges |
89
+
90
+ **Example - SQL Injection:**
91
+ ```typescript
92
+ // VULNERABLE
93
+ const query = `SELECT * FROM users WHERE email = '${email}'`;
94
+
95
+ // SECURE
96
+ const query = 'SELECT * FROM users WHERE email = $1';
97
+ await db.query(query, [email]);
98
+ ```
99
+
100
+ ---
101
+
102
+ ## Extended References
103
+
104
+ For detailed examples and detection commands, see:
105
+
106
+ - **[references/violations.md](references/violations.md)** - Extended violation examples with explanations
107
+ - **[references/patterns.md](references/patterns.md)** - Correct patterns and migration strategies
108
+ - **[references/detection.md](references/detection.md)** - Automated detection commands
109
+
110
+ ---
111
+
112
+ ## Severity Guidelines
113
+
114
+ | Severity | Criteria | Examples |
115
+ |----------|----------|----------|
116
+ | **CRITICAL** | Data integrity or severe performance | SQL injection, N+1 unbounded, data loss migrations, missing FK on critical relations |
117
+ | **HIGH** | Significant database issues | Inefficient JOINs, missing constraints, migrations without rollback |
118
+ | **MEDIUM** | Moderate concerns | Minor denormalization, missing non-critical indexes |
119
+ | **LOW** | Minor improvements | Naming conventions, index organization |
120
+
121
+ ---
122
+
123
+ ## Database Checklist
124
+
125
+ Before approving database changes:
126
+
127
+ - [ ] All queries have appropriate indexes
128
+ - [ ] N+1 patterns identified and resolved
129
+ - [ ] Migrations have rollback scripts
130
+ - [ ] Data types are appropriate
131
+ - [ ] Constraints enforce business rules
132
+ - [ ] Foreign keys maintain referential integrity
133
+ - [ ] No SQL injection vulnerabilities
134
+ - [ ] Performance tested with production-like data volume
@@ -0,0 +1,208 @@
1
+ # Database Issue Detection
2
+
3
+ Commands and patterns for detecting database issues in code reviews.
4
+
5
+ ## Automated Detection Commands
6
+
7
+ ### SQL Injection Detection
8
+
9
+ ```bash
10
+ # String interpolation in queries (JavaScript/TypeScript)
11
+ grep -rn "query.*\`.*\${" --include="*.ts" --include="*.js"
12
+ grep -rn "query.*\(\`.*\${" --include="*.ts" --include="*.js"
13
+ grep -rn 'query.*".*\+' --include="*.ts" --include="*.js"
14
+ grep -rn "query.*'.*\+" --include="*.ts" --include="*.js"
15
+
16
+ # String formatting in queries (Python)
17
+ grep -rn 'execute.*f"' --include="*.py"
18
+ grep -rn 'execute.*%' --include="*.py"
19
+ grep -rn "execute.*\.format" --include="*.py"
20
+
21
+ # Raw SQL with variables (any language)
22
+ grep -rn "WHERE.*=.*'" --include="*.ts" --include="*.py" --include="*.go" | grep -v '\$'
23
+ ```
24
+
25
+ ### N+1 Query Detection
26
+
27
+ ```bash
28
+ # Queries inside loops (TypeScript/JavaScript)
29
+ grep -rn -A 5 "for.*of\|forEach\|\.map(" --include="*.ts" | grep -B 2 "await.*query\|await.*find"
30
+
31
+ # ORM patterns that suggest N+1
32
+ grep -rn "\.find.*{.*where" --include="*.ts" | grep -B 5 "for\|forEach\|map"
33
+
34
+ # Sequential awaits that might be batched
35
+ grep -rn "await.*await.*await" --include="*.ts"
36
+ ```
37
+
38
+ ### SELECT * Detection
39
+
40
+ ```bash
41
+ # Direct SELECT * usage
42
+ grep -rn "SELECT \*" --include="*.ts" --include="*.js" --include="*.sql"
43
+ grep -rn 'SELECT \*' --include="*.py"
44
+
45
+ # ORM patterns that select all columns
46
+ grep -rn "\.find\(\)\|\.findAll\(\)\|\.all\(\)" --include="*.ts"
47
+ ```
48
+
49
+ ### Missing Index Indicators
50
+
51
+ ```bash
52
+ # Queries with multiple WHERE conditions (potential composite index)
53
+ grep -rn "WHERE.*AND.*AND" --include="*.ts" --include="*.sql"
54
+
55
+ # Queries with ORDER BY (potential index needed)
56
+ grep -rn "ORDER BY" --include="*.ts" --include="*.sql"
57
+
58
+ # Queries with LIKE patterns
59
+ grep -rn "LIKE.*%" --include="*.ts" --include="*.sql"
60
+ ```
61
+
62
+ ### Migration Risk Detection
63
+
64
+ ```bash
65
+ # Dangerous migration operations
66
+ find . -path "*/migrations/*" -o -path "*/migrate/*" | xargs grep -l "DROP\|DELETE\|TRUNCATE\|ALTER.*DROP"
67
+
68
+ # Migrations without down method
69
+ find . -path "*/migrations/*" -name "*.ts" | xargs grep -L "down"
70
+
71
+ # NOT NULL additions (potential lock)
72
+ find . -path "*/migrations/*" | xargs grep -n "NOT NULL"
73
+
74
+ # Type changes
75
+ find . -path "*/migrations/*" | xargs grep -n "ALTER.*TYPE\|MODIFY.*COLUMN"
76
+ ```
77
+
78
+ ### Security Pattern Detection
79
+
80
+ ```bash
81
+ # Hardcoded credentials
82
+ grep -rn "password.*=\|PASSWORD.*=\|secret.*=\|SECRET.*=" --include="*.ts" --include="*.env*"
83
+
84
+ # Connection strings with credentials
85
+ grep -rn "postgresql://.*:.*@\|mysql://.*:.*@\|mongodb://.*:.*@" --include="*.ts" --include="*.js"
86
+
87
+ # Excessive privilege grants
88
+ grep -rn "GRANT ALL\|SUPERUSER\|WITH GRANT OPTION" --include="*.sql" --include="*.ts"
89
+ ```
90
+
91
+ ---
92
+
93
+ ## Manual Review Patterns
94
+
95
+ ### Schema Review Checklist
96
+
97
+ ```sql
98
+ -- Check for missing foreign keys
99
+ SELECT
100
+ tc.table_name,
101
+ kcu.column_name
102
+ FROM information_schema.table_constraints tc
103
+ JOIN information_schema.key_column_usage kcu
104
+ ON tc.constraint_name = kcu.constraint_name
105
+ WHERE tc.constraint_type = 'PRIMARY KEY'
106
+ AND kcu.column_name LIKE '%_id'
107
+ AND NOT EXISTS (
108
+ SELECT 1 FROM information_schema.referential_constraints rc
109
+ WHERE rc.constraint_name = tc.constraint_name
110
+ );
111
+
112
+ -- Check for missing NOT NULL on required fields
113
+ SELECT table_name, column_name, data_type
114
+ FROM information_schema.columns
115
+ WHERE is_nullable = 'YES'
116
+ AND column_name IN ('email', 'name', 'status', 'created_at')
117
+ ORDER BY table_name;
118
+
119
+ -- Check for VARCHAR without length limit
120
+ SELECT table_name, column_name
121
+ FROM information_schema.columns
122
+ WHERE data_type = 'character varying'
123
+ AND character_maximum_length IS NULL;
124
+ ```
125
+
126
+ ### Index Review Checklist
127
+
128
+ ```sql
129
+ -- Tables without primary key
130
+ SELECT table_name
131
+ FROM information_schema.tables t
132
+ WHERE table_type = 'BASE TABLE'
133
+ AND NOT EXISTS (
134
+ SELECT 1 FROM information_schema.table_constraints tc
135
+ WHERE tc.table_name = t.table_name
136
+ AND tc.constraint_type = 'PRIMARY KEY'
137
+ );
138
+
139
+ -- Foreign key columns without index
140
+ SELECT
141
+ tc.table_name,
142
+ kcu.column_name
143
+ FROM information_schema.table_constraints tc
144
+ JOIN information_schema.key_column_usage kcu
145
+ ON tc.constraint_name = kcu.constraint_name
146
+ WHERE tc.constraint_type = 'FOREIGN KEY'
147
+ AND NOT EXISTS (
148
+ SELECT 1 FROM pg_indexes
149
+ WHERE tablename = tc.table_name
150
+ AND indexdef LIKE '%' || kcu.column_name || '%'
151
+ );
152
+
153
+ -- Unused indexes (PostgreSQL)
154
+ SELECT
155
+ schemaname,
156
+ tablename,
157
+ indexname,
158
+ idx_scan
159
+ FROM pg_stat_user_indexes
160
+ WHERE idx_scan = 0
161
+ AND indexname NOT LIKE '%pkey%'
162
+ ORDER BY pg_relation_size(indexrelid) DESC;
163
+ ```
164
+
165
+ ### Query Performance Review
166
+
167
+ ```sql
168
+ -- Check execution plan for specific query
169
+ EXPLAIN (ANALYZE, BUFFERS, FORMAT TEXT)
170
+ SELECT * FROM orders WHERE customer_id = 123;
171
+
172
+ -- Expected good plan indicators:
173
+ -- - Index Scan or Index Only Scan
174
+ -- - Low cost estimates
175
+ -- - Small row estimates matching actual
176
+
177
+ -- Red flags in execution plans:
178
+ -- - Seq Scan on large tables
179
+ -- - Nested Loop with high row counts
180
+ -- - Sort operations without index
181
+ -- - Hash Join with large tables
182
+ ```
183
+
184
+ ---
185
+
186
+ ## Code Review Triggers
187
+
188
+ When reviewing code, flag for database review if you see:
189
+
190
+ ### High Priority (Always Review)
191
+
192
+ 1. **New migration files** - Check for data loss risk, rollback strategy
193
+ 2. **Raw SQL queries** - Check for injection, parameterization
194
+ 3. **Loops with database calls** - Check for N+1 patterns
195
+ 4. **Schema changes** - Check for breaking changes, constraints
196
+
197
+ ### Medium Priority (Sample Review)
198
+
199
+ 1. **ORM model changes** - Verify schema alignment
200
+ 2. **New query methods** - Check for efficiency
201
+ 3. **Bulk operations** - Check for batching
202
+ 4. **Transaction usage** - Check for proper isolation
203
+
204
+ ### Low Priority (Spot Check)
205
+
206
+ 1. **Read-only queries** - Verify index usage
207
+ 2. **Logging of database data** - Check for sensitive data exposure
208
+ 3. **Error handling** - Check for proper connection cleanup