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,308 @@
1
+ # Self-Review Violations
2
+
3
+ Common anti-patterns and code violations organized by the 9 pillars.
4
+
5
+ ---
6
+
7
+ ## Self-Review Process Violations
8
+
9
+ | Violation | Problem | Fix |
10
+ |-----------|---------|-----|
11
+ | Skipping pillars | Incomplete review | Check all 9 pillars |
12
+ | Ignoring P0/P1 issues | Returning broken code | Fix before returning |
13
+ | Surface-level review | Missing deep issues | Review each pillar thoroughly |
14
+ | No evidence | Unverifiable claims | Reference specific code |
15
+ | Deferring critical fixes | Technical debt | Fix CRITICAL/HIGH immediately |
16
+
17
+ ---
18
+
19
+ ## P0 Pillars (MUST Fix)
20
+
21
+ ### 1. Design Violations
22
+
23
+ **Question**: Does the implementation fit the architecture?
24
+
25
+ **Red Flags**:
26
+ ```typescript
27
+ // BAD: Direct database access in controller
28
+ class UserController {
29
+ async getUser(req, res) {
30
+ const user = await db.query('SELECT * FROM users WHERE id = ?', [req.params.id]);
31
+ }
32
+ }
33
+
34
+ // BAD: God class doing everything
35
+ class ApplicationManager {
36
+ createUser() {}
37
+ processPayment() {}
38
+ sendEmail() {}
39
+ generateReport() {}
40
+ // 500 more methods...
41
+ }
42
+
43
+ // BAD: Circular dependencies
44
+ // a.ts imports b.ts, b.ts imports a.ts
45
+ ```
46
+
47
+ **Checklist**:
48
+ - [ ] Follows existing patterns in codebase
49
+ - [ ] Respects layer boundaries (controller/service/repository)
50
+ - [ ] Dependencies injected, not instantiated
51
+ - [ ] Not over-engineering (YAGNI)
52
+ - [ ] Not under-engineering (technical debt)
53
+ - [ ] Interactions with other components are sound
54
+
55
+ ---
56
+
57
+ ### 2. Functionality Violations
58
+
59
+ **Question**: Does the code work as intended?
60
+
61
+ **Red Flags**:
62
+ ```typescript
63
+ // BAD: Missing null check
64
+ function getDisplayName(user: User) {
65
+ return user.profile.displayName; // user.profile could be undefined!
66
+ }
67
+
68
+ // BAD: Race condition
69
+ let balance = await getBalance();
70
+ if (balance >= amount) {
71
+ await withdraw(amount); // Balance could change between check and withdraw!
72
+ }
73
+
74
+ // BAD: Off-by-one error
75
+ for (let i = 0; i <= array.length; i++) { // Should be < not <=
76
+ process(array[i]);
77
+ }
78
+ ```
79
+
80
+ **Checklist**:
81
+ - [ ] Happy path works correctly
82
+ - [ ] Edge cases handled (null, empty, boundary values)
83
+ - [ ] Error cases handled gracefully
84
+ - [ ] No race conditions in concurrent code
85
+ - [ ] No infinite loops or recursion without base case
86
+ - [ ] State mutations are intentional and correct
87
+
88
+ ---
89
+
90
+ ### 3. Security Violations
91
+
92
+ **Question**: Are there security vulnerabilities?
93
+
94
+ **Red Flags**:
95
+ ```typescript
96
+ // BAD: SQL injection
97
+ const query = `SELECT * FROM users WHERE email = '${email}'`;
98
+
99
+ // BAD: Command injection
100
+ exec(`ls ${userInput}`);
101
+
102
+ // BAD: Hardcoded secret
103
+ const API_KEY = 'sk-abc123xyz789';
104
+
105
+ // BAD: Missing auth check
106
+ app.delete('/api/users/:id', async (req, res) => {
107
+ await deleteUser(req.params.id); // No auth!
108
+ });
109
+ ```
110
+
111
+ **Checklist**:
112
+ - [ ] No SQL/NoSQL injection
113
+ - [ ] No command injection
114
+ - [ ] No XSS vulnerabilities
115
+ - [ ] Input validated at boundaries
116
+ - [ ] No hardcoded secrets
117
+ - [ ] Authentication/authorization checked
118
+ - [ ] Sensitive data not logged
119
+
120
+ ---
121
+
122
+ ## P1 Pillars (SHOULD Fix)
123
+
124
+ ### 4. Complexity Violations
125
+
126
+ **Question**: Can a reader understand this in 5 minutes?
127
+
128
+ **Red Flags**:
129
+ ```typescript
130
+ // BAD: Deep nesting
131
+ if (a) {
132
+ if (b) {
133
+ if (c) {
134
+ if (d) {
135
+ if (e) {
136
+ // actual logic buried here
137
+ }
138
+ }
139
+ }
140
+ }
141
+ }
142
+
143
+ // BAD: Magic numbers
144
+ setTimeout(callback, 86400000);
145
+ if (status === 3) { }
146
+ ```
147
+
148
+ **Checklist**:
149
+ - [ ] Functions are < 50 lines
150
+ - [ ] Nesting depth < 4 levels
151
+ - [ ] Cyclomatic complexity < 10
152
+ - [ ] No magic numbers/strings
153
+ - [ ] Single responsibility per function
154
+ - [ ] Complex logic has explanatory comments
155
+
156
+ ---
157
+
158
+ ### 5. Error Handling Violations
159
+
160
+ **Question**: Are errors handled explicitly and consistently?
161
+
162
+ **Red Flags**:
163
+ ```typescript
164
+ // BAD: Swallowed exception
165
+ try {
166
+ await riskyOperation();
167
+ } catch (e) {
168
+ // silently ignored!
169
+ }
170
+
171
+ // BAD: Generic error message
172
+ throw new Error('Something went wrong');
173
+
174
+ // BAD: Resource leak on error
175
+ const file = await openFile(path);
176
+ await processFile(file); // If this throws, file never closed!
177
+ await file.close();
178
+ ```
179
+
180
+ **Checklist**:
181
+ - [ ] Errors are caught and handled appropriately
182
+ - [ ] Error messages are helpful (not generic)
183
+ - [ ] No silent failures (swallowed exceptions)
184
+ - [ ] Consistent error handling pattern (Result types or throws)
185
+ - [ ] Resources cleaned up in error paths
186
+ - [ ] Errors logged with context
187
+
188
+ ---
189
+
190
+ ### 6. Tests Violations
191
+
192
+ **Question**: Is the new functionality tested?
193
+
194
+ **Red Flags**:
195
+ ```typescript
196
+ // BAD: No tests for new function
197
+ export function calculateDiscount(price, type) {
198
+ // 20 lines of logic with no tests
199
+ }
200
+
201
+ // BAD: Test that doesn't verify behavior
202
+ it('creates user', async () => {
203
+ await createUser(data);
204
+ expect(mockDb.insert).toHaveBeenCalled(); // Only checks mock was called
205
+ });
206
+
207
+ // BAD: Missing edge case tests
208
+ describe('divide', () => {
209
+ it('divides numbers', () => {
210
+ expect(divide(10, 2)).toBe(5);
211
+ });
212
+ // No test for divide by zero!
213
+ });
214
+ ```
215
+
216
+ **Checklist**:
217
+ - [ ] New code has corresponding tests
218
+ - [ ] Tests cover happy path
219
+ - [ ] Tests cover error cases
220
+ - [ ] Tests cover edge cases
221
+ - [ ] Tests are not brittle (test behavior, not implementation)
222
+ - [ ] Tests would fail if code breaks
223
+
224
+ ---
225
+
226
+ ## P2 Pillars (FIX if Time Permits)
227
+
228
+ ### 7. Naming Violations
229
+
230
+ **Question**: Are names clear and descriptive?
231
+
232
+ **Red Flags**:
233
+ ```typescript
234
+ // BAD: Cryptic names
235
+ const d = new Date();
236
+ const r = items.filter(i => i.t > d);
237
+ const x = r.reduce((a, b) => a + b.p, 0);
238
+
239
+ // BAD: Misleading name
240
+ function getUser(id) {
241
+ return db.users.findAll(); // Returns ALL users, not one!
242
+ }
243
+ ```
244
+
245
+ **Checklist**:
246
+ - [ ] Variable names describe content
247
+ - [ ] Function names describe action
248
+ - [ ] No single-letter names (except loop indices)
249
+ - [ ] No abbreviations that aren't universal
250
+ - [ ] Consistent naming style (camelCase/snake_case)
251
+
252
+ ---
253
+
254
+ ### 8. Consistency Violations
255
+
256
+ **Question**: Does this match existing patterns?
257
+
258
+ **Red Flags**:
259
+ ```typescript
260
+ // BAD: Different style than rest of codebase
261
+ // Existing code uses Result types
262
+ function existingFunction(): Result<User, Error> { }
263
+
264
+ // Your code throws instead
265
+ function yourFunction(): User {
266
+ throw new Error('...'); // Inconsistent!
267
+ }
268
+ ```
269
+
270
+ **Checklist**:
271
+ - [ ] Follows existing code style
272
+ - [ ] Uses same patterns as surrounding code
273
+ - [ ] Error handling matches project conventions
274
+ - [ ] Import organization matches existing files
275
+ - [ ] No unnecessary divergence from norms
276
+
277
+ ---
278
+
279
+ ### 9. Documentation Violations
280
+
281
+ **Question**: Will others understand this code?
282
+
283
+ **Red Flags**:
284
+ ```typescript
285
+ // BAD: Missing docs on complex function
286
+ export function calculateProratedBilling(plan, start, end, previous) {
287
+ // 50 lines of complex billing logic with no explanation
288
+ }
289
+
290
+ // BAD: Outdated comment
291
+ // Returns user's full name
292
+ function getDisplayName(user) {
293
+ return user.username; // Actually returns username!
294
+ }
295
+ ```
296
+
297
+ **Checklist**:
298
+ - [ ] Complex logic has explanatory comments
299
+ - [ ] Public APIs have JSDoc/docstrings
300
+ - [ ] README updated if behavior changes
301
+ - [ ] No outdated comments
302
+ - [ ] Comments explain "why", not "what"
303
+
304
+ ---
305
+
306
+ ## Quick Reference
307
+
308
+ See [patterns.md](patterns.md) for correct patterns and [report-template.md](report-template.md) for self-review format.
@@ -0,0 +1,183 @@
1
+ ---
2
+ name: test-patterns
3
+ description: This skill should be used when the user asks to "write tests", "fix failing tests", "improve test coverage", "add integration tests", "debug a flaky test", or reviews test quality. Provides behavior-focused testing patterns, coverage analysis, and detection of brittle test anti-patterns like implementation coupling and non-deterministic assertions.
4
+ user-invocable: false
5
+ allowed-tools: Read, Grep, Glob, AskUserQuestion
6
+ activation:
7
+ file-patterns:
8
+ - "**/*.test.*"
9
+ - "**/*.spec.*"
10
+ - "**/test/**"
11
+ - "**/tests/**"
12
+ - "**/__tests__/**"
13
+ exclude:
14
+ - "node_modules/**"
15
+ ---
16
+
17
+ # Test Patterns
18
+
19
+ ## Iron Law
20
+
21
+ > **TESTS VALIDATE BEHAVIOR, NOT IMPLEMENTATION**
22
+ >
23
+ > A test should fail when behavior breaks, not when implementation changes. If refactoring
24
+ > breaks tests without changing behavior, the tests are wrong. Mock boundaries, not internals.
25
+ > Test the contract, not the code. If tests are hard to write, the design is wrong — fix the
26
+ > architecture, not the tests.
27
+
28
+ ---
29
+
30
+ ## Test Design Red Flags
31
+
32
+ ### 1. Complex Setup
33
+
34
+ **RED FLAG**: Test setup >10 lines means the design is wrong.
35
+
36
+ ```typescript
37
+ // VIOLATION: Too many dependencies
38
+ beforeEach(async () => {
39
+ mockDb = new MockDatabase();
40
+ await mockDb.connect();
41
+ mockCache = new MockCache();
42
+ // ... 10+ more lines
43
+ service = new UserService(mockDb, mockCache, mockLogger, mockConfig);
44
+ });
45
+
46
+ // CORRECT: Simple setup
47
+ it('should return Ok with valid data', () => {
48
+ const result = createUser({ name: 'test', email: 'test@example.com' });
49
+ expect(result.ok).toBe(true);
50
+ });
51
+ ```
52
+
53
+ **Detection**: `beforeEach` >10 lines, multiple mocks, async setup, database seeding
54
+
55
+ ### 2. Repetitive Boilerplate
56
+
57
+ **RED FLAG**: Same pattern repeated >3 times means the API is wrong.
58
+
59
+ ```typescript
60
+ // VIOLATION: Try/catch everywhere
61
+ try { await api.createUser(data); fail(); } catch (e) { expect(e.status).toBe(400); }
62
+
63
+ // CORRECT: Result types eliminate repetition
64
+ const result = createUser(invalidData);
65
+ expect(result.ok).toBe(false);
66
+ expect(result.error.type).toBe('ValidationError');
67
+ ```
68
+
69
+ ### 3. Difficult Mocking
70
+
71
+ **RED FLAG**: Mock setup >20 lines means dependencies are wrong.
72
+
73
+ ```typescript
74
+ // VIOLATION: Nested mock structures
75
+ mockDb = { transaction: jest.fn(), orders: { create: jest.fn(), update: jest.fn() } };
76
+
77
+ // CORRECT: Pure functions need no mocking
78
+ const result = processOrder(order);
79
+ expect(result.ok).toBe(true);
80
+ ```
81
+
82
+ ### 4. Implementation Testing
83
+
84
+ **RED FLAG**: Testing internals means tests are fragile.
85
+
86
+ ```typescript
87
+ // VIOLATION: Spying on private methods
88
+ const spy = jest.spyOn(cart as any, 'updateTotal');
89
+ expect(spy).toHaveBeenCalled();
90
+
91
+ // CORRECT: Test observable behavior
92
+ expect(cart.getTotal()).toBe(10);
93
+ ```
94
+
95
+ ---
96
+
97
+ ## Coverage & Review
98
+
99
+ ### Coverage Issues
100
+
101
+ - **Untested new code**: New functions/branches without corresponding tests
102
+ - **Missing edge cases**: Only happy path tested, no error paths
103
+ - **Missing error paths**: `throw`/`reject` in source without matching test assertions
104
+
105
+ ### Test Quality Issues
106
+
107
+ - **Brittle tests**: Testing HOW (mock call verification) not WHAT (outcome)
108
+ - **Unclear test names**: `it('test1')` instead of `it('validates email format on creation')`
109
+ - **Missing AAA structure**: Mixed arrange/act/assert without clear separation
110
+
111
+ ### Mocking Issues
112
+
113
+ - **Over-mocking**: Everything mocked, nothing actually tested
114
+ - **Mocking third-party internals**: Mock at your own interface boundary instead
115
+
116
+ ---
117
+
118
+ ## Severity Guidelines
119
+
120
+ | Severity | Criteria |
121
+ |----------|----------|
122
+ | **CRITICAL** | Tests pass but don't verify behavior; critical paths untested; tests mock everything |
123
+ | **HIGH** | Missing error path coverage; flaky tests; extremely slow (>10s); >10 line setup |
124
+ | **MEDIUM** | Some edge cases missing; weak assertions; unclear structure |
125
+ | **LOW** | Organization could improve; naming could be clearer |
126
+
127
+ ---
128
+
129
+ ## Test Suite Safety
130
+
131
+ ```typescript
132
+ // vitest.config.ts / jest.config.js
133
+ { fileParallelism: false, maxWorkers: 1, testTimeout: 10000 }
134
+ ```
135
+
136
+ ```bash
137
+ NODE_OPTIONS="--max-old-space-size=512" npm test
138
+ ```
139
+
140
+ ---
141
+
142
+ ## Extended References
143
+
144
+ For comprehensive examples and detection patterns:
145
+
146
+ | Reference | Contents |
147
+ |-----------|----------|
148
+ | `references/violations.md` | Full violation examples for all categories |
149
+ | `references/patterns.md` | Correct test patterns and organization |
150
+ | `references/detection.md` | Bash commands for automated detection |
151
+ | `references/report-template.md` | Full report format for documenting issues |
152
+
153
+ ---
154
+
155
+ ## Quality Gates
156
+
157
+ Tests pass design review when:
158
+ - [ ] Setup code <10 lines per test file
159
+ - [ ] No repetitive try/catch or error handling patterns
160
+ - [ ] Mocking requires <5 lines of setup
161
+ - [ ] No spying on private methods or internal state
162
+ - [ ] Tests verify behavior, not implementation details
163
+ - [ ] Pure business logic testable without mocks
164
+ - [ ] New code has corresponding tests
165
+ - [ ] All branches covered (happy path + errors + edge cases)
166
+ - [ ] Test names describe expected behavior
167
+ - [ ] Tests follow Arrange-Act-Assert structure
168
+ - [ ] No real delays (use mocked timers)
169
+ - [ ] No flaky patterns (race conditions, timing dependencies)
170
+
171
+ ---
172
+
173
+ ## Review Checklist
174
+
175
+ - [ ] New code has corresponding tests
176
+ - [ ] All branches covered (happy path + errors + edge cases)
177
+ - [ ] Tests verify behavior, not implementation
178
+ - [ ] Test names describe expected behavior
179
+ - [ ] Tests follow Arrange-Act-Assert structure
180
+ - [ ] No real delays (use mocked timers)
181
+ - [ ] Assertions are specific and meaningful
182
+ - [ ] Mocking limited to boundaries (not internals)
183
+ - [ ] No flaky patterns (race conditions, timing dependencies)
@@ -0,0 +1,149 @@
1
+ # Test Issue Detection
2
+
3
+ Commands and patterns for detecting test quality issues.
4
+
5
+ ---
6
+
7
+ ## Coverage Detection
8
+
9
+ ### Find Untested Functions
10
+
11
+ ```bash
12
+ # List exported functions in source
13
+ grep -rn "export function\|export async function" --include="*.ts" src/ | cut -d: -f1,3 | sort
14
+
15
+ # List tested functions
16
+ grep -rn "describe\|it\(" --include="*.test.ts" | grep -oE "'[^']+'" | sort -u
17
+
18
+ # Compare to find gaps (manual comparison needed)
19
+ ```
20
+
21
+ ### Find Missing Error Tests
22
+
23
+ ```bash
24
+ # Count error-throwing code in source
25
+ grep -rn "throw\|reject\|Error" --include="*.ts" src/ | grep -v test | wc -l
26
+
27
+ # Count error test assertions
28
+ grep -rn "rejects.toThrow\|toThrow\|toThrowError" --include="*.test.ts" | wc -l
29
+
30
+ # Large discrepancy indicates missing error tests
31
+ ```
32
+
33
+ ---
34
+
35
+ ## Quality Detection
36
+
37
+ ### Tests Without Assertions
38
+
39
+ ```bash
40
+ # Find test blocks that may lack assertions
41
+ grep -rn "it\(.*=>" --include="*.test.ts" -A20 | grep -v "expect" | head -50
42
+
43
+ # Find empty test blocks
44
+ grep -rn "it\(.*{\s*}\)" --include="*.test.ts"
45
+ ```
46
+
47
+ ### Weak Assertions
48
+
49
+ ```bash
50
+ # Find overly permissive assertions
51
+ grep -rn "toBeDefined\|toBeTruthy\|not.toBeNull\|not.toBeUndefined" --include="*.test.ts"
52
+
53
+ # Count for comparison with strong assertions
54
+ grep -rn "toEqual\|toMatchObject\|toHaveLength\|toBe(" --include="*.test.ts" | wc -l
55
+ ```
56
+
57
+ ### Implementation Testing
58
+
59
+ ```bash
60
+ # Find tests that verify mock calls (may indicate implementation testing)
61
+ grep -rn "toHaveBeenCalledWith\|toHaveBeenCalled\|toHaveBeenCalledTimes" --include="*.test.ts"
62
+ ```
63
+
64
+ ---
65
+
66
+ ## Design Detection
67
+
68
+ ### Slow Tests
69
+
70
+ ```bash
71
+ # Find tests with long timeouts (>5000ms)
72
+ grep -rn "}, [0-9][0-9][0-9][0-9][0-9])" --include="*.test.ts"
73
+
74
+ # Find real delays in tests
75
+ grep -rn "setTimeout\|sleep\|delay" --include="*.test.ts"
76
+ ```
77
+
78
+ ### Complex Setup
79
+
80
+ ```bash
81
+ # Find tests with many mock objects
82
+ grep -rn "jest.fn\|sinon.stub\|mock" --include="*.test.ts" | cut -d: -f1 | uniq -c | sort -rn | head -10
83
+
84
+ # Find long beforeEach blocks
85
+ grep -rn "beforeEach" --include="*.test.ts" -A30 | head -100
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Mocking Detection
91
+
92
+ ### Over-Mocking
93
+
94
+ ```bash
95
+ # Count mocks per test file
96
+ for f in $(find . -name "*.test.ts" -type f); do
97
+ count=$(grep -c "jest.fn\|mock" "$f" 2>/dev/null || echo 0)
98
+ echo "$count $f"
99
+ done | sort -rn | head -20
100
+
101
+ # Files with >20 mocks may be over-mocked
102
+ ```
103
+
104
+ ### Third-Party Library Mocking
105
+
106
+ ```bash
107
+ # Find jest.mock of node_modules
108
+ grep -rn "jest.mock\(['\"]" --include="*.test.ts" | grep -v "\./" | grep -v "\.\./"
109
+
110
+ # These should be wrapped in interfaces instead
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Summary Report Script
116
+
117
+ ```bash
118
+ #!/bin/bash
119
+ # test-health-check.sh - Quick test quality assessment
120
+
121
+ echo "=== Test Health Check ==="
122
+ echo ""
123
+
124
+ echo "Coverage Indicators:"
125
+ echo " Source functions: $(grep -rn 'export function' --include='*.ts' src/ 2>/dev/null | wc -l)"
126
+ echo " Test blocks: $(grep -rn 'it\(' --include='*.test.ts' 2>/dev/null | wc -l)"
127
+ echo ""
128
+
129
+ echo "Quality Indicators:"
130
+ echo " Strong assertions: $(grep -rn 'toEqual\|toMatchObject' --include='*.test.ts' 2>/dev/null | wc -l)"
131
+ echo " Weak assertions: $(grep -rn 'toBeDefined\|toBeTruthy' --include='*.test.ts' 2>/dev/null | wc -l)"
132
+ echo ""
133
+
134
+ echo "Design Indicators:"
135
+ echo " Long timeouts: $(grep -rn '}, [0-9]\{5,\})' --include='*.test.ts' 2>/dev/null | wc -l)"
136
+ echo " Mock count: $(grep -rn 'jest.fn\|mock' --include='*.test.ts' 2>/dev/null | wc -l)"
137
+ ```
138
+
139
+ ---
140
+
141
+ ## Test Coverage Guidelines
142
+
143
+ | Code Type | Required Coverage | Test Type |
144
+ |-----------|-------------------|-----------|
145
+ | Business logic | 90%+ | Unit tests |
146
+ | API endpoints | 80%+ | Integration tests |
147
+ | UI components | 70%+ | Component tests |
148
+ | Utilities | 100% | Unit tests |
149
+ | Error paths | 100% | Unit tests |