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:registry if dist/registry.json is 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.*.plugin value 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; use htmx-* 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.
Source: hashgraph-online/awesome-codex-plugins → plugins/LVTD-LLC/skills/skills/lvtd-skills-router/SKILL.md
1---2name: lvtd-skills-router3description: Use when the user is unsure which LVTD skill or marketplace plugin fits their problem, asks what skill to use, describes a cross-domain workflow, or needs help choosing among installed or source LVTD skills.4---5
6
7# LVTD Skills Router
8
9Use this skill to choose the smallest useful set of LVTD skills for the user's
10problem. Route by domain, outcome, and evidence needed. Prefer one primary
11skill; add secondary skills only when they cover a separate concern in the same
12workflow.
13
14## Source Of Truth
15
16When working inside this repository, do not hand-maintain a static catalog in
17this skill. Use generated metadata:
18
191. Run `npm run build:registry` if `dist/registry.json` is missing or stale.
202. Read `dist/registry.json`.
213. Use each skill's `name`, `description`, `category`, `tags`, and
22 `hosts.codex.plugin` or `hosts.claudeCode.plugin`.
234. Treat skills without a `hosts.*.plugin` value as direct-install skills.
24
25When the generated registry is not available, inspect source frontmatter in
26`skills/*/SKILL.md` and plugin grouping rules in `scripts/marketplace-utils.mjs`.
27When using an installed plugin outside this repository, route from the installed
28skills and plugin metadata available in the current client.
29
30## Routing Workflow
31
321. Restate the user's concrete task in one phrase.
332. Search skill names, descriptions, tags, and plugin names for that task.
343. Choose the most specific matching skill whose description directly covers the
35 current request.
364. If several skills match, prefer the one closest to the user's actual work:
37 implementation over strategy, diagnosis over broad planning, framework-specific
38 over framework-neutral when the framework is known.
395. Name the marketplace plugin only when the user asks what to install or when
40 the matching skill is unavailable in the current client.
416. Continue with the selected skill when the user asked for work, not just advice.
42
43## Useful Registry Queries
44
45List current marketplace plugins and included skills:
46
47```bash
48node --input-type=module -e '
49import { readFile } from "node:fs/promises";
50const registry = JSON.parse(await readFile("dist/registry.json", "utf8"));
51const plugins = new Map();
52const direct = [];
53for (const skill of registry.skills) {
54 const plugin = skill.hosts?.codex?.plugin || skill.hosts?.claudeCode?.plugin;
55 if (!plugin) {
56 direct.push(skill.name);
57 continue;
58 }
59 plugins.set(plugin, [...(plugins.get(plugin) || []), skill.name]);
60}
61for (const [plugin, skills] of [...plugins.entries()].sort()) {
62 console.log(`${plugin}: ${skills.sort().join(", ")}`);
63}
64if (direct.length) {
65 console.log(`direct-install: ${direct.sort().join(", ")}`);
66}
67'
68```
69
70Find candidate skills by keyword:
71
72```bash
73node --input-type=module -e '
74import { readFile } from "node:fs/promises";
75const query = process.argv.slice(1).join(" ").toLowerCase();
76const registry = JSON.parse(await readFile("dist/registry.json", "utf8"));
77for (const skill of registry.skills) {
78 const haystack = [
79 skill.name,
80 skill.displayName,
81 skill.description,
82 skill.category,
83 ...(skill.tags || []),
84 ].join(" ").toLowerCase();
85 if (haystack.includes(query)) {
86 const plugin = skill.hosts?.codex?.plugin || "direct-install";
87 console.log(`${skill.name} (${plugin}) - ${skill.description}`);
88 }
89}
90' "calibredb"
91```
92
93## Tie-Breakers
94
95- Django-specific htmx work: choose `django-htmx`; use `htmx-*` skills for
96 framework-neutral patterns or deeper htmx mechanics.
97- Rust game work: choose `rust-game-*` or Bevy/bracket/roguelike skills before
98 general Rust skills when the request is explicitly game-related.
99- SEO channel tests from *Traction*: choose `traction-seo-content`; broader SEO
100 strategy, roadmap, technical SEO, or link-building work belongs in `seo`.
101- Experiment design, analysis, platform strategy, or long-term measurement:
102 choose `practical-ab-testing`; growth channel tests belong in `traction`.
103- Developer documentation research, planning, drafting, samples, diagrams,
104 information architecture, or maintenance belongs in `developer-docs`.
105- Product page, pricing page, launch page, social preview, or shareability audit:
106 choose `make-product-viral`.
107- Calibre library CLI work: choose `calibredb`.
108- Test suite architecture outside a framework-specific skill: choose the
109 framework-neutral `tdd` plugin skills.
110
111## Avoid
112
113- Do not load every candidate skill just to browse. Route from metadata first.
114- Do not continue routing once a specific skill clearly fits.
115- Do not copy plugin names or skill lists into this file unless they are durable
116 tie-breakers. Generated registry data is the catalog source of truth.
117
118---
119
120**Source:** [`hashgraph-online/awesome-codex-plugins`](https://github.com/hashgraph-online/awesome-codex-plugins) → `plugins/LVTD-LLC/skills/skills/lvtd-skills-router/SKILL.md`