plugins/build/skills/build-help-skill/SKILL.md
Use when the user wants to "scaffold a help skill", "add a /<plugin>:help command", or "build a plugin index skill", or wants to give a plugin an orientation surface that lists its skills and common workflows. Produces a SKILL.md at plugins/<plugin>/skills/help/SKILL.md.
npx skillsauth add bcbeidel/wos build-help-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Scaffold a help skill for a Claude Code plugin — the SKILL.md a
caller loads when they ask "what's in this plugin / which skill
fits". A help-skill is a specialized SKILL.md whose subject is the
plugin itself: a one-sentence synopsis, a disk-derived index of
sibling skills, two or three curated workflow chains, and pointers
to AGENTS.md / RESOLVER.md / the plugin README.
Authoring principles — what makes a help-skill load-bearing, the canonical anatomy, the patterns that keep the index honest — live in help-skill-best-practices.md. This skill is the workflow; the principles doc is the rubric.
/<plugin>:help command"build, wiki, work) and
wants its help-skill scaffoldedplugins/<plugin>/skills/<name>/SKILL.md shape)plugins/<plugin>/skills/help/plugins/<plugin>/ with at
least 2 sibling skills (a help-skill for a plugin with one skill
is more cost than benefit)/build:check-help-skill available for the post-write audit stepVerify the primitive. Confirm the user wants a help-skill —
a plugin-orientation SKILL.md — and not a generic skill (route to
/build:build-skill), a top-level README (route to
/build:build-readme), or a global router skill (out of scope —
per-plugin scoping is intentional). Full decision matrix in
primitive-routing.md.
Resolve the plugin. Read $ARGUMENTS. If it names a plugin
(e.g., build, wiki, work, consider), confirm
plugins/<plugin>/.claude-plugin/plugin.json exists. If empty or
ambiguous, list the plugins in plugins/ and ask which one. If
the named plugin does not exist, stop — do not scaffold a help-
skill for a plugin that hasn't been created.
Scope-gate.
plugins/<plugin>/skills/help/
already exists, stop. Offer to revise the existing help-skill
instead — run /build:check-help-skill and iterate from
findings.help
anywhere in the plugin, stop — the slug is fixed and a
collision is a configuration error to resolve before
scaffolding.Elicit the synopsis and workflows. Ask, one question at a time, three things:
work: "Plan, execute, and verify multi-step
coding work.").skill-a → skill-b → skill-c, plus one sentence on when
the chain applies. Pre-fill suggestions by reading sibling
skill descriptions and proposing chains the user can accept,
edit, or reject. Do not auto-generate without confirmation —
workflow curation is judgment.AGENTS.md, RESOLVER.md, plugin README.md) and
ask if any plugin-specific docs (e.g., a design doc, a
research note) belong there too.Read sibling skills via the renderer script. Run
scripts/render_skill_table.py <plugin> --format json to parse
each sibling SKILL.md's frontmatter (name + description) into a
structured list. The script excludes help and _shared/
automatically. The LLM reasons over the script's JSON output, not
raw SKILL.md files — this is the deterministic substrate that
the rest of the workflow composes against. The same script
renders the markdown table in Step 7.
Pick the trigger discipline. Draft the description with the
help-skill's distinguishing trigger shape: "Use when the caller
asks 'what's in the <plugin> plugin', 'list <plugin> skills',
'how do I use <plugin>', or wants to see which <plugin> skill
fits a task." Then check it against every sibling skill's
description for trigger collision. If any sibling fires on
"what's in this plugin" or "list skills" — flag the collision,
show both descriptions, and ask the user which to narrow. The
router cannot disambiguate two skills that match the same trigger.
Draft the SKILL.md. Follow the anatomy in
help-skill-best-practices.md.
Required frontmatter: name: help (literal — the slug is fixed),
description (from Step 6), version: 1.0.0, owner: <plugin>-plugin, license: MIT, references: pointing at
../../_shared/references/help-skill-best-practices.md. Required
body: H1 # /<plugin>:help, the one-sentence synopsis from Step 4,
a ## Skills in this plugin section wrapping a managed-region
marker pair (<!-- generated: do not edit by hand; regenerate from disk --> and <!-- /generated -->) around the table
produced by scripts/render_skill_table.py <plugin> (re-run for
the markdown form), a ## Common workflows section with the
curated chains from Step 4, and a ## Where to look next
section with the pointers from Step 4. Body length under 150
lines.
Present for approval. Before writing, narrate the design
choices in 3–6 bullets. Cover the synopsis (and why it differs
from AGENTS.md's framing of the plugin), the trigger-collision
check from Step 6 (which sibling descriptions were closest, and
how the help-skill description was differentiated), the curated
workflows (which chains were chosen and why), and any pointers
beyond the three defaults. The reader should be able to disagree
with any choice. Iterate on feedback. Hold the write until the
user approves.
Write. Create
plugins/<plugin>/skills/help/ if it doesn't exist. Write
SKILL.md to that directory. Then invoke
/build:check-help-skill on the newly written file — surface any
findings and offer the repair loop before moving on.
Update plugin manifest. If
plugins/<plugin>/.claude-plugin/plugin.json enumerates skills
(some plugins do, some don't), add help to the list. If the
plugin's AGENTS.md table or top-level AGENTS.md "Plugin
Structure" table lists skills per plugin, add help there too.
Surface the diff before writing — table edits are easy to get
wrong.
/build:check-help-skill and the repair loop, not to scaffold
over it.check-help-skill findings block the write. After Step 9, if
/build:check-help-skill surfaces FAIL findings, apply the
How to apply guidance from the dimension's
references/check-<dim>.md and re-audit until only WARNs remain
(or until the user explicitly accepts a FAIL)./build:build-help-skill work
Step 1 — Primitive confirmed (plugin orientation surface).
Step 2 — Plugin resolves to plugins/work/. Confirmed via
plugin.json.
Step 3 — No existing plugins/work/skills/help/. Plugin has 5
sibling skills (above the 2-skill threshold). No help slug
collision.
Step 4 — Elicits:
scope-work → plan-work →
start-work → verify-work. Use when starting from
requirements; produces a design doc, plan, and validated code.scope-work → start-work → verify-work.
Use when the bug is well-understood and a full plan is
overkill; skips planning to keep the loop tight.plugins/work/CONTRIBUTING.md.Step 5 — Reads 5 sibling SKILL.mds; extracts name + description for each.
Step 6 — Trigger description drafted: "Use when the caller asks 'what's in the work plugin', 'list work skills', 'how do I use work', or wants to see which work skill fits a task." Cross-checked against siblings — no collision (siblings fire on "scope/plan/start/ verify work", not on meta-questions about the plugin).
Step 7 — Drafts SKILL.md with the managed-region table built from sibling frontmatter.
Step 8 — Narrates the synopsis choice (concise, action-oriented; not a duplicate of AGENTS.md's framing), the trigger differentiation, the workflow curation. User approves.
Step 9 — Writes plugins/work/skills/help/SKILL.md. Invokes
/build:check-help-skill plugins/work/skills/help/SKILL.md — 0
findings.
Step 10 — Updates plugins/work/.claude-plugin/plugin.json and the
top-level AGENTS.md "Plugin Structure" table to list help.
Surfaces both diffs before writing.
</example>
help — directory help/, frontmatter name: help, slash command /<plugin>:help. The slug is not negotiable;
Claude Code's invocation depends on it.check-help-skill audits for hand
edits./build:check-help-skill — this skill must
produce help-skills that pass the deterministic checks.help. index, overview, menu, or
<plugin>-help all break /<plugin>:help as a discoverable
invocation. Principle: Use name: help literally — the slug is
fixed.AGENTS.md. Principle: Pointers, not duplications.AGENTS.md. Principle: Workflow chains scoped to
this plugin only.name == "help"./build:check-help-skill via the Skill tool after the write.
MUST NOT read its SKILL.md and inline a partial audit. The
shortcut bypasses the chained skill's rubric and leaves no audit
trail that the proper skill was used.Chainable to: /build:check-help-skill <path> (audits the
just-built help-skill against the rubric — coverage, freshness,
fidelity, trigger quality, dual audience, scope discipline);
/build:check-skill <path> (catches generic SKILL.md structural
issues this skill's draft step missed).
tools
Use when the user wants to "audit a help skill", "review my plugin index", or "verify my help-skill is up to date". Audits a plugins/<plugin>/skills/help/SKILL.md against the help-skill rubric — coverage, freshness, frontmatter fidelity, plus five judgment dimensions and a trigger-collision check.
tools
Audits pair-level integrity of a primitive-pair (the artifact `/build:build-skill-pair` produces) by walking the four required artifact slots — principles doc, `build-<primitive>/SKILL.md`, `check-<primitive>/SKILL.md`, and the `primitive-routing.md` registration — and reports cross-artifact issues a per-SKILL.md checker cannot see: missing principles doc, divergent principles paths between halves, absent routing registration, missing build→check handoff. Per-half structural compliance with the unified pattern (`check-skill-pattern.md`) is delegated to `plugins/build/_shared/scripts/check_skill_pattern.py`. Use when the user wants to "audit a skill pair", "review a primitive pair", or "validate the skill pair for X". Not for auditing a single SKILL.md — route to `/build:check-skill`. Not for re-distilling a stale principles doc — route to `/build:build-skill-pair`.
testing
Audit a root-level resolver — verify AGENTS.md pointer, managed-region integrity, filing-table coverage against disk, context-table actionability, and trigger-eval pass rate. Use when the user wants to "audit a resolver", "validate routing table", or "find dark capabilities".
tools
Audits a project's top-level README.md against 28 deterministic checks across seven scripts (secret scanning, H1 uniqueness & position, heading-hierarchy skips, section presence & order, TOC threshold, line count & length, code-block language tags, shell-prompt prefixes, smart quotes in code, relative-link resolution, fragment-anchor resolution, image alt text, badge/image byte size, destructive-command flagging, pipe-to-shell patterns, TLS-disable instructions, non-reserved hostnames/IPs, emoji in headings, LICENSE file presence & link, CONTRIBUTING link, TODO/FIXME/XXX markers, README gitignore status) plus seven judgment dimensions and a Tier-3 cross-README collision check. Use when the user wants to "audit a README", "lint a README", or "run linters on README.md". Not for sub-package READMEs (different rubric) or docs-site pages (different toolchain).