Files
2025-11-30 08:48:43 +08:00

29 KiB

name, description
name description
box-factory-architecture Interpretive guidance for understanding Claude Code component architecture and choosing between agents, skills, commands, and hooks. Helps decide which component type fits a use case, understand delegation and isolation, debug cross-component issues, and design cohesive plugin architectures. Use when choosing component types, designing plugins with multiple components, debugging delegation failures, asking about component interaction patterns, or creating Box Factory-compliant components.

Box Factory Architecture Skill

This meta-skill teaches the Claude Code ecosystem architecture - how components interact, when to use each type, and how to design cohesive multi-component solutions. This applies to both Main Claude (choosing what to create) and sub-agents (understanding their role).

Required Reading Before Designing Components

Fetch these docs with WebFetch to understand the official ecosystem:

Core Architectural Understanding

The Isolation Model (Critical Concept)

The #1 thing to understand: Claude Code uses isolated contexts with return-based delegation.

User ↔ Main Claude ──→ Sub-Agent (isolated context)
                        │
                        └──→ Returns final result
                             (no back-and-forth)

Critical implications:

  • Sub-agents CANNOT ask users questions
  • Sub-agents CANNOT see main conversation history
  • Sub-agents CAN do autonomous work (write files, run tests, analyze code)
  • Main Claude handles ALL user communication
  • Delegation is one-way (call → return, not interactive)

Why this matters: Every design decision flows from this architecture.

Common misconception: "Agents are just like functions" - No, they're isolated AI instances with their own context and tool access.

The Return-Based Model (Critical Concept)

Execution flow:

  1. Main Claude decides to delegate
  2. Sub-agent receives context + task
  3. Sub-agent works autonomously in isolation
  4. Sub-agent returns complete result
  5. Main Claude integrates result and continues

What this means:

  • No mid-execution interaction
  • No "asking for clarification"
  • Agent must have everything it needs upfront
  • Results must be complete and actionable

Design test: If your agent needs to ask questions mid-execution, redesign the delegation pattern.

Progressive Disclosure Philosophy (Token Efficiency)

Problem: You can't put everything in the system prompt.

Solution: Load knowledge progressively when relevant.

How it works:

Base Prompt (always loaded)
    ↓
Topic becomes relevant
    ↓
Skill loads automatically
    ↓
Provides specialized knowledge

Why this matters: Skills solve the "selective context" problem that CLAUDE.md and system prompts can't.

Component Comparison (Official Specification)

What each component IS according to official documentation:

Agents (from sub-agents.md)

Official definition: Specialized AI instances that run in isolated contexts with specific tools and prompts.

Official structure:

  • YAML frontmatter with name, description, model, tools
  • Markdown system prompt
  • Return results to delegating agent

Key characteristic: Autonomous delegation based on context.

Commands (from slash-commands.md)

Official definition: User-triggered prompts with optional argument substitution.

Official structure:

  • Optional YAML frontmatter
  • Markdown prompt with $1, $2 or $ARGUMENTS placeholders
  • Triggered explicitly by user typing /command-name

Key characteristic: Explicit user invocation.

Skills (from sub-agents.md)

Official definition: Knowledge loaded when relevant topics arise.

Official structure:

  • YAML frontmatter with name, description
  • Markdown content in SKILL.md file
  • Lives in skills/[name]/SKILL.md subdirectory

Key characteristic: Progressive knowledge disclosure.

Hooks (from hooks documentation)

Official definition: Deterministic execution at lifecycle events.

Official structure:

  • JSON configuration in settings
  • Command-based (bash scripts) or prompt-based (Claude Haiku queries)
  • Fire at specific events (PreToolUse, PostToolUse, SessionStart, etc.)

Key characteristic: Guaranteed execution every time.

Component Comparison (Best Practices)

Decision framework for choosing the right component type:

When to Use Each Component

