devflow-kit 0.9.0 → 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 (397) hide show
  1. package/CHANGELOG.md +167 -29
  2. package/LICENSE +1 -1
  3. package/README.md +179 -310
  4. package/dist/cli.js +3 -1
  5. package/dist/commands/init.d.ts +21 -0
  6. package/dist/commands/init.js +311 -576
  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/get-issue.md +0 -286
  370. package/src/claude/agents/devflow/pr-comments.md +0 -285
  371. package/src/claude/agents/devflow/project-state.md +0 -419
  372. package/src/claude/agents/devflow/pull-request.md +0 -493
  373. package/src/claude/agents/devflow/release.md +0 -1137
  374. package/src/claude/agents/devflow/tech-debt.md +0 -338
  375. package/src/claude/commands/devflow/brainstorm.md +0 -68
  376. package/src/claude/commands/devflow/breakdown.md +0 -125
  377. package/src/claude/commands/devflow/catch-up.md +0 -29
  378. package/src/claude/commands/devflow/code-review.md +0 -237
  379. package/src/claude/commands/devflow/commit.md +0 -17
  380. package/src/claude/commands/devflow/debug.md +0 -56
  381. package/src/claude/commands/devflow/design.md +0 -82
  382. package/src/claude/commands/devflow/devlog.md +0 -408
  383. package/src/claude/commands/devflow/get-issue.md +0 -16
  384. package/src/claude/commands/devflow/implement.md +0 -100
  385. package/src/claude/commands/devflow/plan.md +0 -223
  386. package/src/claude/commands/devflow/pull-request.md +0 -20
  387. package/src/claude/commands/devflow/release.md +0 -251
  388. package/src/claude/commands/devflow/resolve-comments.md +0 -583
  389. package/src/claude/scripts/statusline.sh +0 -47
  390. package/src/claude/settings.json +0 -6
  391. package/src/claude/skills/devflow/code-smell/SKILL.md +0 -428
  392. package/src/claude/skills/devflow/debug/SKILL.md +0 -119
  393. package/src/claude/skills/devflow/error-handling/SKILL.md +0 -597
  394. package/src/claude/skills/devflow/input-validation/SKILL.md +0 -514
  395. package/src/claude/skills/devflow/pattern-check/SKILL.md +0 -238
  396. package/src/claude/skills/devflow/research/SKILL.md +0 -138
  397. 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,148 @@
