协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
lvtd-skills-router【开发与工程】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.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
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.
When working inside this repository, do not hand-maintain a static catalog in this skill. Use generated metadata:
npm run build:registry if dist/registry.json is missing or stale.dist/registry.json.name, description, category, tags, and
hosts.codex.plugin or hosts.claudeCode.plugin.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.
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"
django-htmx; use htmx-* skills for
framework-neutral patterns or deeper htmx mechanics.rust-game-* or Bevy/bracket/roguelike skills before
general Rust skills when the request is explicitly game-related.traction-seo-content; broader SEO
strategy, roadmap, technical SEO, or link-building work belongs in seo.practical-ab-testing; growth channel tests belong in traction.developer-docs.make-product-viral.calibredb.tdd plugin skills.