Use Agent when:

  • Need isolated context (won't pollute main conversation)
  • Want autonomous delegation (triggered by context, not explicit request)
  • Doing actual work (writing files, running tests, analyzing code)
  • Require specific tool restrictions
  • Complex decision-making within defined scope
  • Task is part of larger workflows

Examples:

  • test-runner - Executes tests and analyzes failures autonomously
  • code-reviewer - Provides feedback without modifying code
  • documentation-generator - Creates docs from code

Use Command when:

  • User wants explicit control over when it runs
  • Thin wrapper that delegates to specialized agent
  • Simple argument substitution needed
  • One-off user-triggered operation
  • Wrapping bash scripts or tool sequences

Examples:

  • /add-agent - User explicitly requests creating an agent
  • /deploy - User controls deployment timing
  • /analyze-security - User-triggered analysis

Use Skill when:

  • Knowledge needed across multiple contexts
  • Substantial procedural expertise (20+ lines)
  • Interpretive guidance that enhances understanding
  • Best practices that apply to multiple scenarios
  • Progressive disclosure saves tokens
  • Teaching "how to think about" something

Examples:

  • agent-design - Guidance for creating agents
  • api-standards - Team API conventions
  • testing-strategy - Testing philosophy and patterns

Use Hook when:

  • Need guaranteed execution every single time
  • Simple, deterministic rule enforcement
  • Integrating external tools (linters, formatters)
  • Performance or safety enforcement
  • Must happen at specific lifecycle event
  • "Always" matters more than "usually"

Examples:

  • Format code after every write
  • Security validation before bash commands
  • Load project context at session start
  • Auto-commit after conversation stops

Component Interaction Patterns (Best Practices)

Pattern 1: Command → Agent (Delegation Pattern)

Most common Box Factory pattern: Commands are thin wrappers that delegate to specialized agents.

User types: /add-agent

Command: add-agent.md
├── Description: "Create a new Claude Code agent"
├── Arguments: $1 (agent name), $2 (purpose)
└── Prompt: "Use the agent-writer agent to create..."

Agent: agent-writer.md
├── Isolated context
├── Tools: Read, Write, WebFetch
├── Loads: agent-design skill
└── Returns: Complete agent file

Why this works:

  • Command stays simple (argument handling)
  • Agent handles complexity in isolation
  • Skill provides interpretive guidance
  • Clear separation of concerns

Examples in Box Factory:

  • /add-agentagent-writer
  • /add-commandslash-command-writer
  • /add-skillskill-writer

Pattern 2: Agent → Skill (Knowledge Loading)

Progressive disclosure pattern: Agents load skills automatically when topics become relevant.

Agent: agent-writer
├── Task: Create new agent
├── Topic: "agent design"
├── Trigger: skill-design description matches
└── Loads: agent-design skill
    ├── Fetches: Official docs
    ├── Provides: Best practices
    └── Guides: Creation process

Why this works:

  • Skill loaded only when needed (token efficient)
  • Agent gets specialized knowledge automatically
  • Skill defers to official docs (low maintenance)
  • Two-layer approach (specs + guidance)

Examples in Box Factory:

  • Creating agents → loads agent-design
  • Creating skills → loads skill-design
  • Creating commands → loads slash-command-design

Pattern 3: Agent → Sub-Agent (Specialized Delegation)

Nested delegation pattern: Agents can delegate to more specialized sub-agents.

Main Claude
    ↓
Command → Primary Agent
             ↓
         Sub-Agent (specialized)
             ↓
         Returns result

Critical constraints:

  • All agents operate in isolated contexts
  • No mid-execution questions upward
  • Each level returns complete results
  • Tools must be granted at each level

Example flow:

User: "Create a comprehensive test suite"

Main Claude → test-suite-creator (primary agent)
    ├── Analyzes codebase structure
    ├── Identifies test needs
    └── Delegates → test-file-generator (sub-agent)
        ├── Creates individual test files
        └── Returns test code

test-suite-creator receives results
    ├── Integrates test files
    └── Returns complete suite to Main Claude

Pattern 4: Hook + Agent (Enforcement + Intelligence)

Combined pattern: Hooks enforce rules, agents provide intelligence.

PreToolUse:Bash hook
    ├── Validates command safety (deterministic)
    ├── Blocks dangerous operations (exit 2)
    └── If borderline → delegates to security-reviewer agent
        ├── Agent analyzes context
        └── Returns recommendation

Why combine:

  • Hook provides guaranteed enforcement
  • Agent provides context-aware judgment
  • Best of both worlds

Example:

{
  "PreToolUse": [
    {
      "matcher": "Bash",
      "hooks": [
        {
          "type": "command",
          "command": "~/.claude/hooks/security-check.sh"
        },
        {
          "type": "prompt",
          "command": "Analyze this bash command for security risks"
        }
      ]
    }
  ]
}

Pattern 5: Skill + Multiple Components (Shared Knowledge)

Knowledge reuse pattern: One skill guides multiple agents and commands.

agent-design skill
    ↑
    ├── Loaded by: agent-writer agent
    ├── Loaded by: component-reviewer agent
    └── Loaded by: validation-agent agent

Why this works:

  • Single source of truth
  • Consistent guidance across components
  • Update skill → improves all consumers
  • Token efficient (load once, use many times)

Delegation Chains (Architecture Deep Dive)

How Isolated Context Works

When Main Claude delegates to sub-agent:

Main Claude context:
├── Full conversation history
├── User messages
├── Previous tool calls
└── All context accumulated

Sub-Agent context:
├── Only: Task description from delegation
├── Only: Files/data explicitly passed
├── No access to main conversation
└── Fresh, isolated environment

Critical: Information flow is ONE WAY (Main → Sub)

What Agents Can't Do (Because of Isolation)

Forbidden patterns:

"Ask the user for the target directory" "Request clarification from the user" "Confirm with the user before proceeding" "Wait for user input" "Check with the user about preferences"

Why these fail: Agent is isolated, can't communicate with user.

Correct patterns:

"Use the provided directory parameter or default to ./src" "Infer from project structure and available context" "Make reasonable assumptions based on common patterns" "Use environment context to determine approach" "Default to [specific behavior] when unclear"

Multi-Level Delegation Example

Complete flow with isolation model:

User: "/add-agent test-runner 'Run tests and analyze failures'"

Main Claude:
├── Sees: Full conversation history
├── Interprets: User wants new agent created
├── Triggers: /add-agent command (explicit)
└── Delegates to: agent-writer agent
    │
    Sub-Agent (agent-writer):
    ├── Context: Only task params (name, purpose)
    ├── Loads: agent-design skill (triggered by topic)
    ├── Fetches: Official docs (per skill guidance)
    ├── Creates: test-runner.md agent file
    └── Returns: "Created agent at .claude/agents/test-runner.md"

Main Claude:
├── Receives: Complete result from sub-agent
├── Integrates: Into conversation
└── Responds: "I've created the test-runner agent..."

Key observations:

  1. Command triggered explicitly (user typed /add-agent)
  2. Agent-writer operates in isolation (can't ask questions)
  3. Skill loads automatically (relevant topic)
  4. Agent returns complete result (file created)
  5. Main Claude integrates and communicates with user

Cross-Component Patterns (Best Practices)

The Thin Wrapper Philosophy

Core principle: Each component has one focused responsibility.

Command responsibilities:

  • Argument handling
  • User-facing description
  • Delegation to agent

Agent responsibilities:

  • Complex logic
  • File operations
  • Tool orchestration
  • Result synthesis

Skill responsibilities:

  • Interpretive guidance
  • Best practices
  • Decision frameworks
  • Progressive knowledge

Hook responsibilities:

  • Deterministic enforcement
  • Lifecycle integration
  • External tool execution

Anti-pattern: Command with complex logic that belongs in agent.

Correct pattern:

# Command: add-agent.md
Use the agent-writer agent to create a new agent named $1 for purpose: $2

# Agent: agent-writer.md
[Full creation logic, file writing, validation]

# Skill: agent-design.md
[Interpretive guidance on agent design principles]

Single Responsibility Per Component

Good component scope:

  • Focused on one domain
  • Self-contained knowledge/behavior
  • Clear boundaries
  • Composable with other components

Bad component scope:

  • "Do everything" agent
  • Command that reimplements agent logic
  • Skill covering unrelated topics
  • Hook with complex branching logic

Examples:

python-test-runner agent (specific language) api-design skill (focused domain) deploy-staging command (single operation) PostToolUse:Write→prettier hook (one formatter)

full-stack-developer agent (too broad) all-standards skill (kitchen sink) do-everything command (unclear purpose) Hook with 10 conditional branches (too complex)

Tool Permission Strategy

Match tools to responsibilities:

Review/Analysis Agents:
└── Tools: Read, Grep, Glob, WebFetch
    (Read-only, can't modify code)

Creation Agents:
└── Tools: Read, Write, Edit, WebFetch, Glob
    (Can create/modify files)

Test/Build Agents:
└── Tools: Read, Bash, Grep
    (Can execute, analyze output)

Full-Power Agents:
└── Tools: All available
    (Unrestricted, use carefully)

Anti-pattern: Review agent with Write access (temptation to fix instead of report).

Correct pattern: Separate agents for review vs fixing.

Common Architectural Anti-Patterns

Anti-Pattern 1: Interactive Agent Design

Problem: Agent designed assuming user interaction.

What it looks like:

# Agent system prompt
1. Analyze the codebase
2. Ask the user which files to focus on  ← FORBIDDEN
3. Request user's preferred style       ← FORBIDDEN
4. Generate documentation
5. Confirm with user before writing     ← FORBIDDEN

Why it fails: Agents operate in isolated context with no user access.

Solution:

# Agent system prompt
1. Analyze the codebase
2. Use provided file parameters or infer from project structure
3. Apply documented style from CLAUDE.md or common conventions
4. Generate documentation
5. Write files using available context and defaults

Key change: Replace all user interaction with autonomous decision-making.

Anti-Pattern 2: Command with Complex Logic

Problem: Command tries to implement business logic instead of delegating.

What it looks like:

---
description: Run tests
---

First check if pytest or jest is configured.
If pytest, scan for conftest.py and parse fixtures.
If jest, check jest.config.js for custom settings.
Determine test file patterns from package.json or setup.cfg.
Execute tests with appropriate flags based on environment.
Parse output for failures and categorize by type.
Generate summary report with statistics.

Why it fails:

  • Too complex for simple prompt substitution
  • No error handling capability
  • Hard to maintain
  • Doesn't leverage agent isolation
  • Can't use tools effectively

Solution:

---
description: Run full test suite and analyze failures
---

Use the test-runner agent to execute all tests and provide detailed failure analysis.

Agent handles:

  • Framework detection
  • Configuration parsing
  • Test execution
  • Output analysis
  • Report generation

Anti-Pattern 3: Knowledge Duplication

Problem: Same knowledge hardcoded in multiple places.

What it looks like:

agent-writer.md:
  [50 lines about agent design best practices]

command-writer.md:
  [50 lines about agent design best practices]

hook-writer.md:
  [50 lines about agent design best practices]

Why it fails:

  • Maintenance nightmare (update in 3 places)
  • Token waste (loads redundantly)
  • Inconsistency risk (versions drift)

Solution:

agent-design skill:
  [Comprehensive agent design guidance]

Agents load skill automatically:
  ├── agent-writer (loads when creating agents)
  ├── component-reviewer (loads when reviewing)
  └── validation-agent (loads when validating)

Benefits:

  • Single source of truth
  • Token efficient (progressive disclosure)
  • Consistent guidance
  • Easy to update

Anti-Pattern 4: Hook Complexity Explosion

Problem: Hook tries to handle too many scenarios.

What it looks like:

#!/bin/bash
if [[ "$TOOL" == "Write" ]]; then
  if [[ "$FILE" == *.py ]]; then
    if [[ -f "pyproject.toml" ]]; then
      black "$FILE"
    elif [[ -f "setup.py" ]]; then
      autopep8 "$FILE"
    fi
  elif [[ "$FILE" == *.js ]]; then
    if [[ -f ".prettierrc" ]]; then
      prettier "$FILE"
    else
      eslint --fix "$FILE"
    fi
  fi
fi

Why it fails:

  • Complex, brittle logic
  • Hard to test
  • Slow execution
  • Difficult to debug
  • Doesn't scale

Solution: Separate hooks for separate concerns.

{
  "PostToolUse": [
    {
      "matcher": "Write|Edit",
      "hooks": [
        {
          "type": "command",
          "command": "prettier --write \"$CLAUDE_FILE_PATHS\" 2>/dev/null || true"
        }
      ]
    }
  ]
}

Or: Delegate intelligence to agent if needed.

Anti-Pattern 5: Vague Component Descriptions

Problem: Descriptions don't trigger appropriate loading/delegation.

What it looks like:

# Agent
description: "Helps with agents"

# Skill
description: "Agent information"

# Command
description: "Agent stuff"

Why it fails:

  • Claude can't determine when to delegate
  • Skill won't load automatically
  • Command not discoverable in /help
  • Poor user experience

Solution: Specific, triggering descriptions.

# Agent
description: "Creates Claude Code agents following official specifications and best practices. ALWAYS use when user requests creating a new agent, or when you need to generate an agent autonomously."

# Skill
description: "Interpretive guidance for designing Claude Code agents. Helps apply official documentation effectively and avoid common pitfalls. Use when creating or reviewing agents."

# Command
description: "Create a new Claude Code agent with specified name and purpose"

Pattern: [What] for [domain]. [Benefit]. Use when [triggers].

Plugin Architecture (Multi-Component Design)

Cohesive Plugin Design

Good plugin architecture:

security-tools/
├── commands/
│   ├── scan-vulnerabilities.md    ← User-triggered scan
│   └── generate-security-report.md
├── agents/
│   ├── vulnerability-scanner.md    ← Does actual scanning
│   ├── security-reviewer.md        ← Reviews code
│   └── report-generator.md         ← Creates reports
├── skills/
│   └── security-best-practices/
│       └── SKILL.md                ← Shared knowledge
└── hooks/
    └── hooks.json                  ← Pre-bash security checks

Component interaction:

User: /scan-vulnerabilities
    ↓
Command: scan-vulnerabilities.md
    ├── Delegates → vulnerability-scanner agent
    │   ├── Loads → security-best-practices skill
    │   ├── Scans codebase
    │   └── Returns findings
    │
    └── Delegates → report-generator agent
        ├── Receives findings
        └── Returns formatted report

Meanwhile:
PreToolUse:Bash hook
    └── Enforces security constraints on all bash commands

Why this works:

  • Commands are thin wrappers
  • Agents do specialized work
  • Skill provides shared knowledge
  • Hooks enforce guarantees
  • Components complement each other
  • Clear separation of concerns

Plugin Scope Philosophy

Focused plugin (good):

python-testing-suite/
└── Everything related to Python testing
    ├── Commands for running tests
    ├── Agents for test generation
    ├── Skills for testing strategy
    └── Hooks for auto-formatting test files

Kitchen sink plugin (bad):

development-tools/
└── Unrelated utilities
    ├── Python testing
    ├── Git helpers
    ├── Documentation generators
    ├── Deployment scripts
    └── Random utilities

Problems with kitchen sink:

  • Unclear purpose
  • Users only want subset
  • Hard to maintain
  • Versioning conflicts
  • Discovery problems

Debugging Cross-Component Issues

Common Delegation Failures

Symptom: Agent not being invoked automatically.

Diagnosis:

  1. Check agent description - too vague?
  2. Verify agent is properly installed
  3. Check tool permissions - missing required tools?
  4. Review context - does situation match description?

Fix: Strengthen description with specific triggering conditions.

Common Hook Failures

Symptom: Hook not executing.

Diagnosis:

  1. Check hook configuration syntax
  2. Verify matcher pattern (case-sensitive)
  3. Review hook logs (CTRL-R in Claude Code)
  4. Check timeout settings

Fix: Validate JSON, test hook in isolation.

Common Skill Loading Issues

Symptom: Skill not loading when expected.

Diagnosis:

  1. Check skill description - matches topic?
  2. Verify filename is SKILL.md (uppercase)
  3. Check directory structure (skills/name/SKILL.md)
  4. Review frontmatter YAML syntax

Fix: Improve description triggering conditions.

Quality Checklist for Multi-Component Design

Before finalizing a plugin or component set:

Architecture (best practices):

  • ✓ Each component has single, focused responsibility
  • ✓ Commands delegate to agents (thin wrapper pattern)
  • ✓ Agents use appropriate tools for their role
  • ✓ Skills provide shared knowledge (no duplication)
  • ✓ Hooks enforce deterministic rules only
  • ✓ No interactive patterns in agents
  • ✓ Clear delegation chains documented

Component interaction (best practices):

  • ✓ Commands → Agents delegation is clear
  • ✓ Agents → Skills loading makes sense
  • ✓ Agents → Sub-agents delegation is justified
  • ✓ Hooks + Agents complement each other
  • ✓ No circular dependencies
  • ✓ Tool permissions match responsibilities

Descriptions (best practices):

  • ✓ Agent descriptions trigger autonomous delegation
  • ✓ Skill descriptions trigger automatic loading
  • ✓ Command descriptions are discoverable in /help
  • ✓ All descriptions follow "what, benefit, when" pattern

Testing (best practices):

  • ✓ Test each component independently
  • ✓ Test delegation chains end-to-end
  • ✓ Verify skills load in appropriate contexts
  • ✓ Confirm hooks execute at right events
  • ✓ Validate error handling at each level

Design Decision Tree

Use this when choosing component types:

START: What are you building?

├─ Do you need GUARANTEED execution every time?
│  └─ YES → Hook (deterministic enforcement)
│
├─ Is this USER-TRIGGERED explicitly?
│  └─ YES → Command
│      └─ Is it complex logic?
│          ├─ YES → Command delegates to Agent
│          └─ NO → Simple command with argument substitution
│
├─ Is this KNOWLEDGE that loads when relevant?
│  └─ YES → Skill
│      └─ Substantial (20+ lines)?
│          ├─ YES → Create skill
│          └─ NO → Put in CLAUDE.md instead
│
└─ Is this AUTONOMOUS WORK?
   └─ YES → Agent
       ├─ Need isolated context? → Sub-agent
       ├─ Need specific tools? → Configure tools field
       └─ Complex task? → Consider sub-agent delegation

Examples: Complete Component Ecosystems

Example 1: Testing Ecosystem

Architecture:

Commands (user-triggered):
├── /run-tests → Delegates to test-runner agent
└── /generate-tests → Delegates to test-generator agent

Agents (autonomous work):
├── test-runner
│   ├── Tools: Read, Bash, Grep
│   ├── Loads: testing-strategy skill
│   └── Purpose: Execute tests, analyze failures
│
└── test-generator
    ├── Tools: Read, Write, Glob
    ├── Loads: testing-strategy skill
    └── Purpose: Create test files from code

Skills (shared knowledge):
└── testing-strategy
    ├── Testing pyramid philosophy
    ├── When to mock patterns
    └── Test design principles

Hooks (enforcement):
└── PostToolUse:Write (*.test.*)
    └── Auto-format test files

Interaction flow:

User: /run-tests
    ↓
Command executes → test-runner agent
    ├── Loads testing-strategy skill
    ├── Detects test framework (pytest/jest)
    ├── Runs tests via Bash tool
    ├── Analyzes failures
    └── Returns detailed report

Main Claude:
    ├── Receives report
    ├── Suggests fixes
    └── May delegate to test-generator for missing tests

Example 2: Documentation Ecosystem

Architecture:

Commands:
├── /document-api → Delegates to api-doc-generator
└── /review-docs → Delegates to doc-reviewer

Agents:
├── api-doc-generator
│   ├── Tools: Read, Write, WebFetch
│   ├── Loads: api-documentation-standards skill
│   └── Creates API documentation
│
└── doc-reviewer
    ├── Tools: Read, Grep
    ├── Loads: api-documentation-standards skill
    └── Reviews existing docs for compliance

Skills:
└── api-documentation-standards
    ├── OpenAPI specification patterns
    ├── Example formats
    └── Common pitfalls

Hooks:
└── PostToolUse:Write (*.md in docs/)
    └── Validates markdown syntax

Example 3: Box Factory Meta-Ecosystem (Self-Documenting)

Architecture:

Commands:
├── /add-agent → agent-writer
├── /add-command → slash-command-writer
├── /add-skill → skill-writer
├── /add-hook → hooks-writer
└── /review-component → component-reviewer

Agents:
├── agent-writer (loads agent-design)
├── slash-command-writer (loads slash-command-design)
├── skill-writer (loads skill-design)
├── hooks-writer (loads hooks-design)
└── component-reviewer (loads all design skills)

Skills:
├── agent-design
├── slash-command-design
├── skill-design
├── hooks-design
├── plugin-design
└── box-factory-architecture (this skill!)

Why this is powerful:

  • Box Factory uses its own patterns to create itself
  • Each component exemplifies what it teaches
  • Meta-skills guide creation of new components
  • Self-documenting, self-consistent ecosystem

Documentation References

These are the authoritative sources for the ecosystem:

Core architecture:

Component-specific:

  • Fetch agent-design skill for agent creation guidance
  • Fetch slash-command-design skill for command patterns
  • Fetch skill-design skill for knowledge organization
  • Fetch hooks-design skill for hook best practices
  • Fetch plugin-design skill for multi-component packaging

Remember: This meta-skill teaches ecosystem patterns. Always fetch official docs and component-specific skills for detailed guidance.