Create routable skill
Skill Ninaix0217/create-routable-skill/skill/create-routable-skill
Design, audit, or repair routing contracts for Codex skills using concrete trigger scenarios, explicit exclusions, distinctions from similar skills, progressive-disclosure resources, and routing evaluation cases. Use when a user explicitly wants reliable Skill selection, reports missed or false triggers, needs catalog conflict analysis, or asks for routing regression tests. Do not use for ordinary Skill creation without routing requirements, executing or installing an existing Skill, creating a plugin, or implementing a runtime embedding-based router.From its SKILL.md
npx -y skills add Ninaix0217/create-routable-skill --skill create-routable-skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 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.
SKILL.md
5.7 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it
Create Routable Skill
Create the smallest skill that reliably separates its intended requests from neighboring capabilities. Treat routing as a classification contract: metadata selects the skill; the body controls behavior only after selection. Use the system skill-creator for general construction mechanics and this skill for explicit routing design and evaluation.
Workflow
-
Establish concrete usage before creating files.
- Collect or propose at least three requests that must select the skill.
- Collect or propose at least three related requests that must reject it.
- Identify the closest existing skills and state the decisive distinction for each.
- Ask only for information that materially changes the design. Mark generated examples as assumptions.
-
Read references/routing-contract.md and draft a routing specification using references/spec-template.json.
- Set
modetocreateorupdate. - For updates, read the existing frontmatter, record
existing_skill_path, and preserve its canonicalnameunless the user explicitly authorizes a rename.
- Set
-
Validate the specification:
python scripts/validate_routing_spec.py path/to/spec.json -
Analyze installed skills before deciding to add a new one:
python scripts/analyze_skill_catalog.py --candidate path/to/spec.json --format textTreat lexical scores as candidate-generation evidence, not semantic proof. Inspect every high-scoring skill. In update mode the analyzer excludes only
existing_skill_path; same-name skills elsewhere remain visible as collisions. Prefer updating an existing skill when the proposed capability has no independent workflow, resources, or routing boundary. -
Plan only reusable resources:
- Put deterministic or repeatedly rewritten operations in
scripts/. - Put detailed, conditionally needed knowledge in
references/. - Put output templates or reusable binary material in
assets/. - Keep essential execution instructions in
SKILL.md; do not create auxiliary documentation.
- Put deterministic or repeatedly rewritten operations in
-
Initialize a new skill with the official
skill-creator/scripts/init_skill.py. Use the user-selected location; otherwise use$CODEX_HOME/skills, falling back to~/.codex/skills. Skip initialization only when updating an existing skill. -
Write the skill.
- Use lowercase hyphen-case for the folder and
name. - Put every pre-trigger signal in the frontmatter
description: capability, concrete triggers, and decisive exclusions. - Do not rely on a body section named “When to use”; the body is unavailable before routing.
- Keep the body procedural, concise, imperative, and below 500 lines.
- Link every optional reference directly from
SKILL.mdand say when to read it.
- Use lowercase hyphen-case for the folder and
-
Generate the executable routing fixture:
python scripts/generate_routing_tests.py path/to/spec.json --output path/to/routing-tests.jsonl -
Run the official
quick_validate.pyon the created skill, run every bundled script on representative inputs, and then forward-test realistic routing prompts in fresh contexts. Do not reveal the expected route to the test agent. -
Iterate on the smallest boundary that explains failures. Do not inflate the description with unrelated synonyms to chase individual tests.
Decision Rules
- Create a distinct skill only when it has a coherent user intent, a repeatable workflow, and a defensible boundary.
- Extend an existing skill when the new behavior shares the same intent and differs only by a minor option or example.
- Defer ordinary Skill creation to
skill-creator; own the request when routing reliability, trigger repair, catalog collisions, or routing evaluation is an explicit requirement. - In update mode, preserve the exact existing lowercase canonical name and folder unless an authorized rename is part of the task.
- Create a plugin instead when the request is primarily packaging multiple skills, MCP servers, apps, or marketplace metadata.
- Treat multi-skill requests as composition: identify the primary skill, supporting skills, and handoff order.
- Separate routing quality from task quality. A successful final artifact does not prove that the correct skill was selected.
- Never claim embedding recall, Top-K ranking, or production router accuracy from the lexical analyzer in this skill.
Evaluation
Read references/evaluation.md when designing or interpreting routing tests. Require positive, negative, confusable, and composition coverage. Record false negatives, false positives, nearest-skill confusions, and the rank of the correct skill when a candidate list exists.
Completion Gate
Deliver a skill only when all of these are true:
- The routing specification validates without errors.
- Existing-skill conflicts were inspected and resolved or explicitly accepted.
nameanddescriptionalone express the routing contract.- The official skill validator passes.
- Bundled scripts run successfully on representative inputs.
- Routing fixtures exist and fresh-context tests cover both selection and rejection.
- UI metadata still matches the final skill.
What ships with it: 7 files
26.5 KB alongside SKILL.md, 3 of them executable
agents/
- openai.yaml255 B
references/
- evaluation.md2.3 KB
- routing-contract.md3.6 KB
- spec-template.json2.0 KB
scripts/
- analyze_skill_catalog.pyruns7.8 KB
- generate_routing_tests.pyruns2.9 KB
- validate_routing_spec.pyruns7.7 KB