Back to skills
SkillHub ClubShip Full StackFull Stack

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.

Stars
0
Hot score
74
Updated
March 20, 2026
Overall rating
C2.5
Composite score
2.5
Best-practice grade
C62.8

Install command

npx @skill-hub/cli install chkim-su-skillmaker-critical-analysis-patterns

Repository

chkim-su/skillmaker

Skill path: skills/critical-analysis-patterns

Philosophical/meta project analysis - critical analysis framework that asks "why?"

Open repository

Best 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

Claude CodeCodex CLIGemini CLIOpenCode

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` |

```

critical-analysis-patterns | SkillHub