I used to write Agent Skills as flat instruction files. This basically meant that a set of repeatable instructions I had would be converted into one skill, and before too long, I would have around 50 skills per repo. Each skill described one workflow, and they never called each other. That left a lot of repeated text across them.
As I grew tired of it, I experimented with a small orchestration idea. Can I call a skill from within another skill, create semantic orchestration layers, allow multiple skills to interleave with each other, and create a repeatable “pattern” instead of a workflow? The answer I got was a resounding yes. Skills can actually describe a hierarchy and work within it really well.
Think:
main skill/workflow → specialist sub-skill → worker agents → reviewer agents → feedback loop → accepted result → next specialist sub-skill → execution → end
For example:
Task skill
├── grilling skill to finalize what I need from this task
├── Task design skill
│ ├── designer agent
│ ├── reviewer agents
│ └── review loop
└── Task implementation skill
├── implementer agent
├── reviewer agents
├── review loop
└── validation scripts and hooksThis basically meant that I got somewhat close to progressive disclosure (not exactly the same thing, but close) while still orchestrating things as needed, with more precision, by stitching smaller skills together. It felt like magic.
The hierarchy above depicts a simple model: the main agent follows skill instructions to coordinate the workflow. Subagents are the leaves that do judgment-heavy work. In my workflow, scripts and hooks handle deterministic validation, then feed failures back into the appropriate loop.
I’ve validated this pattern in Codex CLI and Claude Code. The workflow pattern is portable; its execution is not. Each runtime handles skill activation, delegation, hooks, and context a little differently.
By the way, this is not a token-saving trick. Spawning more agents can use more tokens. The real gain is specialization, context isolation, and a better cost per successful outcome.