Skip to content

Pull behavioral rules out of agents into single-file skills. Any agent that needs the rule references the file. Fix once; every agent inherits.

Pattern

Skill Composition

The problem

Same rule, four agents, four copies.

Inlined per agentO(N) edits to fix once

orchestrator.md"Read the log before responding..."

planning-lead.md"Read the log before responding..."

writing-lead.md"Read the log before responding..."

research-lead.md— forgot to add the rule —

Improve the phrasing to "Tail the last 20 entries of the log before responding"...

Fix has to be made 3 times. The 4th agent silently diverges. Discipline-by-convention fails on the first human mistake.

Referenced from one fileO(1) edit to fix all

orchestrator.md→ skills/active-listener.md

planning-lead.md→ skills/active-listener.md

writing-lead.md→ skills/active-listener.md

research-lead.md→ skills/active-listener.md

Improve the phrasing — edit skills/active-listener.md

One edit. All four agents inherit it at next boot. No agent can silently diverge — there's no copy to forget.

What a skill file looks like

Frontmatter + body. One file. Imperative rules only.

skills/mental-model.md

~30–60 lines

---

name: mental-model

use-when: "At the start of every task; after any task with learnings"

---

# Mental Model

Read your expertise file at <expertise_path> before starting.

After completing the task, append any non-obvious learnings to the expertise file under the appropriate section. Keep entries dense and cited — file path plus line number.

Frontmatter

Says when the skill applies. Enables Claude (and authors) to pick skills by trigger context.

Body

Imperative behavioral rules — the prompt text that gets inlined into the agent at boot.

How it wires up

Skills → resolver → agents at boot.

Static composition: agent frontmatter declares which skills it uses. The resolver inlines them once.

Skill library

⚙mental-model.md42 lines

⚙active-listener.md31 lines

⚙zero-micro-mgmt.md48 lines

⚙high-autonomy.md35 lines

🔗

buildSkillsBlock()

reads each referenced skill, inlines body into {{SKILLS_BLOCK}}

runs at boot · once

Agents

planning-lead.md

mental-model, active-listener, zero-micro-mgmt

research-lead.md

mental-model, active-listener, zero-micro-mgmt

writer.md

mental-model, active-listener, high-autonomy

Per-turn overhead: zero. Skills resolve once at boot, not per turn.

Runtime skill selection is not supported — and rarely needed.

The reference catalog

Six skills. One file each. Reused across agents.

mental-model

Maintain your expertise file

read at start, append learnings at end

all

zero-micro-mgmt

Leads delegate, never execute

hand off to members; don't write code

orchestratorleads

active-listener

Tail the Conversation Log before responding

know what your teammates just said

all

conversational-response

Slack-style brevity

leads & orchestrator — no essays

orchestratorleads

high-autonomy

Act without clarifying questions unless blocked

assume reasonable defaults; proceed

workers

precise-worker

Execute exactly as assigned

no scope drift, no interpretation

workers

Several skills appear in multiple agents. That's the point — one file, N agents.

The sizing rule

Skills should be focused. Neither too narrow nor too broad.

Skill file size

line count per skill

TOO NARROW

✓ FOCUSED

TOO BROAD

1 line~30~60100+

✗ Too narrow One-off behaviors. Proliferation without reuse — library becomes noise.

✓ Focused One imperative rule, phrased clearly. Reusable across ≥ 2 agents.

✗ Too broad Drifts toward full agent roles. Hard to compose; shouldn't be one skill.

The discipline

Any rule that applies to two or more agents becomes a skill.

Library of behavioral rules, referenced by frontmatter, inlined at boot. Fix once; everyone inherits. Newly added agents compose from the library — they can't silently miss a rule that isn't theirs to remember.