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,483 @@
1
+ # Implementation Violation Examples
2
+
3
+ Extended violation patterns for implementation reviews. Reference from main SKILL.md.
4
+
5
+ ---
6
+
7
+ ## CRUD Violations
8
+
9
+ ### Missing Validation
10
+
11
+ **No Input Validation Before Persist**
12
+ ```typescript
13
+ // VIOLATION: Saving unvalidated data
14
+ async function createUser(input: any): Promise<User> {
15
+ const user = { id: generateId(), ...input }; // No validation!
16
+ return await userRepository.save(user);
17
+ }
18
+ ```
19
+
20
+ **Trusting External Data**
21
+ ```typescript
22
+ // VIOLATION: Using input directly without parsing
23
+ async function updateUser(id: string, body: any): Promise<User> {
24
+ return await db.users.update(id, body); // Body could have extra fields
25
+ }
26
+ ```
27
+
28
+ ### Inconsistent Error Handling
29
+
30
+ **Mixed Error Styles**
31
+ ```typescript
32
+ // VIOLATION: Throws in some cases, returns null in others
33
+ async function getUser(id: string): Promise<User | null> {
34
+ if (!id) throw new Error('Invalid ID'); // Throws
35
+ const user = await db.users.findById(id);
36
+ return user || null; // Returns null for not found
37
+ }
38
+ ```
39
+
40
+ **Silent Failures**
41
+ ```typescript
42
+ // VIOLATION: Error swallowed with empty catch
43
+ async function deleteUser(id: string): Promise<void> {
44
+ try {
45
+ await userRepository.delete(id);
46
+ } catch (error) {
47
+ // Silently ignore deletion failures
48
+ }
49
+ }
50
+ ```
51
+
52
+ ### N+1 Query Patterns
53
+
54
+ **Loop Query**
55
+ ```typescript
56
+ // VIOLATION: N queries in loop
57
+ async function listUsersWithOrders(userIds: string[]): Promise<UserWithOrders[]> {
58
+ return Promise.all(
59
+ userIds.map(async (id) => {
60
+ const user = await db.users.findById(id);
61
+ const orders = await db.orders.findByUserId(id); // N queries!
62
+ return { ...user, orders };
63
+ })
64
+ );
65
+ }
66
+ ```
67
+
68
+ **Missing Join/Include**
69
+ ```typescript
70
+ // VIOLATION: Separate query for related data
71
+ async function getOrderDetails(orderId: string): Promise<OrderDetails> {
72
+ const order = await db.orders.findById(orderId);
73
+ const items = await db.orderItems.findByOrderId(orderId); // Second query
74
+ const customer = await db.customers.findById(order.customerId); // Third query
75
+ return { order, items, customer };
76
+ }
77
+ ```
78
+
79
+ ### Missing Existence Check
80
+
81
+ **Update Without Checking Exists**
82
+ ```typescript
83
+ // VIOLATION: No existence check before update
84
+ async function updateUser(id: string, data: UpdateData): Promise<User> {
85
+ return await db.users.update(id, data); // Fails silently or throws generic error
86
+ }
87
+ ```
88
+
89
+ **Delete Without Constraints Check**
90
+ ```typescript
91
+ // VIOLATION: No cascade/constraint check
92
+ async function deleteCategory(id: string): Promise<void> {
93
+ await db.categories.delete(id); // Orphans products referencing this category
94
+ }
95
+ ```
96
+
97
+ ---
98
+
99
+ ## API Violations
100
+
101
+ ### Missing Auth Checks
102
+
103
+ **No Authentication**
104
+ ```typescript
105
+ // VIOLATION: Endpoint without auth
106
+ app.delete('/api/users/:id', async (req, res) => {
107
+ await deleteUser(req.params.id); // Anyone can delete users!
108
+ res.status(204).send();
109
+ });
110
+ ```
111
+
112
+ **No Authorization**
113
+ ```typescript
114
+ // VIOLATION: Auth but no authorization check
115
+ app.put('/api/users/:id', authenticate, async (req, res) => {
116
+ const result = await updateUser(req.params.id, req.body); // Can update any user
117
+ res.json(result);
118
+ });
119
+ ```
120
+
121
+ ### Inconsistent Response Format
122
+
123
+ **Mixed Response Shapes**
124
+ ```typescript
125
+ // VIOLATION: Different error formats across endpoints
126
+ app.get('/api/users/:id', async (req, res) => {
127
+ const user = await getUser(req.params.id);
128
+ if (!user) res.status(404).send('Not found'); // String
129
+ });
130
+
131
+ app.get('/api/orders/:id', async (req, res) => {
132
+ const order = await getOrder(req.params.id);
133
+ if (!order) res.status(404).json({ error: 'Order not found' }); // Object
134
+ });
135
+ ```
136
+
137
+ **Leaking Internal Errors**
138
+ ```typescript
139
+ // VIOLATION: Exposing stack traces
140
+ app.post('/api/users', async (req, res) => {
141
+ try {
142
+ const user = await createUser(req.body);
143
+ res.json(user);
144
+ } catch (error) {
145
+ res.status(500).json({ error: error.stack }); // Security risk!
146
+ }
147
+ });
148
+ ```
149
+
150
+ ### Poor Error Messages
151
+
152
+ **Generic Messages**
153
+ ```typescript
154
+ // VIOLATION: Unhelpful error response
155
+ function handleError(error: Error, res: Response) {
156
+ res.status(400).json({ error: 'Something went wrong' }); // No actionable info
157
+ }
158
+ ```
159
+
160
+ **Missing Field Context**
161
+ ```typescript
162
+ // VIOLATION: No field-level validation errors
163
+ app.post('/api/users', async (req, res) => {
164
+ if (!req.body.email || !req.body.name) {
165
+ res.status(400).json({ error: 'Invalid request' }); // Which field?
166
+ }
167
+ });
168
+ ```
169
+
170
+ ### Missing Request Validation
171
+
172
+ **No Path Parameter Validation**
173
+ ```typescript
174
+ // VIOLATION: Using params without validation
175
+ app.get('/api/users/:id', async (req, res) => {
176
+ const user = await db.query('SELECT * FROM users WHERE id = $1', [req.params.id]);
177
+ // id could be malformed or SQL injection
178
+ });
179
+ ```
180
+
181
+ **No Body Validation**
182
+ ```typescript
183
+ // VIOLATION: No schema validation
184
+ app.post('/api/orders', async (req, res) => {
185
+ const order = await createOrder(req.body); // Could be anything
186
+ res.json(order);
187
+ });
188
+ ```
189
+
190
+ ---
191
+
192
+ ## Event Handler Violations
193
+
194
+ ### Lost Events
195
+
196
+ **Fire and Forget Without ACK**
197
+ ```typescript
198
+ // VIOLATION: Processing not confirmed
199
+ async function handleMessage(message: Message): Promise<void> {
200
+ processMessage(message); // Not awaited!
201
+ // Message may not be processed but considered handled
202
+ }
203
+ ```
204
+
205
+ **No Retry Mechanism**
206
+ ```typescript
207
+ // VIOLATION: Single attempt, then lost
208
+ async function handleOrderCreated(event: OrderEvent): Promise<void> {
209
+ try {
210
+ await notifyWarehouse(event);
211
+ } catch (error) {
212
+ console.error('Failed to notify', error);
213
+ // Event lost, no retry
214
+ }
215
+ }
216
+ ```
217
+
218
+ ### Race Conditions
219
+
220
+ **Concurrent Updates Without Locking**
221
+ ```typescript
222
+ // VIOLATION: Read-modify-write without protection
223
+ async function handleInventoryUpdate(event: InventoryEvent): Promise<void> {
224
+ const current = await db.inventory.get(event.productId);
225
+ const newQuantity = current.quantity - event.quantity;
226
+ await db.inventory.update(event.productId, { quantity: newQuantity });
227
+ // Two concurrent events can read same quantity, lose an update
228
+ }
229
+ ```
230
+
231
+ **Non-Idempotent Processing**
232
+ ```typescript
233
+ // VIOLATION: No idempotency check
234
+ async function handlePaymentReceived(event: PaymentEvent): Promise<void> {
235
+ await creditUserAccount(event.userId, event.amount);
236
+ await sendReceipt(event.userId);
237
+ // Redelivery credits user twice!
238
+ }
239
+ ```
240
+
241
+ ### Missing Error Handling
242
+
243
+ **Unhandled Promise Rejection**
244
+ ```typescript
245
+ // VIOLATION: No error handling in handler
246
+ eventBus.on('user.created', async (event) => {
247
+ await sendWelcomeEmail(event.user); // Unhandled rejection if email fails
248
+ await createAuditLog(event);
249
+ });
250
+ ```
251
+
252
+ **Partial Processing**
253
+ ```typescript
254
+ // VIOLATION: Stops on first error
255
+ async function handleBatchEvent(events: Event[]): Promise<void> {
256
+ for (const event of events) {
257
+ await processEvent(event); // One failure stops all remaining
258
+ }
259
+ }
260
+ ```
261
+
262
+ ### Missing Event Context
263
+
264
+ **No Correlation ID**
265
+ ```typescript
266
+ // VIOLATION: Can't trace event through system
267
+ async function publishEvent(type: string, payload: object): Promise<void> {
268
+ await eventBus.publish({
269
+ type,
270
+ payload,
271
+ timestamp: new Date(),
272
+ // No correlationId, requestId, or traceId
273
+ });
274
+ }
275
+ ```
276
+
277
+ ---
278
+
279
+ ## Configuration Violations
280
+
281
+ ### Hardcoded Values
282
+
283
+ **Magic Numbers/Strings**
284
+ ```typescript
285
+ // VIOLATION: Hardcoded configuration
286
+ async function fetchWithRetry(url: string) {
287
+ const maxRetries = 3; // Magic number
288
+ const timeout = 5000; // Magic number
289
+ const apiKey = 'sk-abc123...'; // Hardcoded secret!
290
+ // ...
291
+ }
292
+ ```
293
+
294
+ **Environment-Specific Branching**
295
+ ```typescript
296
+ // VIOLATION: Scattered environment checks
297
+ function getApiUrl(): string {
298
+ if (process.env.NODE_ENV === 'production') {
299
+ return 'https://api.example.com';
300
+ } else if (process.env.NODE_ENV === 'staging') {
301
+ return 'https://staging-api.example.com';
302
+ } else {
303
+ return 'http://localhost:3000';
304
+ }
305
+ }
306
+ ```
307
+
308
+ ### Missing Validation
309
+
310
+ **No Schema Validation**
311
+ ```typescript
312
+ // VIOLATION: Trusting environment variables
313
+ const config = {
314
+ port: process.env.PORT, // Could be undefined or 'abc'
315
+ dbUrl: process.env.DATABASE_URL, // Could be malformed
316
+ timeout: process.env.TIMEOUT, // String, not number
317
+ };
318
+ ```
319
+
320
+ **Silent Defaults**
321
+ ```typescript
322
+ // VIOLATION: Defaulting without warning
323
+ const port = process.env.PORT || 3000; // No indication of fallback
324
+ const dbUrl = process.env.DATABASE_URL || 'localhost:5432'; // Insecure default
325
+ ```
326
+
327
+ ### Insecure Defaults
328
+
329
+ **Debug Mode in Production**
330
+ ```typescript
331
+ // VIOLATION: Debug enabled by default
332
+ const config = {
333
+ debug: process.env.DEBUG !== 'false', // Default true!
334
+ verboseLogging: true, // Always verbose
335
+ };
336
+ ```
337
+
338
+ **Missing Required Secrets**
339
+ ```typescript
340
+ // VIOLATION: Optional secret with fallback
341
+ const jwtSecret = process.env.JWT_SECRET || 'default-secret'; // Insecure!
342
+ ```
343
+
344
+ ### Mutable Configuration
345
+
346
+ **Writable Config Object**
347
+ ```typescript
348
+ // VIOLATION: Config can be mutated at runtime
349
+ export const config = {
350
+ port: 3000,
351
+ debug: false,
352
+ };
353
+
354
+ // Elsewhere in code
355
+ config.debug = true; // Mutation!
356
+ ```
357
+
358
+ ---
359
+
360
+ ## Logging Violations
361
+
362
+ ### Missing Context
363
+
364
+ **No Request Identifier**
365
+ ```typescript
366
+ // VIOLATION: Can't correlate logs
367
+ app.get('/api/users/:id', async (req, res) => {
368
+ console.log('Fetching user'); // Which request?
369
+ const user = await getUser(req.params.id);
370
+ console.log('User found'); // Can't trace to request
371
+ res.json(user);
372
+ });
373
+ ```
374
+
375
+ **No Operation Context**
376
+ ```typescript
377
+ // VIOLATION: Logs without context
378
+ async function processOrder(order: Order): Promise<void> {
379
+ console.log('Processing'); // What order? Who requested?
380
+ await validateOrder(order);
381
+ console.log('Validated');
382
+ await saveOrder(order);
383
+ console.log('Done');
384
+ }
385
+ ```
386
+
387
+ ### Sensitive Data Exposure
388
+
389
+ **Logging Credentials**
390
+ ```typescript
391
+ // VIOLATION: Passwords in logs
392
+ async function login(credentials: Credentials): Promise<Result<User, Error>> {
393
+ logger.info('Login attempt', { credentials }); // Logs password!
394
+ // ...
395
+ }
396
+ ```
397
+
398
+ **PII in Logs**
399
+ ```typescript
400
+ // VIOLATION: Personal data exposed
401
+ async function createUser(user: UserInput): Promise<User> {
402
+ logger.info('Creating user', {
403
+ email: user.email,
404
+ ssn: user.ssn, // PII!
405
+ creditCard: user.paymentInfo, // PCI data!
406
+ });
407
+ // ...
408
+ }
409
+ ```
410
+
411
+ ### Inconsistent Levels
412
+
413
+ **Wrong Log Levels**
414
+ ```typescript
415
+ // VIOLATION: Using wrong severity
416
+ function processPayment(payment: Payment): void {
417
+ console.log('Payment failed!'); // Should be error
418
+ console.error('Processing payment'); // Not an error
419
+ console.warn('Payment successful'); // Not a warning
420
+ }
421
+ ```
422
+
423
+ **Debug Logs in Production**
424
+ ```typescript
425
+ // VIOLATION: Verbose logging without level check
426
+ function complexCalculation(data: Data): number {
427
+ console.log('Input:', JSON.stringify(data)); // Always logs, even in production
428
+ const result = calculate(data);
429
+ console.log('Intermediate:', intermediate); // Noise in production
430
+ console.log('Output:', result);
431
+ return result;
432
+ }
433
+ ```
434
+
435
+ ### Unstructured Logging
436
+
437
+ **String Interpolation**
438
+ ```typescript
439
+ // VIOLATION: Not machine-parseable
440
+ console.log(`User ${userId} created order ${orderId} at ${timestamp}`);
441
+ // Can't query or aggregate these logs
442
+ ```
443
+
444
+ **Console.log in Production**
445
+ ```typescript
446
+ // VIOLATION: No structured output
447
+ console.log('Error:', error); // Not JSON, no metadata
448
+ console.log('Request received'); // No timestamp, level, or context
449
+ ```
450
+
451
+ ### Missing Error Details
452
+
453
+ **Logging Without Stack**
454
+ ```typescript
455
+ // VIOLATION: Lost debugging info
456
+ try {
457
+ await riskyOperation();
458
+ } catch (error) {
459
+ logger.error('Operation failed'); // No error details!
460
+ }
461
+ ```
462
+
463
+ **Catching and Re-logging**
464
+ ```typescript
465
+ // VIOLATION: Duplicate logs
466
+ async function outerFunction() {
467
+ try {
468
+ await innerFunction();
469
+ } catch (error) {
470
+ logger.error('Outer failed', { error }); // Double logged
471
+ throw error;
472
+ }
473
+ }
474
+
475
+ async function innerFunction() {
476
+ try {
477
+ await riskyThing();
478
+ } catch (error) {
479
+ logger.error('Inner failed', { error }); // First log
480
+ throw error;
481
+ }
482
+ }
483
+ ```
@@ -0,0 +1,149 @@
1
+ ---
2
+ name: self-review
3
+ description: Self-review framework evaluating implementation quality against 9 pillars (correctness, completeness, security, performance, maintainability, testing, documentation, error handling, simplicity). Fixes P0/P1 issues immediately rather than reporting them. Used by the Scrutinizer agent as a quality gate.
4
+ user-invocable: false
5
+ allowed-tools: Read, Grep, Glob, Edit, Write, Bash
6
+ ---
7
+
8
+ # Self-Review Framework
9
+
10
+ Systematic self-review for the Scrutinizer agent. Evaluate implementation against 9 pillars. **Fix issues, don't just report them.**
11
+
12
+ Based on [Google Engineering Practices](https://google.github.io/eng-practices/review/reviewer/looking-for.html).
13
+
14
+ ## Iron Law
15
+
16
+ > **FIX BEFORE RETURNING**
17
+ >
18
+ > Self-review is not a report generator. It's a quality gate. If you find a P0 or P1 issue,
19
+ > you fix it. You only return when all critical issues are resolved. Pride in craftsmanship.
20
+
21
+ ---
22
+
23
+ ## The 9 Pillars
24
+
25
+ | Priority | Action | Pillars |
26
+ |----------|--------|---------|
27
+ | **P0** | MUST fix | Design, Functionality, Security |
28
+ | **P1** | SHOULD fix | Complexity, Error Handling, Tests |
29
+ | **P2** | FIX if time | Naming, Consistency, Documentation |
30
+
31
+ ### P0 - Design
32
+ Does the implementation fit the architecture? Follows existing patterns, respects layer boundaries, dependencies injected.
33
+
34
+ ### P0 - Functionality
35
+ Does the code work? Happy path, edge cases (null, empty, boundary), no race conditions.
36
+
37
+ ### P0 - Security
38
+ Any vulnerabilities? No injection, input validated, no hardcoded secrets, auth checked.
39
+
40
+ ### P1 - Complexity
41
+ Understandable in 5 minutes? Functions < 50 lines, nesting < 4 levels, no magic numbers.
42
+
43
+ ### P1 - Error Handling
44
+ Errors handled explicitly? No swallowed exceptions, helpful messages, resources cleaned up.
45
+
46
+ ### P1 - Tests
47
+ New code tested? Covers happy path, errors, edges. Tests behavior, not implementation.
48
+
49
+ ### P2 - Naming
50
+ Names clear and descriptive? No cryptic abbreviations, consistent style.
51
+
52
+ ### P2 - Consistency
53
+ Matches existing patterns? Same style, same conventions, no unnecessary divergence.
54
+
55
+ ### P2 - Documentation
56
+ Will others understand? Complex logic commented, public APIs documented, no outdated comments.
57
+
58
+ ---
59
+
60
+ ## Quick Examples
61
+
62
+ ### Design Red Flag
63
+ ```typescript
64
+ // BAD: Direct DB in controller (violates layers)
65
+ class UserController {
66
+ async getUser(req, res) {
67
+ const user = await db.query('SELECT * FROM users WHERE id = ?', [req.params.id]);
68
+ }
69
+ }
70
+ ```
71
+
72
+ ### Security Red Flag
73
+ ```typescript
74
+ // BAD: SQL injection
75
+ const query = `SELECT * FROM users WHERE email = '${email}'`;
76
+
77
+ // BAD: Missing auth
78
+ app.delete('/api/users/:id', async (req, res) => {
79
+ await deleteUser(req.params.id); // No auth check!
80
+ });
81
+ ```
82
+
83
+ ---
84
+
85
+ ## Self-Review Process
86
+
87
+ ### Step 1: Gather Changes
88
+ ```bash
89
+ git diff --name-only HEAD~1
90
+ git diff HEAD~1
91
+ ```
92
+
93
+ ### Step 2: Evaluate P0 Pillars
94
+ Check Design, Functionality, Security. If issues found and fixable, fix immediately. If unfixable, STOP and report blocker.
95
+
96
+ ### Step 3: Evaluate P1 Pillars
97
+ Check Complexity, Error Handling, Tests. Fix issues found.
98
+
99
+ ### Step 4: Evaluate P2 Pillars
100
+ Check Naming, Consistency, Documentation. Fix if time permits.
101
+
102
+ ### Step 5: Generate Report
103
+ Document status of each pillar, fixes applied, and overall readiness.
104
+
105
+ ---
106
+
107
+ ## Output Format
108
+
109
+ ```markdown
110
+ ## Self-Review Report
111
+
112
+ ### P0 Pillars
113
+ - Design: PASS/FIXED
114
+ - Functionality: PASS/FIXED
115
+ - Security: PASS/FIXED
116
+
117
+ ### P1 Pillars
118
+ - Complexity: PASS/FIXED
119
+ - Error Handling: PASS/FIXED
120
+ - Tests: PASS/FIXED
121
+
122
+ ### P2 Pillars
123
+ - Naming: PASS/FIXED/SKIP
124
+ - Consistency: PASS/FIXED/SKIP
125
+ - Documentation: PASS/FIXED/SKIP
126
+
127
+ ### Summary
128
+ Issues Found: {n}, Fixed: {n}
129
+ Status: READY / BLOCKED
130
+ ```
131
+
132
+ ---
133
+
134
+ ## Extended References
135
+
136
+ For detailed checklists, examples, and red flags for each pillar:
137
+ - See `references/pillars.md`
138
+
139
+ For complete report templates and examples:
140
+ - See `references/report-template.md`
141
+
142
+ ---
143
+
144
+ ## Integration
145
+
146
+ Used by:
147
+ - **Scrutinizer agent**: Dedicated self-review in fresh context after Coder completes
148
+
149
+ The self-review ensures implementations meet quality standards before external review, catching issues early.