Skill orchestrator
Meta-skill for Claude Code: discovers installed skills, decomposes multi-domain tasks, sequences skills in dependency order, and synthesizes one cohesive deliverable
npx -y skills add Dev869/skill-orchestrator --skill skill-orchestratorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Meta-skill that coordinates multiple installed skills to deliver one cohesive result for multi-domain tasks. Use whenever a request spans more than one domain (e.g. "research the market, build the pricing model, and turn it into a deck"), is broad or end-to-end ("handle this start to finish", "do whatever it takes to ship this", "prepare the full launch package"), or when it's genuinely ambiguous which of several installed skills fits — even if the user never mentions skills or orchestration. Also use when a task will clearly chain outputs across skills (research feeding a document feeding a design). Do NOT use when one skill obviously and fully covers the request, or for single-domain tasks — invoke that skill directly and stay out of the way.
SKILL.md
9.5 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
Skill Orchestrator
You are coordinating other skills, not doing the work yourself. When a task spans domains, each installed skill owns one facet; your job is to discover what's installed right now, decompose the task, run the right skills in the right order, carry decisions between them, and hand the user one coherent deliverable — never a pile of separate skill outputs stapled together.
Step 0 — Decide whether to orchestrate at all
Orchestration has overhead, and overhead on a simple ask is a worse experience than no orchestration on a complex one. Before anything else, check: does exactly one installed skill's description cover the whole request? If yes, invoke that skill directly and stop reading this one. Orchestrate only when the task genuinely spans multiple skills, is end-to-end, or when several skills plausibly apply and you need the catalog to decide.
Step 1 — Discover what's actually installed
The skill library changes constantly (plugin marketplaces, personal skills, org skills), so never assume you know what's available and never work from a remembered list.
Two sources, in order of cost:
-
The in-context available-skills list. Your session already carries every registered skill's name and description. For most tasks this is the whole catalog — use it first, it costs nothing.
-
The bundled scanner, when you need an authoritative or filtered view (the in-context list can omit skills registered mid-session, and can be too long to scan by eye):
python3 scripts/discover_skills.py # full catalog: name, source, description, path python3 scripts/discover_skills.py deck chart # filter by terms (OR, case-insensitive)It reads only frontmatter — one line per skill — so even a 400-skill library costs a few KB. The
pathcolumn is how you'll later load a selected skill's full body.
Treat whichever catalog you build as valid for the duration of this one task. On the next task, re-discover — skills get installed and removed between tasks, and a stale catalog silently routes work to the wrong place.
Step 2 — Decompose the task
Break the request into the smallest set of distinct subtasks that still makes sense — resist granularity for its own sake. "Research the market, build a pricing model, make a deck" is three subtasks, not seven. Each subtask should be something one skill (or plain unassisted work) can own end to end.
Some subtasks won't match any skill. That's fine — you handle those directly. The orchestrator exists to route what's routable, not to force every step through a skill.
Step 3 — Match subtasks to skills
Match each subtask against skill descriptions and trigger conditions, not name similarity. A skill named emails might own drip campaigns while email-html-mjml owns template rendering — the description tells you which; the name alone will mislead you.
When two skills plausibly cover the same subtask:
- Pick the more specific one silently. A skill scoped to exactly this subtask beats a general one. The user doesn't want to adjudicate library internals.
- Ask only when they genuinely diverge in what they'd produce (e.g., one generates a Figma file, the other HTML) — and then ask one crisp question, not a menu of trade-offs.
Step 4 — Sequence by dependency, not by list order
Order phases by what each needs from the others. When the task doesn't dictate its own order, default to the lifecycle shape that most multi-domain work follows:
- Context — research, discovery, reading existing material. Everything downstream depends on it.
- Creation — generation, building, drafting.
- Review — critique, compliance, QA. Cheaper to run before packaging than after.
- Delivery — formatting, packaging, publishing.
Reorder freely when actual dependencies say otherwise — a compliance skill that constrains what you may build belongs before creation, not after. Phases with no dependency between them can run in parallel (e.g., via subagents) when the environment supports it.
Step 5 — Show the plan (briefly)
Before executing a multi-phase orchestration, show a short plan: each selected skill, its order, and a one-line reason. A few lines, not a report:
Plan: ①
firecrawl-deep-research— competitive scan → ②marketing-plan— positioning & channels from the research → ③emails— onboarding sequence in the plan's voice. Then I'll merge everything into one launch document.
Skip the preview entirely for single-skill or trivial tasks — it's noise there. Don't wait for approval unless the plan involves something destructive or a genuine either/or the user must own.
Step 6 — Execute with a context ledger
Run phases in sequence (or parallel where independent). Two disciplines make the difference between a coherent deliverable and a stapled-together one:
Progressive disclosure. Load a skill's full SKILL.md (via the path from discovery) only when its phase begins. When the phase ends, its instructions are done — do not keep applying them, and do not let a later phase re-read them. Only the phase's output carries forward. This keeps context lean and prevents one skill's conventions from bleeding into another's phase uninvited.
The ledger. Keep a running note (mentally, or as a scratch file for long tasks) of every decision made so far that later phases must honor: product/project name, brand colors, tone of voice, target audience, chosen approach, file paths produced, naming conventions, constraints found during review. Inject the relevant ledger entries into each later phase's working context explicitly. Nothing decided upstream may be re-decided or contradicted downstream — the market positioning chosen in phase 1 is the positioning the emails in phase 3 sell; the file the model wrote in phase 2 is the file the deck in phase 4 embeds.
Step 7 — Synthesize before presenting
Never hand over raw concatenated phase outputs. Run a final pass over everything produced and make it read as one author's work:
- One voice. Uniform tone and tense; no section suddenly switching from crisp to chatty because a different skill wrote it.
- One set of conventions. Consistent heading hierarchy, list style, terminology, and naming throughout. If phase 1 called it "Acme Monitor" and phase 3 called it "the Acme tool", fix it.
- No seams. Sections must reference each other where it helps ("as the competitive scan showed…") and never repeat each other's content. Remove per-skill boilerplate, duplicate intros, and orphaned headers.
- One deliverable. Prefer a single integrated artifact over N files, unless the task inherently needs separate files (code + doc, deck + spreadsheet) — in which case make them visibly consistent and name the set in a short closing summary.
The test: a reader should be unable to tell that three different skills wrote three different parts.
Failure handling
A phase failing must not abort the chain. If a selected skill errors, doesn't fit once its body is actually loaded, or produces something unusable:
- Try the next-best match from the catalog for that subtask.
- If nothing fits, do that subtask unassisted, applying the ledger's decisions yourself.
- If a subtask is truly impossible (missing credentials, absent tool), complete every other phase, synthesize what exists, and tell the user precisely which piece is missing and why — a 90% coherent deliverable beats an aborted chain.
Record any downgrade in the ledger so later phases don't depend on output that never materialized.
Worked example
Request: "Research the AI note-taking market, put together a marketing plan, and write the onboarding email sequence for my app Notably."
- Discover — in-context list suffices; candidates:
firecrawl-deep-research,marketing-plan,emails,email-html-mjml. - Decompose — three subtasks: market research → marketing plan → onboarding sequence.
- Match — research →
firecrawl-deep-research; plan →marketing-plan; sequence →emails(owns drip/onboarding flows;email-html-mjmlloses — it renders templates, it doesn't design sequences). - Sequence — already in dependency order: research feeds positioning, positioning feeds email copy.
- Plan preview — three lines, as in Step 5.
- Execute — ledger accumulates: competitor set, chosen differentiator ("local-first privacy"), audience (grad students), tone ("plainspoken, no hype"), product name "Notably". Each later phase receives these explicitly;
emailsnever re-invents positioning. - Synthesize — one launch document: research summary → plan → sequence, one voice, emails visibly selling the differentiator the research surfaced. The Notably name is spelled identically in all 40 places it appears.
What ships with it: 2 files
8.0 KB alongside SKILL.md, 1 of them executable
evals/
- evals.json3.8 KB
scripts/
- discover_skills.pyruns4.2 KB
Gives 0 of the 12 instructions most agent orchestration skills give in ~1.9k tokens
Counted across 742 of the 995 authors here whose files we hold, read 2026-08-07
- Reference existing artifacts by path or URLin 53 of 742, across 25 files
- Run the full test suite after integrating changesin 51 of 742, across 19 files
- Dispatch one agent per independent problem domainin 50 of 742, across 17 files
- Verify fixes do not conflictin 45 of 742, across 13 files
- Include a suggested skills section in the documentin 45 of 742, across 17 files
- Redact sensitive informationin 41 of 742, across 11 files
- Save to the temporary directory of the operating systemin 39 of 742, across 10 files
- Tailor the document to user-provided focus argumentsin 39 of 742, across 9 files
- Spot check agent changes for systematic errorsin 34 of 742, across 7 files
- Write a handoff document summarising the current conversationin 31 of 742, across 6 files
- Assign each agent a specific scopein 23 of 742, across 8 files
- Provide specific scope and clear goalin 23 of 742, across 5 files
Said here and by no other author read
- invoke a single covering skill directly if one exists
- discover installed skills before decomposing the task
- match subtasks to skill descriptions
- prefer the more specific skill for overlapping subtasks
- sequence phases by dependency not list order
- show a brief execution plan before running phases
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.