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,162 @@
1
+ ---
2
+ name: core-patterns
3
+ description: This skill should be used when the user asks to "handle errors", "inject dependencies", "return Result", "make it immutable", "compose with pipes", or implements business logic, error handling, or service composition. Provides Result type patterns, dependency injection, immutability by default, pipe composition, and structured logging for robust application architecture.
4
+ user-invocable: false
5
+ allowed-tools: Read, Grep, Glob, AskUserQuestion
6
+ ---
7
+
8
+ # Core Engineering Patterns
9
+
10
+ The canonical source of architectural patterns and principles for consistent, high-quality code.
11
+
12
+ ## Iron Law
13
+
14
+ > **NEVER THROW IN BUSINESS LOGIC**
15
+ >
16
+ > All operations that can fail MUST return Result types. Exceptions are allowed
17
+ > ONLY at system boundaries (API handlers, database adapters). Any `throw` statement
18
+ > in business logic is a violation. No exceptions.
19
+
20
+ ## Philosophy
21
+
22
+ 1. **Type Safety First** - Strict type checking, avoid dynamic types
23
+ 2. **Functional Core, Imperative Shell** - Business logic pure, side effects isolated
24
+ 3. **Explicit Error Handling** - Result types instead of exceptions
25
+ 4. **Immutability by Default** - Return new objects, don't mutate
26
+ 5. **Dependency Injection** - Inject dependencies for testability
27
+ 6. **Test Behaviors** - Simple tests that validate behavior, not implementation
28
+ 7. **No Fake Solutions** - Be honest about limitations and workarounds
29
+ 8. **Fix Root Causes** - Never work around bad architecture
30
+
31
+ ---
32
+
33
+ ## Pattern 1: Result Types
34
+
35
+ ```typescript
36
+ type Result<T, E = Error> = { ok: true; value: T } | { ok: false; error: E };
37
+
38
+ function createUser(data: unknown): Result<User, ValidationError> {
39
+ if (!valid(data)) return Err({ type: 'ValidationFailed', details: validate(data).errors });
40
+ return Ok(buildUser(data));
41
+ }
42
+ ```
43
+
44
+ ## Pattern 2: Dependency Injection
45
+
46
+ ```typescript
47
+ class UserService {
48
+ constructor(private db: Database, private emailer: EmailService) {}
49
+ }
50
+ // Easy to test: new UserService(mockDb, mockEmailer)
51
+ ```
52
+
53
+ Never: `private db = new Database()` - can't mock.
54
+
55
+ ## Pattern 3: Immutability
56
+
57
+ ```typescript
58
+ function updateUser(user: User, changes: Partial<User>): User {
59
+ return { ...user, ...changes }; // New object, no mutation
60
+ }
61
+ ```
62
+
63
+ Never mutate inputs. Copy before `.sort()`.
64
+
65
+ ## Pattern 4: Pure Functions
66
+
67
+ ```typescript
68
+ function calculateTotal(items: Item[], taxRate: number): number {
69
+ return items.reduce((sum, i) => sum + i.price, 0) * (1 + taxRate);
70
+ }
71
+ ```
72
+
73
+ No side effects in pure functions.
74
+
75
+ ## Pattern 5: Type Safety
76
+
77
+ ```typescript
78
+ type Status = 'pending' | 'completed' | 'failed';
79
+ function handleStatus(status: Status): string {
80
+ switch (status) {
81
+ case 'pending': return 'Waiting';
82
+ case 'completed': return 'Done';
83
+ case 'failed': return 'Error';
84
+ } // Exhaustive - no default needed
85
+ }
86
+ ```
87
+
88
+ ## Pattern 6: Error Type Design
89
+
90
+ ```typescript
91
+ type UserError =
92
+ | { type: 'NotFound'; userId: string }
93
+ | { type: 'ValidationFailed'; field: string; message: string };
94
+ ```
95
+
96
+ ## Pattern 7: Resource Cleanup
97
+
98
+ ```typescript
99
+ const handle = await fs.open(path);
100
+ try {
101
+ return Ok(parse(await handle.readFile()));
102
+ } finally {
103
+ await handle.close();
104
+ }
105
+ ```
106
+
107
+ ## Pattern 8: Architecture Documentation
108
+
109
+ ```typescript
110
+ // ARCHITECTURE: Repository returns domain objects only
111
+ // ARCHITECTURE EXCEPTION: Direct DB for health check - must work if service layer down
112
+ ```
113
+
114
+ ## Pattern 9: Naming Conventions
115
+
116
+ - **Types/Classes**: PascalCase (`UserProfile`)
117
+ - **Functions/Variables**: camelCase (`calculateTotal`)
118
+ - **Constants**: SCREAMING_SNAKE_CASE (`MAX_RETRY`)
119
+
120
+ ## Pattern 10: Performance Awareness
121
+
122
+ ```typescript
123
+ const customerMap = new Map(customers.map(c => [c.id, c])); // O(1) vs O(n)
124
+ ```
125
+
126
+ ---
127
+
128
+ ## Consistency Rules
129
+
130
+ - Result types: if one method returns Result, ALL must
131
+ - DI: apply consistently throughout
132
+ - Async: single pattern (don't mix callbacks/promises)
133
+
134
+ ## Anti-Patterns
135
+
136
+ | Pattern | Description |
137
+ |---------|-------------|
138
+ | Fake Solutions | Hardcoded responses simulating functionality |
139
+ | Silent Failures | Catch blocks that swallow errors |
140
+ | Magic Values | Unlabeled constants with special meaning |
141
+ | Deceptive Code | Functions that pretend to work (e.g., `return true` with no logic) |
142
+
143
+ ### Workaround Labeling (Required)
144
+
145
+ All workarounds, hacks, and temporary solutions MUST be labeled:
146
+
147
+ | Label | Use When |
148
+ |-------|----------|
149
+ | `HACK:` | Workaround for specific problem |
150
+ | `MOCK:` | Fake data for testing/development |
151
+ | `TODO:` | Work that needs to be done |
152
+ | `TEMPORARY:` | Short-term solution with deadline |
153
+ | `NOT-PRODUCTION:` | Code that should never ship |
154
+ | `ARCHITECTURE EXCEPTION:` | Violates pattern with justification |
155
+
156
+ Unlabeled workarounds, empty catch blocks, and early returns without rationale are violations. See `references/code-smell-violations.md` for extended examples.
157
+
158
+ ---
159
+
160
+ ## Extended References
161
+
162
+ See `references/` for: violations.md, patterns.md, detection.md, checklist.md
@@ -0,0 +1,276 @@
1
+ # Validation Checklist
2
+
3
+ Comprehensive checklist for code review and validation against core engineering patterns.
4
+
5
+ ---
6
+
7
+ ## Pre-Implementation Checklist
8
+
9
+ Before writing code, verify:
10
+
11
+ - [ ] Understood the existing patterns in the codebase
12
+ - [ ] Identified similar implementations to follow
13
+ - [ ] Determined if Result types are used (and will follow same pattern)
14
+ - [ ] Identified dependencies that need injection
15
+ - [ ] Planned separation of pure logic from side effects
16
+
17
+ ---
18
+
19
+ ## Result Types Checklist
20
+
21
+ ### Functions That Can Fail
22
+
23
+ - [ ] All business functions return `Result<T, E>` types
24
+ - [ ] No `throw` statements in business logic
25
+ - [ ] Error types are discriminated unions (not generic Error)
26
+ - [ ] Each error type has all context needed to handle it
27
+ - [ ] Async functions return `Promise<Result<T, E>>`
28
+
29
+ ### Exception Boundaries
30
+
31
+ - [ ] Try/catch ONLY at system boundaries (API handlers, DB adapters)
32
+ - [ ] Boundaries convert exceptions to Result types
33
+ - [ ] HTTP responses derived from Result errors
34
+ - [ ] No silent error swallowing (empty catch blocks)
35
+
36
+ ### Error Handling
37
+
38
+ - [ ] All Result errors are handled explicitly
39
+ - [ ] No `if (!result.ok) return;` without proper handling
40
+ - [ ] Error propagation preserves context
41
+ - [ ] Logging happens before converting errors
42
+
43
+ ---
44
+
45
+ ## Dependency Injection Checklist
46
+
47
+ ### Constructor Injection
48
+
49
+ - [ ] All dependencies passed through constructor
50
+ - [ ] No `new` keyword for dependencies inside classes
51
+ - [ ] No imported singletons used directly
52
+ - [ ] No static method calls on external services
53
+
54
+ ### Interfaces
55
+
56
+ - [ ] Dependencies typed as interfaces, not implementations
57
+ - [ ] Interfaces are small and focused (ISP)
58
+ - [ ] Mock implementations easy to create
59
+ - [ ] No concrete class imports in business logic
60
+
61
+ ### Testing
62
+
63
+ - [ ] Can instantiate class with mock dependencies
64
+ - [ ] No test requires real database/network
65
+ - [ ] No environment manipulation in tests
66
+ - [ ] Test setup is < 10 lines
67
+
68
+ ---
69
+
70
+ ## Immutability Checklist
71
+
72
+ ### Objects
73
+
74
+ - [ ] All updates return new objects (spread operator)
75
+ - [ ] No direct property assignment on inputs
76
+ - [ ] No `delete` operator on inputs
77
+ - [ ] Nested updates also create new objects
78
+
79
+ ### Arrays
80
+
81
+ - [ ] No `.push()`, `.pop()`, `.shift()`, `.unshift()`
82
+ - [ ] No `.splice()`, `.reverse()`, `.sort()` on originals
83
+ - [ ] Use `.map()`, `.filter()`, `.reduce()` for transformations
84
+ - [ ] Copy before sorting: `[...arr].sort()`
85
+
86
+ ### State
87
+
88
+ - [ ] No module-level `let` or `var`
89
+ - [ ] No global mutable state
90
+ - [ ] Configuration is frozen after initialization
91
+ - [ ] Caches use immutable entries
92
+
93
+ ---
94
+
95
+ ## Pure Functions Checklist
96
+
97
+ ### Business Logic
98
+
99
+ - [ ] Pure functions have no side effects
100
+ - [ ] Same input always produces same output
101
+ - [ ] No date/time access (inject clock)
102
+ - [ ] No random values (inject generator)
103
+ - [ ] No environment variable access
104
+
105
+ ### Side Effect Isolation
106
+
107
+ - [ ] I/O operations in wrapper functions
108
+ - [ ] Pure calculations extracted and tested separately
109
+ - [ ] Side effects clearly documented
110
+ - [ ] Logging/metrics in wrappers, not core logic
111
+
112
+ ### Dependencies
113
+
114
+ - [ ] Time/random injected as dependencies
115
+ - [ ] Environment config loaded once at startup
116
+ - [ ] File system access at boundaries only
117
+ - [ ] Network calls at boundaries only
118
+
119
+ ---
120
+
121
+ ## Type Safety Checklist
122
+
123
+ ### Strict Types
124
+
125
+ - [ ] No `any` types (use `unknown` for dynamic data)
126
+ - [ ] All function parameters typed
127
+ - [ ] All return types explicit
128
+ - [ ] Strict null checks enabled
129
+
130
+ ### Pattern Matching
131
+
132
+ - [ ] Switch statements are exhaustive
133
+ - [ ] Discriminated unions for state/variants
134
+ - [ ] No default case that hides missing patterns
135
+ - [ ] Type guards for runtime narrowing
136
+
137
+ ### Type Design
138
+
139
+ - [ ] Domain types prevent primitive obsession
140
+ - [ ] Branded types for IDs that shouldn't mix
141
+ - [ ] Optional fields explicit (`field?: Type`)
142
+ - [ ] Readonly where appropriate
143
+
144
+ ---
145
+
146
+ ## Error Type Design Checklist
147
+
148
+ ### Discriminated Unions
149
+
150
+ - [ ] Each error type has a `type` discriminator
151
+ - [ ] Error types include all context needed
152
+ - [ ] Related errors grouped in union types
153
+ - [ ] Error unions are exhaustive
154
+
155
+ ### Error Information
156
+
157
+ - [ ] Error messages are actionable
158
+ - [ ] Technical details preserved for logging
159
+ - [ ] User-facing messages are sanitized
160
+ - [ ] Error codes are unique and documented
161
+
162
+ ---
163
+
164
+ ## Resource Cleanup Checklist
165
+
166
+ ### File/Connection Handling
167
+
168
+ - [ ] All file handles closed in `finally`
169
+ - [ ] All connections released in `finally`
170
+ - [ ] Using context managers (Python) or `using` (TS)
171
+ - [ ] Pool resources released after use
172
+
173
+ ### Subscriptions/Timers
174
+
175
+ - [ ] Event listeners removed on cleanup
176
+ - [ ] Intervals cleared when done
177
+ - [ ] Timeouts cleared if operation completes early
178
+ - [ ] Subscription manager for complex lifecycles
179
+
180
+ ### Memory
181
+
182
+ - [ ] Large data structures released when done
183
+ - [ ] Caches have size limits or TTL
184
+ - [ ] Circular references avoided
185
+ - [ ] WeakMap/WeakSet for object keys
186
+
187
+ ---
188
+
189
+ ## API Consistency Checklist
190
+
191
+ ### Error Handling Pattern
192
+
193
+ - [ ] Same error handling pattern across module
194
+ - [ ] All methods return Result OR all throw (not mixed)
195
+ - [ ] Error types consistent across related methods
196
+ - [ ] HTTP error mapping centralized
197
+
198
+ ### Async Pattern
199
+
200
+ - [ ] Single async pattern (async/await preferred)
201
+ - [ ] No mixing callbacks and promises
202
+ - [ ] All async calls awaited (no fire-and-forget)
203
+ - [ ] Promise.all for parallel operations
204
+
205
+ ### Naming
206
+
207
+ - [ ] Consistent naming across codebase
208
+ - [ ] PascalCase for types/classes
209
+ - [ ] camelCase for functions/variables
210
+ - [ ] SCREAMING_SNAKE_CASE for constants
211
+
212
+ ---
213
+
214
+ ## Architecture Documentation Checklist
215
+
216
+ ### Code Comments
217
+
218
+ - [ ] Public APIs have JSDoc/docstrings
219
+ - [ ] Complex algorithms explained
220
+ - [ ] Non-obvious decisions documented
221
+ - [ ] Architecture boundaries marked
222
+
223
+ ### Exceptions/Workarounds
224
+
225
+ - [ ] All workarounds labeled (HACK:, TODO:, TEMPORARY:)
226
+ - [ ] Architecture exceptions have justification
227
+ - [ ] Technical debt has tracking ticket
228
+ - [ ] Deadlines on temporary solutions
229
+
230
+ ---
231
+
232
+ ## Performance Checklist
233
+
234
+ ### Measurement
235
+
236
+ - [ ] Performance claims have benchmarks
237
+ - [ ] Hot paths identified and measured
238
+ - [ ] No premature optimization
239
+ - [ ] Trade-offs documented
240
+
241
+ ### Common Issues
242
+
243
+ - [ ] No N+1 queries
244
+ - [ ] Appropriate data structures (Map vs Array)
245
+ - [ ] Lazy evaluation for expensive operations
246
+ - [ ] Batch operations where possible
247
+
248
+ ---
249
+
250
+ ## Anti-Pattern Checklist
251
+
252
+ Verify NONE of these exist:
253
+
254
+ - [ ] No hardcoded responses simulating functionality
255
+ - [ ] No silent error swallowing
256
+ - [ ] No unlabeled magic values
257
+ - [ ] No global mutable state
258
+ - [ ] No tight coupling to concrete implementations
259
+ - [ ] No mixing error handling patterns
260
+ - [ ] No fire-and-forget async calls
261
+ - [ ] No resource leaks
262
+
263
+ ---
264
+
265
+ ## Final Review Checklist
266
+
267
+ Before considering code complete:
268
+
269
+ - [ ] All tests pass
270
+ - [ ] No TypeScript errors
271
+ - [ ] No ESLint warnings
272
+ - [ ] Code matches existing patterns
273
+ - [ ] Documentation updated
274
+ - [ ] No TODO without ticket
275
+ - [ ] No console.log in production code
276
+ - [ ] No commented-out code
@@ -0,0 +1,144 @@
1
+ # Code Smell Violations Reference
2
+
3
+ Extended examples of fake solutions, unlabeled workarounds, deceptive code, and magic values. Absorbed from the former `code-smell` skill into `core-patterns`.
4
+
5
+ ---
6
+
7
+ ## 1. Hardcoded Data (FAKE SOLUTIONS)
8
+
9
+ ### Violation: Mock data masquerading as real functionality
10
+
11
+ ```typescript
12
+ async function fetchRecommendations(userId: string): Promise<Product[]> {
13
+ // TODO: Connect to recommendation engine
14
+ return [
15
+ { id: "1", name: "Product 1", price: 99.99 },
16
+ { id: "2", name: "Product 2", price: 149.99 }
17
+ ];
18
+ }
19
+ ```
20
+
21
+ **Problem**: Returns static data instead of fetching from actual service.
22
+
23
+ ### Correct: Honest implementation with Result type
24
+
25
+ ```typescript
26
+ async function getUserProfile(userId: string): Promise<Result<UserProfile, Error>> {
27
+ try {
28
+ const response = await api.get(`/users/${userId}`);
29
+ return { ok: true, value: response.data };
30
+ } catch (error) {
31
+ return { ok: false, error };
32
+ }
33
+ }
34
+ ```
35
+
36
+ ### Correct: Clearly labeled mock for testing
37
+
38
+ ```typescript
39
+ // MOCK: For development only, not production-ready
40
+ async function getUserProfileMock(userId: string): Promise<UserProfile> {
41
+ return { id: userId, name: "Test User", email: "test@example.com" };
42
+ }
43
+ ```
44
+
45
+ ---
46
+
47
+ ## 2. Missing Labels (UNDOCUMENTED WORKAROUNDS)
48
+
49
+ ### Violation: Temporary fix without documentation
50
+
51
+ ```typescript
52
+ async function syncData() {
53
+ await sleep(1000); // Wait for previous operation
54
+ await performSync();
55
+ }
56
+ ```
57
+
58
+ ### Correct: Clearly labeled workaround
59
+
60
+ ```typescript
61
+ function processPayment(amount: number): boolean {
62
+ // TEMPORARY: Validation disabled until payment gateway integration complete
63
+ // TODO: Add amount validation, currency checks, fraud detection
64
+ // Target: Sprint 23 (2025-11-15)
65
+ // Ticket: PAY-456
66
+ return true;
67
+ }
68
+ ```
69
+
70
+ ### Correct: Documented hack with rationale
71
+
72
+ ```typescript
73
+ async function syncData() {
74
+ // HACK: Sleep required due to race condition in legacy sync system
75
+ // Root cause: Event system doesn't guarantee order
76
+ // Proper fix: Implement event sequencing (3-week effort)
77
+ await sleep(1000);
78
+ await performSync();
79
+ }
80
+ ```
81
+
82
+ ---
83
+
84
+ ## 3. Fake Functionality (DECEPTIVE CODE)
85
+
86
+ ### Violation: Fake error handling
87
+
88
+ ```typescript
89
+ async function sendEmail(to: string, subject: string, body: string): Promise<void> {
90
+ try {
91
+ // TODO: Implement SMTP
92
+ console.log(`Email sent to ${to}`);
93
+ } catch (error) {
94
+ // Ignore errors
95
+ }
96
+ }
97
+ ```
98
+
99
+ ### Correct: Honest unimplemented function
100
+
101
+ ```typescript
102
+ function validateEmail(email: string): Result<boolean, Error> {
103
+ return {
104
+ ok: false,
105
+ error: new Error('NOT-IMPLEMENTED: Email validation pending regex pattern approval')
106
+ };
107
+ }
108
+ ```
109
+
110
+ ---
111
+
112
+ ## 4. Magic Values (UNEXPLAINED CONSTANTS)
113
+
114
+ ### Violation: Magic numbers
115
+
116
+ ```typescript
117
+ function calculateDiscount(price: number, userLevel: number): number {
118
+ if (userLevel >= 5) return price * 0.15;
119
+ return 0;
120
+ }
121
+ ```
122
+
123
+ ### Correct: Named constants with documentation
124
+
125
+ ```typescript
126
+ const USER_LEVEL_THRESHOLD = { PREMIUM: 5 } as const;
127
+ const DISCOUNT_RATE = { PREMIUM: 0.15 } as const;
128
+
129
+ function calculateDiscount(price: number, userLevel: number): number {
130
+ if (userLevel >= USER_LEVEL_THRESHOLD.PREMIUM) return price * DISCOUNT_RATE.PREMIUM;
131
+ return 0;
132
+ }
133
+ ```
134
+
135
+ ---
136
+
137
+ ## Detection Quick Reference
138
+
139
+ Code passes smell check when:
140
+ - No hardcoded return data in business logic
141
+ - All workarounds have required labels (HACK:, MOCK:, TODO:, TEMPORARY:, NOT-PRODUCTION:, ARCHITECTURE EXCEPTION:)
142
+ - All fake/mock code clearly marked
143
+ - Magic values extracted to named constants
144
+ - Functions do what their names promise