SKILL.md
LVTD Skills Router
Use this skill to choose the smallest useful set of LVTD skills for the user's problem. Route by domain, outcome, and evidence needed. Prefer one primary skill; add secondary skills only when they cover a separate concern in the same workflow.
Source Of Truth
When working inside this repository, do not hand-maintain a static catalog in this skill. Use generated metadata:
- Run
npm run build:registryifdist/registry.jsonis missing or stale. - Read
dist/registry.json. - Use each skill's
name,description,category,tags, and
hosts.codex.plugin or hosts.claudeCode.plugin.
- Treat skills without a
hosts.*.pluginvalue as direct-install skills.
When the generated registry is not available, inspect source frontmatter in skills/*/SKILL.md and plugin grouping rules in scripts/marketplace-utils.mjs. When using an installed plugin outside this repository, route from the installed skills and plugin metadata available in the current client.
Routing Workflow
- Restate the user's concrete task in one phrase.
- Search skill names, descriptions, tags, and plugin names for that task.
- Choose the most specific matching skill whose description directly covers the
current request.
- If several skills match, prefer the one closest to the user's actual work:
implementation over strategy, diagnosis over broad planning, framework-specific over framework-neutral when the framework is known.
- Name the marketplace plugin only when the user asks what to install or when
the matching skill is unavailable in the current client.
- Continue with the selected skill when the user asked for work, not just advice.
Useful Registry Queries
List current marketplace plugins and included skills:
node --input-type=module -e '
import { readFile } from "node:fs/promises";
const registry = JSON.parse(await readFile("dist/registry.json", "utf8"));
const plugins = new Map();
const direct = [];
for (const skill of registry.skills) {
const plugin = skill.hosts?.codex?.plugin || skill.hosts?.claudeCode?.plugin;
if (!plugin) {
direct.push(skill.name);
continue;
}
plugins.set(plugin, [...(plugins.get(plugin) || []), skill.name]);
}
for (const [plugin, skills] of [...plugins.entries()].sort()) {
console.log(`${plugin}: ${skills.sort().join(", ")}`);
}
if (direct.length) {
console.log(`direct-install: ${direct.sort().join(", ")}`);
}
'
Find candidate skills by keyword:
node --input-type=module -e '
import { readFile } from "node:fs/promises";
const query = process.argv.slice(1).join(" ").toLowerCase();
const registry = JSON.parse(await readFile("dist/registry.json", "utf8"));
for (const skill of registry.skills) {
const haystack = [
skill.name,
skill.displayName,
skill.description,
skill.category,
...(skill.tags || []),
].join(" ").toLowerCase();
if (haystack.includes(query)) {
const plugin = skill.hosts?.codex?.plugin || "direct-install";
console.log(`${skill.name} (${plugin}) - ${skill.description}`);
}
}
' "calibredb"
Tie-Breakers
- Django-specific htmx work: choose
django-htmx; usehtmx-*skills for
framework-neutral patterns or deeper htmx mechanics.
- Rust game work: choose
rust-game-*or Bevy/bracket/roguelike skills before
general Rust skills when the request is explicitly game-related.
- SEO channel tests from Traction: choose
traction-seo-content; broader SEO
strategy, roadmap, technical SEO, or link-building work belongs in seo.
- Experiment design, analysis, platform strategy, or long-term measurement:
choose practical-ab-testing; growth channel tests belong in traction.
- Developer documentation research, planning, drafting, samples, diagrams,
information architecture, or maintenance belongs in developer-docs.
- Product page, pricing page, launch page, social preview, or shareability audit:
choose make-product-viral.
- Calibre library CLI work: choose
calibredb. - Test suite architecture outside a framework-specific skill: choose the
framework-neutral tdd plugin skills.
Avoid
- Do not load every candidate skill just to browse. Route from metadata first.
- Do not continue routing once a specific skill clearly fits.
- Do not copy plugin names or skill lists into this file unless they are durable
tie-breakers. Generated registry data is the catalog source of truth.