safeword 0.2.2 → 0.2.4

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 (235) hide show
  1. package/.claude/commands/arch-review.md +32 -0
  2. package/.claude/commands/lint.md +6 -0
  3. package/.claude/commands/quality-review.md +13 -0
  4. package/.claude/commands/setup-linting.md +6 -0
  5. package/.claude/hooks/auto-lint.sh +6 -0
  6. package/.claude/hooks/auto-quality-review.sh +170 -0
  7. package/.claude/hooks/check-linting-sync.sh +17 -0
  8. package/.claude/hooks/inject-timestamp.sh +6 -0
  9. package/.claude/hooks/question-protocol.sh +12 -0
  10. package/.claude/hooks/run-linters.sh +8 -0
  11. package/.claude/hooks/run-quality-review.sh +76 -0
  12. package/.claude/hooks/version-check.sh +10 -0
  13. package/.claude/mcp/README.md +96 -0
  14. package/.claude/mcp/arcade.sample.json +9 -0
  15. package/.claude/mcp/context7.sample.json +7 -0
  16. package/.claude/mcp/playwright.sample.json +7 -0
  17. package/.claude/settings.json +62 -0
  18. package/.claude/skills/quality-reviewer/SKILL.md +190 -0
  19. package/.claude/skills/safeword-quality-reviewer/SKILL.md +13 -0
  20. package/.env.arcade.example +4 -0
  21. package/.env.example +11 -0
  22. package/.gitmodules +4 -0
  23. package/.safeword/SAFEWORD.md +33 -0
  24. package/.safeword/eslint/eslint-base.mjs +101 -0
  25. package/.safeword/guides/architecture-guide.md +404 -0
  26. package/.safeword/guides/code-philosophy.md +174 -0
  27. package/.safeword/guides/context-files-guide.md +405 -0
  28. package/.safeword/guides/data-architecture-guide.md +183 -0
  29. package/.safeword/guides/design-doc-guide.md +165 -0
  30. package/.safeword/guides/learning-extraction.md +515 -0
  31. package/.safeword/guides/llm-instruction-design.md +239 -0
  32. package/.safeword/guides/llm-prompting.md +95 -0
  33. package/.safeword/guides/tdd-best-practices.md +570 -0
  34. package/.safeword/guides/test-definitions-guide.md +243 -0
  35. package/.safeword/guides/testing-methodology.md +573 -0
  36. package/.safeword/guides/user-story-guide.md +237 -0
  37. package/.safeword/guides/zombie-process-cleanup.md +214 -0
  38. package/{templates → .safeword}/hooks/agents-md-check.sh +0 -0
  39. package/{templates → .safeword}/hooks/post-tool.sh +0 -0
  40. package/{templates → .safeword}/hooks/pre-commit.sh +0 -0
  41. package/.safeword/planning/002-user-story-quality-evaluation.md +1840 -0
  42. package/.safeword/planning/003-langsmith-eval-setup-prompt.md +363 -0
  43. package/.safeword/planning/004-llm-eval-test-cases.md +3226 -0
  44. package/.safeword/planning/005-architecture-enforcement-system.md +169 -0
  45. package/.safeword/planning/006-reactive-fix-prevention-research.md +135 -0
  46. package/.safeword/planning/011-cli-ux-vision.md +330 -0
  47. package/.safeword/planning/012-project-structure-cleanup.md +154 -0
  48. package/.safeword/planning/README.md +39 -0
  49. package/.safeword/planning/automation-plan-v2.md +1225 -0
  50. package/.safeword/planning/automation-plan-v3.md +1291 -0
  51. package/.safeword/planning/automation-plan.md +3058 -0
  52. package/.safeword/planning/design/005-cli-implementation.md +343 -0
  53. package/.safeword/planning/design/013-cli-self-contained-templates.md +596 -0
  54. package/.safeword/planning/design/013a-eslint-plugin-suite.md +256 -0
  55. package/.safeword/planning/design/013b-implementation-snippets.md +385 -0
  56. package/.safeword/planning/design/013c-config-isolation-strategy.md +242 -0
  57. package/.safeword/planning/design/code-philosophy-improvements.md +60 -0
  58. package/.safeword/planning/mcp-analysis.md +545 -0
  59. package/.safeword/planning/phase2-subagents-vs-skills-analysis.md +451 -0
  60. package/.safeword/planning/settings-improvements.md +970 -0
  61. package/.safeword/planning/test-definitions/005-cli-implementation.md +1301 -0
  62. package/.safeword/planning/test-definitions/cli-self-contained-templates.md +205 -0
  63. package/.safeword/planning/user-stories/001-guides-review-user-stories.md +1381 -0
  64. package/.safeword/planning/user-stories/003-reactive-fix-prevention.md +132 -0
  65. package/.safeword/planning/user-stories/004-technical-constraints.md +86 -0
  66. package/.safeword/planning/user-stories/005-cli-implementation.md +311 -0
  67. package/.safeword/planning/user-stories/cli-self-contained-templates.md +172 -0
  68. package/.safeword/planning/versioned-distribution.md +740 -0
  69. package/.safeword/prompts/arch-review.md +43 -0
  70. package/.safeword/prompts/quality-review.md +11 -0
  71. package/.safeword/scripts/arch-review.sh +235 -0
  72. package/.safeword/scripts/check-linting-sync.sh +58 -0
  73. package/.safeword/scripts/setup-linting.sh +559 -0
  74. package/.safeword/templates/architecture-template.md +136 -0
  75. package/.safeword/templates/ci/architecture-check.yml +79 -0
  76. package/.safeword/templates/design-doc-template.md +127 -0
  77. package/.safeword/templates/test-definitions-feature.md +100 -0
  78. package/.safeword/templates/ticket-template.md +74 -0
  79. package/.safeword/templates/user-stories-template.md +82 -0
  80. package/.safeword/tickets/001-guides-review-user-stories.md +83 -0
  81. package/.safeword/tickets/002-architecture-enforcement.md +211 -0
  82. package/.safeword/tickets/003-reactive-fix-prevention.md +57 -0
  83. package/.safeword/tickets/004-technical-constraints-in-user-stories.md +39 -0
  84. package/.safeword/tickets/005-cli-implementation.md +248 -0
  85. package/.safeword/tickets/006-flesh-out-skills.md +43 -0
  86. package/.safeword/tickets/007-flesh-out-questioning.md +44 -0
  87. package/.safeword/tickets/008-upgrade-questioning.md +58 -0
  88. package/.safeword/tickets/009-naming-conventions.md +41 -0
  89. package/.safeword/tickets/010-safeword-md-cleanup.md +34 -0
  90. package/.safeword/tickets/011-cursor-setup.md +86 -0
  91. package/.safeword/tickets/README.md +73 -0
  92. package/.safeword/version +1 -0
  93. package/AGENTS.md +59 -0
  94. package/CLAUDE.md +12 -0
  95. package/README.md +347 -0
  96. package/docs/001-cli-implementation-plan.md +856 -0
  97. package/docs/elite-dx-implementation-plan.md +1034 -0
  98. package/framework/README.md +131 -0
  99. package/framework/mcp/README.md +96 -0
  100. package/framework/mcp/arcade.sample.json +8 -0
  101. package/framework/mcp/context7.sample.json +6 -0
  102. package/framework/mcp/playwright.sample.json +6 -0
  103. package/framework/scripts/arch-review.sh +235 -0
  104. package/framework/scripts/check-linting-sync.sh +58 -0
  105. package/framework/scripts/load-env.sh +49 -0
  106. package/framework/scripts/setup-claude.sh +223 -0
  107. package/framework/scripts/setup-linting.sh +559 -0
  108. package/framework/scripts/setup-quality.sh +477 -0
  109. package/framework/scripts/setup-safeword.sh +550 -0
  110. package/framework/templates/ci/architecture-check.yml +78 -0
  111. package/learnings/ai-sdk-v5-breaking-changes.md +178 -0
  112. package/learnings/e2e-test-zombie-processes.md +231 -0
  113. package/learnings/milkdown-crepe-editor-property.md +96 -0
  114. package/learnings/prosemirror-fragment-traversal.md +119 -0
  115. package/package.json +19 -43
  116. package/packages/cli/AGENTS.md +1 -0
  117. package/packages/cli/ARCHITECTURE.md +279 -0
  118. package/packages/cli/package.json +51 -0
  119. package/packages/cli/src/cli.ts +63 -0
  120. package/packages/cli/src/commands/check.ts +166 -0
  121. package/packages/cli/src/commands/diff.ts +209 -0
  122. package/packages/cli/src/commands/reset.ts +190 -0
  123. package/packages/cli/src/commands/setup.ts +325 -0
  124. package/packages/cli/src/commands/upgrade.ts +163 -0
  125. package/packages/cli/src/index.ts +3 -0
  126. package/packages/cli/src/templates/config.ts +58 -0
  127. package/packages/cli/src/templates/content.ts +18 -0
  128. package/packages/cli/src/templates/index.ts +12 -0
  129. package/packages/cli/src/utils/agents-md.ts +66 -0
  130. package/packages/cli/src/utils/fs.ts +179 -0
  131. package/packages/cli/src/utils/git.ts +124 -0
  132. package/packages/cli/src/utils/hooks.ts +29 -0
  133. package/packages/cli/src/utils/output.ts +60 -0
  134. package/packages/cli/src/utils/project-detector.test.ts +185 -0
  135. package/packages/cli/src/utils/project-detector.ts +44 -0
  136. package/packages/cli/src/utils/version.ts +28 -0
  137. package/packages/cli/src/version.ts +6 -0
  138. package/packages/cli/templates/SAFEWORD.md +776 -0
  139. package/packages/cli/templates/doc-templates/architecture-template.md +136 -0
  140. package/packages/cli/templates/doc-templates/design-doc-template.md +134 -0
  141. package/packages/cli/templates/doc-templates/test-definitions-feature.md +131 -0
  142. package/packages/cli/templates/doc-templates/ticket-template.md +82 -0
  143. package/packages/cli/templates/doc-templates/user-stories-template.md +92 -0
  144. package/packages/cli/templates/guides/architecture-guide.md +423 -0
  145. package/packages/cli/templates/guides/code-philosophy.md +195 -0
  146. package/packages/cli/templates/guides/context-files-guide.md +457 -0
  147. package/packages/cli/templates/guides/data-architecture-guide.md +200 -0
  148. package/packages/cli/templates/guides/design-doc-guide.md +171 -0
  149. package/packages/cli/templates/guides/learning-extraction.md +552 -0
  150. package/packages/cli/templates/guides/llm-instruction-design.md +248 -0
  151. package/packages/cli/templates/guides/llm-prompting.md +102 -0
  152. package/packages/cli/templates/guides/tdd-best-practices.md +615 -0
  153. package/packages/cli/templates/guides/test-definitions-guide.md +334 -0
  154. package/packages/cli/templates/guides/testing-methodology.md +618 -0
  155. package/packages/cli/templates/guides/user-story-guide.md +256 -0
  156. package/packages/cli/templates/guides/zombie-process-cleanup.md +219 -0
  157. package/packages/cli/templates/hooks/agents-md-check.sh +27 -0
  158. package/packages/cli/templates/hooks/post-tool.sh +4 -0
  159. package/packages/cli/templates/hooks/pre-commit.sh +10 -0
  160. package/packages/cli/templates/prompts/arch-review.md +43 -0
  161. package/packages/cli/templates/prompts/quality-review.md +10 -0
  162. package/packages/cli/templates/skills/safeword-quality-reviewer/SKILL.md +207 -0
  163. package/packages/cli/tests/commands/check.test.ts +129 -0
  164. package/packages/cli/tests/commands/cli.test.ts +89 -0
  165. package/packages/cli/tests/commands/diff.test.ts +115 -0
  166. package/packages/cli/tests/commands/reset.test.ts +310 -0
  167. package/packages/cli/tests/commands/self-healing.test.ts +170 -0
  168. package/packages/cli/tests/commands/setup-blocking.test.ts +71 -0
  169. package/packages/cli/tests/commands/setup-core.test.ts +135 -0
  170. package/packages/cli/tests/commands/setup-git.test.ts +139 -0
  171. package/packages/cli/tests/commands/setup-hooks.test.ts +334 -0
  172. package/packages/cli/tests/commands/setup-linting.test.ts +189 -0
  173. package/packages/cli/tests/commands/setup-noninteractive.test.ts +80 -0
  174. package/packages/cli/tests/commands/setup-templates.test.ts +181 -0
  175. package/packages/cli/tests/commands/upgrade.test.ts +215 -0
  176. package/packages/cli/tests/helpers.ts +243 -0
  177. package/packages/cli/tests/npm-package.test.ts +83 -0
  178. package/packages/cli/tests/technical-constraints.test.ts +96 -0
  179. package/packages/cli/tsconfig.json +25 -0
  180. package/packages/cli/tsup.config.ts +11 -0
  181. package/packages/cli/vitest.config.ts +23 -0
  182. package/promptfoo.yaml +3270 -0
  183. package/dist/check-M73LGONJ.js +0 -129
  184. package/dist/check-M73LGONJ.js.map +0 -1
  185. package/dist/chunk-2XWIUEQK.js +0 -190
  186. package/dist/chunk-2XWIUEQK.js.map +0 -1
  187. package/dist/chunk-GZRQL3SX.js +0 -146
  188. package/dist/chunk-GZRQL3SX.js.map +0 -1
  189. package/dist/chunk-V5G6BGOK.js +0 -26
  190. package/dist/chunk-V5G6BGOK.js.map +0 -1
  191. package/dist/chunk-W66Z3C5H.js +0 -21
  192. package/dist/chunk-W66Z3C5H.js.map +0 -1
  193. package/dist/cli.d.ts +0 -1
  194. package/dist/cli.js +0 -34
  195. package/dist/cli.js.map +0 -1
  196. package/dist/diff-FSFDCBL5.js +0 -166
  197. package/dist/diff-FSFDCBL5.js.map +0 -1
  198. package/dist/index.d.ts +0 -11
  199. package/dist/index.js +0 -7
  200. package/dist/index.js.map +0 -1
  201. package/dist/reset-3ACTIYYE.js +0 -143
  202. package/dist/reset-3ACTIYYE.js.map +0 -1
  203. package/dist/setup-MKVVQTVA.js +0 -266
  204. package/dist/setup-MKVVQTVA.js.map +0 -1
  205. package/dist/upgrade-FQOL6AF5.js +0 -134
  206. package/dist/upgrade-FQOL6AF5.js.map +0 -1
  207. /package/{templates → framework}/SAFEWORD.md +0 -0
  208. /package/{templates → framework}/guides/architecture-guide.md +0 -0
  209. /package/{templates → framework}/guides/code-philosophy.md +0 -0
  210. /package/{templates → framework}/guides/context-files-guide.md +0 -0
  211. /package/{templates → framework}/guides/data-architecture-guide.md +0 -0
  212. /package/{templates → framework}/guides/design-doc-guide.md +0 -0
  213. /package/{templates → framework}/guides/learning-extraction.md +0 -0
  214. /package/{templates → framework}/guides/llm-instruction-design.md +0 -0
  215. /package/{templates → framework}/guides/llm-prompting.md +0 -0
  216. /package/{templates → framework}/guides/tdd-best-practices.md +0 -0
  217. /package/{templates → framework}/guides/test-definitions-guide.md +0 -0
  218. /package/{templates → framework}/guides/testing-methodology.md +0 -0
  219. /package/{templates → framework}/guides/user-story-guide.md +0 -0
  220. /package/{templates → framework}/guides/zombie-process-cleanup.md +0 -0
  221. /package/{templates → framework}/prompts/arch-review.md +0 -0
  222. /package/{templates → framework}/prompts/quality-review.md +0 -0
  223. /package/{templates/skills/safeword-quality-reviewer → framework/skills/quality-reviewer}/SKILL.md +0 -0
  224. /package/{templates/doc-templates → framework/templates}/architecture-template.md +0 -0
  225. /package/{templates/doc-templates → framework/templates}/design-doc-template.md +0 -0
  226. /package/{templates/doc-templates → framework/templates}/test-definitions-feature.md +0 -0
  227. /package/{templates/doc-templates → framework/templates}/ticket-template.md +0 -0
  228. /package/{templates/doc-templates → framework/templates}/user-stories-template.md +0 -0
  229. /package/{templates → packages/cli/templates}/commands/arch-review.md +0 -0
  230. /package/{templates → packages/cli/templates}/commands/lint.md +0 -0
  231. /package/{templates → packages/cli/templates}/commands/quality-review.md +0 -0
  232. /package/{templates → packages/cli/templates}/hooks/inject-timestamp.sh +0 -0
  233. /package/{templates → packages/cli/templates}/lib/common.sh +0 -0
  234. /package/{templates → packages/cli/templates}/lib/jq-fallback.sh +0 -0
  235. /package/{templates → packages/cli/templates}/markdownlint.jsonc +0 -0
