Phase 2 of assist workflow - Determine appropriate component type (Skill, Agent, Command, Hook, MCP)
Determine which component type best fits the user's requirement.
| Component | Primary Use | Key Indicators | Freedom Level |
|---|---|---|---|
| Skill | Reusable knowledge/methodology | "λ°©λ²", "κ°μ΄λ", "ν¨ν΄", "how to" | High |
| Agent | Multi-step autonomous tasks | "μλν", "λΆμν΄", "agent", λ³΅ν© μμ | Medium |
| Command | User-initiated workflow | "/λͺ λ Ήμ΄", "μ€ν", "run", μ¬μ©μ νΈλ¦¬κ±° | Medium |
| Hook | Event-driven enforcement | "κ°μ ", "λ°©μ§", "κ²μ¦", "λ°λμ" | Low |
| MCP | External tool integration | "API", "μλ²", "MCP", "μΈλΆ λꡬ" | Very Low |
User Request
β
ββ Contains "κ°μ /λ°λμ/must/prevent" ?
β ββ YES β HOOK (enforcement required)
β
ββ Contains "API/MCP/μλ²/external" ?
β ββ YES β MCP (external integration)
β
ββ Contains "μλ/autonomous/multi-step" ?
β ββ YES β AGENT (complex automation)
β
ββ Contains "/λͺ
λ Ήμ΄/command/μ€ν" ?
β ββ YES β COMMAND (user-initiated)
β
ββ DEFAULT β SKILL (knowledge/methodology)
Strong signals:
- "λ°©λ²λ‘ ", "methodology", "best practice"
- "κ°μ΄λ", "guide", "how to"
- "ν¨ν΄", "pattern", "approach"
- "μ§μ", "knowledge", "reference"
- Reusable across multiple contexts
Structure:
skills/{name}/
βββ SKILL.md # Core instructions (<500 words)
βββ references/ # Detailed docs
βββ scripts/ # Optional automation
Strong signals:
- "μλν", "automate", "autonomous"
- "λΆμν΄", "analyze", "review"
- "μμ΄μ νΈ", "agent", "subagent"
- Multi-step workflow implied
- Needs to make decisions
Structure:
agents/{name}.md # Single file with frontmatter
Frontmatter:
name: agent-name
description: What it does
tools: ["Read", "Write", "Bash"] # or empty for all
skills: skill-a, skill-b # Skills to load
model: sonnet # or opus, haiku
Strong signals:
- "/λͺ
λ Ήμ΄", "/command"
- "μ€ν", "run", "execute"
- User explicitly triggers
- One-shot operation
- Entry point to workflow
Structure:
commands/{name}.md # Single file with frontmatter
Frontmatter:
description: What this command does
argument-hint: "[args]"
allowed-tools: ["Read", "Write"]
Strong signals:
- "κ°μ ", "must", "enforce"
- "λ°©μ§", "prevent", "block"
- "κ²μ¦", "validate", "check"
- "λ°λμ", "required", "mandatory"
- Event-driven (before/after tool use)
Structure:
hooks/hooks.json # Configuration file
scripts/{hook}.py # Hook implementation
Strong signals:
- "API", "external API"
- "MCP", "μλ²", "server"
- "μΈλΆ λꡬ", "external tool"
- "integration", "μ°λ"
- Stateful connection needed
Structure:
.mcp.json # MCP configuration
scripts/mcp-{name}/ # Server implementation
Sometimes multiple components are needed:
| Pattern | Components | Example |
|---|---|---|
| Knowledge + Automation | Skill + Agent | "FEM λΆμ μλν" |
| User-triggered + Enforcement | Command + Hook | "λ¦°νΈ κ²μ¬ λͺ λ Ήμ΄" |
| External + Knowledge | MCP + Skill | "SAP2000 API κ°μ΄λ" |
| Full workflow | Command + Agent + Hook | "λ°°ν¬ νμ΄νλΌμΈ" |
When unclear, ask ONE of these:
# When Skill vs Agent unclear
Q: "μ΄ κΈ°λ₯μ΄ μ§μ/κ°μ΄λλ₯Ό μ 곡νλμ, μλλ©΄ μλμΌλ‘ μμ
μ μννλμ?"
A1: μ§μ/κ°μ΄λ β SKILL
A2: μλ μν β AGENT
# When Command vs Hook unclear
Q: "μ¬μ©μκ° μ§μ μ€ννλμ, μλλ©΄ νΉμ μ΄λ²€νΈμ μλ μ€νλλμ?"
A1: μ§μ μ€ν β COMMAND
A2: μλ μ€ν β HOOK
# When single vs combo unclear
Q: "μ΄ κΈ°λ₯μ κ°μ (enforcement) μμκ° μλμ?"
A1: μμ β Add HOOK to combo
A2: μμ β Single component
After classification:
python3 scripts/workflow_state.py update semantic completed
python3 scripts/workflow_state.py set-component {SKILL|AGENT|COMMAND|HOOK|MCP}
Phase: semantic
Status: completed
Result:
component_type: SKILL # or AGENT, COMMAND, HOOK, MCP
combination: null # or ["SKILL", "HOOK"] for combo
confidence: high
reasoning:
- "λ°©λ²λ‘ " keyword detected β SKILL indicator
- No enforcement language β no HOOK needed
- Single component sufficient
next_phase: execute
Skill("assist-plugin:phase-execute")
β Load schema for determined component type
β Generate appropriate structure