skill-orchestrator
Skill1 starsChanged 4 months agoMITView on GitHub
Build and operate a stable, bilingual, one-time cached, multi-platform inventory and inferred capability contract for installed skills, with a unified CLI, no-scan cache migration, configurable policy profiles, explicit contract overrides, privacy-minimized route feedback, explainable selection, minimal skill-set DAG planning, health diagnostics, benchmark regression, and reproducible release packaging. Refresh only when explicitly requested. Use when the user asks to summarize or categorize available skills, choose or personalize the best skill for a task, explain why a skill was selected or excluded, correct inaccurate inferred capabilities, compose multiple skills, diagnose router state, compare skills across Codex, Agents, Claude, Cursor, Kiro, or custom roots, or package the router for open-source distribution. 当用户要求扫描、分类、选择、组合、解释、诊断或发布本机技能,或需要中文/英文双语技能路由时使用。
8 other projects use a version of this.
Adopted by
Most recently taken up by
- QSOLKCB/CLAUDE-SKILLS-AGItheir own version, first seen Nov 8, 2026
- theshindesahil/skill-orchestratortheir own version, first seen Nov 1, 2026
- iberi22/skillstheir own version, first seen Oct 15, 2026
- 7ucc/agent-skillstheir own version, first seen Aug 7, 2026
- Dev869/skill-orchestratortheir own version, first seen Jul 2, 2026
- megamott/vibe-skillstheir own version, first seen May 15, 2026
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- megamott/vibe-skills★ 28same name
- 7ucc/agent-skills★ 1same name
- Mirukuuun/skill-orchestrator★ 1same name
- QSOLKCB/CLAUDE-SKILLS-AGI★ 1same name
- Dev869/skill-orchestrator★ 0same name
- iberi22/skills★ 0same name
- theshindesahil/skill-orchestrator★ 0same name
- ziiinian/openclaw-governance-skill-suite★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Show its rules and text
We split this skill into the rules it gives an agent
39 rules. 0 are common, 35 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
35
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Use the machine-local inventory snapshot instead of rescanning skill directories for every task.
- Distinctive: line 12
Use the stable unified CLI for new automation:
- Distinctive: line 26
Run the inventory command.
- Distinctive: line 32
Treat the snapshot as the routing source of truth.
- Distinctive: line 40
When the user asks for a summary, group active skills by category.
- Distinctive: line 75
Ask for a counterfactual explanation when a plausible skill was not selected:
- Distinctive: line 83
add a supporting skill only when it contributes a required capability absent from the primary.
- Distinctive: line 92
Treat explicitly requested live Excel, Chrome, in-app browser, Figma-node, and Vercel capabilities as hard constraints for the primary …
- Distinctive: line 93
Treat declared incompatible output formats as hard primary-skill exclusions.
- Distinctive: line 94
Treat missing or uncertain metadata as a warning and score penalty, not an automatic exclusion.
- Distinctive: line 96
Use confidence as a decision aid: high may proceed, medium requires reading close candidates, and low should trigger a short clarification …
- Distinctive: line 111
Use policy filters to allow or deny platforms, sources, categories, skills, or side effects.
- Distinctive: line 112
Use policy biases to express stable local preferences without hard-coding router rules.
- Very specific: line 113
Use confidence thresholds and planning.max_skills to control escalation and plan size.
- Distinctive: line 114
Use contract overrides to add or remove formats, operations, capabilities, or side effects when inference is inaccurate.
- Distinctive: line 116
Keep all runtime corrections outside the inventory cache so a route can be reproduced from the cache plus its named configuration.
- Distinctive: line 133
Use the planner when the request contains distinct stages, such as research plus writing, Figma implementation plus browser verification, …
- Very specific: line 139
Use --platform <name> to plan from one or more cached platforms without rebuilding the inventory.
- Distinctive: line 143
Use constraint-aware routing to select the final-deliverable owner.
- Distinctive: line 146
Add supporting skills greedily only for remaining uncovered stages.
- Distinctive: line 147
Keep the default set at three skills or fewer.
- Very specific: line 149
Read the complete SKILL.md for every selected skill before execution and refine the generated plan when a skill's real instructions …
- Distinctive: line 151
Do not add a support skill merely because it ranks highly.
- Very specific: line 158
Prefer an artifact-specific skill over a broad suite for a narrow request, such as pdf, spreadsheets, or presentations.
- Distinctive: line 159
Prefer a suite/router when the request spans a full workflow, such as research-to-paper or graduation-project delivery.
- Distinctive: line 160
Prefer a live-control skill when the user refers to an already open application or authenticated browser state.
- Distinctive: line 161
Prefer a creation skill for new artifacts and a review/polish skill for critique or revision.
- Distinctive: line 162
Do not select two near-duplicate skills unless their instructions cover distinct stages.
- Distinctive: line 163
Do not invoke a skill merely because its name shares a generic word with the prompt.
- Distinctive: line 164
If no candidate has a convincing trigger match, proceed without a specialized skill and say so briefly.
- Distinctive: line 174
Use the broader skill only as the primary router when it explicitly coordinates the narrower skill.
- Distinctive: line 175
Avoid chaining multiple polishers by default.
- Distinctive: line 176
Avoid combining multiple literature search skills unless the task explicitly requires database diversity or citation verification.
- Distinctive: line 181
Before execution, define a short handoff contract:
- Distinctive: line 193
Never rescan automatically after the first valid snapshot is created.
- Distinctive: line 213
If the user names a skill missing from the snapshot, report that the snapshot may be stale and offer an explicit refresh.
- Distinctive: line 221
Run the built-in routing and planning benchmark after changing taxonomy, contracts, scoring, discovery, or planning logic:
- Distinctive: line 233
Run read-only health checks before relying on a route or publishing a release:
- Distinctive: line 249
Never edit, delete, or reinstall discovered skills during inventory or routing unless the user explicitly asks.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill Orchestrator v1.0
English is the canonical instruction language in this file. For the complete Simplified Chinese guide, read references/zh-CN.md. 本技能提供完整中英双语支持;简体中文指南见该文件。
Use the machine-local inventory snapshot instead of rescanning skill directories for every task. Apply runtime policy, contract corrections, and explicit user feedback without mutating the inventory, then build the smallest skill set that covers a staged execution plan.
Use the stable unified CLI for new automation:
python scripts/skillctl.py --version
python scripts/skillctl.py help
python scripts/skillctl.py --lang zh-CN helpDirect script commands remain supported for compatibility.
See references/cli.md for stable commands and exit-code guarantees.
Inventory workflow
Run the inventory command. On first use it scans configured roots and creates a snapshot; later calls read only that snapshot:
python scripts/skillctl.py inventory --format markdown- Treat the snapshot as the routing source of truth. Default first-use discovery uses adapters for Codex, Agents, Claude, Cursor, and Kiro. Generic/custom roots are opt-in. Missing directories are ignored; whole disks are never scanned.
For a reusable machine-readable catalog, write JSON outside the skill directory or to a task workspace:
python scripts/skillctl.py inventory --format json --output <workspace>/skill-inventory.json- Each cached skill includes an inferred contract covering input/output formats, operations, live-control capabilities, side effects, evidence, and inference confidence.
- When the user asks for a summary, group active skills by category. Report shadowed and byte-identical copies separately instead of presenting them as independent choices.
Inspect snapshot status without scanning:
python scripts/skillctl.py inventory --cache-infoInspect supported discovery adapters without scanning:
python scripts/skillctl.py inventory --list-adapters
See references/adapters.md for default locations, custom roots, and adapter selection.
Routing workflow
- Parse the request into:
- intended deliverable;
- input artifacts or services;
- domain;
- required operations;
- constraints such as format, venue, fidelity, deployment target, or live application state.
Rank candidates from the cached snapshot:
python scripts/skillctl.py route --task "<user request>" --top 8Review the emitted task contract, hard exclusions, warnings, capability matches, and route confidence. Filter already-cached candidates by platform when required; this does not scan:
python scripts/skillctl.py route --platform codex --task "<user request>"Ask for a counterfactual explanation when a plausible skill was not selected:
python scripts/skillctl.py route --task "<user request>" --why-not <skill-id>- Inspect the highest-scoring candidates. Read the complete
SKILL.mdfor every skill that may be selected before taking task actions. - Choose the smallest effective set:
- select one primary skill that owns the final deliverable;
- add a supporting skill only when it contributes a required capability absent from the primary;
- normally use no more than three skills;
- exceed three only for a genuine multi-stage pipeline with distinct artifacts.
- State the selected skills and order before using them. Then follow each selected skill faithfully.
The ranking script is a candidate generator, not the final authority. Capability contracts are inferred from metadata and may be incomplete. Validate candidates against the exact trigger conditions in their frontmatter. Route only active instances unless the user asks to compare duplicate or shadowed variants.
Constraint and confidence rules
- Treat explicitly requested live Excel, Chrome, in-app browser, Figma-node, and Vercel capabilities as hard constraints for the primary skill.
- Treat declared incompatible output formats as hard primary-skill exclusions.
- Treat missing or uncertain metadata as a warning and score penalty, not an automatic exclusion.
- Preserve an explicitly named skill even when its inferred contract is incomplete; surface the mismatch as a warning during final judgment.
- Use confidence as a decision aid: high may proceed, medium requires reading close candidates, and low should trigger a short clarification only when the choice materially changes the result.
- Report exclusion reasons when a plausible candidate fails a hard constraint.
See references/capability-schema.md for the inferred skill and task contracts.
Runtime policy and correction workflow
Initialize persistent local configuration once:
python scripts/skillctl.py init-configThis creates ~/.codex/config/skill-orchestrator/policy.json and overrides.json only when absent. Later routes and plans load them automatically.
- Use policy filters to allow or deny platforms, sources, categories, skills, or side effects.
- Use policy biases to express stable local preferences without hard-coding router rules.
- Use confidence thresholds and
planning.max_skillsto control escalation and plan size. - Use contract overrides to add or remove formats, operations, capabilities, or side effects when inference is inaccurate.
- Set
enabled: falseonly to hide a skill from routing; it does not uninstall or edit the skill. - Keep all runtime corrections outside the inventory cache so a route can be reproduced from the cache plus its named configuration.
Pass alternate files with --policy and --overrides. See references/runtime-configuration.md for schemas and examples.
Explicit feedback workflow
Record a confirmed route outcome only after the user accepts or rejects a recommendation:
python scripts/skillctl.py feedback --task "<request>" --accepted <skill-id>
python scripts/skillctl.py feedback --task "<request>" --rejected <skill-id> --accepted <better-skill-id>Feedback stores a SHA-256 task fingerprint and normalized context key, not the raw request. Matching future contexts receive a bounded score adjustment. Use --no-feedback for a baseline decision or --feedback-file for an isolated profile. Never infer acceptance merely because a skill was executed. See references/feedback-schema.md.
Multi-skill planning workflow
Use the planner when the request contains distinct stages, such as research plus writing, Figma implementation plus browser verification, data analysis plus publication figure creation, or source extraction plus artifact generation.
python scripts/skillctl.py plan --task "<user request>" --max-skills 3Use --platform <name> to plan from one or more cached platforms without rebuilding the inventory.
The planner must:
- Use constraint-aware routing to select the final-deliverable owner.
- Decompose the task into source, research, analysis, production, and verification stages only when those stages are required.
- Let the primary skill own every stage it can fully cover.
- Add supporting skills greedily only for remaining uncovered stages.
- Keep the default set at three skills or fewer.
- Emit stage dependencies, input artifacts, output artifacts, matched capabilities, role assignments, confidence, and capability gaps.
- Read the complete
SKILL.mdfor every selected skill before execution and refine the generated plan when a skill's real instructions contradict an inferred contract.
Do not add a support skill merely because it ranks highly. It must own at least one stage or be explicitly requested by the user. See references/planning-schema.md.
Selection rules
Apply these rules in order:
- An explicitly named skill wins if it is installed and applicable.
- Prefer an artifact-specific skill over a broad suite for a narrow request, such as
pdf,spreadsheets, orpresentations. - Prefer a suite/router when the request spans a full workflow, such as research-to-paper or graduation-project delivery.
- Prefer a live-control skill when the user refers to an already open application or authenticated browser state.
- Prefer a creation skill for new artifacts and a review/polish skill for critique or revision.
- Do not select two near-duplicate skills unless their instructions cover distinct stages.
- Do not invoke a skill merely because its name shares a generic word with the prompt.
- If no candidate has a convincing trigger match, proceed without a specialized skill and say so briefly.
See references/taxonomy.md for category definitions and references/orchestration-patterns.md for common multi-skill sequences.
Conflict resolution
When candidates overlap:
- Compare their frontmatter descriptions against the requested deliverable, not just the topic.
- Give priority to the skill whose required input and promised output match most exactly.
- Use the broader skill only as the primary router when it explicitly coordinates the narrower skill.
- Avoid chaining multiple polishers by default. Select the one matching language, venue, and requested editing depth.
- Avoid combining multiple literature search skills unless the task explicitly requires database diversity or citation verification.
- Preserve user choice when they explicitly request a particular skill, unless it is unavailable or cannot handle the input.
Multi-skill execution contract
Before execution, define a short handoff contract:
Primary: <skill> — owns <final deliverable>
Support: <skill> — produces <specific intermediate artifact>
Order: <support step> -> <primary step> -> <verification step>Pass concrete artifacts between stages. Do not ask each skill to redo discovery, extraction, or formatting already completed by another stage.
Snapshot and refresh behavior
Never rescan automatically after the first valid snapshot is created. New installs, removals, edits, and plugin changes remain invisible until the user explicitly asks to refresh.
Refresh only with:
python scripts/skillctl.py inventory --refreshOr refresh and route in one command:
python scripts/skillctl.py route --refresh --task "<user request>"Or refresh and build a multi-skill plan:
python scripts/skillctl.py plan --refresh --task "<user request>"If the user names a skill missing from the snapshot, report that the snapshot may be stale and offer an explicit refresh; do not silently scan. An unreadable or schema-incompatible snapshot may be rebuilt because it cannot be used.
Discovery configuration changes such as --adapter, --root, or --project-root require --refresh when a valid cache already exists. Platform filtering does not.
The snapshot is stored at ~/.codex/cache/skill-orchestrator/inventory-v7.json. On first v1.0 use, a compatible v0.6 snapshot is migrated without reading skill directories; the old snapshot remains untouched. Policy, overrides, feedback, diagnostics, and packaging never trigger an inventory refresh. See references/cache-schema.md.
Benchmark and regression workflow
Run the built-in routing and planning benchmark after changing taxonomy, contracts, scoring, discovery, or planning logic:
python scripts/skillctl.py benchmarkThe benchmark reports Top-1 accuracy, required-skill recall, forbidden-selection violations, plan-stage coverage, excess-skill rate, pass/fail/skip counts, and a non-zero exit code on evaluated failures. Use --strict-missing when missing expected skills must fail CI, --allow-failures during tuning, and --format json for automation.
Benchmark cases are declarative JSONL and must describe externally observable routing expectations rather than internal score values. See references/benchmarking.md.
Health and release workflow
Run read-only health checks before relying on a route or publishing a release:
python scripts/skillctl.py doctor --deep --benchmark --strict--deep compares cached fingerprints with current SKILL.md files but never refreshes the cache. --benchmark runs the shared deterministic suite. Resolve every error and strict warning before packaging.
Build a deterministic MIT-licensed release archive:
python scripts/skillctl.py package --output <workspace>/skill-orchestrator-v1.0.0.zipThe package contains only required skill resources, excludes caches and bytecode, normalizes ZIP timestamps, and embeds RELEASE-MANIFEST.json with per-file SHA-256 hashes. See references/release-packaging.md.
Never edit, delete, or reinstall discovered skills during inventory or routing unless the user explicitly asks.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

