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,332 @@
1
+ # Database Violation Examples
2
+
3
+ Extended examples of database anti-patterns and violations.
4
+
5
+ ## Schema Design Violations
6
+
7
+ ### Missing Foreign Keys - Extended
8
+
9
+ ```sql
10
+ -- PROBLEM: No referential integrity
11
+ CREATE TABLE orders (
12
+ id SERIAL PRIMARY KEY,
13
+ customer_id INT, -- No FK constraint!
14
+ total DECIMAL
15
+ );
16
+
17
+ -- SOLUTION: Add foreign key
18
+ CREATE TABLE orders (
19
+ id SERIAL PRIMARY KEY,
20
+ customer_id INT NOT NULL REFERENCES customers(id) ON DELETE RESTRICT,
21
+ total DECIMAL
22
+ );
23
+ ```
24
+
25
+ **Why it matters:**
26
+ - Orphaned records accumulate over time
27
+ - Data integrity depends on application code (fragile)
28
+ - Cannot use cascading deletes/updates
29
+ - Database cannot optimize joins
30
+
31
+ ### Denormalization Without Justification - Extended
32
+
33
+ ```sql
34
+ -- PROBLEM: Unnecessary duplication
35
+ CREATE TABLE orders (
36
+ id SERIAL PRIMARY KEY,
37
+ customer_id INT,
38
+ customer_name VARCHAR(100), -- Duplicated!
39
+ customer_email VARCHAR(100), -- Duplicated!
40
+ customer_address TEXT -- Duplicated!
41
+ );
42
+
43
+ -- SOLUTION: Normalize unless performance requires otherwise
44
+ CREATE TABLE orders (
45
+ id SERIAL PRIMARY KEY,
46
+ customer_id INT REFERENCES customers(id)
47
+ );
48
+ -- Access customer data via JOIN
49
+ ```
50
+
51
+ **When denormalization IS justified:**
52
+ - Read-heavy workloads with measured performance issues
53
+ - Historical data that must not change when source changes
54
+ - Reporting/analytics tables (materialized views)
55
+ - Document explicitly: `-- DENORMALIZED: Performance requirement, see ticket DB-123`
56
+
57
+ ### Poor Data Type Choices - Extended
58
+
59
+ ```sql
60
+ -- PROBLEM: Inappropriate types
61
+ CREATE TABLE users (
62
+ id VARCHAR(100), -- Use UUID or SERIAL
63
+ age VARCHAR(10), -- Use INT
64
+ balance VARCHAR(50), -- Use DECIMAL
65
+ is_active VARCHAR(5), -- Use BOOLEAN
66
+ created_at VARCHAR(50) -- Use TIMESTAMP
67
+ );
68
+
69
+ -- SOLUTION: Appropriate types
70
+ CREATE TABLE users (
71
+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
72
+ age INT CHECK (age >= 0 AND age < 150),
73
+ balance DECIMAL(10, 2) DEFAULT 0,
74
+ is_active BOOLEAN DEFAULT true,
75
+ created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
76
+ );
77
+ ```
78
+
79
+ **Data type guidelines:**
80
+ | Data | Wrong | Correct |
81
+ |------|-------|---------|
82
+ | Money | FLOAT, VARCHAR | DECIMAL(precision, scale) |
83
+ | Boolean | VARCHAR, INT | BOOLEAN |
84
+ | Date/Time | VARCHAR | TIMESTAMP WITH TIME ZONE |
85
+ | IDs | VARCHAR (random) | UUID, SERIAL, BIGSERIAL |
86
+ | Email | TEXT | VARCHAR(255) with CHECK |
87
+
88
+ ### Missing Constraints - Extended
89
+
90
+ ```sql
91
+ -- PROBLEM: No data validation
92
+ CREATE TABLE products (
93
+ id SERIAL PRIMARY KEY,
94
+ name VARCHAR(100),
95
+ price DECIMAL,
96
+ quantity INT
97
+ );
98
+
99
+ -- SOLUTION: Add constraints
100
+ CREATE TABLE products (
101
+ id SERIAL PRIMARY KEY,
102
+ name VARCHAR(100) NOT NULL,
103
+ price DECIMAL(10, 2) NOT NULL CHECK (price >= 0),
104
+ quantity INT NOT NULL DEFAULT 0 CHECK (quantity >= 0),
105
+ CONSTRAINT name_not_empty CHECK (LENGTH(TRIM(name)) > 0)
106
+ );
107
+ ```
108
+
109
+ **Essential constraints:**
110
+ - `NOT NULL` on required fields
111
+ - `CHECK` constraints for business rules
112
+ - `UNIQUE` on natural keys
113
+ - `DEFAULT` values where appropriate
114
+
115
+ ---
116
+
117
+ ## Query Optimization Violations
118
+
119
+ ### N+1 Queries - Extended
120
+
121
+ ```typescript
122
+ // PROBLEM: Query per iteration (N+1)
123
+ const users = await db.query('SELECT * FROM users');
124
+ for (const user of users) {
125
+ const orders = await db.query(
126
+ 'SELECT * FROM orders WHERE user_id = ?',
127
+ [user.id]
128
+ );
129
+ user.orders = orders;
130
+ }
131
+ // If 100 users: 1 + 100 = 101 queries!
132
+
133
+ // SOLUTION 1: Single query with JOIN
134
+ const users = await db.query(`
135
+ SELECT u.*, json_agg(o.*) as orders
136
+ FROM users u
137
+ LEFT JOIN orders o ON o.user_id = u.id
138
+ GROUP BY u.id
139
+ `);
140
+
141
+ // SOLUTION 2: Two queries with IN (batch)
142
+ const users = await db.query('SELECT * FROM users');
143
+ const userIds = users.map(u => u.id);
144
+ const orders = await db.query(
145
+ 'SELECT * FROM orders WHERE user_id = ANY($1)',
146
+ [userIds]
147
+ );
148
+ // Group orders by user_id in application code
149
+ // Total: 2 queries regardless of user count
150
+ ```
151
+
152
+ ### Full Table Scans - Extended
153
+
154
+ ```sql
155
+ -- PROBLEM: Functions prevent index use
156
+ SELECT * FROM users WHERE LOWER(email) = 'john@example.com';
157
+ -- Sequential scan: O(n)
158
+
159
+ SELECT * FROM orders WHERE YEAR(created_at) = 2024;
160
+ -- Sequential scan: index on created_at cannot be used
161
+
162
+ SELECT * FROM products WHERE name LIKE '%widget%';
163
+ -- Sequential scan: leading wildcard prevents index use
164
+
165
+ -- SOLUTIONS:
166
+
167
+ -- 1. Functional index
168
+ CREATE INDEX idx_users_email_lower ON users(LOWER(email));
169
+ SELECT * FROM users WHERE LOWER(email) = 'john@example.com';
170
+ -- Now uses index
171
+
172
+ -- 2. Range query instead of function
173
+ SELECT * FROM orders
174
+ WHERE created_at >= '2024-01-01' AND created_at < '2025-01-01';
175
+ -- Uses index on created_at
176
+
177
+ -- 3. Full-text search for LIKE patterns
178
+ CREATE INDEX idx_products_name_gin ON products USING gin(to_tsvector('english', name));
179
+ SELECT * FROM products WHERE to_tsvector('english', name) @@ to_tsquery('widget');
180
+ ```
181
+
182
+ ### Inefficient JOINs - Extended
183
+
184
+ ```sql
185
+ -- PROBLEM: Joining large tables without filters
186
+ SELECT * FROM orders o
187
+ JOIN order_items oi ON oi.order_id = o.id
188
+ JOIN products p ON p.id = oi.product_id;
189
+ -- Returns millions of rows, processes entire tables
190
+
191
+ -- SOLUTION: Filter early, select specific columns
192
+ SELECT
193
+ o.id as order_id,
194
+ o.created_at,
195
+ oi.quantity,
196
+ p.name as product_name,
197
+ p.price
198
+ FROM orders o
199
+ JOIN order_items oi ON oi.order_id = o.id
200
+ JOIN products p ON p.id = oi.product_id
201
+ WHERE o.customer_id = 123
202
+ AND o.created_at > NOW() - INTERVAL '30 days';
203
+ -- Filters applied before join expands data
204
+ ```
205
+
206
+ ---
207
+
208
+ ## Migration Violations
209
+
210
+ ### Breaking Changes Without Migration Path
211
+
212
+ ```sql
213
+ -- PROBLEM: Destructive change
214
+ ALTER TABLE users DROP COLUMN legacy_field;
215
+ -- Data is lost immediately!
216
+
217
+ -- SOLUTION: Phased approach
218
+ -- Phase 1: Stop writes (deploy code that doesn't write to column)
219
+ -- Phase 2: Add deprecation notice
220
+ ALTER TABLE users ALTER COLUMN legacy_field SET DEFAULT NULL;
221
+ -- Phase 3: Wait for deployment verification
222
+ -- Phase 4: Drop column after confirming no reads/writes
223
+ ALTER TABLE users DROP COLUMN legacy_field;
224
+ ```
225
+
226
+ ### Data Loss Risk
227
+
228
+ ```sql
229
+ -- PROBLEM: Type change loses data
230
+ ALTER TABLE products ALTER COLUMN price TYPE INT;
231
+ -- Decimal values truncated: 19.99 becomes 19
232
+
233
+ -- SOLUTION: Validate first
234
+ SELECT id, price FROM products WHERE price != FLOOR(price);
235
+ -- If results exist: handle decimal values first
236
+
237
+ -- Safe alternative: create new column
238
+ ALTER TABLE products ADD COLUMN price_cents INT;
239
+ UPDATE products SET price_cents = price * 100;
240
+ -- Verify, then drop old column
241
+ ```
242
+
243
+ ### Missing Rollback Strategy
244
+
245
+ ```typescript
246
+ // PROBLEM: No way to undo
247
+ export async function up(db) {
248
+ await db.query('DROP TABLE old_users');
249
+ }
250
+
251
+ export async function down(db) {
252
+ // Can't recreate dropped table with its data!
253
+ throw new Error('Irreversible migration');
254
+ }
255
+
256
+ // SOLUTION: Always plan rollback
257
+ export async function up(db) {
258
+ await db.query('ALTER TABLE old_users RENAME TO old_users_backup');
259
+ await db.query('CREATE TABLE users_v2 AS SELECT * FROM old_users_backup');
260
+ }
261
+
262
+ export async function down(db) {
263
+ await db.query('DROP TABLE IF EXISTS users_v2');
264
+ await db.query('ALTER TABLE old_users_backup RENAME TO old_users');
265
+ }
266
+ ```
267
+
268
+ ### Performance Impact
269
+
270
+ ```sql
271
+ -- PROBLEM: Locks table for extended period
272
+ ALTER TABLE large_table ADD COLUMN new_field VARCHAR(100) NOT NULL DEFAULT 'value';
273
+ -- Rewrites entire table, holds exclusive lock
274
+
275
+ -- SOLUTION: Non-blocking approach (3 steps)
276
+ -- Step 1: Add nullable column (instant, no rewrite)
277
+ ALTER TABLE large_table ADD COLUMN new_field VARCHAR(100);
278
+
279
+ -- Step 2: Backfill in batches (no lock)
280
+ UPDATE large_table SET new_field = 'value' WHERE id BETWEEN 1 AND 10000;
281
+ UPDATE large_table SET new_field = 'value' WHERE id BETWEEN 10001 AND 20000;
282
+ -- ... continue in batches with small transactions
283
+
284
+ -- Step 3: Add constraint after backfill complete
285
+ ALTER TABLE large_table ALTER COLUMN new_field SET NOT NULL;
286
+ ```
287
+
288
+ ---
289
+
290
+ ## Security Violations
291
+
292
+ ### SQL Injection - Extended
293
+
294
+ ```typescript
295
+ // VULNERABLE: String interpolation
296
+ const query = `SELECT * FROM users WHERE email = '${email}'`;
297
+ // If email = "'; DROP TABLE users; --" -> disaster
298
+
299
+ // VULNERABLE: String concatenation
300
+ const query = 'SELECT * FROM users WHERE email = "' + email + '"';
301
+ // Same vulnerability
302
+
303
+ // SECURE: Parameterized queries
304
+ const query = 'SELECT * FROM users WHERE email = $1';
305
+ await db.query(query, [email]);
306
+
307
+ // SECURE: ORM with proper escaping
308
+ await User.findOne({ where: { email } });
309
+ ```
310
+
311
+ ### Excessive Privileges
312
+
313
+ ```sql
314
+ -- PROBLEM: App has too many privileges
315
+ GRANT ALL PRIVILEGES ON DATABASE myapp TO app_user;
316
+ -- App can DROP tables, modify schema, etc.
317
+
318
+ -- SOLUTION: Minimum required privileges (principle of least privilege)
319
+ -- Read-only operations
320
+ GRANT SELECT ON users, products, orders TO readonly_user;
321
+
322
+ -- Application user (typical CRUD)
323
+ GRANT SELECT, INSERT, UPDATE ON users TO app_user;
324
+ GRANT SELECT ON products TO app_user;
325
+ GRANT SELECT, INSERT ON orders TO app_user;
326
+ -- No DELETE unless business requirement
327
+ -- No schema modification privileges
328
+
329
+ -- Migrations user (separate, restricted use)
330
+ GRANT ALL ON SCHEMA public TO migrations_user;
331
+ -- Only used during deployments, not by running application
332
+ ```
@@ -0,0 +1,141 @@
1
+ ---
2
+ name: dependencies-patterns
3
+ description: Dependency analysis patterns for code review. Detects known CVEs, outdated packages, license incompatibilities, and unnecessary transitive dependencies. Loaded by Reviewer agent when focus=dependencies.
4
+ user-invocable: false
5
+ allowed-tools: Read, Grep, Glob
6
+ ---
7
+
8
+ # Dependencies Patterns
9
+
10
+ Domain expertise for dependency management and security analysis. Use alongside `review-methodology` for complete dependency reviews.
11
+
12
+ ## Iron Law
13
+
14
+ > **EVERY DEPENDENCY IS AN ATTACK SURFACE**
15
+ >
16
+ > Each package you add is code you didn't write but must trust. Minimize dependencies.
17
+ > Pin versions. Audit regularly. A single compromised transitive dependency can compromise
18
+ > your entire application. "It's a popular package" is not a security review.
19
+
20
+ ---
21
+
22
+ ## Dependency Categories
23
+
24
+ ### 1. Security Vulnerabilities
25
+
26
+ Known CVEs, vulnerable version ranges, malicious packages.
27
+
28
+ **Violation**: Wide version range includes vulnerable versions
29
+ ```json
30
+ { "lodash": "^4.0.0" } // Includes vulnerable 4.17.0-4.17.20
31
+ ```
32
+
33
+ **Correct**: Pin to safe version
34
+ ```json
35
+ { "lodash": "^4.17.21" } // First safe version
36
+ ```
37
+
38
+ ### 2. Version Management
39
+
40
+ Unpinned versions, missing lockfiles, dependency conflicts.
41
+
42
+ **Violation**: Unpinned allows any version
43
+ ```json
44
+ { "express": "*", "lodash": "latest" }
45
+ ```
46
+
47
+ **Correct**: Pin with lockfile
48
+ ```json
49
+ { "express": "^4.18.2" } // + committed lockfile
50
+ ```
51
+
52
+ ### 3. Dependency Health
53
+
54
+ Outdated packages, unused dependencies, unnecessary heavy packages.
55
+
56
+ **Violation**: Heavy dependency for simple task
57
+ ```json
58
+ { "moment": "^2.29.4" } // 300KB for date formatting
59
+ ```
60
+
61
+ **Correct**: Use native or lighter alternative
62
+ ```typescript
63
+ new Date().toLocaleDateString(); // Native
64
+ ```
65
+
66
+ ### 4. License Issues
67
+
68
+ Incompatible licenses (GPL in MIT project), missing licenses.
69
+
70
+ **Violation**: GPL in proprietary code
71
+ ```bash
72
+ # GPL-3.0: some-package # Requires your code to be GPL too!
73
+ ```
74
+
75
+ **Correct**: Use permissive licenses only
76
+ ```bash
77
+ npx license-checker --failOn "GPL-3.0;AGPL-3.0"
78
+ ```
79
+
80
+ ### 5. Supply Chain Risks
81
+
82
+ Deep transitive dependencies, unmaintained packages, typosquatting.
83
+
84
+ **Violation**: Typosquatted package
85
+ ```json
86
+ { "loadsh": "1.0.0" } // Typosquat of "lodash"
87
+ ```
88
+
89
+ **Correct**: Verify package authenticity
90
+ ```bash
91
+ npm view loadsh # Check downloads, repo, maintainers
92
+ ```
93
+
94
+ ---
95
+
96
+ ## Extended References
97
+
98
+ For extended examples and detection commands, see:
99
+ - `references/violations.md` - Extended violation examples by category
100
+ - `references/patterns.md` - Correct dependency management patterns
101
+ - `references/detection.md` - Detection commands and CI integration
102
+
103
+ ---
104
+
105
+ ## Severity Guidelines
106
+
107
+ | Severity | Indicators |
108
+ |----------|------------|
109
+ | **CRITICAL** | Known exploited CVEs (CISA KEV), confirmed malicious packages, typosquats |
110
+ | **HIGH** | High severity CVEs, unmaintained packages, GPL in proprietary code |
111
+ | **MEDIUM** | Medium CVEs, significantly outdated, wide version ranges, missing lockfile |
112
+ | **LOW** | Unused dependencies, lighter alternatives available, minor version behind |
113
+
114
+ ---
115
+
116
+ ## Dependency Review Checklist
117
+
118
+ Before approving dependency changes:
119
+
120
+ - [ ] No known CVEs in added packages
121
+ - [ ] Version ranges appropriate (not too wide)
122
+ - [ ] Lockfile updated and committed
123
+ - [ ] Package actively maintained
124
+ - [ ] License compatible
125
+ - [ ] Package from verified publisher
126
+ - [ ] Transitive dependencies reviewed
127
+ - [ ] Package name verified (not typosquat)
128
+ - [ ] Bundle size impact considered
129
+ - [ ] Native alternatives considered
130
+
131
+ ---
132
+
133
+ ## Common Vulnerability Sources
134
+
135
+ | Registry | URL |
136
+ |----------|-----|
137
+ | npm Advisory | https://www.npmjs.com/advisories |
138
+ | Snyk Vuln DB | https://snyk.io/vuln |
139
+ | GitHub Advisory | https://github.com/advisories |
140
+ | NVD | https://nvd.nist.gov/ |
141
+ | CISA KEV | https://www.cisa.gov/known-exploited-vulnerabilities-catalog |
@@ -0,0 +1,181 @@
1
+ # Detection Patterns
2
+
3
+ Commands and patterns for detecting dependency issues.
4
+
5
+ ---
6
+
7
+ ## Vulnerability Detection
8
+
9
+ ```bash
10
+ # npm audit (detailed)
11
+ npm audit
12
+ npm audit --json | jq '.vulnerabilities | keys'
13
+
14
+ # Yarn audit
15
+ yarn audit
16
+ yarn audit --json
17
+
18
+ # pnpm audit
19
+ pnpm audit
20
+ pnpm audit --json
21
+
22
+ # Snyk (more comprehensive)
23
+ npx snyk test
24
+ npx snyk monitor # Continuous monitoring
25
+ ```
26
+
27
+ ---
28
+
29
+ ## Outdated Package Detection
30
+
31
+ ```bash
32
+ # List outdated packages
33
+ npm outdated
34
+ npm outdated --json
35
+
36
+ # Yarn
37
+ yarn outdated
38
+
39
+ # pnpm
40
+ pnpm outdated
41
+
42
+ # Interactive update
43
+ npx npm-check -u
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Unused Dependency Detection
49
+
50
+ ```bash
51
+ # depcheck (most comprehensive)
52
+ npx depcheck
53
+ npx depcheck --json
54
+
55
+ # Alternatives
56
+ npx unimported
57
+ npx knip
58
+ ```
59
+
60
+ ---
61
+
62
+ ## Lockfile Verification
63
+
64
+ ```bash
65
+ # Check lockfile exists
66
+ [ -f package-lock.json ] && echo "npm lockfile found"
67
+ [ -f yarn.lock ] && echo "yarn lockfile found"
68
+ [ -f pnpm-lock.yaml ] && echo "pnpm lockfile found"
69
+
70
+ # Check if lockfile is committed
71
+ git ls-files package-lock.json yarn.lock pnpm-lock.yaml
72
+
73
+ # Verify lockfile integrity
74
+ npm ci --dry-run
75
+ ```
76
+
77
+ ---
78
+
79
+ ## Version Range Detection
80
+
81
+ ```bash
82
+ # Find problematic version ranges
83
+ grep -E '"[*~^]|": "latest|": ""' package.json
84
+
85
+ # Find exact pins
86
+ grep -E '": "[0-9]+\.[0-9]+\.[0-9]+"' package.json
87
+
88
+ # Count dependencies
89
+ jq '.dependencies | length' package.json
90
+ jq '.devDependencies | length' package.json
91
+ ```
92
+
93
+ ---
94
+
95
+ ## License Detection
96
+
97
+ ```bash
98
+ # List all licenses
99
+ npx license-checker --summary
100
+
101
+ # Find specific license types
102
+ npx license-checker --onlyAllow "MIT;ISC;BSD-2-Clause;BSD-3-Clause;Apache-2.0"
103
+
104
+ # Find unknown licenses
105
+ npx license-checker --onlyunknown
106
+
107
+ # Fail on problematic licenses
108
+ npx license-checker --failOn "GPL-3.0;AGPL-3.0"
109
+ ```
110
+
111
+ ---
112
+
113
+ ## Supply Chain Analysis
114
+
115
+ ```bash
116
+ # Dependency tree depth
117
+ npm ls --all | wc -l
118
+
119
+ # Flat dependency list
120
+ npm ls --all --json | jq '.dependencies | keys | length'
121
+
122
+ # Find duplicate packages
123
+ npm dedupe --dry-run
124
+
125
+ # Package metadata
126
+ npm view <package-name>
127
+ npm view <package-name> maintainers
128
+ npm view <package-name> time
129
+ ```
130
+
131
+ ---
132
+
133
+ ## Typosquat Detection
134
+
135
+ ```bash
136
+ # Common typosquats to check
137
+ # lodash vs loadsh, lodasg
138
+ # express vs exress, expres
139
+ # react vs reakt, reactt
140
+
141
+ # Manual check
142
+ npm view <suspicious-package>
143
+ # Look for:
144
+ # - Low weekly downloads
145
+ # - No or suspicious repository
146
+ # - Recent creation date
147
+ # - Unknown maintainer
148
+ ```
149
+
150
+ ---
151
+
152
+ ## CI Integration Commands
153
+
154
+ ```bash
155
+ # Combined audit script
156
+ audit_deps() {
157
+ echo "=== Checking vulnerabilities ==="
158
+ npm audit --audit-level=high || exit 1
159
+
160
+ echo "=== Checking lockfile ==="
161
+ [ -f package-lock.json ] || [ -f yarn.lock ] || exit 1
162
+
163
+ echo "=== Checking licenses ==="
164
+ npx license-checker --failOn "GPL-3.0;AGPL-3.0" || exit 1
165
+
166
+ echo "=== All checks passed ==="
167
+ }
168
+ ```
169
+
170
+ ---
171
+
172
+ ## Quick Reference
173
+
174
+ | Check | Command |
175
+ |-------|---------|
176
+ | Vulnerabilities | `npm audit` |
177
+ | Outdated | `npm outdated` |
178
+ | Unused | `npx depcheck` |
179
+ | Licenses | `npx license-checker` |
180
+ | Tree depth | `npm ls --all \| wc -l` |
181
+ | Lockfile | `ls package-lock.json yarn.lock 2>/dev/null` |