devflow-kit 0.9.0 → 1.1.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 (414) hide show
  1. package/CHANGELOG.md +197 -29
  2. package/LICENSE +1 -1
  3. package/README.md +185 -309
  4. package/dist/cli.js +7 -1
  5. package/dist/commands/ambient.d.ts +18 -0
  6. package/dist/commands/ambient.js +136 -0
  7. package/dist/commands/init.d.ts +23 -0
  8. package/dist/commands/init.js +393 -571
  9. package/dist/commands/list.d.ts +3 -0
  10. package/dist/commands/list.js +20 -0
  11. package/dist/commands/memory.d.ts +22 -0
  12. package/dist/commands/memory.js +175 -0
  13. package/dist/commands/uninstall.d.ts +10 -0
  14. package/dist/commands/uninstall.js +418 -78
  15. package/dist/plugins.d.ts +46 -0
  16. package/dist/plugins.js +169 -0
  17. package/dist/utils/cli.d.ts +5 -0
  18. package/dist/utils/cli.js +14 -0
  19. package/dist/utils/installer.d.ts +41 -0
  20. package/dist/utils/installer.js +177 -0
  21. package/dist/utils/paths.d.ts +10 -0
  22. package/dist/utils/paths.js +23 -3
  23. package/dist/utils/post-install.d.ts +80 -0
  24. package/dist/utils/post-install.js +508 -0
  25. package/dist/utils/safe-delete-install.d.ts +29 -0
  26. package/dist/utils/safe-delete-install.js +191 -0
  27. package/dist/utils/safe-delete.d.ts +12 -0
  28. package/dist/utils/safe-delete.js +83 -0
  29. package/package.json +18 -8
  30. package/plugins/devflow-ambient/.claude-plugin/plugin.json +7 -0
  31. package/plugins/devflow-ambient/README.md +49 -0
  32. package/plugins/devflow-ambient/commands/ambient.md +110 -0
  33. package/plugins/devflow-ambient/skills/ambient-router/SKILL.md +89 -0
  34. package/plugins/devflow-ambient/skills/ambient-router/references/skill-catalog.md +64 -0
  35. package/plugins/devflow-audit-claude/.claude-plugin/plugin.json +7 -0
  36. package/plugins/devflow-audit-claude/README.md +46 -0
  37. package/plugins/devflow-audit-claude/agents/claude-md-auditor.md +134 -0
  38. package/plugins/devflow-audit-claude/commands/audit-claude.md +85 -0
  39. package/plugins/devflow-code-review/.claude-plugin/plugin.json +31 -0
  40. package/plugins/devflow-code-review/README.md +73 -0
  41. package/plugins/devflow-code-review/agents/git.md +272 -0
  42. package/plugins/devflow-code-review/agents/reviewer.md +119 -0
  43. package/plugins/devflow-code-review/agents/synthesizer.md +204 -0
  44. package/plugins/devflow-code-review/commands/code-review-teams.md +262 -0
  45. package/plugins/devflow-code-review/commands/code-review.md +141 -0
  46. package/plugins/devflow-code-review/skills/accessibility/SKILL.md +229 -0
  47. package/plugins/devflow-code-review/skills/accessibility/references/detection.md +171 -0
  48. package/plugins/devflow-code-review/skills/accessibility/references/patterns.md +670 -0
  49. package/plugins/devflow-code-review/skills/accessibility/references/violations.md +419 -0
  50. package/plugins/devflow-code-review/skills/agent-teams/SKILL.md +124 -0
  51. package/plugins/devflow-code-review/skills/agent-teams/references/cleanup.md +104 -0
  52. package/plugins/devflow-code-review/skills/agent-teams/references/communication.md +122 -0
  53. package/plugins/devflow-code-review/skills/agent-teams/references/team-patterns.md +217 -0
  54. package/plugins/devflow-code-review/skills/architecture-patterns/SKILL.md +153 -0
  55. package/plugins/devflow-code-review/skills/architecture-patterns/references/detection.md +337 -0
  56. package/plugins/devflow-code-review/skills/architecture-patterns/references/patterns.md +873 -0
  57. package/plugins/devflow-code-review/skills/architecture-patterns/references/violations.md +575 -0
  58. package/plugins/devflow-code-review/skills/complexity-patterns/SKILL.md +143 -0
  59. package/plugins/devflow-code-review/skills/complexity-patterns/references/detection.md +264 -0
  60. package/plugins/devflow-code-review/skills/complexity-patterns/references/patterns.md +487 -0
  61. package/plugins/devflow-code-review/skills/complexity-patterns/references/violations.md +361 -0
  62. package/plugins/devflow-code-review/skills/consistency-patterns/SKILL.md +140 -0
  63. package/plugins/devflow-code-review/skills/consistency-patterns/references/detection.md +207 -0
  64. package/plugins/devflow-code-review/skills/consistency-patterns/references/patterns.md +202 -0
  65. package/plugins/devflow-code-review/skills/consistency-patterns/references/violations.md +213 -0
  66. package/plugins/devflow-code-review/skills/database-patterns/SKILL.md +134 -0
  67. package/plugins/devflow-code-review/skills/database-patterns/references/detection.md +208 -0
  68. package/plugins/devflow-code-review/skills/database-patterns/references/patterns.md +394 -0
  69. package/plugins/devflow-code-review/skills/database-patterns/references/violations.md +332 -0
  70. package/plugins/devflow-code-review/skills/dependencies-patterns/SKILL.md +141 -0
  71. package/plugins/devflow-code-review/skills/dependencies-patterns/references/detection.md +181 -0
  72. package/plugins/devflow-code-review/skills/dependencies-patterns/references/patterns.md +225 -0
  73. package/plugins/devflow-code-review/skills/dependencies-patterns/references/violations.md +247 -0
  74. package/plugins/devflow-code-review/skills/documentation-patterns/SKILL.md +125 -0
  75. package/plugins/devflow-code-review/skills/documentation-patterns/references/detection.md +190 -0
  76. package/plugins/devflow-code-review/skills/documentation-patterns/references/patterns.md +189 -0
  77. package/plugins/devflow-code-review/skills/documentation-patterns/references/violations.md +163 -0
  78. package/plugins/devflow-code-review/skills/frontend-design/SKILL.md +254 -0
  79. package/plugins/devflow-code-review/skills/frontend-design/references/detection.md +184 -0
  80. package/plugins/devflow-code-review/skills/frontend-design/references/patterns.md +511 -0
  81. package/plugins/devflow-code-review/skills/frontend-design/references/violations.md +453 -0
  82. package/plugins/devflow-code-review/skills/performance-patterns/SKILL.md +154 -0
  83. package/plugins/devflow-code-review/skills/performance-patterns/references/detection.md +351 -0
  84. package/plugins/devflow-code-review/skills/performance-patterns/references/patterns.md +503 -0
  85. package/plugins/devflow-code-review/skills/performance-patterns/references/violations.md +354 -0
  86. package/plugins/devflow-code-review/skills/react/SKILL.md +276 -0
  87. package/plugins/devflow-code-review/skills/react/references/patterns.md +1331 -0
  88. package/plugins/devflow-code-review/skills/react/references/violations.md +565 -0
  89. package/plugins/devflow-code-review/skills/regression-patterns/SKILL.md +146 -0
  90. package/plugins/devflow-code-review/skills/regression-patterns/references/detection.md +237 -0
  91. package/plugins/devflow-code-review/skills/regression-patterns/references/patterns.md +226 -0
  92. package/plugins/devflow-code-review/skills/regression-patterns/references/violations.md +225 -0
  93. package/plugins/devflow-code-review/skills/review-methodology/SKILL.md +119 -0
  94. package/plugins/devflow-code-review/skills/review-methodology/references/patterns.md +186 -0
  95. package/plugins/devflow-code-review/skills/review-methodology/references/report-template.md +142 -0
  96. package/plugins/devflow-code-review/skills/review-methodology/references/violations.md +125 -0
  97. package/plugins/devflow-code-review/skills/security-patterns/SKILL.md +156 -0
  98. package/plugins/devflow-code-review/skills/security-patterns/references/detection.md +287 -0
  99. package/plugins/devflow-code-review/skills/security-patterns/references/patterns.md +507 -0
  100. package/plugins/devflow-code-review/skills/security-patterns/references/violations.md +237 -0
  101. package/plugins/devflow-code-review/skills/test-patterns/SKILL.md +183 -0
  102. package/plugins/devflow-code-review/skills/test-patterns/references/detection.md +149 -0
  103. package/plugins/devflow-code-review/skills/test-patterns/references/patterns.md +220 -0
  104. package/plugins/devflow-code-review/skills/test-patterns/references/report-template.md +108 -0
  105. package/plugins/devflow-code-review/skills/test-patterns/references/violations.md +221 -0
  106. package/plugins/devflow-core-skills/.claude-plugin/plugin.json +28 -0
  107. package/plugins/devflow-core-skills/README.md +50 -0
  108. package/plugins/devflow-core-skills/skills/accessibility/SKILL.md +229 -0
  109. package/plugins/devflow-core-skills/skills/accessibility/references/detection.md +171 -0
  110. package/plugins/devflow-core-skills/skills/accessibility/references/patterns.md +670 -0
  111. package/plugins/devflow-core-skills/skills/accessibility/references/violations.md +419 -0
  112. package/plugins/devflow-core-skills/skills/core-patterns/SKILL.md +162 -0
  113. package/plugins/devflow-core-skills/skills/core-patterns/references/checklist.md +276 -0
  114. package/plugins/devflow-core-skills/skills/core-patterns/references/code-smell-violations.md +144 -0
  115. package/plugins/devflow-core-skills/skills/core-patterns/references/detection.md +303 -0
  116. package/plugins/devflow-core-skills/skills/core-patterns/references/patterns.md +576 -0
  117. package/plugins/devflow-core-skills/skills/core-patterns/references/violations.md +369 -0
  118. package/plugins/devflow-core-skills/skills/docs-framework/SKILL.md +138 -0
  119. package/plugins/devflow-core-skills/skills/docs-framework/references/patterns.md +346 -0
  120. package/plugins/devflow-core-skills/skills/docs-framework/references/violations.md +221 -0
  121. package/plugins/devflow-core-skills/skills/frontend-design/SKILL.md +254 -0
  122. package/plugins/devflow-core-skills/skills/frontend-design/references/detection.md +184 -0
  123. package/plugins/devflow-core-skills/skills/frontend-design/references/patterns.md +511 -0
  124. package/plugins/devflow-core-skills/skills/frontend-design/references/violations.md +453 -0
  125. package/plugins/devflow-core-skills/skills/git-safety/SKILL.md +122 -0
  126. package/plugins/devflow-core-skills/skills/git-safety/references/detection.md +290 -0
  127. package/plugins/devflow-core-skills/skills/git-safety/references/patterns.md +289 -0
  128. package/plugins/devflow-core-skills/skills/git-safety/references/violations.md +18 -0
  129. package/plugins/devflow-core-skills/skills/git-workflow/SKILL.md +158 -0
  130. package/plugins/devflow-core-skills/skills/git-workflow/references/commit-patterns.md +115 -0
  131. package/plugins/devflow-core-skills/skills/git-workflow/references/commit-violations.md +77 -0
  132. package/plugins/devflow-core-skills/skills/git-workflow/references/pr-patterns.md +127 -0
  133. package/plugins/devflow-core-skills/skills/git-workflow/references/pr-violations.md +96 -0
  134. package/plugins/devflow-core-skills/skills/github-patterns/SKILL.md +153 -0
  135. package/plugins/devflow-core-skills/skills/github-patterns/references/patterns.md +572 -0
  136. package/plugins/devflow-core-skills/skills/github-patterns/references/violations.md +298 -0
  137. package/plugins/devflow-core-skills/skills/input-validation/SKILL.md +148 -0
  138. package/plugins/devflow-core-skills/skills/input-validation/references/detection.md +283 -0
  139. package/plugins/devflow-core-skills/skills/input-validation/references/patterns.md +361 -0
  140. package/plugins/devflow-core-skills/skills/input-validation/references/violations.md +224 -0
  141. package/plugins/devflow-core-skills/skills/react/SKILL.md +276 -0
  142. package/plugins/devflow-core-skills/skills/react/references/patterns.md +1331 -0
  143. package/plugins/devflow-core-skills/skills/react/references/violations.md +565 -0
  144. package/plugins/devflow-core-skills/skills/test-driven-development/SKILL.md +139 -0
  145. package/plugins/devflow-core-skills/skills/test-driven-development/references/rationalization-prevention.md +111 -0
  146. package/plugins/devflow-core-skills/skills/test-patterns/SKILL.md +183 -0
  147. package/plugins/devflow-core-skills/skills/test-patterns/references/detection.md +149 -0
  148. package/plugins/devflow-core-skills/skills/test-patterns/references/patterns.md +220 -0
  149. package/plugins/devflow-core-skills/skills/test-patterns/references/report-template.md +108 -0
  150. package/plugins/devflow-core-skills/skills/test-patterns/references/violations.md +221 -0
  151. package/plugins/devflow-core-skills/skills/typescript/SKILL.md +176 -0
  152. package/plugins/devflow-core-skills/skills/typescript/references/patterns.md +1105 -0
  153. package/plugins/devflow-core-skills/skills/typescript/references/violations.md +433 -0
  154. package/plugins/devflow-debug/.claude-plugin/plugin.json +18 -0
  155. package/plugins/devflow-debug/README.md +65 -0
  156. package/plugins/devflow-debug/agents/git.md +272 -0
  157. package/plugins/devflow-debug/commands/debug-teams.md +231 -0
  158. package/plugins/devflow-debug/commands/debug.md +160 -0
  159. package/plugins/devflow-debug/skills/agent-teams/SKILL.md +124 -0
  160. package/plugins/devflow-debug/skills/agent-teams/references/cleanup.md +104 -0
  161. package/plugins/devflow-debug/skills/agent-teams/references/communication.md +122 -0
  162. package/plugins/devflow-debug/skills/agent-teams/references/team-patterns.md +217 -0
  163. package/plugins/devflow-debug/skills/git-safety/SKILL.md +122 -0
  164. package/plugins/devflow-debug/skills/git-safety/references/detection.md +290 -0
  165. package/plugins/devflow-debug/skills/git-safety/references/patterns.md +289 -0
  166. package/plugins/devflow-debug/skills/git-safety/references/violations.md +18 -0
  167. package/plugins/devflow-implement/.claude-plugin/plugin.json +21 -0
  168. package/plugins/devflow-implement/README.md +71 -0
  169. package/plugins/devflow-implement/agents/coder.md +122 -0
  170. package/plugins/devflow-implement/agents/git.md +272 -0
  171. package/plugins/devflow-implement/agents/scrutinizer.md +80 -0
  172. package/plugins/devflow-implement/agents/shepherd.md +94 -0
  173. package/plugins/devflow-implement/agents/simplifier.md +62 -0
  174. package/plugins/devflow-implement/agents/skimmer.md +88 -0
  175. package/plugins/devflow-implement/agents/synthesizer.md +204 -0
  176. package/plugins/devflow-implement/agents/validator.md +86 -0
  177. package/plugins/devflow-implement/commands/implement-teams.md +608 -0
  178. package/plugins/devflow-implement/commands/implement.md +426 -0
  179. package/plugins/devflow-implement/skills/accessibility/SKILL.md +229 -0
  180. package/plugins/devflow-implement/skills/accessibility/references/detection.md +171 -0
  181. package/plugins/devflow-implement/skills/accessibility/references/patterns.md +670 -0
  182. package/plugins/devflow-implement/skills/accessibility/references/violations.md +419 -0
  183. package/plugins/devflow-implement/skills/agent-teams/SKILL.md +124 -0
  184. package/plugins/devflow-implement/skills/agent-teams/references/cleanup.md +104 -0
  185. package/plugins/devflow-implement/skills/agent-teams/references/communication.md +122 -0
  186. package/plugins/devflow-implement/skills/agent-teams/references/team-patterns.md +217 -0
  187. package/plugins/devflow-implement/skills/frontend-design/SKILL.md +254 -0
  188. package/plugins/devflow-implement/skills/frontend-design/references/detection.md +184 -0
  189. package/plugins/devflow-implement/skills/frontend-design/references/patterns.md +511 -0
  190. package/plugins/devflow-implement/skills/frontend-design/references/violations.md +453 -0
  191. package/plugins/devflow-implement/skills/implementation-patterns/SKILL.md +162 -0
  192. package/plugins/devflow-implement/skills/implementation-patterns/references/patterns.md +1063 -0
  193. package/plugins/devflow-implement/skills/implementation-patterns/references/violations.md +483 -0
  194. package/plugins/devflow-implement/skills/self-review/SKILL.md +149 -0
  195. package/plugins/devflow-implement/skills/self-review/references/patterns.md +405 -0
  196. package/plugins/devflow-implement/skills/self-review/references/report-template.md +253 -0
  197. package/plugins/devflow-implement/skills/self-review/references/violations.md +308 -0
  198. package/plugins/devflow-resolve/.claude-plugin/plugin.json +19 -0
  199. package/plugins/devflow-resolve/README.md +65 -0
  200. package/plugins/devflow-resolve/agents/git.md +272 -0
  201. package/plugins/devflow-resolve/agents/resolver.md +131 -0
  202. package/plugins/devflow-resolve/agents/simplifier.md +62 -0
  203. package/plugins/devflow-resolve/commands/resolve-teams.md +298 -0
  204. package/plugins/devflow-resolve/commands/resolve.md +237 -0
  205. package/plugins/devflow-resolve/skills/agent-teams/SKILL.md +124 -0
  206. package/plugins/devflow-resolve/skills/agent-teams/references/cleanup.md +104 -0
  207. package/plugins/devflow-resolve/skills/agent-teams/references/communication.md +122 -0
  208. package/plugins/devflow-resolve/skills/agent-teams/references/team-patterns.md +217 -0
  209. package/plugins/devflow-resolve/skills/implementation-patterns/SKILL.md +162 -0
  210. package/plugins/devflow-resolve/skills/implementation-patterns/references/patterns.md +1063 -0
  211. package/plugins/devflow-resolve/skills/implementation-patterns/references/violations.md +483 -0
  212. package/plugins/devflow-resolve/skills/security-patterns/SKILL.md +156 -0
  213. package/plugins/devflow-resolve/skills/security-patterns/references/detection.md +287 -0
  214. package/plugins/devflow-resolve/skills/security-patterns/references/patterns.md +507 -0
  215. package/plugins/devflow-resolve/skills/security-patterns/references/violations.md +237 -0
  216. package/plugins/devflow-self-review/.claude-plugin/plugin.json +7 -0
  217. package/plugins/devflow-self-review/README.md +38 -0
  218. package/plugins/devflow-self-review/agents/scrutinizer.md +80 -0
  219. package/plugins/devflow-self-review/agents/simplifier.md +62 -0
  220. package/plugins/devflow-self-review/agents/validator.md +86 -0
  221. package/plugins/devflow-self-review/commands/self-review.md +126 -0
  222. package/plugins/devflow-self-review/skills/core-patterns/SKILL.md +162 -0
  223. package/plugins/devflow-self-review/skills/core-patterns/references/checklist.md +276 -0
  224. package/plugins/devflow-self-review/skills/core-patterns/references/code-smell-violations.md +144 -0
  225. package/plugins/devflow-self-review/skills/core-patterns/references/detection.md +303 -0
  226. package/plugins/devflow-self-review/skills/core-patterns/references/patterns.md +576 -0
  227. package/plugins/devflow-self-review/skills/core-patterns/references/violations.md +369 -0
  228. package/plugins/devflow-self-review/skills/self-review/SKILL.md +149 -0
  229. package/plugins/devflow-self-review/skills/self-review/references/patterns.md +405 -0
  230. package/plugins/devflow-self-review/skills/self-review/references/report-template.md +253 -0
  231. package/plugins/devflow-self-review/skills/self-review/references/violations.md +308 -0
  232. package/plugins/devflow-specify/.claude-plugin/plugin.json +15 -0
  233. package/plugins/devflow-specify/README.md +46 -0
  234. package/plugins/devflow-specify/agents/skimmer.md +88 -0
  235. package/plugins/devflow-specify/agents/synthesizer.md +204 -0
  236. package/plugins/devflow-specify/commands/specify-teams.md +314 -0
  237. package/plugins/devflow-specify/commands/specify.md +179 -0
  238. package/plugins/devflow-specify/skills/agent-teams/SKILL.md +124 -0
  239. package/plugins/devflow-specify/skills/agent-teams/references/cleanup.md +104 -0
  240. package/plugins/devflow-specify/skills/agent-teams/references/communication.md +122 -0
  241. package/plugins/devflow-specify/skills/agent-teams/references/team-patterns.md +217 -0
  242. package/scripts/hooks/ambient-prompt.sh +48 -0
  243. package/scripts/hooks/background-memory-update.sh +208 -0
  244. package/scripts/hooks/ensure-memory-gitignore.sh +17 -0
  245. package/scripts/hooks/pre-compact-memory.sh +87 -0
  246. package/scripts/hooks/session-start-memory.sh +126 -0
  247. package/scripts/hooks/stop-update-memory.sh +85 -0
  248. package/shared/agents/coder.md +122 -0
  249. package/shared/agents/git.md +272 -0
  250. package/shared/agents/resolver.md +131 -0
  251. package/shared/agents/reviewer.md +119 -0
  252. package/shared/agents/scrutinizer.md +80 -0
  253. package/shared/agents/shepherd.md +94 -0
  254. package/shared/agents/simplifier.md +62 -0
  255. package/shared/agents/skimmer.md +88 -0
  256. package/shared/agents/synthesizer.md +204 -0
  257. package/shared/agents/validator.md +86 -0
  258. package/shared/skills/accessibility/SKILL.md +229 -0
  259. package/shared/skills/accessibility/references/detection.md +171 -0
  260. package/shared/skills/accessibility/references/patterns.md +670 -0
  261. package/shared/skills/accessibility/references/violations.md +419 -0
  262. package/shared/skills/agent-teams/SKILL.md +124 -0
  263. package/shared/skills/agent-teams/references/cleanup.md +104 -0
  264. package/shared/skills/agent-teams/references/communication.md +122 -0
  265. package/shared/skills/agent-teams/references/team-patterns.md +217 -0
  266. package/shared/skills/ambient-router/SKILL.md +89 -0
  267. package/shared/skills/ambient-router/references/skill-catalog.md +64 -0
  268. package/shared/skills/architecture-patterns/SKILL.md +153 -0
  269. package/shared/skills/architecture-patterns/references/detection.md +337 -0
  270. package/shared/skills/architecture-patterns/references/patterns.md +873 -0
  271. package/shared/skills/architecture-patterns/references/violations.md +575 -0
  272. package/shared/skills/complexity-patterns/SKILL.md +143 -0
  273. package/shared/skills/complexity-patterns/references/detection.md +264 -0
  274. package/shared/skills/complexity-patterns/references/patterns.md +487 -0
  275. package/shared/skills/complexity-patterns/references/violations.md +361 -0
  276. package/shared/skills/consistency-patterns/SKILL.md +140 -0
  277. package/shared/skills/consistency-patterns/references/detection.md +207 -0
  278. package/shared/skills/consistency-patterns/references/patterns.md +202 -0
  279. package/shared/skills/consistency-patterns/references/violations.md +213 -0
  280. package/shared/skills/core-patterns/SKILL.md +162 -0
  281. package/shared/skills/core-patterns/references/checklist.md +276 -0
  282. package/shared/skills/core-patterns/references/code-smell-violations.md +144 -0
  283. package/shared/skills/core-patterns/references/detection.md +303 -0
  284. package/shared/skills/core-patterns/references/patterns.md +576 -0
  285. package/shared/skills/core-patterns/references/violations.md +369 -0
  286. package/shared/skills/database-patterns/SKILL.md +134 -0
  287. package/shared/skills/database-patterns/references/detection.md +208 -0
  288. package/shared/skills/database-patterns/references/patterns.md +394 -0
  289. package/shared/skills/database-patterns/references/violations.md +332 -0
  290. package/shared/skills/dependencies-patterns/SKILL.md +141 -0
  291. package/shared/skills/dependencies-patterns/references/detection.md +181 -0
  292. package/shared/skills/dependencies-patterns/references/patterns.md +225 -0
  293. package/shared/skills/dependencies-patterns/references/violations.md +247 -0
  294. package/shared/skills/docs-framework/SKILL.md +138 -0
  295. package/shared/skills/docs-framework/references/patterns.md +346 -0
  296. package/shared/skills/docs-framework/references/violations.md +221 -0
  297. package/shared/skills/documentation-patterns/SKILL.md +125 -0
  298. package/shared/skills/documentation-patterns/references/detection.md +190 -0
  299. package/shared/skills/documentation-patterns/references/patterns.md +189 -0
  300. package/shared/skills/documentation-patterns/references/violations.md +163 -0
  301. package/shared/skills/frontend-design/SKILL.md +254 -0
  302. package/shared/skills/frontend-design/references/detection.md +184 -0
  303. package/shared/skills/frontend-design/references/patterns.md +511 -0
  304. package/shared/skills/frontend-design/references/violations.md +453 -0
  305. package/shared/skills/git-safety/SKILL.md +122 -0
  306. package/shared/skills/git-safety/references/detection.md +290 -0
  307. package/shared/skills/git-safety/references/patterns.md +289 -0
  308. package/shared/skills/git-safety/references/violations.md +18 -0
  309. package/shared/skills/git-workflow/SKILL.md +158 -0
  310. package/shared/skills/git-workflow/references/commit-patterns.md +115 -0
  311. package/shared/skills/git-workflow/references/commit-violations.md +77 -0
  312. package/shared/skills/git-workflow/references/pr-patterns.md +127 -0
  313. package/shared/skills/git-workflow/references/pr-violations.md +96 -0
  314. package/shared/skills/github-patterns/SKILL.md +153 -0
  315. package/shared/skills/github-patterns/references/patterns.md +572 -0
  316. package/shared/skills/github-patterns/references/violations.md +298 -0
  317. package/shared/skills/implementation-patterns/SKILL.md +162 -0
  318. package/shared/skills/implementation-patterns/references/patterns.md +1063 -0
  319. package/shared/skills/implementation-patterns/references/violations.md +483 -0
  320. package/shared/skills/input-validation/SKILL.md +148 -0
  321. package/shared/skills/input-validation/references/detection.md +283 -0
  322. package/shared/skills/input-validation/references/patterns.md +361 -0
  323. package/shared/skills/input-validation/references/violations.md +224 -0
  324. package/shared/skills/performance-patterns/SKILL.md +154 -0
  325. package/shared/skills/performance-patterns/references/detection.md +351 -0
  326. package/shared/skills/performance-patterns/references/patterns.md +503 -0
  327. package/shared/skills/performance-patterns/references/violations.md +354 -0
  328. package/shared/skills/react/SKILL.md +276 -0
  329. package/shared/skills/react/references/patterns.md +1331 -0
  330. package/shared/skills/react/references/violations.md +565 -0
  331. package/shared/skills/regression-patterns/SKILL.md +146 -0
  332. package/shared/skills/regression-patterns/references/detection.md +237 -0
  333. package/shared/skills/regression-patterns/references/patterns.md +226 -0
  334. package/shared/skills/regression-patterns/references/violations.md +225 -0
  335. package/shared/skills/review-methodology/SKILL.md +119 -0
  336. package/shared/skills/review-methodology/references/patterns.md +186 -0
  337. package/shared/skills/review-methodology/references/report-template.md +142 -0
  338. package/shared/skills/review-methodology/references/violations.md +125 -0
  339. package/shared/skills/security-patterns/SKILL.md +156 -0
  340. package/shared/skills/security-patterns/references/detection.md +287 -0
  341. package/shared/skills/security-patterns/references/patterns.md +507 -0
  342. package/shared/skills/security-patterns/references/violations.md +237 -0
  343. package/shared/skills/self-review/SKILL.md +149 -0
  344. package/shared/skills/self-review/references/patterns.md +405 -0
  345. package/shared/skills/self-review/references/report-template.md +253 -0
  346. package/shared/skills/self-review/references/violations.md +308 -0
  347. package/shared/skills/test-driven-development/SKILL.md +139 -0
  348. package/shared/skills/test-driven-development/references/rationalization-prevention.md +111 -0
  349. package/shared/skills/test-patterns/SKILL.md +183 -0
  350. package/shared/skills/test-patterns/references/detection.md +149 -0
  351. package/shared/skills/test-patterns/references/patterns.md +220 -0
  352. package/shared/skills/test-patterns/references/report-template.md +108 -0
  353. package/shared/skills/test-patterns/references/violations.md +221 -0
  354. package/shared/skills/typescript/SKILL.md +176 -0
  355. package/shared/skills/typescript/references/patterns.md +1105 -0
  356. package/shared/skills/typescript/references/violations.md +433 -0
  357. package/src/templates/claudeignore.template +188 -0
  358. package/src/templates/managed-settings.json +160 -0
  359. package/src/templates/settings.json +59 -0
  360. package/dist/cli.d.ts.map +0 -1
  361. package/dist/cli.js.map +0 -1
  362. package/dist/commands/init.d.ts.map +0 -1
  363. package/dist/commands/init.js.map +0 -1
  364. package/dist/commands/uninstall.d.ts.map +0 -1
  365. package/dist/commands/uninstall.js.map +0 -1
  366. package/dist/utils/git.d.ts.map +0 -1
  367. package/dist/utils/git.js.map +0 -1
  368. package/dist/utils/paths.d.ts.map +0 -1
  369. package/dist/utils/paths.js.map +0 -1
  370. package/src/claude/CLAUDE.md +0 -400
  371. package/src/claude/agents/devflow/audit-architecture.md +0 -132
  372. package/src/claude/agents/devflow/audit-complexity.md +0 -132
  373. package/src/claude/agents/devflow/audit-database.md +0 -132
  374. package/src/claude/agents/devflow/audit-dependencies.md +0 -132
  375. package/src/claude/agents/devflow/audit-documentation.md +0 -132
  376. package/src/claude/agents/devflow/audit-performance.md +0 -256
  377. package/src/claude/agents/devflow/audit-security.md +0 -259
  378. package/src/claude/agents/devflow/audit-tests.md +0 -132
  379. package/src/claude/agents/devflow/audit-typescript.md +0 -132
  380. package/src/claude/agents/devflow/brainstorm.md +0 -279
  381. package/src/claude/agents/devflow/catch-up.md +0 -345
  382. package/src/claude/agents/devflow/code-review.md +0 -307
  383. package/src/claude/agents/devflow/commit.md +0 -380
  384. package/src/claude/agents/devflow/debug.md +0 -476
  385. package/src/claude/agents/devflow/design.md +0 -491
  386. package/src/claude/agents/devflow/get-issue.md +0 -286
  387. package/src/claude/agents/devflow/pr-comments.md +0 -285
  388. package/src/claude/agents/devflow/project-state.md +0 -419
  389. package/src/claude/agents/devflow/pull-request.md +0 -493
  390. package/src/claude/agents/devflow/release.md +0 -1137
  391. package/src/claude/agents/devflow/tech-debt.md +0 -338
  392. package/src/claude/commands/devflow/brainstorm.md +0 -68
  393. package/src/claude/commands/devflow/breakdown.md +0 -125
  394. package/src/claude/commands/devflow/catch-up.md +0 -29
  395. package/src/claude/commands/devflow/code-review.md +0 -237
  396. package/src/claude/commands/devflow/commit.md +0 -17
  397. package/src/claude/commands/devflow/debug.md +0 -56
  398. package/src/claude/commands/devflow/design.md +0 -82
  399. package/src/claude/commands/devflow/devlog.md +0 -408
  400. package/src/claude/commands/devflow/get-issue.md +0 -16
  401. package/src/claude/commands/devflow/implement.md +0 -100
  402. package/src/claude/commands/devflow/plan.md +0 -223
  403. package/src/claude/commands/devflow/pull-request.md +0 -20
  404. package/src/claude/commands/devflow/release.md +0 -251
  405. package/src/claude/commands/devflow/resolve-comments.md +0 -583
  406. package/src/claude/scripts/statusline.sh +0 -47
  407. package/src/claude/settings.json +0 -6
  408. package/src/claude/skills/devflow/code-smell/SKILL.md +0 -428
  409. package/src/claude/skills/devflow/debug/SKILL.md +0 -119
  410. package/src/claude/skills/devflow/error-handling/SKILL.md +0 -597
  411. package/src/claude/skills/devflow/input-validation/SKILL.md +0 -514
  412. package/src/claude/skills/devflow/pattern-check/SKILL.md +0 -238
  413. package/src/claude/skills/devflow/research/SKILL.md +0 -138
  414. package/src/claude/skills/devflow/test-design/SKILL.md +0 -384
