Files
gh-basher83-lunar-claude-pl…/skills/multi-agent-composition/workflows/decision-tree.md
2025-11-29 18:00:36 +08:00

20 KiB
Raw Blame History

Claude Code Agent Features - Comprehensive Guide

This document visualizes the complete structure of Claude Code agent features, their relationships, use cases, and best practices.


How to Use This Guide

  • New to Claude Code? Start with "The Core 4 Thinking Framework"
  • Choosing a component? Use the "Decision Tree"
  • Understanding architecture? Study the "Mindmap"
  • Quick reference? Check the "Decision Matrix"

Terminology

Understanding these terms is critical for navigating Claude Code's composition model:

  • Use - Invoke a single component for a task (e.g., calling a slash command)
  • Compose - Wire multiple components together into a larger workflow (e.g., a skill that orchestrates prompts, sub-agents, and MCPs)
  • Nest - Hierarchical containment (placing one capability inside another's scope)
    • Hard Limit: Sub-agents cannot nest other sub-agents (technical restriction)
    • Allowed: Skills can compose/use sub-agents, prompts, MCPs, and other skills

The Core 4 Thinking Framework

Every agent is built on these four fundamental pieces:

  1. Context - What information does the agent have access to?
  2. Model - What capabilities does the model provide?
  3. Prompt - What instruction are you giving?
  4. Tools - What actions can the agent take?

Master these fundamentals first. If you understand these four elements, you can master any agentic feature or tool. This is the foundation - everything else builds on top of this.


Component Overview Mindmap

mindmap
  root((Claude Code Agent Features))
    Core Agentic Elements
      The Core 4 Thinking Framework
        Context: What information?
        Model: What capability?
        Prompt: What instruction?
        Tools: What actions?
      Context
      Model
      Prompt
      Tools
    Key Components
      Agent Skills
        Capabilities
          Triggered by Agents
          Context Efficient
          Progressive Disclosure
          Modular Directory Structure
          Composability w/ Features
          Dedicated Solutions
        Pros
          Agent-Initiated Automation
          Context Window Protection
          Logical Organization/File Structure
          Feature Composition Ability
          Agentic Approach
        Cons
          Subject to sub-agent nesting limitation
          Reliability in complex chains needs attention
          Not a replacement for other features
        Examples
          Meta Skill
          Video Processor Skill
          Work Tree Manager Skill
        Author Assessment
          Rating: 8/10
          Not a replacement for other features
          Higher compositional level
          Thin opinionated file structure
      MCP Servers
        External Integrations
        Expose Services to Agent
        Context Window Impact
      Sub Agents
        Isolated Workflows
        Context Protection
        Parallelization Support
        Cannot nest other sub-agents
      Custom Slash Commands
        Manual Triggers
        Reusable Prompt Shortcuts
        Primitive Unit (Prompt)
      Hooks
        Deterministic Automation
        Executes on Lifecycle Events
        Code/Agent Integration
      Plugins
        Distribute Extensions
        Reusable Work
      Output Styles
        Customizable Output
        Examples
          text-to-speech
          diff
          summary
    Use Case Examples
      Automatic PDF Text Extraction → Agent Skill
      Connect to Jira → MCP Server
      Security Audit → Sub Agent
      Git Commit Messages → Slash Command
      Database Queries → MCP Server
      Fix & Debug Tests → Sub Agent
      Detect Style Guide Violations → Agent Skill
      Fetch Real-Time Weather → MCP Server
      Create UI Component → Slash Command
      Parallel Workflow Tasks → Sub Agent
    Proper Usage Patterns
      CRITICAL: Prompts Are THE Primitive
        Everything is prompts (tokens in/out)
        Master this FIRST (non-negotiable)
        Don't convert all slash commands to skills
        Core building block for all components
      When To Use Each Feature
        Start Simple With Prompts
        Scaling to Skill (Repeat Use)
        Skill As Solution Manager
      Compositional Hierarchy
        Skills: Top Compositional Layer
        Composition Examples
        Technical Limits
      Agentic Composability Advice
        Context considerations
        Model selection
        Prompt design
        Tool integration
    Common Anti-Patterns
      Converting all slash commands to skills (HUGE MISTAKE)
      Using skills for one-off tasks
      Forgetting prompts are the foundation
      Not mastering prompts first
    Best Practices & Recommendations
      Auto-Organize workflows
      Leverage progressive disclosure
      Maintain clear boundaries between components
      Use appropriate abstraction levels
    Capabilities Breakdown
      Detailed analysis of each component's capabilities and limitations
    Key Insights
      Hierarchical Understanding
        Prompts = Primitive foundation
        Slash Commands = Reusable prompts
        Sub-Agents = Isolated execution contexts
        MCP Servers = External integrations
        Skills = Top-level orchestration layer
        Hooks = Lifecycle automation
        Plugins = Distribution mechanism
        Output Styles = Presentation layer
      Critical Distinctions
        Sub-agents cannot nest other sub-agents (hard limit)
        Skills can compose sub-agents, prompts, MCPs, other skills
        Prompts are the fundamental primitive
        Skills are compositional layers, not replacements
        Context efficiency matters
        Reliability in complex chains needs attention
      Decision Framework
        Repeatable pattern detection → Agent Skill
        External data/service access → MCP Server
        Parallel/isolated work → Sub Agent
        Parallel workflow tasks → Sub Agent (whenever you see parallel, think sub-agents)
        One-off task → Slash Command
        Lifecycle automation → Hook
        Team distribution → Plugin
      Composition Model
        Skills Orchestration Layer
          Can compose: Prompts/Slash Commands, MCP Servers, Sub-Agents, Other Skills
          Restriction: Avoid circular dependencies (skill A → skill B → skill A)
          Purpose: Domain-specific workflow orchestration
        Sub-Agents Execution Layer
          Can compose: Prompts, MCP Servers
          Cannot nest: Sub-agents within sub-agents (hard technical limitation)
          Purpose: Isolated/parallel task execution
        Slash Commands Primitive Layer
          Manual invocation
          Reusable prompts
          Can be composed into higher layers
        MCP Servers Integration Layer
          External connections
          Expose services to all components

Composition Hierarchy

The mindmap shows a clear composition hierarchy:

  1. Prompts = Primitive foundation (everything builds on this)
  2. Slash Commands = Reusable prompts
  3. Sub-Agents = Isolated execution contexts
  4. MCP Servers = External integrations
  5. Skills = Top-level orchestration layer
  6. Hooks = Lifecycle automation
  7. Plugins = Distribution mechanism
  8. Output Styles = Presentation layer

Verified Composition Capabilities

Skills can compose:

  • Prompts/Slash Commands
  • MCP Servers
  • Sub-Agents
  • Other Skills (avoid circular dependencies)

Sub-Agents can compose:

  • Prompts
  • MCP Servers
  • Other Sub-Agents (hard technical limitation - verified in official docs)

Technical Limit (Verified):

  • Sub-agents cannot nest other sub-agents (this prevents infinite recursion)
  • This is the only hard nesting restriction in the system

Decision Matrix

Task Type Component Reason
Repeatable pattern detection Agent Skill Domain-specific workflow
External data/service access MCP Server Integration point
Parallel/isolated work Sub Agent Context isolation
Parallel workflow tasks Sub Agent Whenever you see parallel, think sub-agents
One-off task Slash Command Simple, direct
Lifecycle automation Hook Event-driven
Team distribution Plugin Packaging

Decision Tree: When to Use What

This decision tree helps you choose the right Claude Code component based on your needs. Always start with prompts - master the primitive first!

digraph decision_tree {
    rankdir=TB;
    node [shape=box, style=rounded];

    start [label="What are you trying to do?", shape=diamond, style="filled", fillcolor=lightblue];

    prompt_start [label="START HERE:\nBuild a Prompt\n(Slash Command)", shape=rect, style="filled", fillcolor=lightyellow];

    parallel_check [label="Need parallelization\nor isolated context?", shape=diamond];
    external_check [label="External data/service\nintegration?", shape=diamond];
    oneoff_check [label="One-off task\n(simple, direct)?", shape=diamond];
    repeatable_check [label="Repeatable workflow\n(pattern detection)?", shape=diamond];
    lifecycle_check [label="Lifecycle event\nautomation?", shape=diamond];
    distribution_check [label="Sharing/distributing\nto team?", shape=diamond];

    subagent [label="Use Sub Agent\nIsolated context\nParallel execution\nContext protection", shape=rect, style="filled", fillcolor=lightgreen];
    mcp [label="Use MCP Server\nExternal integrations\nExpose services\nContext window impact", shape=rect, style="filled", fillcolor=lightgreen];
    slash_cmd [label="Use Slash Command\nManual trigger\nReusable prompt\nPrimitive unit", shape=rect, style="filled", fillcolor=lightgreen];
    skill [label="Use Agent Skill\nAgent-triggered\nContext efficient\nProgressive disclosure\nModular structure", shape=rect, style="filled", fillcolor=lightgreen];
    hook [label="Use Hook\nDeterministic automation\nLifecycle events\nCode/Agent integration", shape=rect, style="filled", fillcolor=lightgreen];
    plugin [label="Use Plugin\nDistribute extensions\nReusable work\nPackaging/sharing", shape=rect, style="filled", fillcolor=lightgreen];

    start -> prompt_start [label="Always start here", style=dashed, color=red];
    prompt_start -> parallel_check;

    parallel_check -> subagent [label="Yes\n⚠ Whenever you see\n'parallel', think sub-agents"];
    parallel_check -> external_check [label="No"];

    external_check -> mcp [label="Yes"];
    external_check -> oneoff_check [label="No"];

    oneoff_check -> slash_cmd [label="Yes\nKeep it simple"];
    oneoff_check -> repeatable_check [label="No"];

    repeatable_check -> skill [label="Yes\nScale to skill\nfor repeat use"];
    repeatable_check -> lifecycle_check [label="No"];

    lifecycle_check -> hook [label="Yes"];
    lifecycle_check -> distribution_check [label="No"];

    distribution_check -> plugin [label="Yes"];
    distribution_check -> slash_cmd [label="No\nDefault: Use prompt"];
}

Decision Tree Key Points

Critical Rule: Always start with Prompts (implemented as Slash Commands). Master the primitive first before scaling to other components.

Decision Flow:

  1. Parallel/Isolated? → Sub Agent (whenever you see "parallel", think sub-agents)
  2. External Integration? → MCP Server
  3. One-off Task? → Slash Command (keep it simple)
  4. Repeatable Pattern? → Agent Skill (scale up)
  5. Lifecycle Automation? → Hook
  6. Team Distribution? → Plugin
  7. Default → Slash Command (prompt)

Remember: Skills are compositional layers, not replacements. Don't convert all your slash commands to skills - that's a HUGE MISTAKE!


Critical Principles

  • ⚠️ CRITICAL: Prompts are THE fundamental primitive - Everything is prompts (tokens in/out). Master this FIRST (non-negotiable). Don't convert all slash commands to skills.
  • Sub-agents cannot nest other sub-agents (hard technical limitation - verified in official docs)
  • Skills CAN compose sub-agents, prompts, MCPs, and other skills (verified through first-hand experience)
  • Skills are compositional layers, not replacements (complementary, not substitutes). Rating: 8/10 - "Higher compositional level" not a replacement.
  • Context efficiency matters (progressive disclosure, isolation)
  • Reliability in complex chains needs attention (acknowledged challenge)
  • Parallel keyword = Sub Agents - Whenever you see parallel, think sub-agents

Verified Composition Rules

Based on official documentation and empirical testing:

Skills (Top Orchestration Layer)

  • Can invoke/compose: Prompts/Slash Commands, MCP Servers, Sub-Agents, Other Skills
  • ⚠️ Best Practice: Avoid circular dependencies (skill A → skill B → skill A)
  • Purpose: Domain-specific workflow orchestration
  • When to use: Repeatable workflows that benefit from automatic triggering

Sub-Agents (Execution Layer)

  • Can invoke/compose: Prompts, MCP Servers
  • Cannot nest: Other sub-agents (hard technical limitation from official docs)
  • Purpose: Isolated/parallel task execution with separate context
  • When to use: Parallel work, context isolation, specialized roles

Slash Commands (Primitive Layer)

  • Can be composed into: Skills, Sub-Agents
  • Purpose: Manual invocation of reusable prompts
  • When to use: One-off tasks, simple workflows, building blocks

MCP Servers (Integration Layer)

  • Can be used by: Skills, Sub-Agents, Main Agent
  • Purpose: External service/data integration
  • When to use: Need to access external APIs, databases, or services

Common Anti-Patterns to Avoid

  • Converting all slash commands to skills - This is a HUGE MISTAKE. Skills are for repeatable workflows, not one-off tasks.
  • Using skills for one-off tasks - Use slash commands (prompts) instead.
  • Forgetting prompts are the foundation - Master prompts first before building skills.
  • Not mastering prompts first - If you avoid understanding prompts, you will not progress as an agentic engineer.
  • Trying to nest sub-agents - This is a hard technical limitation and will fail.

Best Practices

When to Use Each Component

Start with Prompts:

  • Begin every workflow as a prompt/slash command
  • Test and validate the approach
  • Only promote to skill when pattern repeats

Scale to Skills:

  • Pattern used multiple times? → Create a skill
  • Need automatic triggering? → Create a skill
  • Complex multi-step workflow? → Create a skill
  • One-off task? → Keep as slash command

Use Sub-Agents for:

  • Parallel execution needs
  • Context isolation required
  • Specialized roles with separate context
  • Research or planning phases

Use MCP Servers for:

  • External API integration
  • Database access
  • Third-party service connections

Detailed Component Analysis

Agent Skills

Capabilities:

  • Triggered automatically by agents based on description matching
  • Context efficient through progressive disclosure
  • Modular directory structure (SKILL.md, scripts/, references/, assets/)
  • Can compose with all other features

Pros:

  • Agent-initiated automation (no manual invocation needed)
  • Context window protection (progressive disclosure)
  • Logical organization and file structure
  • Feature composition ability
  • Scales from simple to complex

Cons:

  • Subject to sub-agent nesting limitation (composed sub-agents can't nest others)
  • Reliability in complex chains needs attention
  • Not a replacement for other features (complementary)

When to Use:

  • Repeatable workflows
  • Domain-specific expertise
  • Complex multi-step processes
  • When you want automatic triggering

Examples:

  • PDF processing workflows
  • Code generation patterns
  • Documentation generation
  • Brand guidelines enforcement

Sub-Agents

Capabilities:

  • Isolated execution context (separate from main agent)
  • Can run in parallel
  • Custom system prompts
  • Tool access (can inherit or specify)
  • Access to MCP servers

Pros:

  • Context isolation
  • Parallel execution
  • Specialized expertise
  • Separate tool permissions

Cons:

  • Cannot nest other sub-agents (hard limit)
  • No memory between invocations
  • Need to re-gather context each time

When to Use:

  • Parallel workflow tasks
  • Isolated research/planning
  • Specialized roles (architect, tester, reviewer)
  • When you need separate context

Technical Note:

  • VERIFIED: Sub-agents cannot spawn other sub-agents (official docs)
  • This prevents infinite nesting and maintains system stability

MCP Servers

Capabilities:

  • External service integration
  • Standardized protocol
  • Authentication handling
  • Available to all components

When to Use:

  • Need external data
  • API access required
  • Database queries
  • Third-party service integration

Slash Commands

Capabilities:

  • Manual invocation
  • Reusable prompts
  • Project or global scope
  • Can be composed into skills and sub-agents

When to Use:

  • One-off tasks
  • Simple workflows
  • Testing new patterns
  • Building blocks for skills

Hooks

Capabilities:

  • Lifecycle event automation
  • Deterministic execution
  • Code/agent integration

When to Use:

  • Pre/post command execution
  • File change reactions
  • Environment validation

Plugins

Capabilities:

  • Bundle multiple components
  • Distribution mechanism
  • Team sharing

When to Use:

  • Sharing complete workflows
  • Team standardization
  • Marketplace distribution

Composition Examples

Example 1: Full-Stack Development Skill

A skill that orchestrates:

  • Calls planning sub-agent (for architecture)
  • Calls coding sub-agent (for implementation)
  • Uses MCP server (for database queries)
  • Invokes testing slash command (for validation)

This is valid because:

  • Skill composes sub-agents ✓
  • Skill composes MCP servers ✓
  • Skill composes slash commands ✓
  • Sub-agents don't nest each other ✓

Example 2: Research Workflow

A skill that:

  • Calls research sub-agent #1 (searches documentation)
  • Calls research sub-agent #2 (analyzes codebase)
  • Both run in parallel
  • Both use MCP server for external docs

This is valid because:

  • Skill orchestrates multiple sub-agents ✓
  • Sub-agents run in parallel (separate contexts) ✓
  • Sub-agents don't nest each other ✓

Example 3: INVALID - Nested Sub-Agents

A sub-agent that tries to:

  • Call another sub-agent from within itself

This will FAIL because:

  • Sub-agents cannot nest other sub-agents (hard limit)

Key Insights Summary

Hierarchical Understanding

  1. Prompts = Primitive foundation (everything builds on this)
  2. Slash Commands = Reusable prompts with manual invocation
  3. Sub-Agents = Isolated execution contexts with separate context windows
  4. MCP Servers = External integrations available to all
  5. Skills = Top-level orchestration layer (composes everything)
  6. Hooks = Lifecycle automation
  7. Plugins = Distribution mechanism
  8. Output Styles = Presentation layer

Critical Technical Facts

Verified from Official Docs:

  • Sub-agents CANNOT nest other sub-agents (hard technical limitation)

Verified from First-Hand Experience:

  • Skills CAN invoke/compose sub-agents
  • Skills CAN invoke/compose slash commands
  • Skills CAN invoke/compose other skills

Best Practices:

  • Start with prompts (master the primitive)
  • Don't convert all slash commands to skills
  • Use sub-agents for parallel/isolated work
  • Use skills for repeatable workflows
  • Avoid circular skill dependencies

Testing Recommendations

Before deploying any complex workflow:

  1. Test individual components - Verify each slash command works
  2. Test sub-agent isolation - Confirm context separation
  3. Test skill triggering - Ensure description matches use cases
  4. Test composition - Verify skills can call sub-agents
  5. Test parallel execution - Confirm sub-agents run independently

Document Status: Corrected and Verified Last Updated: Based on Claude Code capabilities as of November 2025 Verification: Technical facts confirmed via official docs + empirical testing