AGENT SKILL

skill-builder

Meta-skill for creating new skills from natural language. Trigger phrases: "new skill", "create a skill", "build a skill", "make a skill", "generate a skill", "author a skill", "skill builder".

License 许可
MIT
最近更新
2026-11-13
Stars
★ 47
Forks
5

01 前言 Front Matter

name
skill-builder
version
1.0.5
metadata
{ "tags": [ "skill-authoring", "plugin-authoring", "meta", "universal" ], "version": "1.0.4", "homepage": "https://verified-skill.com/skills/skill-builder" }
description
Meta-skill for creating new skills from natural language. Trigger phrases: "new skill", "create a skill", "build a skill", "make a skill", "generate a skill", "author a skill", "skill builder".

02 资源文件 3

03 SKILL.md 正文

skill-builder

Author new universal skills from natural-language prompts across any agent host (Claude Code, Cursor, Codex, Gemini CLI, Windsurf, OpenCode, and the rest of the 50+ agents in the vskill registry).

What this skill does

skill-builder is a cross-tool authoring meta-skill. When the host agent sees a trigger phrase (see frontmatter description), this skill takes over and produces a new SKILL.md — emitted for every target agent, not just the one currently invoking it. The emitted skills carry an x-sw-schema-version: 1 marker so future tooling can evolve the format without breaking older installs.

It does this by delegating to the real generator via a three-path fallback chain:

  • Path A — vskill skill CLI (preferred). The CLI owns the full authoring pipeline: prompt parsing, target-agent lowering, divergence report, security scan, and disk write.
  • Path B — vskill Studio (browser). When the CLI is not on PATH but the npm package is present (e.g. a project-local install), start the eval server and walk the user through the Studio UI.
  • Path C — Anthropic skill-creator (Claude Code only fallback). Delegate to the built-in Anthropic authoring skill. This produces a single Claude-flavored SKILL.md with no universal targets, so we log the degradation so users know what they're getting.

Each path is tried in order; the first one whose detection check succeeds wins. If none match, we emit a remediation message and stop.

Detection script

The host agent runs this snippet (or the equivalent) before authoring anything. Return on the first path whose probe exits 0.

# Path A: vskill CLI on PATH
if which vskill >/dev/null 2>&1; then
  # Invoke the CLI. --targets is optional; default is the full
  # universal set. --prompt is the user's natural-language request.
  vskill skill new --prompt "<USER_PROMPT>" [--targets=<csv>]
  exit $?
fi

# Path B: vskill package resolvable but no CLI on PATH
if node -e "require.resolve('vskill')" >/dev/null 2>&1; then
  vskill eval serve
  echo "[skill-builder] open the URL printed above and use the Studio 'New skill' flow"
  exit 0
fi

# Path C: Claude Code host with Anthropic skill-creator installed
if [ "${SW_HOST_AGENT:-claude-code}" = "claude-code" ] \
   && test -d "$HOME/.claude/skills/skill-creator"; then
  echo "[skill-builder] fallback mode — universal targets not emitted; install vskill for universal support"
  # Delegate to the Anthropic built-in. The host agent will route
  # the original user prompt into skill-creator.
  exit 0
fi

# Nothing matched — print remediation and fail loudly.
cat <<'EOF'
[skill-builder] no authoring backend available. Install one of:

  npm install -g vskill          # preferred — universal targets
  claude plugin install skill-creator   # Claude Code only, no universal emit

EOF
exit 1

Notes for the host agent:

  • <USER_PROMPT> is the user's raw natural-language request.
  • <csv> for --targets is a comma-separated list of agent IDs (e.g. claude-code,codex,cursor). Omit to default to the full universal set.
  • SW_HOST_AGENT is the environment hint set by the invoking tool. When unset, assume claude-code — that is the only host that ships skill-creator as a built-in, so the default is safe.
  • The log line in Path C is intentionally exact; test gates grep for it to confirm fallback activation.

Sentinel file contract

Path A MUST write a sentinel file to the current working directory so test gates and manual verification can confirm activation without parsing CLI stdout. The file is:

.skill-builder-invoked.json

With shape:

{
  "trigger": "new skill",
  "agent": "claude-code",
  "timestamp": "2026-04-24T14:35:00.000Z",
  "targets": ["claude-code", "codex", "cursor"],
  "prompt": "lint markdown files for broken links"
}

Field definitions:

  • trigger — the exact phrase that activated skill-builder (e.g. "new skill", "create a skill").
  • agent — the host agent id that invoked us (claude-code, cursor, codex, etc.).
  • timestamp — ISO-8601 UTC timestamp at invocation.
  • targets — the resolved target agent IDs the CLI will emit for. Defaults to the full universal set when the user did not pass --targets.
  • prompt — the raw user prompt passed to the CLI.

