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,483 @@
1
+ # Implementation Violation Examples
2
+
3
+ Extended violation patterns for implementation reviews. Reference from main SKILL.md.
4
+
5
+ ---
6
+
7
+ ## CRUD Violations
8
+
9
+ ### Missing Validation
10
+
11
+ **No Input Validation Before Persist**
12
+ ```typescript
13
+ // VIOLATION: Saving unvalidated data
14
+ async function createUser(input: any): Promise<User> {
15
+ const user = { id: generateId(), ...input }; // No validation!
16
+ return await userRepository.save(user);
17
+ }
18
+ ```
19
+
20
+ **Trusting External Data**
21
+ ```typescript
22
+ // VIOLATION: Using input directly without parsing
23
+ async function updateUser(id: string, body: any): Promise<User> {
24
+ return await db.users.update(id, body); // Body could have extra fields
25
+ }
26
+ ```
27
+
28
+ ### Inconsistent Error Handling
29
+
30
+ **Mixed Error Styles**
31
+ ```typescript
32
+ // VIOLATION: Throws in some cases, returns null in others
33
+ async function getUser(id: string): Promise<User | null> {
34
+ if (!id) throw new Error('Invalid ID'); // Throws
35
+ const user = await db.users.findById(id);
36
+ return user || null; // Returns null for not found
37
+ }
38
+ ```
39
+
40
+ **Silent Failures**
41
+ ```typescript
42
+ // VIOLATION: Error swallowed with empty catch
43
+ async function deleteUser(id: string): Promise<void> {
44
+ try {
45
+ await userRepository.delete(id);
46
+ } catch (error) {
47
+ // Silently ignore deletion failures
48
+ }
49
+ }
50
+ ```
51
+
52
+ ### N+1 Query Patterns
53
+
54
+ **Loop Query**
55
+ ```typescript
56
+ // VIOLATION: N queries in loop
57
+ async function listUsersWithOrders(userIds: string[]): Promise<UserWithOrders[]> {
58
+ return Promise.all(
59
+ userIds.map(async (id) => {
60
+ const user = await db.users.findById(id);
61
+ const orders = await db.orders.findByUserId(id); // N queries!
62
+ return { ...user, orders };
63
+ })
64
+ );
65
+ }
66
+ ```
67
+
68
+ **Missing Join/Include**
69
+ ```typescript
70
+ // VIOLATION: Separate query for related data
71
+ async function getOrderDetails(orderId: string): Promise<OrderDetails> {
72
+ const order = await db.orders.findById(orderId);
73
+ const items = await db.orderItems.findByOrderId(orderId); // Second query
74
+ const customer = await db.customers.findById(order.customerId); // Third query
75
+ return { order, items, customer };
76
+ }
77
+ ```
78
+
79
+ ### Missing Existence Check
80
+
81
+ **Update Without Checking Exists**
82
+ ```typescript
83
+ // VIOLATION: No existence check before update
84
+ async function updateUser(id: string, data: UpdateData): Promise<User> {
85
+ return await db.users.update(id, data); // Fails silently or throws generic error
86
+ }
87
+ ```
88
+
89
+ **Delete Without Constraints Check**
90
+ ```typescript
91
+ // VIOLATION: No cascade/constraint check
92
+ async function deleteCategory(id: string): Promise<void> {
93
+ await db.categories.delete(id); // Orphans products referencing this category
94
+ }
95
+ ```
96
+
97
+ ---
98
+
99
+ ## API Violations
100
+
101
+ ### Missing Auth Checks
102
+
103
+ **No Authentication**
104
+ ```typescript
105
+ // VIOLATION: Endpoint without auth
106
+ app.delete('/api/users/:id', async (req, res) => {
107
+ await deleteUser(req.params.id); // Anyone can delete users!
108
+ res.status(204).send();
109
+ });
110
+ ```
111
+
112
+ **No Authorization**
113
+ ```typescript
114
+ // VIOLATION: Auth but no authorization check
115
+ app.put('/api/users/:id', authenticate, async (req, res) => {
116
+ const result = await updateUser(req.params.id, req.body); // Can update any user
117
+ res.json(result);
118
+ });
119
+ ```
120
+
121
+ ### Inconsistent Response Format
122
+
123
+ **Mixed Response Shapes**
124
+ ```typescript
125
+ // VIOLATION: Different error formats across endpoints
126
+ app.get('/api/users/:id', async (req, res) => {
127
+ const user = await getUser(req.params.id);
128
+ if (!user) res.status(404).send('Not found'); // String
129
+ });
130
+
131
+ app.get('/api/orders/:id', async (req, res) => {
132
+ const order = await getOrder(req.params.id);
133
+ if (!order) res.status(404).json({ error: 'Order not found' }); // Object
134
+ });
135
+ ```
136
+
137
+ **Leaking Internal Errors**
138
+ ```typescript
139
+ // VIOLATION: Exposing stack traces
140
+ app.post('/api/users', async (req, res) => {
141
+ try {
142
+ const user = await createUser(req.body);
143
+ res.json(user);
144
+ } catch (error) {
145
+ res.status(500).json({ error: error.stack }); // Security risk!
146
+ }
147
+ });
148
+ ```
149
+
150
+ ### Poor Error Messages
151
+
152
+ **Generic Messages**
153
+ ```typescript
154
+ // VIOLATION: Unhelpful error response
155
+ function handleError(error: Error, res: Response) {
156
+ res.status(400).json({ error: 'Something went wrong' }); // No actionable info
157
+ }
158
+ ```
159
+
160
+ **Missing Field Context**
161
+ ```typescript
162
+ // VIOLATION: No field-level validation errors
163
+ app.post('/api/users', async (req, res) => {
164
+ if (!req.body.email || !req.body.name) {
165
+ res.status(400).json({ error: 'Invalid request' }); // Which field?
166
+ }
167
+ });
168
+ ```
169
+
170
+ ### Missing Request Validation
171
+
172
+ **No Path Parameter Validation**
173
+ ```typescript
174
+ // VIOLATION: Using params without validation
175
+ app.get('/api/users/:id', async (req, res) => {
176
+ const user = await db.query('SELECT * FROM users WHERE id = $1', [req.params.id]);
177
+ // id could be malformed or SQL injection
178
+ });
179
+ ```
180
+
181
+ **No Body Validation**
182
+ ```typescript
183
+ // VIOLATION: No schema validation
184
+ app.post('/api/orders', async (req, res) => {
185
+ const order = await createOrder(req.body); // Could be anything
186
+ res.json(order);
187
+ });
188
+ ```
189
+
190
+ ---
191
+
192
+ ## Event Handler Violations
193
+
194
+ ### Lost Events
195
+
196
+ **Fire and Forget Without ACK**
197
+ ```typescript
198
+ // VIOLATION: Processing not confirmed
199
+ async function handleMessage(message: Message): Promise<void> {
200
+ processMessage(message); // Not awaited!
201
+ // Message may not be processed but considered handled
202
+ }
203
+ ```
204
+
205
+ **No Retry Mechanism**
206
+ ```typescript
207
+ // VIOLATION: Single attempt, then lost
208
+ async function handleOrderCreated(event: OrderEvent): Promise<void> {
209
+ try {
210
+ await notifyWarehouse(event);
211
+ } catch (error) {
212
+ console.error('Failed to notify', error);
213
+ // Event lost, no retry
214
+ }
215
+ }
216
+ ```
217
+
218
+ ### Race Conditions
219
+
220
+ **Concurrent Updates Without Locking**
221
+ ```typescript
222
+ // VIOLATION: Read-modify-write without protection
223
+ async function handleInventoryUpdate(event: InventoryEvent): Promise<void> {
224
+ const current = await db.inventory.get(event.productId);
225
+ const newQuantity = current.quantity - event.quantity;
226
+ await db.inventory.update(event.productId, { quantity: newQuantity });
227
+ // Two concurrent events can read same quantity, lose an update
228
+ }
229
+ ```
230
+
231
+ **Non-Idempotent Processing**
232
+ ```typescript
233
+ // VIOLATION: No idempotency check
234
+ async function handlePaymentReceived(event: PaymentEvent): Promise<void> {
235
+ await creditUserAccount(event.userId, event.amount);
236
+ await sendReceipt(event.userId);
237
+ // Redelivery credits user twice!
238
+ }
239
+ ```
240
+
241
+ ### Missing Error Handling
242
+
243
+ **Unhandled Promise Rejection**
244
+ ```typescript
245
+ // VIOLATION: No error handling in handler
246
+ eventBus.on('user.created', async (event) => {
247
+ await sendWelcomeEmail(event.user); // Unhandled rejection if email fails
248
+ await createAuditLog(event);
249
+ });
250
+ ```
251
+
252
+ **Partial Processing**
253
+ ```typescript
254
+ // VIOLATION: Stops on first error
255
+ async function handleBatchEvent(events: Event[]): Promise<void> {
256
+ for (const event of events) {
257
+ await processEvent(event); // One failure stops all remaining
258
+ }
259
+ }
260
+ ```
261
+
262
+ ### Missing Event Context
263
+
264
+ **No Correlation ID**
265
+ ```typescript
266
+ // VIOLATION: Can't trace event through system
267
+ async function publishEvent(type: string, payload: object): Promise<void> {
268
+ await eventBus.publish({
269
+ type,
270
+ payload,
271
+ timestamp: new Date(),
272
+ // No correlationId, requestId, or traceId
273
+ });
274
+ }
275
+ ```
276
+
277
+ ---
278
+
279
+ ## Configuration Violations
280
+
281
+ ### Hardcoded Values
282
+
283
+ **Magic Numbers/Strings**
284
+ ```typescript
285
+ // VIOLATION: Hardcoded configuration
286
+ async function fetchWithRetry(url: string) {
287
+ const maxRetries = 3; // Magic number
288
+ const timeout = 5000; // Magic number
289
+ const apiKey = 'sk-abc123...'; // Hardcoded secret!
290
+ // ...
291
+ }
292
+ ```
293
+
294
+ **Environment-Specific Branching**
295
+ ```typescript
296
+ // VIOLATION: Scattered environment checks
297
+ function getApiUrl(): string {
298
+ if (process.env.NODE_ENV === 'production') {
299
+ return 'https://api.example.com';
300
+ } else if (process.env.NODE_ENV === 'staging') {
301
+ return 'https://staging-api.example.com';
302
+ } else {
303
+ return 'http://localhost:3000';
304
+ }
305
+ }
306
+ ```
307
+
308
+ ### Missing Validation
309
+
310
+ **No Schema Validation**
311
+ ```typescript
312
+ // VIOLATION: Trusting environment variables
313
+ const config = {
314
+ port: process.env.PORT, // Could be undefined or 'abc'
315
+ dbUrl: process.env.DATABASE_URL, // Could be malformed
316
+ timeout: process.env.TIMEOUT, // String, not number
317
+ };
318
+ ```
319
+
320
+ **Silent Defaults**
321
+ ```typescript
322
+ // VIOLATION: Defaulting without warning
323
+ const port = process.env.PORT || 3000; // No indication of fallback
324
+ const dbUrl = process.env.DATABASE_URL || 'localhost:5432'; // Insecure default
325
+ ```
326
+
327
+ ### Insecure Defaults
328
+
329
+ **Debug Mode in Production**
330
+ ```typescript
331
+ // VIOLATION: Debug enabled by default
332
+ const config = {
333
+ debug: process.env.DEBUG !== 'false', // Default true!
334
+ verboseLogging: true, // Always verbose
335
+ };
336
+ ```
337
+
338
+ **Missing Required Secrets**
339
+ ```typescript
340
+ // VIOLATION: Optional secret with fallback
341
+ const jwtSecret = process.env.JWT_SECRET || 'default-secret'; // Insecure!
342
+ ```
343
+
344
+ ### Mutable Configuration
345
+
346
+ **Writable Config Object**
347
+ ```typescript
348
+ // VIOLATION: Config can be mutated at runtime
349
+ export const config = {
350
+ port: 3000,
351
+ debug: false,
352
+ };
353
+
354
+ // Elsewhere in code
355
+ config.debug = true; // Mutation!
356
+ ```
357
+
358
+ ---
359
+
360
+ ## Logging Violations
361
+
362
+ ### Missing Context
363
+
364
+ **No Request Identifier**
365
+ ```typescript
366
+ // VIOLATION: Can't correlate logs
367
+ app.get('/api/users/:id', async (req, res) => {
368
+ console.log('Fetching user'); // Which request?
369
+ const user = await getUser(req.params.id);
370
+ console.log('User found'); // Can't trace to request
371
+ res.json(user);
372
+ });
373
+ ```
374
+
375
+ **No Operation Context**
376
+ ```typescript
377
+ // VIOLATION: Logs without context
378
+ async function processOrder(order: Order): Promise<void> {
379
+ console.log('Processing'); // What order? Who requested?
380
+ await validateOrder(order);
381
+ console.log('Validated');
382
+ await saveOrder(order);
383
+ console.log('Done');
384
+ }
385
+ ```
386
+
387
+ ### Sensitive Data Exposure
388
+
389
+ **Logging Credentials**
390
+ ```typescript
391
+ // VIOLATION: Passwords in logs
392
+ async function login(credentials: Credentials): Promise<Result<User, Error>> {
393
+ logger.info('Login attempt', { credentials }); // Logs password!
394
+ // ...
395
+ }
396
+ ```
397
+
398
+ **PII in Logs**
399
+ ```typescript
400
+ // VIOLATION: Personal data exposed
401
+ async function createUser(user: UserInput): Promise<User> {
402
+ logger.info('Creating user', {
403
+ email: user.email,
404
+ ssn: user.ssn, // PII!
405
+ creditCard: user.paymentInfo, // PCI data!
406
+ });
407
+ // ...
408
+ }
409
+ ```
410
+
411
+ ### Inconsistent Levels
412
+
413
+ **Wrong Log Levels**
414
+ ```typescript
415
+ // VIOLATION: Using wrong severity
416
+ function processPayment(payment: Payment): void {
417
+ console.log('Payment failed!'); // Should be error
418
+ console.error('Processing payment'); // Not an error
419
+ console.warn('Payment successful'); // Not a warning
420
+ }
421
+ ```
422
+
423
+ **Debug Logs in Production**
424
+ ```typescript
425
+ // VIOLATION: Verbose logging without level check
426
+ function complexCalculation(data: Data): number {
427
+ console.log('Input:', JSON.stringify(data)); // Always logs, even in production
428
+ const result = calculate(data);
429
+ console.log('Intermediate:', intermediate); // Noise in production
430
+ console.log('Output:', result);
431
+ return result;
432
+ }
433
+ ```
434
+
435
+ ### Unstructured Logging
436
+
437
+ **String Interpolation**
438
+ ```typescript
439
+ // VIOLATION: Not machine-parseable
440
+ console.log(`User ${userId} created order ${orderId} at ${timestamp}`);
441
+ // Can't query or aggregate these logs
442
+ ```
443
+
444
+ **Console.log in Production**
445
+ ```typescript
446
+ // VIOLATION: No structured output
447
+ console.log('Error:', error); // Not JSON, no metadata
448
+ console.log('Request received'); // No timestamp, level, or context
449
+ ```
450
+
451
+ ### Missing Error Details
452
+
453
+ **Logging Without Stack**
454
+ ```typescript
455
+ // VIOLATION: Lost debugging info
456
+ try {
457
+ await riskyOperation();
458
+ } catch (error) {
459
+ logger.error('Operation failed'); // No error details!
460
+ }
461
+ ```
462
+
463
+ **Catching and Re-logging**
464
+ ```typescript
465
+ // VIOLATION: Duplicate logs
466
+ async function outerFunction() {
467
+ try {
468
+ await innerFunction();
469
+ } catch (error) {
470
+ logger.error('Outer failed', { error }); // Double logged
471
+ throw error;
472
+ }
473
+ }
474
+
475
+ async function innerFunction() {
476
+ try {
477
+ await riskyThing();
478
+ } catch (error) {
479
+ logger.error('Inner failed', { error }); // First log
480
+ throw error;
481
+ }
482
+ }
483
+ ```
@@ -0,0 +1,156 @@
1
+ ---
2
+ name: security-patterns
3
+ description: Security vulnerability analysis patterns for code review. Detects injection flaws, authentication bypasses, insecure cryptography, hardcoded secrets, and missing input sanitization. Loaded by Reviewer agent when focus=security.
4
+ user-invocable: false
5
+ allowed-tools: Read, Grep, Glob
6
+ ---
7
+
8
+ # Security Patterns
9
+
10
+ Domain expertise for security vulnerability detection. Use alongside `review-methodology` for complete security reviews.
11
+
12
+ ## Iron Law
13
+
14
+ > **ASSUME ALL INPUT IS MALICIOUS**
15
+ >
16
+ > Every user input, URL parameter, header, and cookie is an attack vector. Use parameterized
17
+ > queries always. Escape output always. Validate schemas always. "This field is internal"
18
+ > is not a defense. Defense in depth, not wishful thinking.
19
+
20
+ ---
21
+
22
+ ## Vulnerability Categories
23
+
24
+ ### 1. Input Validation & Injection
25
+
26
+ **SQL Injection**
27
+ ```typescript
28
+ // VULNERABLE
29
+ const query = `SELECT * FROM users WHERE email = '${email}'`;
30
+
31
+ // SECURE
32
+ await db.execute("SELECT * FROM users WHERE email = ?", [email]);
33
+ ```
34
+
35
+ **XSS (Cross-Site Scripting)**
36
+ ```typescript
37
+ // VULNERABLE
38
+ element.innerHTML = userInput;
39
+
40
+ // SECURE
41
+ element.textContent = userInput;
42
+ ```
43
+
44
+ > See `references/injection.md` for NoSQL, command injection, path traversal patterns.
45
+
46
+ ### 2. Authentication & Authorization
47
+
48
+ **Missing Auth Checks**
49
+ ```typescript
50
+ // VULNERABLE
51
+ app.delete('/api/users/:id', async (req, res) => {
52
+ await deleteUser(req.params.id); // No auth!
53
+ });
54
+
55
+ // SECURE
56
+ app.delete('/api/users/:id', requireAuth, requireRole('admin'), handler);
57
+ ```
58
+
59
+ > See `references/auth.md` for password policies, session management, JWT patterns.
60
+
61
+ ### 3. Cryptography & Secrets
62
+
63
+ **Hardcoded Secrets**
64
+ ```typescript
65
+ // VULNERABLE
66
+ const API_KEY = 'sk-abc123xyz789';
67
+
68
+ // SECURE
69
+ const API_KEY = process.env.API_KEY;
70
+ ```
71
+
72
+ **Insecure Random**
73
+ ```typescript
74
+ // VULNERABLE
75
+ const token = Math.random().toString(36);
76
+
77
+ // SECURE
78
+ const token = crypto.randomBytes(32).toString('hex');
79
+ ```
80
+
81
+ > See `references/crypto.md` for weak crypto detection, encryption patterns.
82
+
83
+ ### 4. Configuration & Headers
84
+
85
+ ```typescript
86
+ // REQUIRED: Use helmet or set manually
87
+ app.use(helmet());
88
+ res.setHeader('Content-Security-Policy', "default-src 'self'");
89
+ res.setHeader('X-Frame-Options', 'DENY');
90
+ res.setHeader('Strict-Transport-Security', 'max-age=31536000');
91
+
92
+ // CORS: Never use origin: '*'
93
+ app.use(cors({ origin: ['https://myapp.com'], credentials: true }));
94
+ ```
95
+
96
+ ### 5. Business Logic
97
+
98
+ **Race Conditions**
99
+ ```typescript
100
+ // VULNERABLE
101
+ if (balance >= amount) await withdraw(userId, amount);
102
+
103
+ // SECURE: Use transactions with row locks
104
+ await db.transaction(async (tx) => {
105
+ const balance = await tx.getBalance(userId, { forUpdate: true });
106
+ if (balance >= amount) await tx.withdraw(userId, amount);
107
+ });
108
+ ```
109
+
110
+ **Mass Assignment**
111
+ ```typescript
112
+ // VULNERABLE
113
+ await User.create(req.body); // All fields accepted!
114
+
115
+ // SECURE: Explicitly list allowed fields
116
+ await User.create({ email: req.body.email, name: req.body.name });
117
+ ```
118
+
119
+ ---
120
+
121
+ ## Extended References
122
+
123
+ | Reference | Content |
124
+ |-----------|---------|
125
+ | `references/injection.md` | NoSQL, command, path traversal, LDAP, template injection |
126
+ | `references/auth.md` | Password policy, session management, JWT, RBAC/ABAC |
127
+ | `references/crypto.md` | Secret management, weak crypto, encryption, timing attacks |
128
+ | `references/detection.md` | All grep patterns for automated scanning |
129
+
130
+ ---
131
+
132
+ ## Severity Guidelines
133
+
134
+ | Level | Criteria | Examples |
135
+ |-------|----------|----------|
136
+ | **CRITICAL** | Immediate exploitation | SQL injection in auth, RCE, hardcoded admin creds |
137
+ | **HIGH** | Significant risk | XSS, broken access control, weak crypto, CSRF |
138
+ | **MEDIUM** | Moderate with conditions | Missing headers, permissive CORS, missing rate limits |
139
+ | **LOW** | Minor improvement | Outdated deps (no CVE), suboptimal CSP |
140
+
141
+ ---
142
+
143
+ ## OWASP Reference
144
+
145
+ | ID | Category | Examples |
146
+ |----|----------|----------|
147
+ | A01 | Broken Access Control | Missing auth, IDOR, privilege escalation |
148
+ | A02 | Cryptographic Failures | Weak hashing, hardcoded secrets |
149
+ | A03 | Injection | SQL, NoSQL, command, XSS |
150
+ | A04 | Insecure Design | Missing rate limits, mass assignment |
151
+ | A05 | Security Misconfiguration | Debug enabled, missing headers |
152
+ | A06 | Vulnerable Components | Outdated deps with known CVEs |
153
+ | A07 | Auth Failures | Weak passwords, session issues |
154
+ | A08 | Data Integrity Failures | Untrusted deserialization |
155
+ | A09 | Logging Failures | Missing security logs |
156
+ | A10 | SSRF | Unvalidated URLs in server requests |