safeword 0.2.4 → 0.2.5
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.
- package/dist/check-3NGQ4NR5.js +129 -0
- package/dist/check-3NGQ4NR5.js.map +1 -0
- package/dist/chunk-2XWIUEQK.js +190 -0
- package/dist/chunk-2XWIUEQK.js.map +1 -0
- package/dist/chunk-GZRQL3SX.js +146 -0
- package/dist/chunk-GZRQL3SX.js.map +1 -0
- package/dist/chunk-ORQHKDT2.js +10 -0
- package/dist/chunk-ORQHKDT2.js.map +1 -0
- package/dist/chunk-W66Z3C5H.js +21 -0
- package/dist/chunk-W66Z3C5H.js.map +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +34 -0
- package/dist/cli.js.map +1 -0
- package/dist/diff-Y6QTAW4O.js +166 -0
- package/dist/diff-Y6QTAW4O.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/reset-3ACTIYYE.js +143 -0
- package/dist/reset-3ACTIYYE.js.map +1 -0
- package/dist/setup-RR4M334C.js +266 -0
- package/dist/setup-RR4M334C.js.map +1 -0
- package/dist/upgrade-6AR3DHUV.js +134 -0
- package/dist/upgrade-6AR3DHUV.js.map +1 -0
- package/package.json +44 -19
- package/{.safeword → templates}/hooks/agents-md-check.sh +0 -0
- package/{.safeword → templates}/hooks/post-tool.sh +0 -0
- package/{.safeword → templates}/hooks/pre-commit.sh +0 -0
- package/.claude/commands/arch-review.md +0 -32
- package/.claude/commands/lint.md +0 -6
- package/.claude/commands/quality-review.md +0 -13
- package/.claude/commands/setup-linting.md +0 -6
- package/.claude/hooks/auto-lint.sh +0 -6
- package/.claude/hooks/auto-quality-review.sh +0 -170
- package/.claude/hooks/check-linting-sync.sh +0 -17
- package/.claude/hooks/inject-timestamp.sh +0 -6
- package/.claude/hooks/question-protocol.sh +0 -12
- package/.claude/hooks/run-linters.sh +0 -8
- package/.claude/hooks/run-quality-review.sh +0 -76
- package/.claude/hooks/version-check.sh +0 -10
- package/.claude/mcp/README.md +0 -96
- package/.claude/mcp/arcade.sample.json +0 -9
- package/.claude/mcp/context7.sample.json +0 -7
- package/.claude/mcp/playwright.sample.json +0 -7
- package/.claude/settings.json +0 -62
- package/.claude/skills/quality-reviewer/SKILL.md +0 -190
- package/.claude/skills/safeword-quality-reviewer/SKILL.md +0 -13
- package/.env.arcade.example +0 -4
- package/.env.example +0 -11
- package/.gitmodules +0 -4
- package/.safeword/SAFEWORD.md +0 -33
- package/.safeword/eslint/eslint-base.mjs +0 -101
- package/.safeword/guides/architecture-guide.md +0 -404
- package/.safeword/guides/code-philosophy.md +0 -174
- package/.safeword/guides/context-files-guide.md +0 -405
- package/.safeword/guides/data-architecture-guide.md +0 -183
- package/.safeword/guides/design-doc-guide.md +0 -165
- package/.safeword/guides/learning-extraction.md +0 -515
- package/.safeword/guides/llm-instruction-design.md +0 -239
- package/.safeword/guides/llm-prompting.md +0 -95
- package/.safeword/guides/tdd-best-practices.md +0 -570
- package/.safeword/guides/test-definitions-guide.md +0 -243
- package/.safeword/guides/testing-methodology.md +0 -573
- package/.safeword/guides/user-story-guide.md +0 -237
- package/.safeword/guides/zombie-process-cleanup.md +0 -214
- package/.safeword/planning/002-user-story-quality-evaluation.md +0 -1840
- package/.safeword/planning/003-langsmith-eval-setup-prompt.md +0 -363
- package/.safeword/planning/004-llm-eval-test-cases.md +0 -3226
- package/.safeword/planning/005-architecture-enforcement-system.md +0 -169
- package/.safeword/planning/006-reactive-fix-prevention-research.md +0 -135
- package/.safeword/planning/011-cli-ux-vision.md +0 -330
- package/.safeword/planning/012-project-structure-cleanup.md +0 -154
- package/.safeword/planning/README.md +0 -39
- package/.safeword/planning/automation-plan-v2.md +0 -1225
- package/.safeword/planning/automation-plan-v3.md +0 -1291
- package/.safeword/planning/automation-plan.md +0 -3058
- package/.safeword/planning/design/005-cli-implementation.md +0 -343
- package/.safeword/planning/design/013-cli-self-contained-templates.md +0 -596
- package/.safeword/planning/design/013a-eslint-plugin-suite.md +0 -256
- package/.safeword/planning/design/013b-implementation-snippets.md +0 -385
- package/.safeword/planning/design/013c-config-isolation-strategy.md +0 -242
- package/.safeword/planning/design/code-philosophy-improvements.md +0 -60
- package/.safeword/planning/mcp-analysis.md +0 -545
- package/.safeword/planning/phase2-subagents-vs-skills-analysis.md +0 -451
- package/.safeword/planning/settings-improvements.md +0 -970
- package/.safeword/planning/test-definitions/005-cli-implementation.md +0 -1301
- package/.safeword/planning/test-definitions/cli-self-contained-templates.md +0 -205
- package/.safeword/planning/user-stories/001-guides-review-user-stories.md +0 -1381
- package/.safeword/planning/user-stories/003-reactive-fix-prevention.md +0 -132
- package/.safeword/planning/user-stories/004-technical-constraints.md +0 -86
- package/.safeword/planning/user-stories/005-cli-implementation.md +0 -311
- package/.safeword/planning/user-stories/cli-self-contained-templates.md +0 -172
- package/.safeword/planning/versioned-distribution.md +0 -740
- package/.safeword/prompts/arch-review.md +0 -43
- package/.safeword/prompts/quality-review.md +0 -11
- package/.safeword/scripts/arch-review.sh +0 -235
- package/.safeword/scripts/check-linting-sync.sh +0 -58
- package/.safeword/scripts/setup-linting.sh +0 -559
- package/.safeword/templates/architecture-template.md +0 -136
- package/.safeword/templates/ci/architecture-check.yml +0 -79
- package/.safeword/templates/design-doc-template.md +0 -127
- package/.safeword/templates/test-definitions-feature.md +0 -100
- package/.safeword/templates/ticket-template.md +0 -74
- package/.safeword/templates/user-stories-template.md +0 -82
- package/.safeword/tickets/001-guides-review-user-stories.md +0 -83
- package/.safeword/tickets/002-architecture-enforcement.md +0 -211
- package/.safeword/tickets/003-reactive-fix-prevention.md +0 -57
- package/.safeword/tickets/004-technical-constraints-in-user-stories.md +0 -39
- package/.safeword/tickets/005-cli-implementation.md +0 -248
- package/.safeword/tickets/006-flesh-out-skills.md +0 -43
- package/.safeword/tickets/007-flesh-out-questioning.md +0 -44
- package/.safeword/tickets/008-upgrade-questioning.md +0 -58
- package/.safeword/tickets/009-naming-conventions.md +0 -41
- package/.safeword/tickets/010-safeword-md-cleanup.md +0 -34
- package/.safeword/tickets/011-cursor-setup.md +0 -86
- package/.safeword/tickets/README.md +0 -73
- package/.safeword/version +0 -1
- package/AGENTS.md +0 -59
- package/CLAUDE.md +0 -12
- package/README.md +0 -347
- package/docs/001-cli-implementation-plan.md +0 -856
- package/docs/elite-dx-implementation-plan.md +0 -1034
- package/framework/README.md +0 -131
- package/framework/mcp/README.md +0 -96
- package/framework/mcp/arcade.sample.json +0 -8
- package/framework/mcp/context7.sample.json +0 -6
- package/framework/mcp/playwright.sample.json +0 -6
- package/framework/scripts/arch-review.sh +0 -235
- package/framework/scripts/check-linting-sync.sh +0 -58
- package/framework/scripts/load-env.sh +0 -49
- package/framework/scripts/setup-claude.sh +0 -223
- package/framework/scripts/setup-linting.sh +0 -559
- package/framework/scripts/setup-quality.sh +0 -477
- package/framework/scripts/setup-safeword.sh +0 -550
- package/framework/templates/ci/architecture-check.yml +0 -78
- package/learnings/ai-sdk-v5-breaking-changes.md +0 -178
- package/learnings/e2e-test-zombie-processes.md +0 -231
- package/learnings/milkdown-crepe-editor-property.md +0 -96
- package/learnings/prosemirror-fragment-traversal.md +0 -119
- package/packages/cli/AGENTS.md +0 -1
- package/packages/cli/ARCHITECTURE.md +0 -279
- package/packages/cli/package.json +0 -51
- package/packages/cli/src/cli.ts +0 -63
- package/packages/cli/src/commands/check.ts +0 -166
- package/packages/cli/src/commands/diff.ts +0 -209
- package/packages/cli/src/commands/reset.ts +0 -190
- package/packages/cli/src/commands/setup.ts +0 -325
- package/packages/cli/src/commands/upgrade.ts +0 -163
- package/packages/cli/src/index.ts +0 -3
- package/packages/cli/src/templates/config.ts +0 -58
- package/packages/cli/src/templates/content.ts +0 -18
- package/packages/cli/src/templates/index.ts +0 -12
- package/packages/cli/src/utils/agents-md.ts +0 -66
- package/packages/cli/src/utils/fs.ts +0 -179
- package/packages/cli/src/utils/git.ts +0 -124
- package/packages/cli/src/utils/hooks.ts +0 -29
- package/packages/cli/src/utils/output.ts +0 -60
- package/packages/cli/src/utils/project-detector.test.ts +0 -185
- package/packages/cli/src/utils/project-detector.ts +0 -44
- package/packages/cli/src/utils/version.ts +0 -28
- package/packages/cli/src/version.ts +0 -6
- package/packages/cli/templates/SAFEWORD.md +0 -776
- package/packages/cli/templates/doc-templates/architecture-template.md +0 -136
- package/packages/cli/templates/doc-templates/design-doc-template.md +0 -134
- package/packages/cli/templates/doc-templates/test-definitions-feature.md +0 -131
- package/packages/cli/templates/doc-templates/ticket-template.md +0 -82
- package/packages/cli/templates/doc-templates/user-stories-template.md +0 -92
- package/packages/cli/templates/guides/architecture-guide.md +0 -423
- package/packages/cli/templates/guides/code-philosophy.md +0 -195
- package/packages/cli/templates/guides/context-files-guide.md +0 -457
- package/packages/cli/templates/guides/data-architecture-guide.md +0 -200
- package/packages/cli/templates/guides/design-doc-guide.md +0 -171
- package/packages/cli/templates/guides/learning-extraction.md +0 -552
- package/packages/cli/templates/guides/llm-instruction-design.md +0 -248
- package/packages/cli/templates/guides/llm-prompting.md +0 -102
- package/packages/cli/templates/guides/tdd-best-practices.md +0 -615
- package/packages/cli/templates/guides/test-definitions-guide.md +0 -334
- package/packages/cli/templates/guides/testing-methodology.md +0 -618
- package/packages/cli/templates/guides/user-story-guide.md +0 -256
- package/packages/cli/templates/guides/zombie-process-cleanup.md +0 -219
- package/packages/cli/templates/hooks/agents-md-check.sh +0 -27
- package/packages/cli/templates/hooks/post-tool.sh +0 -4
- package/packages/cli/templates/hooks/pre-commit.sh +0 -10
- package/packages/cli/templates/prompts/arch-review.md +0 -43
- package/packages/cli/templates/prompts/quality-review.md +0 -10
- package/packages/cli/templates/skills/safeword-quality-reviewer/SKILL.md +0 -207
- package/packages/cli/tests/commands/check.test.ts +0 -129
- package/packages/cli/tests/commands/cli.test.ts +0 -89
- package/packages/cli/tests/commands/diff.test.ts +0 -115
- package/packages/cli/tests/commands/reset.test.ts +0 -310
- package/packages/cli/tests/commands/self-healing.test.ts +0 -170
- package/packages/cli/tests/commands/setup-blocking.test.ts +0 -71
- package/packages/cli/tests/commands/setup-core.test.ts +0 -135
- package/packages/cli/tests/commands/setup-git.test.ts +0 -139
- package/packages/cli/tests/commands/setup-hooks.test.ts +0 -334
- package/packages/cli/tests/commands/setup-linting.test.ts +0 -189
- package/packages/cli/tests/commands/setup-noninteractive.test.ts +0 -80
- package/packages/cli/tests/commands/setup-templates.test.ts +0 -181
- package/packages/cli/tests/commands/upgrade.test.ts +0 -215
- package/packages/cli/tests/helpers.ts +0 -243
- package/packages/cli/tests/npm-package.test.ts +0 -83
- package/packages/cli/tests/technical-constraints.test.ts +0 -96
- package/packages/cli/tsconfig.json +0 -25
- package/packages/cli/tsup.config.ts +0 -11
- package/packages/cli/vitest.config.ts +0 -23
- package/promptfoo.yaml +0 -3270
- /package/{framework → templates}/SAFEWORD.md +0 -0
- /package/{packages/cli/templates → templates}/commands/arch-review.md +0 -0
- /package/{packages/cli/templates → templates}/commands/lint.md +0 -0
- /package/{packages/cli/templates → templates}/commands/quality-review.md +0 -0
- /package/{framework/templates → templates/doc-templates}/architecture-template.md +0 -0
- /package/{framework/templates → templates/doc-templates}/design-doc-template.md +0 -0
- /package/{framework/templates → templates/doc-templates}/test-definitions-feature.md +0 -0
- /package/{framework/templates → templates/doc-templates}/ticket-template.md +0 -0
- /package/{framework/templates → templates/doc-templates}/user-stories-template.md +0 -0
- /package/{framework → templates}/guides/architecture-guide.md +0 -0
- /package/{framework → templates}/guides/code-philosophy.md +0 -0
- /package/{framework → templates}/guides/context-files-guide.md +0 -0
- /package/{framework → templates}/guides/data-architecture-guide.md +0 -0
- /package/{framework → templates}/guides/design-doc-guide.md +0 -0
- /package/{framework → templates}/guides/learning-extraction.md +0 -0
- /package/{framework → templates}/guides/llm-instruction-design.md +0 -0
- /package/{framework → templates}/guides/llm-prompting.md +0 -0
- /package/{framework → templates}/guides/tdd-best-practices.md +0 -0
- /package/{framework → templates}/guides/test-definitions-guide.md +0 -0
- /package/{framework → templates}/guides/testing-methodology.md +0 -0
- /package/{framework → templates}/guides/user-story-guide.md +0 -0
- /package/{framework → templates}/guides/zombie-process-cleanup.md +0 -0
- /package/{packages/cli/templates → templates}/hooks/inject-timestamp.sh +0 -0
- /package/{packages/cli/templates → templates}/lib/common.sh +0 -0
- /package/{packages/cli/templates → templates}/lib/jq-fallback.sh +0 -0
- /package/{packages/cli/templates → templates}/markdownlint.jsonc +0 -0
- /package/{framework → templates}/prompts/arch-review.md +0 -0
- /package/{framework → templates}/prompts/quality-review.md +0 -0
- /package/{framework/skills/quality-reviewer → templates/skills/safeword-quality-reviewer}/SKILL.md +0 -0
|
@@ -1,545 +0,0 @@
|
|
|
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.
|