@@ -0,0 +1,545 @@
1
+ # MCP Servers for Quality Automation: Analysis
2
+
3
+ **Context**: Evaluating whether MCP servers are better than Skills/Hooks for "double check and critique" automation
4
+
5
+ **User's current MCP config**:
6
+
7
+ ```json
8
+ {
9
+ "mcp": {
10
+ "context7": "allow",
11
+ "playwright": "allow",
12
+ "fetch": "allow",
13
+ "websearch": "allow"
14
+ }
15
+ }
16
+ ```
17
+
18
+ ---
19
+
20
+ ## What Are MCP Servers?
21
+
22
+ **MCP (Model Context Protocol)** = Open standard for connecting Claude Code to **external tools, APIs, and data sources**
23
+
24
+ **Three types**:
25
+
26
+ 1. **HTTP servers** - Remote cloud services (recommended)
27
+ 2. **SSE servers** - Server-Sent Events (deprecated)
28
+ 3. **Stdio servers** - Local processes on your machine
29
+
30
+ **Key characteristic**: MCP servers provide access to **EXTERNAL systems** (GitHub, databases, APIs, linting tools)
31
+
32
+ ---
33
+
34
+ ## MCP vs Skills vs Hooks vs Subagents
35
+
36
+ | Feature | MCP Servers | Skills | Hooks | Subagents |
37
+ | ---------------- | --------------------------- | ----------------------- | -------------------- | ---------------- |
38
+ | **Purpose** | External integrations | Internal automation | Event-driven checks | Delegated tasks |
39
+ | **Examples** | GitHub, ESLint, databases | Quality reviewer | Post-code validation | Long searches |
40
+ | **Location** | External services/processes | Claude's logic | Shell scripts | Separate context |
41
+ | **Intelligence** | Depends (can use LLMs) | Full AI (Claude) | Scripted | Full AI (Claude) |
42
+ | **Speed** | Variable (network/process) | Fast | Very fast | Slow |
43
+ | **When invoked** | Explicit or auto | Auto (model-invoked) | Event-driven | Explicit or auto |
44
+ | **Best for** | External tool integration | Internal quality checks | Deterministic gates | Complex analysis |
45
+
46
+ ---
47
+
48
+ ## Available MCP Servers for Code Quality
49
+
50
+ ### 1. praneybehl/code-review-mcp
51
+
52
+ **What**: Code review using OpenAI, Google Gemini, or Anthropic models
53
+ **How**: Analyzes git diffs (staged changes, HEAD, branches)
54
+ **Use case**: "Review my staged changes before committing"
55
+
56
+ **Installation**:
57
+
58
+ ```bash
59
+ claude mcp add code-review [url]
60
+ ```
61
+
62
+ **Usage in Claude Code**:
63
+
64
+ ```
65
+ User: "Review my staged changes for code quality issues"
66
+ Claude: [Uses code-review MCP tool to analyze git diff]
67
+ Claude: [Returns review from external LLM]
68
+ ```
69
+
70
+ **Strengths**:
71
+
72
+ - ✅ Uses multiple LLM models (not just Claude)
73
+ - ✅ Focused on git diffs (pre-commit reviews)
74
+ - ✅ External analysis (second opinion)
75
+
76
+ **Weaknesses**:
77
+
78
+ - ❌ Requires external service/API keys
79
+ - ❌ Network latency (API calls)
80
+ - ❌ Cost (external LLM calls)
81
+ - ❌ Less context (doesn't see full conversation)
82
+
83
+ ---
84
+
85
+ ### 2. MCP Server Analyzer (Python)
86
+
87
+ **What**: RUFF linting + VULTURE dead code detection
88
+ **How**: Runs analysis tools on Python code
89
+ **Use case**: "Lint this Python file and find dead code"
90
+
91
+ **Strengths**:
92
+
93
+ - ✅ Deterministic (actual linter, not AI opinion)
94
+ - ✅ Fast (local tools)
95
+ - ✅ Standard Python tooling
96
+
97
+ **Weaknesses**:
98
+
99
+ - ❌ Python-only
100
+ - ❌ Requires installation/setup
101
+ - ❌ Limited to linting (doesn't evaluate architecture, elegance)
102
+
103
+ ---
104
+
105
+ ### 3. clj-kondo MCP Server
106
+
107
+ **What**: Clojure/ClojureScript linting
108
+ **How**: Runs clj-kondo linter
109
+ **Use case**: Clojure-specific linting
110
+
111
+ **Relevance**: ❌ Not relevant (you're not using Clojure)
112
+
113
+ ---
114
+
115
+ ### 4. Claude-Codex MCP Server
116
+
117
+ **What**: Granular control over code operations, quality checks, CI/CD
118
+ **How**: Requires external Codex CLI
119
+ **Use case**: Advanced code generation and quality workflows
120
+
121
+ **Weaknesses**:
122
+
123
+ - ❌ Requires external CLI installation
124
+ - ❌ More complex setup
125
+ - ❌ Unclear documentation on quality check capabilities
126
+
127
+ ---
128
+
129
+ ## MCP Servers You Currently Have
130
+
131
+ **From your settings.json**:
132
+
133
+ ### context7
134
+
135
+ **Purpose**: Unknown (likely context management)
136
+ **Relevance**: Unknown
137
+
138
+ ### playwright
139
+
140
+ **Purpose**: Browser automation/testing
141
+ **Relevance**: ✅ Could be used for E2E test automation
142
+ **Usage**: "Run Playwright tests and show me failures"
143
+
144
+ ### fetch
145
+
146
+ **Purpose**: HTTP requests (likely WebFetch alternative)
147
+ **Relevance**: ✅ Useful for looking up latest docs
148
+ **Current**: Already using WebFetch tool for doc lookups
149
+
150
+ ### websearch
151
+
152
+ **Purpose**: Web search capabilities
153
+ **Relevance**: ✅ Useful for looking up latest best practices
154
+ **Current**: Already using WebSearch tool for research
155
+
156
+ ---
157
+
158
+ ## Should You Use MCP Servers for Quality Automation?
159
+
160
+ ### The Core Question
161
+
162
+ **Your "double check and critique" workflow needs**:
163
+
164
+ 1. ✅ Evaluate code for correctness, elegance, standards
165
+ 2. ✅ Check latest documentation for libraries used
166
+ 3. ✅ Assess for bloat, edge cases, error handling
167
+ 4. ✅ Provide structured feedback (PROCEED / REVISE / USER INPUT)
168
+ 5. ✅ Access conversation context (requirements, templates, guides)
169
+
170
+ ### Comparison: MCP Servers vs Skills
171
+
172
+ | Requirement | MCP Servers | Skills | Winner |
173
+ | ------------------------ | ------------------------------- | ------------------------------------- | ------ |
174
+ | **Correctness check** | ⚠️ External LLM opinion | ✅ Claude evaluates with full context | Skills |
175
+ | **Elegance check** | ❌ Hard to automate externally | ✅ Claude understands your style | Skills |
176
+ | **Standards check** | ⚠️ Need external config | ✅ Claude reads CLAUDE.md | Skills |
177
+ | **Latest docs lookup** | ✅ Can integrate doc APIs | ✅ WebFetch already does this | Tie |
178
+ | **Conversation context** | ❌ MCP servers don't have it | ✅ Skills run in same context | Skills |
179
+ | **Speed** | ⚠️ Network latency | ✅ Fast (in-context) | Skills |
180
+ | **Cost** | ⚠️ External API costs | ✅ Included in Claude Code | Skills |
181
+ | **Setup complexity** | ❌ Install servers, config APIs | ✅ Just create SKILL.md | Skills |
182
+
183
+ ---
184
+
185
+ ## When to Use MCP Servers
186
+
187
+ ### ✅ Use MCP Servers When:
188
+
189
+ 1. **Integrating with external systems**:
190
+ - "Review my GitHub PR and suggest improvements"
191
+ - "Check Sentry for errors in the last 24 hours"
192
+ - "Query our database for user analytics"
193
+
194
+ 2. **Running external linters/tools**:
195
+ - "Run ESLint on this file" (via ESLint MCP server)
196
+ - "Check Python code with RUFF" (via Analyzer MCP server)
197
+ - "Run security scan" (via Socket MCP server)
198
+
199
+ 3. **Need second opinion from different LLM**:
200
+ - "Get GPT-4's opinion on this architecture"
201
+ - "Compare Gemini's vs Claude's code review"
202
+
203
+ 4. **Accessing proprietary tools**:
204
+ - Your company's internal linter
205
+ - Custom compliance checker
206
+ - Domain-specific analyzer
207
+
208
+ ---
209
+
210
+ ### ❌ Don't Use MCP Servers When:
211
+
212
+ 1. **Claude can do it internally**:
213
+ - ❌ Code quality evaluation (Claude is expert)
214
+ - ❌ Reading project files (Read tool)
215
+ - ❌ Searching codebase (Grep/Glob tools)
216
+ - ❌ Looking up docs (WebFetch tool)
217
+
218
+ 2. **Need conversation context**:
219
+ - ❌ "Does this match our design doc?" (needs to read design doc)
220
+ - ❌ "Is this elegant?" (subjective, needs your style context)
221
+ - ❌ "Does it follow our standards?" (needs CLAUDE.md context)
222
+
223
+ 3. **Want simplicity**:
224
+ - ❌ Skills require 1 file (SKILL.md)
225
+ - ❌ MCP servers require installation + config + API keys
226
+
227
+ ---
228
+
229
+ ## Recommendation: Skills + Hooks (NOT MCP)
230
+
231
+ ### For Your "Double Check and Critique" Automation
232
+
233
+ **Best approach**: Skills + Hooks (from Phase 2 plan)
234
+
235
+ **Why NOT MCP servers**:
236
+
237
+ 1. **Claude is the expert** - Your quality criteria (correct, elegant, standards-compliant) require AI judgment WITH conversation context. External MCP servers don't have this context.
238
+
239
+ 2. **No external dependencies needed** - You don't need ESLint, RUFF, or other linters. You need Claude to evaluate code quality holistically.
240
+
241
+ 3. **Simpler setup** - Skills: Create 1 file. MCP: Install server + configure + manage API keys.
242
+
243
+ 4. **Faster** - Skills run in-context (no network latency). MCP servers require network calls or process spawning.
244
+
245
+ 5. **Cost-effective** - Skills included in Claude Code. MCP servers may require external LLM API costs.
246
+
247
+ 6. **Context-aware** - Skills see your requirements, CLAUDE.md, templates. MCP servers operate independently.
248
+
249
+ ---
250
+
251
+ ## When MCP Servers WOULD Be Valuable for You
252
+
253
+ ### Scenario 1: GitHub PR Reviews
254
+
255
+ **Use case**: "Review PR #123 before I approve it"
256
+
257
+ **MCP server**: GitHub MCP server
258
+ **What it does**: Fetches PR diff, comments, CI status
259
+ **Why useful**: Integrates with external GitHub API
260
+
261
+ **Implementation**:
262
+
263
+ ```bash
264
+ claude mcp add github https://github-mcp-server.example.com
265
+ ```
266
+
267
+ **Usage**:
268
+
269
+ ```
270
+ You: "Review PR #123 and check if it follows our standards"
271
+ Claude: [Uses GitHub MCP to fetch PR]
272
+ Claude: [Uses Quality Reviewer Skill to evaluate]
273
+ Claude: [Posts review comment via GitHub MCP]
274
+ ```
275
+
276
+ **Value**: ✅ Automates PR review workflow
277
+
278
+ ---
279
+
280
+ ### Scenario 2: External Linter Integration
281
+
282
+ **Use case**: "Run ESLint and fix all errors"
283
+
284
+ **MCP server**: ESLint MCP server (if it exists)
285
+ **What it does**: Runs ESLint CLI and returns results
286
+ **Why useful**: Deterministic linting (not AI opinion)
287
+
288
+ **Implementation**:
289
+
290
+ ```bash
291
+ claude mcp add eslint [url]
292
+ ```
293
+
294
+ **Usage**:
295
+
296
+ ```
297
+ You: "Lint this file and auto-fix issues"
298
+ Claude: [Uses ESLint MCP to run linter]
299
+ Claude: [Receives errors/warnings]
300
+ Claude: [Applies fixes using Edit tool]
301
+ ```
302
+
303
+ **Value**: ✅ Integrates external linting tools
304
+
305
+ **Alternative**: PostToolUse Hook already does this!
306
+
307
+ ```yaml
308
+ script: |
309
+ npm run lint --fix
310
+ ```
311
+
312
+ **Conclusion**: Hook simpler than MCP for local linters
313
+
314
+ ---
315
+
316
+ ### Scenario 3: Database Query for Validation
317
+
318
+ **Use case**: "Check if this feature will break production queries"
319
+
320
+ **MCP server**: PostgreSQL/MySQL MCP server
321
+ **What it does**: Connects to database, runs queries
322
+ **Why useful**: Validates against real production data
323
+
324
+ **Implementation**:
325
+
326
+ ```bash
327
+ claude mcp add postgres postgres://[connection]
328
+ ```
329
+
330
+ **Usage**:
331
+
332
+ ```
333
+ You: "Will this schema change break existing queries?"
334
+ Claude: [Uses Postgres MCP to check current schema]
335
+ Claude: [Analyzes proposed changes]
336
+ Claude: [Tests queries against real schema]
337
+ ```
338
+
339
+ **Value**: ✅ Validates against live production environment
340
+
341
+ ---
342
+
343
+ ## Updated Recommendation Matrix
344
+
345
+ | Automation Goal | Tool | Why |
346
+ | ------------------------------------------------- | ------------------- | ----------------------------- |
347
+ | **Quality checks** (correct, elegant, standards) | Skills ✓✓✓ | Needs context, AI judgment |
348
+ | **Post-code validation** (lint, test, type check) | Hooks ✓✓✓ | Deterministic, fast, simple |
349
+ | **GitHub PR reviews** | MCP (GitHub) ✓✓ | External integration needed |
350
+ | **Database validation** | MCP (Postgres) ✓✓ | Production data access |
351
+ | **External linter** | Hooks ✓✓✓ or MCP ✓ | Hooks simpler for local tools |
352
+ | **Security scanning** | MCP (Socket) ✓✓ | External service |
353
+ | **Second LLM opinion** | MCP (code-review) ✓ | Different model perspective |
354
+
355
+ ---
356
+
357
+ ## Should You Install MCP Servers?
358
+
359
+ ### For Phase 2 (Quality Automation): ❌ NO
360
+
361
+ **Reasons**:
362
+
363
+ 1. Skills + Hooks are simpler and faster
364
+ 2. Claude's evaluation > external LLM without context
365
+ 3. No external dependencies needed
366
+ 4. Lower cost (no API calls)
367
+
368
+ ### For Future (PR Reviews, External Tools): ⚠️ MAYBE
369
+
370
+ **Consider MCP servers for**:
371
+
372
+ - ✅ GitHub PR automation (if you do many PRs)
373
+ - ✅ Production database validation (if needed)
374
+ - ✅ Company-specific internal tools
375
+ - ✅ Advanced Playwright test orchestration
376
+
377
+ **Don't bother with MCP for**:
378
+
379
+ - ❌ Local linting (use Hooks with npm scripts)
380
+ - ❌ Quality evaluation (use Skills)
381
+ - ❌ Post-code checks (use Hooks)
382
+
383
+ ---
384
+
385
+ ## Your Current MCP Servers: Analysis
386
+
387
+ **What you have**:
388
+
389
+ ```json
390
+ {
391
+ "context7": "allow", // Unknown - possibly context management
392
+ "playwright": "allow", // Browser automation
393
+ "fetch": "allow", // HTTP requests (redundant with WebFetch?)
394
+ "websearch": "allow" // Web search (redundant with WebSearch?)
395
+ }
396
+ ```
397
+
398
+ **Questions**:
399
+
400
+ 1. **What is context7?** - Not standard MCP server, might be custom
401
+ 2. **Are fetch/websearch redundant?** - Claude Code has WebFetch and WebSearch tools built-in
402
+ 3. **Is playwright being used?** - Useful for E2E testing automation
403
+
404
+ **Recommendation**: Keep as-is for now, these aren't hurting anything
405
+
406
+ ---
407
+
408
+ ## Comparison: Code Review MCP Server vs Quality Reviewer Skill
409
+
410
+ ### External Code Review MCP (praneybehl/code-review-mcp)
411
+
412
+ **Workflow**:
413
+
414
+ ```
415
+ 1. User: "Review my changes"
416
+ 2. Claude: [Calls MCP server]
417
+ 3. MCP server: [Fetches git diff]
418
+ 4. MCP server: [Sends to GPT-4/Gemini/Claude API]
419
+ 5. External LLM: [Reviews code]
420
+ 6. MCP server: [Returns review]
421
+ 7. Claude: [Shows results to user]
422
+ ```
423
+
424
+ **Pros**:
425
+
426
+ - ✅ Second opinion from different LLM
427
+ - ✅ Can use GPT-4 Turbo, Gemini Pro, etc.
428
+ - ✅ Specialized for git diffs
429
+
430
+ **Cons**:
431
+
432
+ - ❌ External API costs ($$$)
433
+ - ❌ Network latency (slower)
434
+ - ❌ No conversation context (doesn't see your requirements)
435
+ - ❌ Complex setup (API keys, configuration)
436
+ - ❌ Security concern (code sent to external service)
437
+
438
+ ---
439
+
440
+ ### Quality Reviewer Skill (Internal)
441
+
442
+ **Workflow**:
443
+
444
+ ```
445
+ 1. Claude proposes code change
446
+ 2. Quality Reviewer Skill: [Activates automatically]
447
+ 3. Skill: [Reads CLAUDE.md, design doc, templates]
448
+ 4. Skill: [Evaluates with full context]
449
+ 5. Skill: [Returns PROCEED / REVISE / USER INPUT]
450
+ 6. User: "yes"
451
+ 7. Claude: [Implements with confidence]
452
+ ```
453
+
454
+ **Pros**:
455
+
456
+ - ✅ Full conversation context (knows your requirements)
457
+ - ✅ Fast (in-context, no API calls)
458
+ - ✅ Free (included in Claude Code)
459
+ - ✅ Simple setup (one SKILL.md file)
460
+ - ✅ Secure (no external services)
461
+ - ✅ Reads your project standards (CLAUDE.md)
462
+
463
+ **Cons**:
464
+
465
+ - ❌ Single perspective (only Claude)
466
+ - ❌ Limited to Claude's knowledge
467
+
468
+ ---
469
+
470
+ ## The Verdict
471
+
472
+ **For your use case** (347 "double check and critique" prompts):
473
+
474
+ ### Winner: Quality Reviewer Skill ✓✓✓
475
+
476
+ **Why**:
477
+
478
+ 1. Needs conversation context → Skills have it, MCP servers don't
479
+ 2. Evaluating "elegance" → Subjective, needs your style understanding
480
+ 3. Checking "standards" → Needs to read CLAUDE.md
481
+ 4. Fast iteration → Skills are instant, MCP servers add latency
482
+ 5. Cost-effective → Skills included, MCP servers cost $$$ for external LLM calls
483
+ 6. Simple setup → 1 file vs install + config + API keys
484
+
485
+ ---
486
+
487
+ ### When to Add MCP Servers (Future)
488
+
489
+ **Only if you need**:
490
+
491
+ 1. GitHub PR automation ("Review and comment on PR #456")
492
+ 2. External tool integration (company-specific linters)
493
+ 3. Database validation (query production schemas)
494
+ 4. Second opinion from different LLM model
495
+
496
+ **Not needed for**:
497
+
498
+ - ❌ Basic quality checks (Skills handle this)
499
+ - ❌ Post-code validation (Hooks handle this)
500
+ - ❌ Looking up docs (WebFetch handles this)
501
+ - ❌ Running npm scripts (Hooks handle this)
502
+
503
+ ---
504
+
505
+ ## Final Recommendation
506
+
507
+ ### Phase 2 Plan (UNCHANGED)
508
+
509
+ **Phase 2A**: Quality Reviewer Skill ⭐
510
+
511
+ - Create `~/.claude/skills/quality-reviewer/SKILL.md`
512
+ - Handles all 347 quality check prompts automatically
513
+ - No MCP servers needed
514
+
515
+ **Phase 2B**: PostToolUse Hook ⭐
516
+
517
+ - Create `~/.claude/hooks/post-code-validation.yaml`
518
+ - Runs linters/tests after code changes
519
+ - No MCP servers needed
520
+
521
+ ### MCP Servers (FUTURE - Optional)
522
+
523
+ **Consider adding** (Phase 3+):
524
+
525
+ - GitHub MCP server (for PR automation)
526
+ - Database MCP server (if validating against production)
527
+
528
+ **Don't add**:
529
+
530
+ - Code review MCP (Skills better for your use case)
531
+ - Linting MCP (Hooks simpler)
532
+
533
+ ---
534
+
535
+ ## Summary
536
+
537
+ | Question | Answer |
538
+ | ------------------------------------------ | ----------------------------------------- |
539
+ | **Are MCP servers relevant?** | Yes, but not for Phase 2 |
540
+ | **Should we use MCP for quality checks?** | No - Skills are better |
541
+ | **When are MCP servers useful?** | External integrations (GitHub, databases) |
542
+ | **Do we need to install MCP servers now?** | No - Skills + Hooks sufficient |
543
+ | **What about your current MCP config?** | Keep as-is, not interfering |
544
+
545
+ **Bottom line**: MCP servers are powerful for external integrations, but Skills + Hooks are the right tools for internal quality automation. Stick with Phase 2 plan: Skills + Hooks.