critical-analysis-patterns
Philosophical/meta project analysis - critical analysis framework that asks "why?"
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install chkim-su-skillmaker-critical-analysis-patterns
Repository
Skill path: skills/critical-analysis-patterns
Philosophical/meta project analysis - critical analysis framework that asks "why?"
Open repositoryBest for
Primary workflow: Ship Full Stack.
Technical facets: Full Stack.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: chkim-su.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install critical-analysis-patterns into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/chkim-su/skillmaker before adding critical-analysis-patterns to shared team environments
- Use critical-analysis-patterns for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: critical-analysis-patterns
description: Philosophical/meta project analysis - critical analysis framework that asks "why?"
allowed-tools: ["Read", "Glob", "Grep", "Task"]
---
# Critical Analysis Patterns
Beyond technical validation, analyze **alignment between intent and implementation**.
---
## Canonical Implementation Principle ๐
> **skillmaker aims for "canonical implementation" of plugins, agents, and marketplaces.**
### Active Recommendation
When analyzing projects, **actively recommend skillmaker's "good practices"** for similar/equivalent features:
| Domain | Canonical Pattern | Skill to Load |
|--------|------------------|---------------|
| MCP integration | Daemon SSE isolation | `mcp-gateway-patterns` |
| Skill structure | Progressive disclosure | `skill-design` |
| Agent design | Context isolation | `orchestration-patterns` |
| Behavior enforcement | Hookification | `hook-templates` |
| Multi-stage workflow | State files + gates | `workflow-state-patterns` |
| Skill discovery | Keyword triggers | `skill-activation-patterns` |
### When Project Uses Different Approach
If the project uses a different method, determine:
| Question | Verdict | Action |
|----------|---------|--------|
| "Is this approach inferior?" | Deficient | **Recommend canonical pattern** |
| "Is this a valid domain-specific choice?" | Respectable | **Acknowledge and document trade-offs** |
| "Is this actually better?" | Superior | **Learn from it, consider adopting** |
### Evaluation Criteria
```markdown
## Deficiency Indicators (recommend change)
- Reinventing what skillmaker already solved
- Missing enforcement (MUST keywords without hooks)
- Ignoring known anti-patterns
- Unnecessary complexity vs canonical approach
## Domain-Specific Indicators (respect choice)
- Different constraints that invalidate canonical approach
- Performance requirements that justify deviation
- Ecosystem compatibility requirements
- Documented rationale for deviation
```
### Example: MCP Analysis
When project uses MCP:
1. **Load**: `Skill("skillmaker:mcp-gateway-patterns")`
2. **Check**: Is Daemon SSE pattern being used?
3. **If not**:
- Is there a documented reason?
- Does their approach handle subagent isolation?
- Recommend Daemon pattern if deficient
## Core Questions (6 Questions)
Ask these questions for every component:
### 1. Existence Justification
```
- "Why is this here?"
- "What breaks if we remove it?"
- "Can it be replaced with something else?"
```
### 2. Intent-Implementation Alignment
```
- "Does the name reflect the actual role?"
- "Does declared purpose match actual behavior?"
- "Are documentation and code synchronized?"
```
### 3. Consistency
```
- "Are similar things being handled differently?"
- "Are patterns A and B mixed?"
- "Is exceptional handling justified?"
```
### 4. Unused Capabilities
```
- "Is there something declared but not used?"
- "Is there something implemented but never called?"
- "Why isn't it being used?"
```
### 5. Complexity Justification
```
- "Is this complexity truly necessary?"
- "Is there a simpler alternative?"
- "Is this over-engineering?"
```
### 6. Fundamental Redesign ๐ฅ
> **"Idiots, this solves everything - why can't you see it?"**
Beyond conservative solutions (deletion, exceptions, workarounds), ask questions that **eliminate constraints themselves**:
```
- "If this problem keeps recurring, isn't the system itself wrong?"
- "Are we taking this constraint/limitation for granted?"
- "Is there a completely different approach?"
- "If there's a 10x better method, what is it?"
- "If we rebuilt this from scratch, how would we do it?"
```
**When to apply**:
- Same type of problem found 3+ times
- Conservative solution feels like a "band-aid"
- Feeling of "why is this so complicated?"
---
## Analysis Process
### Step 1: Component Inventory
```bash
# Collect all components
agents/*.md, skills/*/SKILL.md, commands/*.md, hooks/hooks.json
```
### Step 2: Relationship Mapping
| From | To | Relationship |
|------|----|--------------|
| command | agent | invokes via Task |
| agent | skill | loads via Skill() or frontmatter |
| hook | agent/skill | triggers on events |
### Step 3: Apply Core Questions
Apply 6 questions to each component and discover inconsistencies
### Step 4: Organize Findings
## Output Format
```markdown
### Philosophical Analysis Results
| Finding | Question | Suggestion |
|---------|----------|------------|
| {what} | {why?} | {alternative} |
```
---
## Red Flags (Signals That Require Immediate Questioning)
| Signal | Question | Details |
|--------|----------|---------|
| In agents/ but tools: [] | "Is this an agent or documentation?" | `Read("references/intent-vs-implementation.md")` |
| Declared skills unused | "Why declared but not used?" | `Read("references/unused-capability-detection.md")` |
| 90%+ similar workflows separated | "Is there a reason not to consolidate?" | `Read("references/architectural-smell-catalog.md")` |
| 20+ Hooks | "Is this over-engineering?" | Complexity justification required |
| Components with overlapping responsibilities | "Are boundaries clear?" | Role redefinition required |
| Non-canonical pattern used | "Is skillmaker's canonical approach applicable?" | Load relevant skill and compare |
---
## Solution Synthesis
> **Diagnosis + Prescription = Consulting**
When problems are found, provide solutions at **two levels**:
### Level 1: Conservative Solutions
Solutions found within existing patterns/skills:
| Finding Pattern | Related Skill | Solution Reference |
|----------------|---------------|-------------------|
| MCP/Gateway issues | `mcp-gateway-patterns` | `references/daemon-shared-server.md` |
| Skill design issues | `skill-design` | `references/structure-rules.md` |
| Agent orchestration | `orchestration-patterns` | `references/context-isolation.md` |
| Hook related | `hook-templates` | `references/full-examples.md` |
| Workflow state | `workflow-state-patterns` | `references/complete-workflow-example.md` |
### Level 2: Radical Solutions ๐ฅ
> **"If you're confident, propose it even if it's not in existing patterns"**
When conservative solutions feel like **band-aids**, consider:
| Situation | Radical Question | Possible Proposal |
|-----------|-----------------|-------------------|
| Same problem recurring | "Is the system structure wrong?" | **Full architecture redesign** |
| Exceptions outnumber rules | "Is the rule itself wrong?" | **Discard and redefine rules** |
| Complex workarounds | "Why not tackle it head-on?" | **Remove the constraint itself** |
| Compatibility band-aids | "What if we drop legacy?" | **Execute breaking change** |
| Slow improvements | "What if we rebuild from scratch?" | **Clean slate reconstruction** |
**Criteria for proposing radical solutions**:
1. First explain limits of conservative solution
2. Explicitly state trade-offs of radical solution
3. Indicate **confidence level** (High/Medium/Exploratory)
4. Provide concrete execution steps
**Output format**:
```markdown
### ๐ฅ Radical Solution: {proposal}
**Why this is right**:
{rationale - fundamental limits of existing approach}
**Trade-off**:
- Gains: {benefits}
- Losses: {costs}
**Confidence Level**: High | Medium | Exploratory
**Execution Steps**:
1. {step 1}
2. {step 2}
...
```
**Detailed process**: `Read("references/solution-synthesis.md")`
---
## Quick Checklist
Items to verify quickly during analysis:
- [ ] Do all agents/ actually function as agents?
- [ ] Do skill declarations match Skill() usage?
- [ ] Can similar Hooks be extracted into common patterns?
- [ ] Are there old architecture remnants in documentation?
- [ ] Can each component's existence be explained in one sentence?
- [ ] Does the project follow skillmaker's canonical patterns?
- [ ] If different approach used, is there documented rationale?
---
## Referenced Files
> The following files are referenced in this skill and included for context.
### references/intent-vs-implementation.md
```markdown
# Intent vs Implementation Mismatch Patterns
์๋์ ๊ตฌํ์ด ๋ถ์ผ์นํ๋ ์ผ๋ฐ์ ์ธ ํจํด๋ค์
๋๋ค.
## Pattern 1: ์ด๋ฆ๊ณผ ์ญํ ๋ถ์ผ์น
### ์ฆ์
```
ํ์ผ: agents/gateway.md
tools: []
์ค์ ๋์: MCP ๋๊ตฌ๋ฅผ ์ง์ ํธ์ถํ์ง ์์, ๋ฌธ์ ์ญํ ๋ง ์ํ
```
### ์ง๋ฌธ
- "gateway๋ผ๋ ์ด๋ฆ์ด ์์ํ๋ ์ญํ ๊ณผ ์ค์ ์ญํ ์ด ๋ค๋ฅด์ง ์์๊ฐ?"
- "agents/ ๋๋ ํ ๋ฆฌ์ ์์ด์ผ ํ๋๊ฐ?"
### ํด๊ฒฐ ๋ฐฉ์
| ์ต์
| ์ค๋ช
|
|-----|-----|
| ์ญํ ๋ณ๊ฒฝ | ์ค์ gateway ๊ธฐ๋ฅ ๊ตฌํ (MCP ํธ์ถ ๋ฑ) |
| ์์น ๋ณ๊ฒฝ | docs/ ๋๋ references/๋ก ์ด๋ |
| ์ด๋ฆ ๋ณ๊ฒฝ | ์ค์ ์ญํ ์ ๋ฐ์ํ๋ ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝ |
---
## Pattern 2: ์ ์ธ๊ณผ ๋์ ๋ถ์ผ์น
### ์ฆ์
```yaml
# frontmatter
skills: skill-a, skill-b, skill-c
# body
์ค์ ๋ก skill-a๋ง ์ฌ์ฉ๋จ
skill-b, skill-c๋ ์ธ๊ธ๋ ์์
```
### ์ง๋ฌธ
- "์ skill-b, skill-c๋ฅผ ์ ์ธํ๋๊ฐ?"
- "๋์ค์ ์ฐ๋ ค๊ณ ํ๋ค๋ฉด ์ ์์ง ์ ์ฐ๋๊ฐ?"
- "๋ถํ์ํ๋ค๋ฉด ์ ์ ๊ฑฐํ์ง ์์๋๊ฐ?"
### ํด๊ฒฐ ๋ฐฉ์
1. ์ค์ ์ฌ์ฉํ๋ ์คํฌ๋ง ์ ์ธ
2. ๋๋ ์ ์ธํ ์คํฌ์ ์ค์ ๋ก ํ์ฉํ๋ ๋ก์ง ์ถ๊ฐ
---
## Pattern 3: ๋ฌธ์์ ์ฝ๋ ๋น๋๊ธฐํ
### ์ฆ์
```markdown
## Important: Use Gateway Pattern
๋ชจ๋ MCP ํธ์ถ์ gateway๋ฅผ ํตํด์ผ ํฉ๋๋ค.
Task:
agent: serena-gateway
prompt: "..."
```
ํ์ง๋ง ์ค์ ์ํคํ
์ฒ๋:
- ๋ฉ์ธ ์ธ์
์์ ์ง์ MCP ํธ์ถ
- gateway๋ ๋ ์ด์ ์ค๊ฐ ์ญํ ์ ํจ
### ์ง๋ฌธ
- "์ํคํ
์ฒ๊ฐ ๋ณ๊ฒฝ๋์๋๋ฐ ๋ฌธ์๋ ์ ์ ๋ฐ๋์๋๊ฐ?"
- "์ด ๋ฌธ์๋ฅผ ์ฝ๋ ์ฌ๋์ด ํผ๋์ค๋ฝ์ง ์๊ฒ ๋๊ฐ?"
### ํด๊ฒฐ ๋ฐฉ์
1. ๋ฌธ์๋ฅผ ํ์ฌ ์ํคํ
์ฒ์ ๋ง๊ฒ ์
๋ฐ์ดํธ
2. ๊ตฌ ์ํคํ
์ฒ ์น์
์์ ์ ๊ฑฐ (์ฃผ์ ์ฒ๋ฆฌ๋ ์ ๋จ)
---
## Pattern 4: ์์น์ ์ญํ ๋ถ์ผ์น
### ์ผ๋ฐ์ ์ธ ๊ธฐ๋
| ์์น | ๊ธฐ๋ ์ญํ |
|-----|----------|
| agents/ | Task๋ก ํธ์ถ๋๋ ๋
๋ฆฝ ์์ด์ ํธ |
| skills/ | Skill()๋ก ๋ก๋๋๋ ์ปจํ
์คํธ |
| commands/ | /command๋ก ์คํ๋๋ ์ํฌํ๋ก์ฐ |
| docs/ | ์ฐธ์กฐ ๋ฌธ์ |
### ๋ถ์ผ์น ์์
```
agents/documentation-only.md # ์ค์ ๋ก ๋ฌธ์
skills/executable-script/ # ์ค์ ๋ก ์์ด์ ํธ์ฒ๋ผ ๋์
```
### ํด๊ฒฐ ๋ฐฉ์
- ์ญํ ์ ๋ง๋ ๋๋ ํ ๋ฆฌ๋ก ์ด๋
- ๋๋ ์ญํ ์ ๋๋ ํ ๋ฆฌ ์๋ฏธ์ ๋ง๊ฒ ๋ณ๊ฒฝ
---
## Detection Checklist
๋ถ์ ์ ํ์ธํ ํญ๋ชฉ:
- [ ] ๋ชจ๋ agents/*.md๊ฐ tools: ํ๋์ ๋๊ตฌ๋ฅผ ๊ฐ์ง๊ณ ์๋๊ฐ?
- [ ] frontmatter skills ์ ์ธ๊ณผ ๋ณธ๋ฌธ Skill() ์ฌ์ฉ์ด ์ผ์นํ๋๊ฐ?
- [ ] ๋ฌธ์์ "๊ตฌ ๋ฐฉ์", "์ด์ ์ํคํ
์ฒ" ์ธ๊ธ์ด ์๋๊ฐ?
- [ ] ํ์ผ๋ช
/ํด๋๋ช
์ด ์ค์ ์ญํ ์ ๋ฐ์ํ๋๊ฐ?
```
### references/unused-capability-detection.md
```markdown
# Unused Capability Detection
"์๋๋ฐ ์ ์ ์ฐ์ง?"๋ฅผ ๊ฐ์งํ๋ ํจํด๋ค์
๋๋ค.
## Type 1: ์ ์ธ๋ ๋ฏธ์ฌ์ฉ ์คํฌ
### ๊ฐ์ง ๋ฐฉ๋ฒ
```bash
# 1. frontmatter์์ skills ์ ์ธ ์ถ์ถ
grep -r "^skills:" agents/ commands/
# 2. ๋ณธ๋ฌธ์์ Skill() ์ฌ์ฉ ์ถ์ถ
grep -r "Skill(" agents/ commands/
# 3. ์ฐจ์งํฉ = ๋ฏธ์ฌ์ฉ ์คํฌ
```
### ์ง๋ฌธ
- "์ ์ธ๋ง ํ๊ณ ์ ์ ์ฐ๋๊ฐ?"
- "๋ฏธ๋ ์ฌ์ฉ์ ์ํ ๊ฒ์ด๋ผ๋ฉด ์ ์ฃผ์์ด ์๋๊ฐ?"
- "์ ๋ง ํ์ํ ์คํฌ์ธ๊ฐ?"
### ํด๊ฒฐ ๋ฐฉ์
| ์ํฉ | ์กฐ์น |
|-----|-----|
| ์ค์๋ก ๋จ์ | ์ ๊ฑฐ |
| ๋ฏธ๋ ์ฌ์ฉ ์์ | TODO ์ฃผ์ ์ถ๊ฐ |
| ์๋ฌต์ ์์กด | ๋ช
์์ ์ฌ์ฉ ์ถ๊ฐ |
---
## Type 2: ๋ฏธ์ฌ์ฉ ์์ด์ ํธ
### ๊ฐ์ง ๋ฐฉ๋ฒ
```bash
# 1. agents/ ๋ชฉ๋ก
ls agents/*.md
# 2. Task ํธ์ถ์์ ์ฐธ์กฐ๋๋ ์์ด์ ํธ
grep -r "agent:" commands/ skills/
grep -r "subagent_type" commands/ skills/
# 3. ์ฐจ์งํฉ = ๋ฏธ์ฌ์ฉ ์์ด์ ํธ
```
### ์ง๋ฌธ
- "์ด ์์ด์ ํธ๋ฅผ ํธ์ถํ๋ ๊ณณ์ด ์๋๊ฐ?"
- "๋
๋ฆฝ ์คํ์ฉ์ด๋ผ๋ฉด ์ด๋ป๊ฒ ์คํํ๋๊ฐ?"
- "๋ค๋ฅธ ์์ด์ ํธ์ ํตํฉ๋์ด์ผ ํ๋ ๊ฒ์ ์๋๊ฐ?"
---
## Type 3: ๋ฏธ์ฌ์ฉ Hook
### ๊ฐ์ง ๋ฐฉ๋ฒ
```json
// hooks.json์ 20๊ฐ Hook์ด ์์ง๋ง
// ์ค์ ๋ก ํธ๋ฆฌ๊ฑฐ๋๋ ์ํฉ์ด ์๋ Hook ์กด์ฌ
```
### ์ง๋ฌธ
- "์ด Hook์ด ํธ๋ฆฌ๊ฑฐ๋๋ ์ํฉ์ด ์ค์ ๋ก ๋ฐ์ํ๋๊ฐ?"
- "ํ
์คํธํด๋ณธ ์ ์๋๊ฐ?"
- "์ค๋ฒ์์ง๋์ด๋ง์ ์๋๊ฐ?"
---
## Type 4: ์ ์ธ๋ ๋ฏธ์ฌ์ฉ ๋๊ตฌ
### ์ฆ์
```yaml
# agent frontmatter
tools: ["Read", "Write", "Bash", "Grep", "Glob", "Task", "WebFetch"]
# ์ค์ ๋ณธ๋ฌธ
Read์ Task๋ง ์ฌ์ฉ๋จ
```
### ์ง๋ฌธ
- "7๊ฐ ๋๊ตฌ๋ฅผ ์ ์ธํ๋๋ฐ 2๊ฐ๋ง ์ฐ๋ ์ด์ ๋?"
- "์ต์ ๊ถํ ์์น์ ์๋ฐํ๊ณ ์์ง ์์๊ฐ?"
### ํด๊ฒฐ ๋ฐฉ์
- ์ค์ ์ฌ์ฉํ๋ ๋๊ตฌ๋ง ์ ์ธ
- ๋๋ ์ ์ธํ ๋๊ตฌ๋ฅผ ํ์ฉํ๋ ๋ก์ง ์ถ๊ฐ
---
## Type 5: ๋ฏธ์ฌ์ฉ references/
### ์ฆ์
```
skills/my-skill/
โโโ SKILL.md
โโโ references/
โโโ used.md # SKILL.md์์ Read() ์ฐธ์กฐ๋จ
โโโ orphan.md # ์๋ฌด๋ ์ฐธ์กฐ ์ ํจ
```
### ๊ฐ์ง ๋ฐฉ๋ฒ
```bash
# references/ ํ์ผ ๋ชฉ๋ก
ls skills/*/references/
# SKILL.md์์ Read() ์ฐธ์กฐ ์ถ์ถ
grep -r "Read(" skills/*/SKILL.md
```
### ์ง๋ฌธ
- "์ด ์ฐธ์กฐ ๋ฌธ์๋ ๋๊ฐ ์ฝ๋๊ฐ?"
- "๋ ์ด์ ํ์ ์๋ ๊ฒ์ ์๋๊ฐ?"
---
## Summary Table
| ์ ํ | ๊ฐ์ง ๋ฐฉ๋ฒ | ์กฐ์น |
|-----|----------|-----|
| ๋ฏธ์ฌ์ฉ ์คํฌ ์ ์ธ | frontmatter vs Skill() ๋น๊ต | ์ ๊ฑฐ ๋๋ ์ฌ์ฉ |
| ๋ฏธ์ฌ์ฉ ์์ด์ ํธ | agents/ vs Task ํธ์ถ ๋น๊ต | ์ ๊ฑฐ ๋๋ ํตํฉ |
| ๋ฏธ์ฌ์ฉ Hook | hooks.json ๋ถ์ | ์ ๊ฑฐ ๋๋ ํ
์คํธ |
| ๋ฏธ์ฌ์ฉ ๋๊ตฌ ์ ์ธ | tools vs ๋ณธ๋ฌธ ๋น๊ต | ์ต์ํ |
| ๋ฏธ์ฌ์ฉ references | Read() ์ฐธ์กฐ ์ถ์ | ์ ๊ฑฐ ๋๋ ์ฐ๊ฒฐ |
```
### references/architectural-smell-catalog.md
```markdown
# Architectural Smell Catalog
ํ๋ก์ ํธ์์ ๋ฐ๊ฒฌํ ์ ์๋ "์ํคํ
์ฒ ๋์" ์นดํ๋ก๊ทธ์
๋๋ค.
## Smell 1: ๊ณผ๋ํ ์ ์ฌ์ฑ (Excessive Similarity)
### ์ฆ์
```
inject-workflow์ refactor-workflow์ Hook ๊ตฌ์กฐ๊ฐ 95% ๋์ผ
โโโ PreToolUse: ๊ฑฐ์ ๋์ผํ ๊ฒ์ฆ ๋ก์ง
โโโ PostToolUse: ๊ฑฐ์ ๋์ผํ ์ํ ๊ด๋ฆฌ
โโโ ์ฐจ์ด์ : ์ํ ํ์ผ ์ด๋ฆ๋ง ๋ค๋ฆ (.inject-* vs .refactor-*)
```
### ์ง๋ฌธ
- "์ ํตํฉํ์ง ์์๋๊ฐ?"
- "์๋์ ๋ถ๋ฆฌ๋ผ๋ฉด ๊ทธ ์ด์ ๊ฐ ๋ฌธ์ํ๋์ด ์๋๊ฐ?"
- "๊ณตํต ํจํด์ ์ถ์ถํ ์ ์์ง ์์๊ฐ?"
### ํด๊ฒฐ ๋ฐฉ์
| ์ต์
| ์ค๋ช
|
|-----|-----|
| ํตํฉ | ๊ณตํต ์ํฌํ๋ก์ฐ๋ก ํฉ์น๊ธฐ |
| ์ถ์ถ | ๊ณตํต ํจํด์ ๋ณ๋ ์คํฌ๋ก ๋ถ๋ฆฌ |
| ๋ฌธ์ํ | ๋ถ๋ฆฌ ์ด์ ๋ฅผ ๋ช
ํํ ๊ธฐ๋ก |
---
## Smell 2: ์ฑ
์ ์ค๋ณต (Responsibility Overlap)
### ์ฆ์
```
duplicate-detector ์์ด์ ํธ: "์ค๋ณต ์ฝ๋ ๊ฐ์ง"
knowledge-graph ์คํฌ: "์ค๋ณต ํจํด ์๋ณ" ์ธ๊ธ
โ ๋๊ฐ ์ค์ ๋ก ์ค๋ณต์ ๊ฐ์งํ๋๊ฐ?
```
### ์ง๋ฌธ
- "์ฑ
์์ ๊ฒฝ๊ณ๊ฐ ๋ช
ํํ๊ฐ?"
- "ํธ์ถ์๊ฐ ์ด๋ค ๊ฒ์ ์จ์ผ ํ ์ง ํผ๋์ค๋ฝ์ง ์์๊ฐ?"
- "๋ ๋ค ํ์ํ๊ฐ?"
### ํด๊ฒฐ ๋ฐฉ์
1. ๊ฐ ์ปดํฌ๋ํธ์ ์ฑ
์์ ํ ๋ฌธ์ฅ์ผ๋ก ์ ์
2. ์ค๋ณต ์์ญ ์ ๊ฑฐ
3. ๋ช
ํํ ์ฌ์ฉ ๊ฐ์ด๋ ์์ฑ
---
## Smell 3: ์ ๋ น ์ปดํฌ๋ํธ (Ghost Component)
### ์ฆ์
```
agents/gateway.md
โโโ tools: []
โโโ ๋ณธ๋ฌธ: MCP ๋๊ตฌ ์ฌ์ฉ ๋ฐฉ๋ฒ ์ค๋ช
โโโ ์ค์ : ์๋ฌด๊ฒ๋ ์คํํ์ง ์์
โ ์์ด์ ํธ์ฒ๋ผ ๋ณด์ด์ง๋ง ์์ด์ ํธ๊ฐ ์๋
```
### ์ง๋ฌธ
- "์ด๊ฒ์ ์์ด์ ํธ์ธ๊ฐ ๋ฌธ์์ธ๊ฐ?"
- "์ด๋์ ์์ด์ผ ํ๋๊ฐ?"
- "Task๋ก ํธ์ถ๋๋๊ฐ?"
### ํด๊ฒฐ ๋ฐฉ์
- ์ค์ ์์ด์ ํธ ๊ธฐ๋ฅ ๊ตฌํ
- ๋๋ docs/references๋ก ์ด๋
---
## Smell 4: ๊ณผ์ ๋ณต์ก์ฑ (Overcomplexity)
### ์ฆ์
```
hooks.json: 20+ ๊ท์น
โโโ PreToolUse: 10๊ฐ
โโโ PostToolUse: 8๊ฐ
โโโ Stop: 2๊ฐ
โโโ ์ค์ ํ์ํ ๋์: 5๊ฐ ์ ๋
```
### ์ง๋ฌธ
- "์ด ๋ณต์ก์ฑ์ด ์ ๋ง ํ์ํ๊ฐ?"
- "๊ฐ Hook์ด ์ค์ ๋ก ํธ๋ฆฌ๊ฑฐ๋๋๊ฐ?"
- "YAGNI ์์น์ ์๋ฐํ๊ณ ์์ง ์์๊ฐ?"
### ํด๊ฒฐ ๋ฐฉ์
1. ๊ฐ Hook์ ํ์์ฑ ๊ฒ์ฆ
2. ํธ๋ฆฌ๊ฑฐ๋์ง ์๋ Hook ์ ๊ฑฐ
3. ์ ์ฌํ Hook ํตํฉ
---
## Smell 5: ๊ตฌ ์ํคํ
์ฒ ์์ฌ (Legacy Remnants)
### ์ฆ์
```markdown
## Important: Use Gateway Pattern (๊ตฌ ์ํคํ
์ฒ)
๋ชจ๋ MCP ํธ์ถ์ gateway๋ฅผ ํตํด์ผ ํฉ๋๋ค...
โ ํ์ง๋ง ํ์ฌ๋ Data Delegation ํจํด ์ฌ์ฉ
```
### ์ง๋ฌธ
- "์ด ๋ฌธ์๊ฐ ํ์ฌ ์ํคํ
์ฒ๋ฅผ ๋ฐ์ํ๋๊ฐ?"
- "์ ๊ฐ๋ฐ์๊ฐ ์ด๊ฒ์ ๋ณด๋ฉด ํผ๋์ค๋ฝ์ง ์๊ฒ ๋๊ฐ?"
- "์ธ์ ์
๋ฐ์ดํธํ ๊ฒ์ธ๊ฐ?"
### ํด๊ฒฐ ๋ฐฉ์
- ๊ตฌ ์ํคํ
์ฒ ์น์
์์ ์ ๊ฑฐ
- ํ์ฌ ์ํคํ
์ฒ๋ก ๊ต์ฒด
- ๋ง์ด๊ทธ๋ ์ด์
๋
ธํธ๋ ๋ณ๋ ๋ฌธ์๋ก
---
## Smell 6: ์๋ฌต์ ์์กด์ฑ (Implicit Dependencies)
### ์ฆ์
```
์์ด์ ํธ A๊ฐ ์์ด์ ํธ B์ ์ถ๋ ฅ ํ์์ ์์กด
ํ์ง๋ง ์ด๋์๋ ์ด ์์กด์ฑ์ด ๋ฌธ์ํ๋์ด ์์ง ์์
```
### ์ง๋ฌธ
- "B๊ฐ ๋ณ๊ฒฝ๋๋ฉด A๊ฐ ๊นจ์ง๋๊ฐ?"
- "์ด ์์กด์ฑ์ ๋ช
์์ ์ผ๋ก ์ ์ธํ๋๊ฐ?"
- "์ธํฐํ์ด์ค ๊ณ์ฝ์ด ์๋๊ฐ?"
### ํด๊ฒฐ ๋ฐฉ์
1. ์์กด์ฑ ๋ช
์์ ๋ฌธ์ํ
2. ์ธํฐํ์ด์ค/์คํค๋ง ์ ์
3. ๋๋ ์์กด์ฑ ์ ๊ฑฐ
---
## Smell 7: ๊ณผ์ ์ถ์ํ (Over-Abstraction)
### ์ฆ์
```
ํ ๋ฒ๋ง ์ฌ์ฉ๋๋ ์คํฌ์ด ๋ณ๋ ๋๋ ํ ๋ฆฌ๋ก ๋ถ๋ฆฌ๋จ
โโโ skills/one-time-use/
โ โโโ SKILL.md
โ โโโ references/
โโโ ์ฌ์ฉ์ฒ: agents/single-agent.md ์์๋ง ์ฌ์ฉ
```
### ์ง๋ฌธ
- "์ด ์ถ์ํ๊ฐ ์ฌ์ฌ์ฉ๋๋๊ฐ?"
- "์ธ๋ผ์ธ์ผ๋ก ์ถฉ๋ถํ์ง ์์๊ฐ?"
- "๋ถ๋ฆฌ์ ์ด์ ์ด ๋น์ฉ์ ์ํํ๋๊ฐ?"
---
## Detection Priority
| ์ฐ์ ์์ | Smell | ์ํฅ |
|---------|-------|-----|
| HIGH | ์ฑ
์ ์ค๋ณต | ์ฌ์ฉ์ ํผ๋, ์ ์ง๋ณด์ ์ด๋ ค์ |
| HIGH | ๊ตฌ ์ํคํ
์ฒ ์์ฌ | ์๋ชป๋ ๊ตฌํ ์ ๋ |
| MEDIUM | ์ ๋ น ์ปดํฌ๋ํธ | ๊ตฌ์กฐ ํผ๋ |
| MEDIUM | ๊ณผ์ ์ ์ฌ์ฑ | ์ฝ๋ ์ค๋ณต, ๋ถ์ผ์น ์ํ |
| LOW | ๊ณผ์ ๋ณต์ก์ฑ | ์ ์ง๋ณด์ ๋น์ฉ |
| LOW | ๊ณผ์ ์ถ์ํ | ๋ถํ์ํ ์ธ๋๋ ์
|
```
### references/solution-synthesis.md
```markdown
# Solution Synthesis Framework
๋ฌธ์ ๋ฐ๊ฒฌ์์ ๊ทธ์น์ง ์๊ณ , **skillmaker์ ์ ์ฒด ์ง์ ๋ฒ ์ด์ค๋ฅผ ํ์ฉํด ํด๊ฒฐ์ฑ
์ ์ข
ํฉ**ํฉ๋๋ค.
---
## ํต์ฌ ์์น
> **์ง๋จ + ์ฒ๋ฐฉ = ์ปจ์คํ
**
| ๋จ๊ณ | ํ์ฌ Wizard | ํ๋ช
ํ Wizard |
|------|-------------|---------------|
| 1 | ๋ฌธ์ ๋ฐ๊ฒฌ | ๋ฌธ์ ๋ฐ๊ฒฌ |
| 2 | "์ด๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค" | **์** ์ด๋ฐ ๋ฌธ์ ๊ฐ ์๊ฒผ๋์ง ๋ถ์ |
| 3 | (๋) | ์ด๋ ์คํฌ์์ **์ด ํจํด์ ๋ค๋ฃจ๋์ง** ์๋ณ |
| 4 | - | ํด๋น ์คํฌ์ **ํด๊ฒฐ์ฑ
** ์ถ์ถ |
| 5 | - | **๊ตฌํ ๋ฐฉ๋ฒ** ์ ์ |
| 6 | - | "์คํํ ๊น์?" ์ ์ |
---
## Problem-Solution Mapping
๋ฐ๊ฒฌ๋ ๋ฌธ์ ๋ฅผ skillmaker ์คํฌ๊ณผ ์ฐ๊ฒฐํฉ๋๋ค.
### MCP ๊ด๋ จ ๋ฌธ์
| ๋ฐ๊ฒฌ | ํจํด ์ธ์ | ๊ด๋ จ ์คํฌ | ํด๊ฒฐ์ฑ
|
|------|----------|----------|--------|
| "Gateway ํจํด ์คํจ" | MCP ์ ๊ทผ ์ ์ฝ | `mcp-gateway-patterns` | Daemon SSE ํจํด |
| "์๋ธ์์ด์ ํธ MCP ์ ๊ทผ ๋ถ๊ฐ" | Claude Code ์ ์ฝ | `mcp-gateway-patterns` | ๋ฐ์ดํฐ ์์ ๋๋ Daemon |
| "MCP 30-60์ด ์์ ์ง์ฐ" | Subprocess ์ค๋ฒํค๋ | `mcp-gateway-patterns` | Daemon SSE (1-2์ด) |
| "MCP ํ ํฐ ์ค๋ฒํค๋" | ๋๊ตฌ ์ ์ ๋น์ฉ | `mcp-gateway-patterns` | Subprocess/Daemon ๊ฒฉ๋ฆฌ |
**ํด๊ฒฐ์ฑ
๋ก๋**:
```
Skill("skillmaker:mcp-gateway-patterns")
โ Read("references/daemon-shared-server.md")
```
### ์คํฌ ์ค๊ณ ๋ฌธ์
| ๋ฐ๊ฒฌ | ํจํด ์ธ์ | ๊ด๋ จ ์คํฌ | ํด๊ฒฐ์ฑ
|
|------|----------|----------|--------|
| "SKILL.md 500๋จ์ด ์ด๊ณผ" | Progressive disclosure ์๋ฐ | `skill-design` | references/ ๋ถ๋ฆฌ |
| "frontmatter ๋๋ฝ" | ๋ฉํ๋ฐ์ดํฐ ๋ถ์ฌ | `skill-design` | ํ์ ํ๋ ์ถ๊ฐ |
| "skills ์ ์ธ ๋ฏธ์ฌ์ฉ" | ๋ฏธ์ฌ์ฉ ๊ธฐ๋ฅ | `skill-design` | Skill() ํธ์ถ ๋๋ ์ ์ธ ์ ๊ฑฐ |
**ํด๊ฒฐ์ฑ
๋ก๋**:
```
Skill("skillmaker:skill-design")
โ Read("references/structure-rules.md")
```
### ์์ด์ ํธ ์ค์ผ์คํธ๋ ์ด์
๋ฌธ์
| ๋ฐ๊ฒฌ | ํจํด ์ธ์ | ๊ด๋ จ ์คํฌ | ํด๊ฒฐ์ฑ
|
|------|----------|----------|--------|
| "์์ด์ ํธ์ tools: []" | ์ญํ ํผ๋ | `orchestration-patterns` | ๋ฌธ์ vs ์์ด์ ํธ ์ฌ๋ถ๋ฅ |
| "Skill() ํธ์ถ ์์ด ์ฐธ์กฐ" | ์คํฌ ๋ก๋ฉ ๋๋ฝ | `orchestration-patterns` | ๋ช
์์ Skill() ์ถ๊ฐ |
| "๋ค๋จ๊ณ ์ํฌํ๋ก์ฐ ์คํฌ ๋ฏธ๋ถ๋ฆฌ" | ์ปจํ
์คํธ ๋นํจ์จ | `orchestration-patterns` | ๋จ๊ณ๋ณ ์คํฌ ๋ก๋ฉ |
**ํด๊ฒฐ์ฑ
๋ก๋**:
```
Skill("skillmaker:orchestration-patterns")
โ Read("references/context-isolation.md")
```
### Hook ๊ด๋ จ ๋ฌธ์
| ๋ฐ๊ฒฌ | ํจํด ์ธ์ | ๊ด๋ จ ์คํฌ | ํด๊ฒฐ์ฑ
|
|------|----------|----------|--------|
| "MUST/CRITICAL ํค์๋ but no hook" | Hookify ๋ฏธ์ค์ | `hook-templates` | PreToolUse hook ์ถ๊ฐ |
| "Hook blocking/informational ํผ์ฌ" | ์ ์ฑ
๋ถ์ผ์น | `hook-templates` | ์ ์ฑ
ํต์ผ |
| "Hook 20๊ฐ+" | ์ค๋ฒ์์ง๋์ด๋ง | `hook-templates` | Hook ํตํฉ/๊ฐ์ํ |
**ํด๊ฒฐ์ฑ
๋ก๋**:
```
Skill("skillmaker:hook-templates")
โ Read("references/full-examples.md")
```
### ์ํฌํ๋ก์ฐ ์ํ ๋ฌธ์
| ๋ฐ๊ฒฌ | ํจํด ์ธ์ | ๊ด๋ จ ์คํฌ | ํด๊ฒฐ์ฑ
|
|------|----------|----------|--------|
| "๋ค๋จ๊ณ ์ํฌํ๋ก์ฐ ์ํ ์ถ์ ์์" | ์ํ ํ์ผ ๋ฏธ์ฌ์ฉ | `workflow-state-patterns` | .{workflow}-*-done ํ์ผ |
| "Plan auto-approved" | ๊ฒ์ดํธ ์ฐํ | `workflow-state-patterns` | ๋ช
์์ ์น์ธ ๊ฒ์ดํธ |
**ํด๊ฒฐ์ฑ
๋ก๋**:
```
Skill("skillmaker:workflow-state-patterns")
โ Read("references/complete-workflow-example.md")
```
---
## Solution Synthesis Process
### Step 1: ๋ฌธ์ ๋ถ๋ฅ
```python
def classify_problem(finding: str) -> list[str]:
"""๋ฐ๊ฒฌ๋ ๋ฌธ์ ๋ฅผ ๊ด๋ จ ์คํฌ๋ก ๋ถ๋ฅ"""
mappings = {
"mcp|gateway|subprocess|daemon|์๋ธ์์ด์ ํธ.*mcp": ["mcp-gateway-patterns"],
"skill.*design|progressive|frontmatter|references/": ["skill-design"],
"agent|orchestration|tools:\\s*\\[\\]|Skill\\(\\)": ["orchestration-patterns"],
"hook|PreToolUse|PostToolUse|MUST|CRITICAL": ["hook-templates"],
"workflow|phase|stage|state|gate": ["workflow-state-patterns"],
"activation|trigger|keyword": ["skill-activation-patterns"],
}
return [skill for pattern, skills in mappings.items()
if re.search(pattern, finding, re.I)]
```
### Step 2: ๊ด๋ จ ์คํฌ ๋ก๋
๋ฐ๊ฒฌ๋ ๋ฌธ์ ์ ๋ฐ๋ผ ์๋์ผ๋ก ์คํฌ ๋ก๋:
```
For each classified_skill:
Skill("skillmaker:{classified_skill}")
```
### Step 3: ํด๊ฒฐ์ฑ
์ถ์ถ
๊ฐ ์คํฌ์์ ๊ด๋ จ reference ๋ก๋:
```markdown
## ํด๊ฒฐ์ฑ
: {problem_name}
**๋ฌธ์ **: {what was found}
**์์ธ**: {why this happened - from skill knowledge}
**ํด๊ฒฐ์ฑ
**: {specific solution from skill}
**๊ตฌํ**:
```bash
{concrete steps}
```
**์์ธ**: `Read("references/{relevant-file}.md")`
```
### Step 4: ์คํ ์ ์
```yaml
AskUserQuestion:
question: "์ด๋ค ํด๊ฒฐ์ฑ
์ ์ ์ฉํ ๊น์?"
header: "Action"
multiSelect: true
options:
- label: "{Solution 1}"
description: "{brief description}"
- label: "{Solution 2}"
description: "{brief description}"
- label: "๋ชจ๋ ์ ์ฉ"
description: "๋ชจ๋ ๊ถ์ฅ ํด๊ฒฐ์ฑ
์ ์ฉ"
- label: "๋์ค์"
description: "์ง๊ธ์ ๋ถ์๋ง"
```
---
## ์ถ๋ ฅ ํ์
### ์ฒ ํ์ ๋ถ์ + ํด๊ฒฐ์ฑ
์ข
ํฉ
```markdown
## ํ๋ก์ ํธ ๋ถ์: {project-name}
### ๋ฐ๊ฒฌ๋ ๋ฌธ์
| # | ๋ฐ๊ฒฌ | ๋ถ๋ฅ | ์ฌ๊ฐ๋ |
|---|------|------|--------|
| 1 | {finding 1} | {skill category} | ๐ด HIGH |
| 2 | {finding 2} | {skill category} | ๐ก MEDIUM |
---
### ํด๊ฒฐ์ฑ
์ข
ํฉ
#### ๐ด ๋ฌธ์ 1: {finding 1}
**์ ์ด๋ฐ ๋ฌธ์ ๊ฐ ์๊ฒผ๋๊ฐ?**
{root cause analysis from skillmaker knowledge}
**๊ด๋ จ ์ง์**: `Skill("skillmaker:{relevant-skill}")`
**ํด๊ฒฐ์ฑ
**:
{specific solution}
**๊ตฌํ ๋ฐฉ๋ฒ**:
```bash
{concrete steps}
```
**์์ธ ์ฐธ์กฐ**: `Read("references/{file}.md")`
---
#### ๐ก ๋ฌธ์ 2: {finding 2}
...
---
### ์คํ ์ ์
๋ค์ ํด๊ฒฐ์ฑ
์ ์ ์ฉํ ์ ์์ต๋๋ค:
1. [ ] {Solution 1} - ์์ ์ํฅ: {impact}
2. [ ] {Solution 2} - ์์ ์ํฅ: {impact}
**์งํํ์๊ฒ ์ต๋๊น?**
```
---
## ์์: serena-refactor ๋ถ์
### ๋ฐ๊ฒฌ
| # | ๋ฐ๊ฒฌ | ๋ถ๋ฅ | ์ฌ๊ฐ๋ |
|---|------|------|--------|
| 1 | serena-gateway๊ฐ ์์ด์ ํธ๊ฐ ์๋ ๋ฌธ์ | orchestration-patterns | ๐ด HIGH |
| 2 | 4๊ฐ ์์ด์ ํธ๊ฐ ์๋ ๋ถ๊ฐํ Gateway ํจํด ์ฐธ์กฐ | mcp-gateway-patterns | ๐ด HIGH |
| 3 | Hook blocking/informational ๋ถ์ผ์น | hook-templates | ๐ก MEDIUM |
### ํด๊ฒฐ์ฑ
์ข
ํฉ
#### ๐ด ๋ฌธ์ 1-2: Gateway ํจํด ์คํจ
**์ ์ด๋ฐ ๋ฌธ์ ๊ฐ ์๊ฒผ๋๊ฐ?**
Claude Code์ ์๋ธ์์ด์ ํธ(Task)๋ MCP ๋๊ตฌ์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ด๋ Claude Code์ ๊ทผ๋ณธ์ ์ ์ฝ์
๋๋ค.
์๋ ์ค๊ณ:
```
Main Session โ Task: serena-gateway โ mcp__serena__* ํธ์ถ
```
์ค์ ๋์:
```
Main Session โ Task: serena-gateway โ MCP ๋๊ตฌ ์์ (์คํจ)
```
**๊ด๋ จ ์ง์**: `Skill("skillmaker:mcp-gateway-patterns")`
**ํด๊ฒฐ์ฑ
**: Daemon SSE ํจํด
```bash
# 1. Serena๋ฅผ HTTP ๋ฐ๋ชฌ์ผ๋ก ์์
serena start-mcp-server --transport sse --port 8765 &
# 2. Claude Code์ ๋ฑ๋ก
claude mcp add --transport sse serena-daemon http://127.0.0.1:8765
# 3. ๋ชจ๋ ์ธ์
/์๋ธํ๋ก์ธ์ค์์ ๊ณต์
```
**์ด์ **:
- ์์ ์๊ฐ: 30-60์ด โ 1-2์ด
- ํ ํฐ ์ค๋ฒํค๋: ๋ฉ์ธ ์ธ์
0
- ์ํ ๊ณต์ : ๊ฐ๋ฅ
**์์ธ**: `Read("references/daemon-shared-server.md")`
---
#### ๐ก ๋ฌธ์ 3: Hook ์ ์ฑ
๋ถ์ผ์น
**๊ด๋ จ ์ง์**: `Skill("skillmaker:hook-templates")`
**ํด๊ฒฐ์ฑ
**: ์ ์ฑ
ํต์ผ
| ํ์ฌ | ์ ์ |
|------|------|
| blocking + informational ํผ์ฌ | ์ํฌํ๋ก์ฐ ๊ฒ์ดํธ๋ ๋ชจ๋ blocking |
**๊ตฌํ**: hooks/hooks.json์์ ๋ชจ๋ ๊ฒ์ดํธ hook์ `exit 1` (blocking)์ผ๋ก ํต์ผ
---
### ์คํ ์ ์
1. [ ] **serena-gateway ์ญํ ์ฌ์ ์** - docs/๋ก ์ด๋ ๋๋ ์์ด์ ํธ๋ก ์ฌ์ค๊ณ
2. [ ] **Daemon SSE ํจํด ์ ์ฉ** - MCP ์ ๊ทผ ๋ฌธ์ ํด๊ฒฐ
3. [ ] **๊ตฌ Gateway ์ฐธ์กฐ ์ ๊ฑฐ** - 4๊ฐ ์์ด์ ํธ ๋ฌธ์ ๊ฐฑ์
4. [ ] **Hook ์ ์ฑ
ํต์ผ** - blocking์ผ๋ก ์ผ์ํ
**์งํํ์๊ฒ ์ต๋๊น?**
---
## Level 2: Radical Solutions ๐ฅ
> **"If you're confident, propose it even if it's not in existing patterns"**
> **"Idiots, this solves everything - why can't you see it?"**
When conservative solutions feel like **band-aids**, propose paradigm-shifting alternatives.
### When to Propose Radical Solutions?
| Signal | Meaning | Radical Approach |
|--------|---------|------------------|
| Same problem 3+ times | System structure issue | **Architecture redesign** |
| Exceptions outnumber rules | Rule itself is wrong | **Discard rules** |
| Workaround more complex than normal path | Constraint is irrational | **Remove constraint** |
| "That's just how it is" response | Law of inertia | **Review from first principles** |
| Compatibility cost > value | Legacy debt | **Breaking change** |
### Radical Questions Framework
```markdown
## 1. Constraint Dissolution
- "Who created this constraint? Why?"
- "What would we do without this constraint?"
- "Is the situation that created this constraint still valid?"
## 2. First Principles
- "If we redefine this problem from scratch?"
- "What is physically/logically impossible?"
- "If it's physically possible, why aren't we doing it?"
## 3. 10x Thinking
- "If there's a 10x better method, what is it?"
- "What if the current method is completely wrong?"
- "How would a competitor build this from scratch?"
## 4. Inversion
- "What happens if we don't solve this problem?"
- "How would we make this problem worse?" (do the opposite)
- "When would this feature be unnecessary?"
```
### Radical Solution Output Format
```markdown
### ๐ฅ Radical Solution: {proposal}
**Fundamental limits of current approach**:
{why conservative solutions won't work}
**Proposal**:
{paradigm shift or structural redesign}
**Why this is right**:
- {rationale 1}
- {rationale 2}
- {rationale 3}
**Trade-off**:
| Gains | Losses |
|-------|--------|
| {benefit 1} | {cost 1} |
| {benefit 2} | {cost 2} |
**Confidence Level**: ๐ข High | ๐ก Medium | ๐ด Exploratory
**Execution Steps**:
1. {step 1}
2. {step 2}
3. {step 3}
**Expected Impact**:
- Short-term: {immediate impact}
- Long-term: {long-term benefit}
```
### Radical Solution Examples
#### Example 1: Gateway Pattern Failure
**Conservative solution**: Workaround with Daemon SSE pattern
**Radical solution**:
```markdown
### ๐ฅ Radical Solution: Discard Gateway Concept Entirely
**Fundamental limits of current approach**:
Gateway pattern assumes "centralized MCP access", but
Claude Code's subagent isolation invalidates this premise.
Daemon pattern is ultimately "a workaround to save Gateway".
**Proposal**:
Discard Gateway concept and transition to **MCP-free architecture**.
- Analyze all MCP dependencies
- For each dependency: is MCP really necessary?
- Alternatives: CLI wrapper, REST API, direct library calls
**Why this is right**:
- MCP is convenience, not necessity
- Complete elimination of MCP overhead (startup time, tokens)
- Subagent isolation problem solved at source
**Trade-off**:
| Gains | Losses |
|-------|--------|
| 0-second startup | MCP ecosystem compatibility |
| 0 token overhead | Tool autocomplete |
| Architecture simplification | MCP-based extensibility |
**Confidence Level**: ๐ก Medium (depends on project dependencies)
**Execution Steps**:
1. Extract list of MCP tool usage
2. Analyze alternatives for each tool (CLI? API? Library?)
3. Start migration with lowest-cost alternatives
4. Progressively remove MCP dependencies
```
#### Example 2: Hook Over-Complexity
**Conservative solution**: Consolidate hooks, remove unnecessary hooks
**Radical solution**:
```markdown
### ๐ฅ Radical Solution: Replace Hook System with LLM Self-Control
**Fundamental limits of current approach**:
Hooks assume "we don't trust the LLM".
As hooks increase, system complexity grows.
Eventually, hook management becomes a bigger problem than the original issue.
**Proposal**:
Minimize hooks and replace with **enhanced system prompts**.
- Only use hooks for things that truly need blocking
- Solve the rest with clear instructions + examples
**Why this is right**:
- Modern LLMs (Claude 3.5+) have very high instruction compliance rates
- Hook debugging cost > occasional violation cost
- Dramatic reduction in system complexity
**Confidence Level**: ๐ก Medium (depends on organization's policy on LLM trust)
```
### Rules for Proposing Radical Solutions
1. **Always present conservative solution first**
2. **Explicitly state limits** of conservative solution
3. **Honestly disclose trade-offs** of radical solution
4. **Indicate confidence level** (๐ข/๐ก/๐ด)
5. **Choice belongs to user** - don't force
6. Radical โ irresponsible. **Concrete execution steps are mandatory**
---
## Automatic Skill Loading Rules
Auto-load skills when following patterns detected during analysis:
| Detection Pattern | Auto-Load |
|-------------------|-----------|
| MCP tool usage attempted | `mcp-gateway-patterns` |
| agents/ directory exists | `orchestration-patterns` |
| skills/ directory exists | `skill-design` |
| hooks/ directory exists | `hook-templates` |
| Multi-stage workflow | `workflow-state-patterns` |
| Gateway/Subprocess mentioned | `mcp-gateway-patterns` |
```