1
+ ---
2
+ name: input-validation
3
+ description: This skill should be used when the user asks to "validate input", "parse request data", "handle form data", "add Zod schema", "sanitize user input", or creates API endpoints and system boundaries. Provides parse-don't-validate patterns with Zod schemas for type-safe boundary validation and hostile input defense.
4
+ user-invocable: false
5
+ allowed-tools: Read, Grep, Glob, AskUserQuestion
6
+ ---
7
+
8
+ # Input Validation Skill
9
+
10
+ ## Iron Law
11
+
12
+ > **ALL EXTERNAL DATA IS HOSTILE**
13
+ >
14
+ > Validate at boundaries, trust inside. Every piece of data from outside the system
15
+ > (user input, API responses, environment variables) is potentially malicious until
16
+ > validated with a schema. No exceptions. No "I trust this source." Validate everything.
17
+
18
+ ## When This Skill Activates
19
+
20
+ - Creating API endpoints or routes
21
+ - Processing user-submitted data
22
+ - Integrating with external APIs
23
+ - Accepting environment variables
24
+ - Handling database queries with user input
25
+
26
+ ## Core Principle: Parse, Don't Validate
27
+
28
+ Use schema validation libraries, not manual checks.
29
+
30
+ ```typescript
31
+ // VIOLATION: Manual validation
32
+ function createUser(data: any): User {
33
+ if (!data.email || typeof data.email !== 'string') throw new Error('Invalid');
34
+ // ... scattered checks
35
+ }
36
+
37
+ // CORRECT: Schema validation at boundary
38
+ const UserSchema = z.object({
39
+ email: z.string().email().max(255),
40
+ age: z.number().int().min(0).max(150),
41
+ name: z.string().min(1).max(100)
42
+ });
43
+
44
+ function createUser(data: unknown): Result<User, ValidationError> {
45
+ const validation = UserSchema.safeParse(data);
46
+ if (!validation.success) {
47
+ return { ok: false, error: new ValidationError('Invalid', validation.error) };
48
+ }
49
+ return { ok: true, value: validation.data };
50
+ }
51
+ ```
52
+
53
+ ## Boundary Examples
54
+
55
+ ### API Endpoint
56
+
57
+ ```typescript
58
+ app.post('/api/users', async (req, res) => {
59
+ const validation = UserSchema.safeParse(req.body);
60
+ if (!validation.success) {
61
+ return res.status(400).json({ error: validation.error.issues });
62
+ }
63
+ const result = await createUser(validation.data);
64
+ // ... handle result
65
+ });
66
+ ```
67
+
68
+ ### External API Response
69
+
70
+ ```typescript
71
+ async function fetchUserData(userId: string): Promise<Result<UserData, Error>> {
72
+ const response = await fetch(`https://api.example.com/users/${userId}`);
73
+ const validation = ExternalUserSchema.safeParse(await response.json());
74
+ if (!validation.success) {
75
+ return { ok: false, error: new Error('External API returned invalid data') };
76
+ }
77
+ return { ok: true, value: validation.data };
78
+ }
79
+ ```
80
+
81
+ ### Environment Variables
82
+
83
+ ```typescript
84
+ const ConfigSchema = z.object({
85
+ port: z.string().regex(/^\d+$/).transform(Number),
86
+ dbUrl: z.string().url().startsWith('postgresql://'),
87
+ apiKey: z.string().min(32)
88
+ });
89
+
90
+ const configResult = ConfigSchema.safeParse(process.env);
91
+ if (!configResult.success) {
92
+ console.error('Invalid configuration:', configResult.error);
93
+ process.exit(1);
94
+ }
95
+ ```
96
+
97
+ ### Database Queries (SQL Injection Prevention)
98
+
99
+ ```typescript
100
+ const EmailSchema = z.string().email().max(255);
101
+
102
+ async function getUserByEmail(email: unknown): Promise<Result<User, Error>> {
103
+ const validation = EmailSchema.safeParse(email);
104
+ if (!validation.success) {
105
+ return { ok: false, error: new Error('Invalid email format') };
106
+ }
107
+ // Parameterized query prevents SQL injection
108
+ const user = await db.query('SELECT * FROM users WHERE email = $1', [validation.data]);
109
+ return { ok: true, value: user };
110
+ }
111
+ ```
112
+
113
+ ## Validation Libraries
114
+
115
+ | Language | Recommended |
116
+ |----------|-------------|
117
+ | TypeScript/JavaScript | Zod, Yup, joi |
118
+ | Python | Pydantic, marshmallow |
119
+ | Go | go-playground/validator |
120
+ | Rust | serde + validator |
121
+
122
+ ## Security Principles
123
+
124
+ 1. **Trust Nothing**: All external data is potentially malicious
125
+ 2. **Validate Once**: At the boundary, then trust typed data
126
+ 3. **Fail Secure**: Invalid input = reject, not accept with warning
127
+ 4. **No Bypass**: No "skip validation" flags or backdoors
128
+
129
+ ---
130
+
131
+ ## Extended References
132
+
133
+ For extended examples and detection patterns, see:
134
+ - `references/violations.md` - Extended violation examples
135
+ - `references/patterns.md` - Extended correct patterns
136
+ - `references/detection.md` - Grep patterns and report templates
137
+
138
+ ---
139
+
140
+ ## Success Criteria
141
+
142
+ - [ ] All boundaries identified and validated
143
+ - [ ] Schema validation used (not manual checks)
144
+ - [ ] No SQL injection risks
145
+ - [ ] External data validated before use
146
+ - [ ] Configuration validated on startup
147
+ - [ ] Validation errors return Result types
148
+ - [ ] Tests cover invalid input scenarios