-
Notifications
You must be signed in to change notification settings - Fork 870
[Proposal] Skill Trees (dynamic/hierarchical skill loading) #133
Description
Problem
Skills currently load as a flat list. Each skill's name + description is injected into the system prompt, and when the agent invokes one, its full content expands inline.
This works fine for a handful of focused skills, but breaks down when a knowledge domain is large and broad. You're forced into one of two bad options:
Few broad skills — descriptions become so generic that the agent can't meaningfully decide when to load them, and when it does, it gets an overwhelming dump.
Many narrow skills — the sheer number of skill name/description entries eats context budget before any skill content is even loaded, and clutters the agent's decision space.
There's no middle ground today because the skill list is flat — there's no way to progressively narrow down which slice of a large domain is actually needed.
Proposed solution
Allow skills to declare sub-skills (children). The loading would work in stages:
- Discovery: Only the top-level skill entry (name + description) appears in the agent's context, same as today.
- First invocation: Instead of expanding full content, the top-level skill expands into its children's name/description entries, replacing itself in the skill list.
- Second invocation: The agent picks the relevant child skill, which now loads its actual content (or further sub-skills, if deeper nesting is warranted).
This is progressive disclosure applied to skill loading — the agent drills down a tree rather than scanning a flat list, keeping context usage proportional to what's actually relevant.
Inspired by this issue: anthropics/claude-code#13032