Skill Composition

A single skill does one thing. Real tasks often require many skills. Composition is how Claude combines skills to handle complex requests.

This page covers how composition works and the design patterns that make it reliable.

How invocation works in sequence

Claude can invoke multiple skills during a conversation:

```

User: "Implement feature X"

Claude invokes: brainstorming skill

[design discussion]

Claude invokes: writing-plans skill

[plan written]

Claude invokes: test-driven-development skill

[implementation]

Claude invokes: requesting-code-review skill

[review]

```

Each skill handles its phase. Together they produce the outcome.

State across skills

Each skill is loaded into context when invoked. Earlier skill outputs inform later skills implicitly — they're in the conversation.

Patterns:

- Earlier skill produces a plan; later skill executes it

- Earlier skill identifies a problem; later skill fixes it

- Earlier skill writes design; later skill writes code

The "state" is the conversation history. No special passing mechanism needed.

Composition patterns

Linear chain

Skill A → Skill B → Skill C. Each completes before the next.

The most common pattern. Each step depends on the previous.

Branching

Skill A determines the path:

```

Skill A: detect language

├── If Python: Skill B (Python style)

├── If Java: Skill C (Java style)

└── If TypeScript: Skill D (TS style)

```

The first skill's output drives which skill comes next.

Parallel (rare)

Skills don't usually run in parallel within Claude's flow. Workflows that branch then converge are usually serialized: do A, do B (which uses A's result), do C.

Spawning subagents is one way to parallelize. See multi-agent patterns.

Recursive

A skill may invoke itself for sub-problems. "Decompose into sub-tasks; solve each; combine."

Common in planning skills.

Design for composition

Single responsibility per skill

If a skill does multiple things, it composes poorly. Other skills can't cleanly invoke a piece of it.

Smaller, focused skills compose better than monolithic ones.

Clear inputs/outputs

What does the skill expect from prior context? What does it produce?

Even informally — "this skill assumes a plan has been written" — helps composition.

Don't repeat work

Skill A wrote tests; Skill B shouldn't write the same tests. Each builds on prior; doesn't redo.

Idempotent invocation

Re-invoking a skill should be safe. If composing involves backtracking ("redo this step"), idempotency matters.

Specific patterns

Process skills first

Some skills determine *how* to approach a task (brainstorming, planning, debugging). Implementation skills come after.

The system prompt guides this: brainstorming/planning before implementation.

Verification skills after action

After significant work, verification:

- Verification before completion (run tests, check builds)

- Code review skills

- Spec review

Catches problems before declaring success.

Skill awareness of other skills

Some skills explicitly reference others:

```markdown

After completing the implementation, invoke the requesting-code-review skill.

```

Builds workflows from individual skills.

Decomposition skills

Some skills' job is breaking a problem into smaller pieces, then invoking other skills for each piece.

Common in plan execution.

When composition is hard

Conflicting instructions

Two skills may disagree. "Always TDD" vs. "no tests for this kind of code" — which wins?

Resolution: explicit ordering or clearer scope per skill.

Skill discovery

Claude knows about installed skills. If a skill that would help isn't installed, composition fails.

User-facing: skills should be discoverable and well-described.

Implicit dependencies

Skill B assumes Skill A ran first. If invoked alone, B may produce surprises.

Mitigation: B's instructions check for needed state.

Long workflows

Many skills in sequence; long contexts. Skills that work alone may not work in long compositions.

Mitigation: skills should be context-light when possible.

A worked example

Building a feature with the superpowers system:

```

User: "Add a search feature to the wiki"

Step 1: brainstorming skill

- Clarify scope, identify constraints

- User confirms direction

Step 2: writing-plans skill

- Detailed implementation plan

- User reviews

Step 3: writing-skills skill (if creating new abstractions)

- Optional; creates reusable skill if pattern emerges

Step 4: test-driven-development skill

- Write failing tests

- Implement to pass

Step 5: requesting-code-review skill

- Review against requirements

- Address feedback

Step 6: finishing-a-development-branch skill

- Decide merge strategy

- Complete the work

```

Six skills compose for one feature. Each handles its piece.

Common failure patterns

- **Skills that overlap.** Claude can't decide which to invoke.

- **Skills with hidden dependencies.** Workflow breaks when skill invoked out of order.

- **Long sequences without context cleanup.** Compositional weight grows.

- **Skills that don't compose.** Built for solo use; awkward in workflows.

- **Trying to do everything in one skill.** Skill bloat.

Further Reading

- [CustomSkillsArchitecture](CustomSkillsArchitecture) — Skill basics

- [SkillIntegration](SkillIntegration) — Skills in workflows

- [SkillLibraries](SkillLibraries) — Distributing skill collections

- [AgenticAi Hub](AgenticAiHub) — Cluster index