Paths B and C do NOT write the sentinel — they have their own verification surfaces (Studio UI state for B, Claude Code's native skill-creator log for C). Consumers that need "did skill-builder activate?" gating must check the sentinel AND tolerate its absence in fallback modes.

Authoring a plugin (multi-skill bundle)

Claude Code's plugin system lets you ship 2+ related skills under a single shared identity (a folder with .claude-plugin/plugin.json and one or more skills/<slug>/SKILL.md underneath). Prefer plugin mode over standalone when the user describes 2+ related skills under a shared identity — e.g. "a plugin called hi-anton with greet and farewell skills", or "bundle these under one namespace for distribution".

claude plugin CLI has no new/create subcommand — plugin authoring is otherwise unowned. There are three concrete paths to land a valid plugin manifest, all of which delegate schema validation to claude plugin validate <path> so vskill never duplicates Claude Code's plugin schema:

  1. vskill plugin new <name> [--with-skill <slug>] [--description "..."] (CLI; preferred when working from the terminal). Scaffolds <name>/.claude-plugin/plugin.json and (optionally) a first skill. Runs claude plugin validate <name> after writing; on failure the manifest is unlinked so a broken plugin never lands.

  2. Studio Create-Skill modal → "Plugin (multi-skill)" mode (writes both <plugin>/.claude-plugin/plugin.json and a first <plugin>/skills/<skill>/SKILL.md in a single click).

  3. Studio sidebar "Convert →" CTA (when standalone skills already exist). The AUTHORING > Skills section detects folders with 2+ standalone skills and offers a one-click promotion to a real plugin. Behind the scenes this calls POST /api/authoring/convert-to-plugin.

Folder shape after authoring:

my-plugin/
├── .claude-plugin/
│   └── plugin.json          # {"name":"my-plugin","description":"…"} — author/version derived at install time
└── skills/
    ├── greet/SKILL.md
    └── farewell/SKILL.md

Once any of the three paths writes a valid manifest, the next refresh in Skill Studio promotes the affected skills' scopeV2 from authoring-project to authoring-plugin automatically — no further user action needed.

What this is NOT

  • Not scout — scout is for DISCOVERING skills that already exist on the verified-skill.com registry ("find me a kubernetes skill"). skill-builder is for CREATING new skills from a prompt. If the user's intent is "find" or "install" rather than "make", route to scout instead.
  • Not sw:skill-gen — sw:skill-gen is the SpecWeave command for signal-based skill GENERATION: it reads patterns from living docs and emits project-specific skills. That flow is automatic and pattern-driven, whereas skill-builder is interactive and prompt-driven. Use sw:skill-gen inside a SpecWeave project when you want skills derived from detected code patterns.

In short:

Intent Skill
"find me a skill for X" scout
"generate skills from my codebase" sw:skill-gen
"make a new skill from this prompt" skill-builder

References

  • references/target-agents.md — the full target agent table with universality flags and local skills dirs, sourced from src/agents/agents-registry.ts.
  • references/divergence-report-schema.md — the format spec for per-skill <name>-divergence.md files that document frontmatter fields dropped or translated per target.
  • references/fallback-modes.md — the exact detection commands and exact warning messages for the A → B → C transitions, mirrored from this file so the two stay in sync.

04 同仓库更多 Skills

anton-abyzov
anton-abyzov/vskill

x-reply-drafts

Find live X threads where a product genuinely fits, and draft truthful, humanized replies for the owner to review and post by hand. Human pace only: max 5 replies a day, never two within 20 minutes, no automated posting. Use when the user asks to 'find threads to reply to', 'draft X replies', 'reply-guy session', 'join trending conversations', 'engage on Twitter about <product>', or wants a daily batch of reply drafts. Not for scheduling original posts (social-media-posting) or bulk publishing (blotato).

★ 47
anton-abyzov
anton-abyzov/vskill

hello-world

A tiny test skill used by the 0853 verify-runtime harness. Says hello. No external calls. Use when the user asks for a sanity-check skill in a verify-harness fixture.

★ 47
anton-abyzov
anton-abyzov/vskill

existing-skill

Lint markdown files for style and grammar issues.

开发工程师文档处理
★ 47
anton-abyzov
anton-abyzov/vskill

remotion-best-practices

Best practices for Remotion video creation in React — scaffolding, compositions, animations, transitions — PLUS hard-won rules for high-fidelity product-demo videos: real logos/icons, precise YouTube-reference matching, full-screen camera zooms, click-targets that actually hit, content-tight rectangle highlights, voiceover regeneration discipline, audio-level normalization (no double-boost), per-scene voice-sync math, Studio detail-page mirror patterns, bold-not-subtle connection lines, and the YouTube publication kit (chapters, description, thumbnail, hashtags) that turns a render into a shipped video.

产品经理前端开发图像与多媒体
★ 47
anton-abyzov
anton-abyzov/vskill

rea

Find out exactly how a feature is implemented in a shipped tool or app you don't have the source for (desktop apps, Electron apps like Claude desktop, native CLIs like Codex, websites, APKs, .NET assemblies) using REA - Reverse Engineer Anything (github.com/morluto/rea). Sets REA up when it is missing (CLI, MCP registration, Hopper or Ghidra), routes the target to the right REA tool, keeps evidence out of the context window, and turns findings into a clean-room spec before any rebuild. Use when the user says 'use REA', 'reverse engineer', 'how does <app> do X', 'how is this feature implemented in <tool>', 'clone this feature', 'decompile', 'look inside the app', or asks how a closed-source competitor works. Skip it when the source is available - read the repo instead.

Skill与智能体开发
★ 47
anton-abyzov
anton-abyzov/vskill

motion-graphics-promo

After Effects-style motion graphics for short product promos (15-45 s, vertical or landscape), built as code with HyperFrames + GSAP. Covers a story-first brief, motion grammar (energetic entry, one transition per task, spring settle, 2-3 s of stable proof), a 32-second promo timeline, device-frame and kinetic-type recipes, vertical-first composition, evidence rules (real UI only, no fake clicks), music licensing and encoded-frame verification. Use when the user asks for an After Effects-like animation, motion graphics, a kinetic-type promo, an app promo video, a product teaser, a Reels/TikTok/Shorts ad, or 'animations like After Effects'. Also covers short explainers, tutorials and 15-second vertical ads: a design kit (footage beds, condensed caps in a marker box, white device frames, falling stickers, voice-over with music ducking) and HyperFrames render traps that silently break output. Pairs with hyperframes-best-practices (screencast pipeline) and remotion-best-practices.

开发工程师设计师视觉设计图像与多媒体
★ 47