@@ -0,0 +1,108 @@
1
+ # Test Quality Report Template
2
+
3
+ Use this template when reporting test design issues.
4
+
5
+ ---
6
+
7
+ ## Report Format
8
+
9
+ ```markdown
10
+ ## Test Design Issues Detected
11
+
12
+ ## [SEVERITY] - [Category] ([Root Cause Type])
13
+ **File**: path/to/file.test.ts:line-range
14
+ **Issue**: Brief description of the problem
15
+ **Root Cause**: What architectural issue causes this
16
+ **Symptom**:
17
+ ```code
18
+ // The problematic code snippet
19
+ ```
20
+ **Correct Design**:
21
+ ```code
22
+ // What good design looks like
23
+ ```
24
+ **Action Required**: Specific action to fix
25
+
26
+ ## Summary
27
+ - **Critical**: N issues (block implementation)
28
+ - **High**: N issues (refactor needed)
29
+ - **Files affected**: N test files
30
+ - **Root cause**: Brief architectural diagnosis
31
+
32
+ ## STOP - Design Issues Detected
33
+
34
+ [List fundamental design flaws discovered]
35
+
36
+ **DO NOT work around these issues in tests.**
37
+ **DO NOT add more complex test helpers.**
38
+ **DO NOT mock more things to make tests pass.**
39
+
40
+ ## Next Steps
41
+
42
+ 1. **STOP writing tests** - Current design cannot be tested simply
43
+ 2. **ANALYZE root cause** - Identify architectural issue
44
+ 3. **PROPOSE redesign** - Show correct pattern
45
+ 4. **GET APPROVAL** - User confirms design changes
46
+ 5. **IMPLEMENT redesign** - Fix architecture first
47
+ 6. **WRITE SIMPLE TESTS** - Tests should be trivial after redesign
48
+ ```
49
+
50
+ ---
51
+
52
+ ## Severity Levels
53
+
54
+ | Severity | Use For | Examples |
55
+ |----------|---------|---------|
56
+ | **CRITICAL** | Fundamental design flaws | Complex setup >10 lines, repetitive boilerplate >3 times, mock objects >5 methods, testing private methods |
57
+ | **HIGH** | Maintenance complications | Difficult mocking >20 lines, implementation testing, environment manipulation, database seeding |
58
+ | **MEDIUM** | Reduced clarity | Test helper abuse, inconsistent assertion patterns, missing edge case coverage |
59
+ | **LOW** | Minor improvements | Organization, naming clarity |
60
+
61
+ ---
62
+
63
+ ## Category Labels
64
+
65
+ | Category | Root Cause Type | Indicates |
66
+ |----------|-----------------|-----------|
67
+ | Complex Setup | Design Problem | Too many dependencies |
68
+ | Repetitive Boilerplate | API Problem | Inconsistent error handling |
69
+ | Difficult Mocking | Coupling Problem | Tight coupling to externals |
70
+ | Implementation Testing | Fragile Tests | Tests coupled to internals |
71
+ | Environment Manipulation | DI Problem | Direct environment access |
72
+ | Database Seeding | Separation Problem | Logic mixed with data access |
73
+
74
+ ---
75
+
76
+ ## Test Suite Safety Configuration
77
+
78
+ ### Full Configuration Examples
79
+
80
+ ```typescript
81
+ // vitest.config.ts
82
+ export default defineConfig({
83
+ test: {
84
+ fileParallelism: false,
85
+ maxWorkers: 1,
86
+ pool: 'forks',
87
+ testTimeout: 10000,
88
+ }
89
+ });
90
+
91
+ // jest.config.js
92
+ module.exports = {
93
+ maxWorkers: 1,
94
+ runInBand: true,
95
+ testTimeout: 10000,
96
+ };
97
+ ```
98
+
99
+ ```bash
100
+ # Memory limits
101
+ NODE_OPTIONS="--max-old-space-size=512" npm test
102
+
103
+ # Go
104
+ go test -p 1 ./...
105
+
106
+ # Rust
107
+ cargo test -- --test-threads=1
108
+ ```
@@ -0,0 +1,221 @@
1
+ # Test Pattern Violations - Extended Examples
2
+
3
+ Reference examples for common test quality violations across both design and review contexts.
4
+
5
+ ---
6
+
7
+ ## Complex Setup Violations
8
+
9
+ ### Multi-Dependency Service Setup
10
+
11
+ ```typescript
12
+ // VIOLATION: Complex setup indicates design problem
13
+ describe('UserService', () => {
14
+ let service: UserService;
15
+ let mockDb: MockDatabase;
16
+ let mockCache: MockCache;
17
+ let mockLogger: MockLogger;
18
+ let mockConfig: MockConfig;
19
+
20
+ beforeEach(async () => {
21
+ mockDb = new MockDatabase();
22
+ await mockDb.connect();
23
+ await mockDb.seed();
24
+ mockCache = new MockCache();
25
+ mockCache.clear();
26
+ mockLogger = new MockLogger();
27
+ mockConfig = new MockConfig();
28
+ mockConfig.set('env', 'test');
29
+ // ... 10+ more lines
30
+ service = new UserService(mockDb, mockCache, mockLogger, mockConfig);
31
+ });
32
+
33
+ it('should create user', async () => {
34
+ const result = await service.createUser({ name: 'test' });
35
+ expect(result.ok).toBe(true);
36
+ });
37
+ });
38
+ ```
39
+
40
+ **Root Cause**: UserService has too many dependencies (6+ injected services)
41
+
42
+ **Solution**: Split into focused services with single responsibility
43
+
44
+ ---
45
+
46
+ ## Repetitive Boilerplate Violations
47
+
48
+ ### Try/Catch Pattern Repetition
49
+
50
+ ```typescript
51
+ // VIOLATION: Repetitive error handling indicates API problem
52
+ describe('API endpoints', () => {
53
+ it('should handle user creation error', async () => {
54
+ try {
55
+ await api.createUser(invalidData);
56
+ fail('Should have thrown');
57
+ } catch (error) {
58
+ expect(error.status).toBe(400);
59
+ expect(error.message).toContain('validation');
60
+ }
61
+ });
62
+
63
+ // ... repeated pattern 10+ times
64
+ });
65
+ ```
66
+
67
+ **Root Cause**: API throws exceptions instead of returning Results
68
+
69
+ **Solution**: Migrate API to Result pattern
70
+
71
+ ---
72
+
73
+ ## Difficult Mocking Violations
74
+
75
+ ### Nested Mock Object Structures
76
+
77
+ ```typescript
78
+ // VIOLATION: Complex mocking indicates tight coupling
79
+ beforeEach(() => {
80
+ mockDb = {
81
+ transaction: jest.fn((callback) => callback(mockDb)),
82
+ orders: { create: jest.fn(), update: jest.fn(), findById: jest.fn() },
83
+ users: { findById: jest.fn(), update: jest.fn() },
84
+ inventory: { decrement: jest.fn(), check: jest.fn(), reserve: jest.fn() }
85
+ };
86
+ // 5+ more mock objects...
87
+ });
88
+ ```
89
+
90
+ **Root Cause**: OrderProcessor directly depends on too many external systems
91
+
92
+ **Solution**: Separate pure business logic from I/O; use composition
93
+
94
+ ---
95
+
96
+ ## Implementation Testing Violations
97
+
98
+ ### Spying on Private Methods
99
+
100
+ ```typescript
101
+ // VIOLATION: Testing implementation details
102
+ it('should call updateTotal after addItem', () => {
103
+ const cart = new ShoppingCart();
104
+ const spy = jest.spyOn(cart as any, 'updateTotal');
105
+ cart.addItem({ id: '1', price: 10 });
106
+ expect(spy).toHaveBeenCalled(); // Testing implementation!
107
+ });
108
+ ```
109
+
110
+ **Root Cause**: Tests coupled to implementation details
111
+
112
+ **Solution**: Test observable behavior only
113
+
114
+ ---
115
+
116
+ ## Coverage Violations
117
+
118
+ ### Missing Edge Cases
119
+
120
+ ```typescript
121
+ // INCOMPLETE TESTS
122
+ describe('divide', () => {
123
+ it('divides two numbers', () => {
124
+ expect(divide(10, 2)).toBe(5); // Happy path only
125
+ });
126
+ });
127
+
128
+ // COMPLETE TESTS
129
+ describe('divide', () => {
130
+ it('divides two positive numbers', () => { expect(divide(10, 2)).toBe(5); });
131
+ it('handles division by zero', () => { expect(divide(10, 0)).toBe(Infinity); });
132
+ it('handles negative numbers', () => { expect(divide(-10, 2)).toBe(-5); });
133
+ it('handles decimal results', () => { expect(divide(10, 3)).toBeCloseTo(3.333, 2); });
134
+ });
135
+ ```
136
+
137
+ ### Unclear Test Names
138
+
139
+ ```typescript
140
+ // UNCLEAR: What does this test?
141
+ it('test1', () => { /* ... */ });
142
+ it('should work', () => { /* ... */ });
143
+
144
+ // CLEAR: Describes behavior
145
+ it('validates email format on creation', () => { /* ... */ });
146
+ it('rejects passwords shorter than 8 characters', () => { /* ... */ });
147
+ ```
148
+
149
+ ---
150
+
151
+ ## Test Design Violations
152
+
153
+ ### Slow Tests (Real Delays)
154
+
155
+ ```typescript
156
+ // SLOW: Real delays
157
+ const result = await fetchWithRetry(); // Waits real 1000ms
158
+
159
+ // FAST: Mock timers
160
+ jest.useFakeTimers();
161
+ const promise = fetchWithRetry();
162
+ jest.advanceTimersByTime(1000);
163
+ ```
164
+
165
+ ### Flaky Tests (Timing Dependencies)
166
+
167
+ ```typescript
168
+ // FLAKY: Race condition
169
+ subscribe(callback);
170
+ emit('update', { value: 1 });
171
+ expect(callback).toHaveBeenCalled(); // Might not have fired yet
172
+
173
+ // STABLE: Explicit waiting
174
+ const received = new Promise(resolve => { subscribe(data => resolve(data)); });
175
+ emit('update', { value: 1 });
176
+ const data = await received;
177
+ expect(data.value).toBe(1);
178
+ ```
179
+
180
+ ### Over-Mocking
181
+
182
+ ```typescript
183
+ // OVER-MOCKED: Tests nothing real
184
+ const mockValidator = { validate: jest.fn().mockReturnValue(true) };
185
+ const mockHasher = { hash: jest.fn().mockReturnValue('hashed') };
186
+ const mockRepo = { create: jest.fn().mockResolvedValue({ id: '1' }) };
187
+ // What did we actually test? Just that mocks were called.
188
+
189
+ // BETTER: Use real implementations where possible
190
+ const repo = new InMemoryUserRepo();
191
+ const service = new UserService(new RealValidator(), new RealHasher(), repo);
192
+ const saved = await repo.findByEmail('test@test.com');
193
+ expect(await bcrypt.compare('password', saved.password)).toBe(true);
194
+ ```
195
+
196
+ ---
197
+
198
+ ## Environment & Database Violations
199
+
200
+ ### Environment Manipulation
201
+
202
+ ```typescript
203
+ // VIOLATION: Tests modifying environment
204
+ beforeEach(() => {
205
+ process.env = { ...process.env, DATABASE_URL: 'postgres://test', API_KEY: 'test-key' };
206
+ });
207
+ ```
208
+
209
+ **Solution**: Inject configuration as a dependency
210
+
211
+ ### Database State Dependencies
212
+
213
+ ```typescript
214
+ // VIOLATION: Tests depend on specific seeded data
215
+ beforeAll(async () => {
216
+ await db.users.insert([/* ... */]);
217
+ await db.orders.insert([/* ... */]);
218
+ });
219
+ ```
220
+
221
+ **Solution**: Separate data access from business logic; test calculation separately
@@ -0,0 +1,176 @@
1
+ ---
2
+ name: typescript
3
+ description: This skill should be used when the user works with TypeScript files (.ts/.tsx), asks about "generics", "type guards", "utility types", "strict typing", "discriminated unions", or discusses type safety and inference. Provides patterns for Result types, exhaustive checks, branded types, and type-safe API contracts.
4
+ user-invocable: false
5
+ allowed-tools: Read, Grep, Glob
6
+ activation:
7
+ file-patterns:
8
+ - "**/*.ts"
9
+ - "**/*.tsx"
10
+ exclude:
11
+ - "node_modules/**"
12
+ - "**/*.d.ts"
13
+ ---
14
+
15
+ # TypeScript Patterns
16
+
17
+ Reference for TypeScript-specific patterns, type safety, and idioms.
18
+
19
+ ## Iron Law
20
+
21
+ > **UNKNOWN OVER ANY**
22
+ >
23
+ > Never use `any`. Use `unknown` with type guards instead. `any` disables TypeScript's
24
+ > entire value proposition. If you need flexibility, use generics. If you need to handle
25
+ > arbitrary data, use `unknown` and validate. `any` is giving up.
26
+
27
+ ## When This Skill Activates
28
+
29
+ - Working with TypeScript codebases
30
+ - Designing type-safe APIs
31
+ - Using generics and utility types
32
+ - Creating type guards
33
+ - Handling strict mode requirements
34
+
35
+ ---
36
+
37
+ ## Type Safety Fundamentals
38
+
39
+ ### Prefer Unknown Over Any
40
+
41
+ ```typescript
42
+ // BAD: function parse(json: string): any { return JSON.parse(json); }
43
+
44
+ // GOOD: unknown requires type checking
45
+ function parse(json: string): unknown { return JSON.parse(json); }
46
+ if (isUser(data)) console.log(data.name); // Type-safe after guard
47
+ ```
48
+
49
+ ### Strict Null Checks
50
+
51
+ ```typescript
52
+ // BAD: function getName(user: User | null): string { return user.name; }
53
+ // GOOD: function getName(user: User | null): string { return user?.name ?? 'Anonymous'; }
54
+ ```
55
+
56
+ ### Exhaustive Checks
57
+
58
+ ```typescript
59
+ type Status = 'pending' | 'running' | 'completed' | 'failed';
60
+ function handleStatus(status: Status): string {
61
+ switch (status) {
62
+ case 'pending': return 'Waiting...';
63
+ case 'running': return 'In progress...';
64
+ case 'completed': return 'Done!';
65
+ case 'failed': return 'Error occurred';
66
+ default:
67
+ const _exhaustive: never = status;
68
+ throw new Error(`Unhandled: ${_exhaustive}`);
69
+ }
70
+ }
71
+ ```
72
+
73
+ ---
74
+
75
+ ## Generic Patterns
76
+
77
+ ```typescript
78
+ // Basic generic function
79
+ function first<T>(items: T[]): T | undefined { return items[0]; }
80
+
81
+ // With constraints
82
+ function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] { return obj[key]; }
83
+
84
+ // Generic interface
85
+ interface Repository<T, ID = string> {
86
+ findById(id: ID): Promise<T | null>;
87
+ save(entity: T): Promise<T>;
88
+ }
89
+ ```
90
+
91
+ ---
92
+
93
+ ## Utility Types
94
+
95
+ | Type | Usage |
96
+ |------|-------|
97
+ | `Partial<T>` | All properties optional |
98
+ | `Required<T>` | All properties required |
99
+ | `Pick<T, K>` | Select specific properties |
100
+ | `Omit<T, K>` | Exclude properties |
101
+ | `Record<K, V>` | Object with key/value types |
102
+ | `Readonly<T>` | Immutable properties |
103
+ | `NonNullable<T>` | Remove null/undefined |
104
+ | `ReturnType<F>` | Function return type |
105
+ | `Parameters<F>` | Function parameter types |
106
+
107
+ ---
108
+
109
+ ## Type Guards
110
+
111
+ ```typescript
112
+ // typeof guard
113
+ function process(value: string | number): string {
114
+ if (typeof value === 'string') return value.toUpperCase();
115
+ return value.toFixed(2);
116
+ }
117
+
118
+ // Custom type guard
119
+ interface Admin { type: 'admin'; permissions: string[]; }
120
+ interface User { type: 'user'; }
121
+ type Person = User | Admin;
122
+
123
+ function isAdmin(person: Person): person is Admin {
124
+ return person.type === 'admin';
125
+ }
126
+ ```
127
+
128
+ ---
129
+
130
+ ## Discriminated Unions
131
+
132
+ ```typescript
133
+ type Result<T, E> =
134
+ | { ok: true; value: T }
135
+ | { ok: false; error: E };
136
+
137
+ function handleResult<T>(result: Result<T, Error>): T {
138
+ if (result.ok) return result.value;
139
+ throw result.error;
140
+ }
141
+ ```
142
+
143
+ ---
144
+
145
+ ## Anti-Patterns
146
+
147
+ | Pattern | Bad | Good |
148
+ |---------|-----|------|
149
+ | Using `any` | `data: any` | `data: unknown` or generics |
150
+ | Unsafe assertion | `data as User` | Type guard: `if (isUser(data))` |
151
+ | Non-null abuse | `user!.name!` | `user?.name` with check |
152
+ | Unsafe index | `obj[key]` | `obj[key as keyof typeof obj]` |
153
+
154
+ ---
155
+
156
+ ## Extended References
157
+
158
+ For additional patterns and examples:
159
+ - `references/patterns.md` - Extended TypeScript patterns
160
+ - `references/utility-types.md` - Custom utility type examples
161
+ - `references/type-guards.md` - Advanced type guard patterns
162
+ - `references/async.md` - Async TypeScript patterns
163
+
164
+ ---
165
+
166
+ ## Checklist
167
+
168
+ - [ ] No `any` types (use `unknown` or generics)
169
+ - [ ] All null/undefined handled explicitly
170
+ - [ ] Discriminated unions for state/variants
171
+ - [ ] Type guards for runtime type checking
172
+ - [ ] Exhaustive switch statements
173
+ - [ ] Proper generic constraints
174
+ - [ ] Type-only imports for types
175
+ - [ ] Readonly for immutable data
176
+ - [ ] Strict tsconfig options enabled