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,276 @@
1
+ # Validation Checklist
2
+
3
+ Comprehensive checklist for code review and validation against core engineering patterns.
4
+
5
+ ---
6
+
7
+ ## Pre-Implementation Checklist
8
+
9
+ Before writing code, verify:
10
+
11
+ - [ ] Understood the existing patterns in the codebase
12
+ - [ ] Identified similar implementations to follow
13
+ - [ ] Determined if Result types are used (and will follow same pattern)
14
+ - [ ] Identified dependencies that need injection
15
+ - [ ] Planned separation of pure logic from side effects
16
+
17
+ ---
18
+
19
+ ## Result Types Checklist
20
+
21
+ ### Functions That Can Fail
22
+
23
+ - [ ] All business functions return `Result<T, E>` types
24
+ - [ ] No `throw` statements in business logic
25
+ - [ ] Error types are discriminated unions (not generic Error)
26
+ - [ ] Each error type has all context needed to handle it
27
+ - [ ] Async functions return `Promise<Result<T, E>>`
28
+
29
+ ### Exception Boundaries
30
+
31
+ - [ ] Try/catch ONLY at system boundaries (API handlers, DB adapters)
32
+ - [ ] Boundaries convert exceptions to Result types
33
+ - [ ] HTTP responses derived from Result errors
34
+ - [ ] No silent error swallowing (empty catch blocks)
35
+
36
+ ### Error Handling
37
+
38
+ - [ ] All Result errors are handled explicitly
39
+ - [ ] No `if (!result.ok) return;` without proper handling
40
+ - [ ] Error propagation preserves context
41
+ - [ ] Logging happens before converting errors
42
+
43
+ ---
44
+
45
+ ## Dependency Injection Checklist
46
+
47
+ ### Constructor Injection
48
+
49
+ - [ ] All dependencies passed through constructor
50
+ - [ ] No `new` keyword for dependencies inside classes
51
+ - [ ] No imported singletons used directly
52
+ - [ ] No static method calls on external services
53
+
54
+ ### Interfaces
55
+
56
+ - [ ] Dependencies typed as interfaces, not implementations
57
+ - [ ] Interfaces are small and focused (ISP)
58
+ - [ ] Mock implementations easy to create
59
+ - [ ] No concrete class imports in business logic
60
+
61
+ ### Testing
62
+
63
+ - [ ] Can instantiate class with mock dependencies
64
+ - [ ] No test requires real database/network
65
+ - [ ] No environment manipulation in tests
66
+ - [ ] Test setup is < 10 lines
67
+
68
+ ---
69
+
70
+ ## Immutability Checklist
71
+
72
+ ### Objects
73
+
74
+ - [ ] All updates return new objects (spread operator)
75
+ - [ ] No direct property assignment on inputs
76
+ - [ ] No `delete` operator on inputs
77
+ - [ ] Nested updates also create new objects
78
+
79
+ ### Arrays
80
+
81
+ - [ ] No `.push()`, `.pop()`, `.shift()`, `.unshift()`
82
+ - [ ] No `.splice()`, `.reverse()`, `.sort()` on originals
83
+ - [ ] Use `.map()`, `.filter()`, `.reduce()` for transformations
84
+ - [ ] Copy before sorting: `[...arr].sort()`
85
+
86
+ ### State
87
+
88
+ - [ ] No module-level `let` or `var`
89
+ - [ ] No global mutable state
90
+ - [ ] Configuration is frozen after initialization
91
+ - [ ] Caches use immutable entries
92
+
93
+ ---
94
+
95
+ ## Pure Functions Checklist
96
+
97
+ ### Business Logic
98
+
99
+ - [ ] Pure functions have no side effects
100
+ - [ ] Same input always produces same output
101
+ - [ ] No date/time access (inject clock)
102
+ - [ ] No random values (inject generator)
103
+ - [ ] No environment variable access
104
+
105
+ ### Side Effect Isolation
106
+
107
+ - [ ] I/O operations in wrapper functions
108
+ - [ ] Pure calculations extracted and tested separately
109
+ - [ ] Side effects clearly documented
110
+ - [ ] Logging/metrics in wrappers, not core logic
111
+
112
+ ### Dependencies
113
+
114
+ - [ ] Time/random injected as dependencies
115
+ - [ ] Environment config loaded once at startup
116
+ - [ ] File system access at boundaries only
117
+ - [ ] Network calls at boundaries only
118
+
119
+ ---
120
+
121
+ ## Type Safety Checklist
122
+
123
+ ### Strict Types
124
+
125
+ - [ ] No `any` types (use `unknown` for dynamic data)
126
+ - [ ] All function parameters typed
127
+ - [ ] All return types explicit
128
+ - [ ] Strict null checks enabled
129
+
130
+ ### Pattern Matching
131
+
132
+ - [ ] Switch statements are exhaustive
133
+ - [ ] Discriminated unions for state/variants
134
+ - [ ] No default case that hides missing patterns
135
+ - [ ] Type guards for runtime narrowing
136
+
137
+ ### Type Design
138
+
139
+ - [ ] Domain types prevent primitive obsession
140
+ - [ ] Branded types for IDs that shouldn't mix
141
+ - [ ] Optional fields explicit (`field?: Type`)
142
+ - [ ] Readonly where appropriate
143
+
144
+ ---
145
+
146
+ ## Error Type Design Checklist
147
+
148
+ ### Discriminated Unions
149
+
150
+ - [ ] Each error type has a `type` discriminator
151
+ - [ ] Error types include all context needed
152
+ - [ ] Related errors grouped in union types
153
+ - [ ] Error unions are exhaustive
154
+
155
+ ### Error Information
156
+
157
+ - [ ] Error messages are actionable
158
+ - [ ] Technical details preserved for logging
159
+ - [ ] User-facing messages are sanitized
160
+ - [ ] Error codes are unique and documented
161
+
162
+ ---
163
+
164
+ ## Resource Cleanup Checklist
165
+
166
+ ### File/Connection Handling
167
+
168
+ - [ ] All file handles closed in `finally`
169
+ - [ ] All connections released in `finally`
170
+ - [ ] Using context managers (Python) or `using` (TS)
171
+ - [ ] Pool resources released after use
172
+
173
+ ### Subscriptions/Timers
174
+
175
+ - [ ] Event listeners removed on cleanup
176
+ - [ ] Intervals cleared when done
177
+ - [ ] Timeouts cleared if operation completes early
178
+ - [ ] Subscription manager for complex lifecycles
179
+
180
+ ### Memory
181
+
182
+ - [ ] Large data structures released when done
183
+ - [ ] Caches have size limits or TTL
184
+ - [ ] Circular references avoided
185
+ - [ ] WeakMap/WeakSet for object keys
186
+
187
+ ---
188
+
189
+ ## API Consistency Checklist
190
+
191
+ ### Error Handling Pattern
192
+
193
+ - [ ] Same error handling pattern across module
194
+ - [ ] All methods return Result OR all throw (not mixed)
195
+ - [ ] Error types consistent across related methods
196
+ - [ ] HTTP error mapping centralized
197
+
198
+ ### Async Pattern
199
+
200
+ - [ ] Single async pattern (async/await preferred)
201
+ - [ ] No mixing callbacks and promises
202
+ - [ ] All async calls awaited (no fire-and-forget)
203
+ - [ ] Promise.all for parallel operations
204
+
205
+ ### Naming
206
+
207
+ - [ ] Consistent naming across codebase
208
+ - [ ] PascalCase for types/classes
209
+ - [ ] camelCase for functions/variables
210
+ - [ ] SCREAMING_SNAKE_CASE for constants
211
+
212
+ ---
213
+
214
+ ## Architecture Documentation Checklist
215
+
216
+ ### Code Comments
217
+
218
+ - [ ] Public APIs have JSDoc/docstrings
219
+ - [ ] Complex algorithms explained
220
+ - [ ] Non-obvious decisions documented
221
+ - [ ] Architecture boundaries marked
222
+
223
+ ### Exceptions/Workarounds
224
+
225
+ - [ ] All workarounds labeled (HACK:, TODO:, TEMPORARY:)
226
+ - [ ] Architecture exceptions have justification
227
+ - [ ] Technical debt has tracking ticket
228
+ - [ ] Deadlines on temporary solutions
229
+
230
+ ---
231
+
232
+ ## Performance Checklist
233
+
234
+ ### Measurement
235
+
236
+ - [ ] Performance claims have benchmarks
237
+ - [ ] Hot paths identified and measured
238
+ - [ ] No premature optimization
239
+ - [ ] Trade-offs documented
240
+
241
+ ### Common Issues
242
+
243
+ - [ ] No N+1 queries
244
+ - [ ] Appropriate data structures (Map vs Array)
245
+ - [ ] Lazy evaluation for expensive operations
246
+ - [ ] Batch operations where possible
247
+
248
+ ---
249
+
250
+ ## Anti-Pattern Checklist
251
+
252
+ Verify NONE of these exist:
253
+
254
+ - [ ] No hardcoded responses simulating functionality
255
+ - [ ] No silent error swallowing
256
+ - [ ] No unlabeled magic values
257
+ - [ ] No global mutable state
258
+ - [ ] No tight coupling to concrete implementations
259
+ - [ ] No mixing error handling patterns
260
+ - [ ] No fire-and-forget async calls
261
+ - [ ] No resource leaks
262
+
263
+ ---
264
+
265
+ ## Final Review Checklist
266
+
267
+ Before considering code complete:
268
+
269
+ - [ ] All tests pass
270
+ - [ ] No TypeScript errors
271
+ - [ ] No ESLint warnings
272
+ - [ ] Code matches existing patterns
273
+ - [ ] Documentation updated
274
+ - [ ] No TODO without ticket
275
+ - [ ] No console.log in production code
276
+ - [ ] No commented-out code
@@ -0,0 +1,144 @@
1
+ # Code Smell Violations Reference
2
+
3
+ Extended examples of fake solutions, unlabeled workarounds, deceptive code, and magic values. Absorbed from the former `code-smell` skill into `core-patterns`.
4
+
5
+ ---
6
+
7
+ ## 1. Hardcoded Data (FAKE SOLUTIONS)
8
+
9
+ ### Violation: Mock data masquerading as real functionality
10
+
11
+ ```typescript
12
+ async function fetchRecommendations(userId: string): Promise<Product[]> {
13
+ // TODO: Connect to recommendation engine
14
+ return [
15
+ { id: "1", name: "Product 1", price: 99.99 },
16
+ { id: "2", name: "Product 2", price: 149.99 }
17
+ ];
18
+ }
19
+ ```
20
+
21
+ **Problem**: Returns static data instead of fetching from actual service.
22
+
23
+ ### Correct: Honest implementation with Result type
24
+
25
+ ```typescript
26
+ async function getUserProfile(userId: string): Promise<Result<UserProfile, Error>> {
27
+ try {
28
+ const response = await api.get(`/users/${userId}`);
29
+ return { ok: true, value: response.data };
30
+ } catch (error) {
31
+ return { ok: false, error };
32
+ }
33
+ }
34
+ ```
35
+
36
+ ### Correct: Clearly labeled mock for testing
37
+
38
+ ```typescript
39
+ // MOCK: For development only, not production-ready
40
+ async function getUserProfileMock(userId: string): Promise<UserProfile> {
41
+ return { id: userId, name: "Test User", email: "test@example.com" };
42
+ }
43
+ ```
44
+
45
+ ---
46
+
47
+ ## 2. Missing Labels (UNDOCUMENTED WORKAROUNDS)
48
+
49
+ ### Violation: Temporary fix without documentation
50
+
51
+ ```typescript
52
+ async function syncData() {
53
+ await sleep(1000); // Wait for previous operation
54
+ await performSync();
55
+ }
56
+ ```
57
+
58
+ ### Correct: Clearly labeled workaround
59
+
60
+ ```typescript
61
+ function processPayment(amount: number): boolean {
62
+ // TEMPORARY: Validation disabled until payment gateway integration complete
63
+ // TODO: Add amount validation, currency checks, fraud detection
64
+ // Target: Sprint 23 (2025-11-15)
65
+ // Ticket: PAY-456
66
+ return true;
67
+ }
68
+ ```
69
+
70
+ ### Correct: Documented hack with rationale
71
+
72
+ ```typescript
73
+ async function syncData() {
74
+ // HACK: Sleep required due to race condition in legacy sync system
75
+ // Root cause: Event system doesn't guarantee order
76
+ // Proper fix: Implement event sequencing (3-week effort)
77
+ await sleep(1000);
78
+ await performSync();
79
+ }
80
+ ```
81
+
82
+ ---
83
+
84
+ ## 3. Fake Functionality (DECEPTIVE CODE)
85
+
86
+ ### Violation: Fake error handling
87
+
88
+ ```typescript
89
+ async function sendEmail(to: string, subject: string, body: string): Promise<void> {
90
+ try {
91
+ // TODO: Implement SMTP
92
+ console.log(`Email sent to ${to}`);
93
+ } catch (error) {
94
+ // Ignore errors
95
+ }
96
+ }
97
+ ```
98
+
99
+ ### Correct: Honest unimplemented function
100
+
101
+ ```typescript
102
+ function validateEmail(email: string): Result<boolean, Error> {
103
+ return {
104
+ ok: false,
105
+ error: new Error('NOT-IMPLEMENTED: Email validation pending regex pattern approval')
106
+ };
107
+ }
108
+ ```
109
+
110
+ ---
111
+
112
+ ## 4. Magic Values (UNEXPLAINED CONSTANTS)
113
+
114
+ ### Violation: Magic numbers
115
+
116
+ ```typescript
117
+ function calculateDiscount(price: number, userLevel: number): number {
118
+ if (userLevel >= 5) return price * 0.15;
119
+ return 0;
120
+ }
121
+ ```
122
+
123
+ ### Correct: Named constants with documentation
124
+
125
+ ```typescript
126
+ const USER_LEVEL_THRESHOLD = { PREMIUM: 5 } as const;
127
+ const DISCOUNT_RATE = { PREMIUM: 0.15 } as const;
128
+
129
+ function calculateDiscount(price: number, userLevel: number): number {
130
+ if (userLevel >= USER_LEVEL_THRESHOLD.PREMIUM) return price * DISCOUNT_RATE.PREMIUM;
131
+ return 0;
132
+ }
133
+ ```
134
+
135
+ ---
136
+
137
+ ## Detection Quick Reference
138
+
139
+ Code passes smell check when:
140
+ - No hardcoded return data in business logic
141
+ - All workarounds have required labels (HACK:, MOCK:, TODO:, TEMPORARY:, NOT-PRODUCTION:, ARCHITECTURE EXCEPTION:)
142
+ - All fake/mock code clearly marked
143
+ - Magic values extracted to named constants
144
+ - Functions do what their names promise
@@ -0,0 +1,303 @@
1
+ # Detection Patterns
2
+
3
+ Grep patterns and code analysis techniques for detecting pattern violations.
4
+
5
+ ---
6
+
7
+ ## Result Type Violations
8
+
9
+ ### Detecting Throws in Business Logic
10
+
11
+ ```bash
12
+ # Find throw statements (potential violations)
13
+ grep -rn "throw new\|throw Error\|throw \w" --include="*.ts" src/services/ src/domain/
14
+
15
+ # Find try/catch blocks (review for appropriateness)
16
+ grep -rn "try {" --include="*.ts" -A 5 src/services/ src/domain/
17
+
18
+ # Find functions that don't return Result but could fail
19
+ grep -rn "async function\|function" --include="*.ts" src/services/ | grep -v "Result<"
20
+ ```
21
+
22
+ ### Detecting Silent Failures
23
+
24
+ ```bash
25
+ # Empty catch blocks
26
+ grep -rn "catch.*{" --include="*.ts" -A 1 | grep -E "catch.*\{\s*\}"
27
+
28
+ # Catch blocks that return null/undefined
29
+ grep -rn "catch" --include="*.ts" -A 3 | grep -E "return (null|undefined|void 0);"
30
+
31
+ # Catch blocks with only console.log
32
+ grep -rn "catch" --include="*.ts" -A 3 | grep -E "^\s*console\.(log|error)"
33
+ ```
34
+
35
+ ---
36
+
37
+ ## Dependency Injection Violations
38
+
39
+ ### Detecting Internal Instantiation
40
+
41
+ ```bash
42
+ # Find 'new' keyword in class bodies (potential DI violation)
43
+ grep -rn "private.*= new\|this\.\w* = new" --include="*.ts" src/
44
+
45
+ # Find imported singletons
46
+ grep -rn "import.*from.*\./.*instance\|import.*from.*\./.*singleton" --include="*.ts"
47
+
48
+ # Find static method calls on external classes
49
+ grep -rn "\w+Service\.\w+(\|Calculator\.\w+(" --include="*.ts" src/services/
50
+ ```
51
+
52
+ ### Detecting Global State Access
53
+
54
+ ```bash
55
+ # Find process.env access outside config
56
+ grep -rn "process\.env\." --include="*.ts" src/ | grep -v "config\|Config"
57
+
58
+ # Find global variable access
59
+ grep -rn "globalThis\.\|window\.\|global\." --include="*.ts" src/
60
+
61
+ # Find module-level let/var (mutable global state)
62
+ grep -rn "^let \|^var " --include="*.ts" src/
63
+ ```
64
+
65
+ ---
66
+
67
+ ## Immutability Violations
68
+
69
+ ### Detecting Array Mutations
70
+
71
+ ```bash
72
+ # Array mutating methods
73
+ grep -rn "\.push(\|\.pop(\|\.shift(\|\.unshift(\|\.splice(\|\.reverse(\|\.sort(\|\.fill(" --include="*.ts" src/
74
+
75
+ # Assignment to array elements
76
+ grep -rn "\[\d+\]\s*=" --include="*.ts" src/
77
+
78
+ # forEach with mutations
79
+ grep -rn "\.forEach.*=>" --include="*.ts" -A 2 | grep -E "\.\w+\s*="
80
+ ```
81
+
82
+ ### Detecting Object Mutations
83
+
84
+ ```bash
85
+ # Direct property assignment on parameters
86
+ grep -rn "function.*(\w+:" --include="*.ts" -A 10 | grep -E "^\s+\w+\.\w+\s*="
87
+
88
+ # delete operator
89
+ grep -rn "delete \w+\." --include="*.ts" src/
90
+
91
+ # Object.assign mutating first argument
92
+ grep -rn "Object\.assign(\w+," --include="*.ts" src/
93
+ ```
94
+
95
+ ---
96
+
97
+ ## Pure Function Violations
98
+
99
+ ### Detecting Side Effects
100
+
101
+ ```bash
102
+ # Console/logging in business logic
103
+ grep -rn "console\.\|logger\.\|log(" --include="*.ts" src/domain/ src/services/
104
+
105
+ # Date/time access (non-deterministic)
106
+ grep -rn "new Date(\|Date\.now(\|performance\.now(" --include="*.ts" src/domain/
107
+
108
+ # Random number generation
109
+ grep -rn "Math\.random(\|crypto\.random" --include="*.ts" src/domain/
110
+
111
+ # File system access
112
+ grep -rn "fs\.\|readFile\|writeFile" --include="*.ts" src/domain/
113
+ ```
114
+
115
+ ### Detecting External Dependencies
116
+
117
+ ```bash
118
+ # Network calls
119
+ grep -rn "fetch(\|axios\.\|http\.\|https\." --include="*.ts" src/domain/
120
+
121
+ # Database calls
122
+ grep -rn "db\.\|prisma\.\|mongoose\.\|sequelize\." --include="*.ts" src/domain/
123
+
124
+ # Environment access
125
+ grep -rn "process\.env\|import\.meta\.env" --include="*.ts" src/domain/
126
+ ```
127
+
128
+ ---
129
+
130
+ ## Type Safety Violations
131
+
132
+ ### Detecting Any Types
133
+
134
+ ```bash
135
+ # Explicit any
136
+ grep -rn ": any\|<any>\|as any" --include="*.ts" src/
137
+
138
+ # Implicit any (missing return types)
139
+ grep -rn "function \w+(" --include="*.ts" src/ | grep -v "): \w"
140
+
141
+ # Type assertions without guards
142
+ grep -rn "as \w+\[" --include="*.ts" src/ | grep -v "if.*typeof\|if.*instanceof"
143
+ ```
144
+
145
+ ### Detecting Non-Exhaustive Patterns
146
+
147
+ ```bash
148
+ # Switch without default that might need exhaustive check
149
+ grep -rn "switch.*{" --include="*.ts" -A 20 | grep -v "default:"
150
+
151
+ # If chains without else
152
+ grep -rn "if.*===.*'\\|if.*===.*\"" --include="*.ts" -A 5 | grep -v "else"
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Resource Cleanup Violations
158
+
159
+ ### Detecting Missing Cleanup
160
+
161
+ ```bash
162
+ # File opens without close
163
+ grep -rn "fs\.open\|createReadStream\|createWriteStream" --include="*.ts" -A 10 | grep -v "close\|finally"
164
+
165
+ # Connection acquires without release
166
+ grep -rn "\.connect(\|getConnection(\|acquire(" --include="*.ts" -A 10 | grep -v "release\|close\|finally"
167
+
168
+ # Event listeners without removal
169
+ grep -rn "\.on(\|addEventListener(" --include="*.ts" | grep -v "removeEventListener\|off("
170
+ ```
171
+
172
+ ### Detecting Timer Leaks
173
+
174
+ ```bash
175
+ # setInterval without clearInterval
176
+ grep -rn "setInterval(" --include="*.ts" -B 5 -A 5 | grep -v "clearInterval"
177
+
178
+ # setTimeout in loops without clear
179
+ grep -rn "setTimeout(" --include="*.ts" | grep -v "clearTimeout"
180
+ ```
181
+
182
+ ---
183
+
184
+ ## API Consistency Violations
185
+
186
+ ### Detecting Mixed Patterns
187
+
188
+ ```bash
189
+ # Functions returning different error patterns in same file
190
+ grep -rn "return null\|throw new\|return Err\|return { ok:" --include="*.ts" src/services/
191
+
192
+ # Mixed async patterns
193
+ grep -rn "callback\|\.then(\|async " --include="*.ts" src/services/
194
+ ```
195
+
196
+ ### Detecting Missing Awaits
197
+
198
+ ```bash
199
+ # Async calls without await (potential fire-and-forget)
200
+ grep -rn "async function" --include="*.ts" -A 20 | grep -E "^\s+\w+\.\w+\(" | grep -v "await\|return"
201
+ ```
202
+
203
+ ---
204
+
205
+ ## Architecture Violations
206
+
207
+ ### Detecting Layer Boundary Violations
208
+
209
+ ```bash
210
+ # Domain importing from infrastructure
211
+ grep -rn "from.*\/infrastructure\|from.*\/adapters\|from.*\/repositories" --include="*.ts" src/domain/
212
+
213
+ # Controllers containing business logic (too many lines)
214
+ wc -l src/controllers/*.ts | sort -n | tail -10
215
+
216
+ # Services importing from controllers
217
+ grep -rn "from.*\/controllers\|from.*\/routes\|from.*\/handlers" --include="*.ts" src/services/
218
+ ```
219
+
220
+ ### Detecting Missing Documentation
221
+
222
+ ```bash
223
+ # Public functions without JSDoc
224
+ grep -rn "^export function\|^export async function" --include="*.ts" -B 1 | grep -v "/\*\*\|//\|@"
225
+
226
+ # Classes without documentation
227
+ grep -rn "^export class" --include="*.ts" -B 1 | grep -v "/\*\*\|//"
228
+ ```
229
+
230
+ ---
231
+
232
+ ## Automated Detection Script
233
+
234
+ ```bash
235
+ #!/bin/bash
236
+ # pattern-check.sh - Detect common pattern violations
237
+
238
+ echo "=== Pattern Violation Detection ==="
239
+ echo ""
240
+
241
+ echo "1. Checking for throws in business logic..."
242
+ THROWS=$(grep -rn "throw new\|throw Error" --include="*.ts" src/services/ src/domain/ 2>/dev/null | wc -l)
243
+ echo " Found: $THROWS potential violations"
244
+
245
+ echo ""
246
+ echo "2. Checking for any types..."
247
+ ANYS=$(grep -rn ": any\|<any>\|as any" --include="*.ts" src/ 2>/dev/null | wc -l)
248
+ echo " Found: $ANYS uses of 'any'"
249
+
250
+ echo ""
251
+ echo "3. Checking for array mutations..."
252
+ MUTATIONS=$(grep -rn "\.push(\|\.pop(\|\.splice(\|\.sort(" --include="*.ts" src/ 2>/dev/null | wc -l)
253
+ echo " Found: $MUTATIONS potential array mutations"
254
+
255
+ echo ""
256
+ echo "4. Checking for internal instantiation..."
257
+ INTERNAL=$(grep -rn "private.*= new\|this\.\w* = new" --include="*.ts" src/ 2>/dev/null | wc -l)
258
+ echo " Found: $INTERNAL internal instantiations (DI violations)"
259
+
260
+ echo ""
261
+ echo "5. Checking for console.log in business logic..."
262
+ CONSOLE=$(grep -rn "console\." --include="*.ts" src/services/ src/domain/ 2>/dev/null | wc -l)
263
+ echo " Found: $CONSOLE console statements"
264
+
265
+ echo ""
266
+ echo "=== Summary ==="
267
+ TOTAL=$((THROWS + ANYS + MUTATIONS + INTERNAL + CONSOLE))
268
+ echo "Total potential violations: $TOTAL"
269
+ ```
270
+
271
+ ---
272
+
273
+ ## IDE/Editor Integration
274
+
275
+ ### ESLint Rules
276
+
277
+ ```json
278
+ {
279
+ "rules": {
280
+ "@typescript-eslint/no-explicit-any": "error",
281
+ "@typescript-eslint/explicit-function-return-type": "error",
282
+ "@typescript-eslint/no-floating-promises": "error",
283
+ "@typescript-eslint/no-throw-literal": "error",
284
+ "no-console": ["error", { "allow": ["warn", "error"] }],
285
+ "no-param-reassign": "error"
286
+ }
287
+ }
288
+ ```
289
+
290
+ ### TypeScript Compiler Options
291
+
292
+ ```json
293
+ {
294
+ "compilerOptions": {
295
+ "strict": true,
296
+ "noImplicitAny": true,
297
+ "strictNullChecks": true,
298
+ "noImplicitReturns": true,
299
+ "noFallthroughCasesInSwitch": true,
300
+ "noUncheckedIndexedAccess": true
301
+ }
302
+ }
303
+ ```