This skill should be used when the user asks to 'author a Claude Code skill', 'write a SKILL.md', 'design skill frontmatter', 'choose allowed-tools or context fork for a skill', 'convert a command into a skill', or 'make a skill pass validation'. Teaching companion for SKILL.md authoring; defers heavy repair/hardening work to toolkit-hardener and packaging to plugin-builder.
Teach and apply the official Claude Code rules for authoring a SKILL.md. Keep the
active file short, make activation explicit via the description, and push detail to
referenced files. This skill explains how to author correctly; for bulk
repair/hardening use toolkit-hardener, for plugin packaging use plugin-builder.
The toolkit requires name and description. Its shared validator accepts the current
Claude Code fields when_to_use, argument-hint, arguments, invocation controls,
allowed-tools, disallowed-tools, model, effort, context, agent, hooks,
paths, and shell, plus toolkit metadata fields. Unknown legacy keys such as author
or owner belong under metadata:. [DOC][CÓDIGO]
name — kebab-case, ≤64 chars, must match the skill directory name. [DOC]description — states WHAT it does AND WHEN to load it (triggers live here, not
in the body); ≤1024 chars; no </>. [DOC]allowed-tools — pre-approves (auto-approves) listed tools; it does not shrink the
total tool pool. To limit or block tools use disallowed-tools or permissions.deny. [DOC]argument-hint — documents expected invocation arguments. [DOC]user-invocable: false — background knowledge that should not surface as a command. [DOC]disable-model-invocation: true — user-only invocation for controlled workflows. [DOC]context: fork + optional agent — execute in a forked subagent context. [DOC]hooks, paths, shell, model, and effort — scoped runtime controls; use only
when the workflow needs them. [DOC]~/.claude/skills/), project (.claude/skills/),
plugin skill (/plugin:skill), or plugin-root skill. The command name comes from
the directory (or plugin namespace), not a display name. [DOC]references/, assets/, examples/. [DOC]allowed-tools; context: fork
only when the skill should run as an isolated subagent task. When converting a command
into a skill, carry its allowed-tools/argument-hint over to the frontmatter and add
context: fork only if the command was a long isolated job, not a quick inline reply. [DOC]semantic_status: not_executed, an allowlisted
static_contract.oracles set, and cases with typed activation, expected behavior/checks,
and resolved static_oracle_ids. Include positive and adversarial/routing coverage. [CONFIG]python3 "${CLAUDE_PLUGIN_ROOT}/scripts/lib/validate_frontmatter.py" <SKILL.md>
followed by python3 "${CLAUDE_PLUGIN_ROOT}/scripts/validate_skill_contracts.py".
${CLAUDE_PLUGIN_ROOT}/scripts/scaffold_skill.py emits a schema-v2 candidate that remains red until
independent review metadata is recorded. [CÓDIGO]metadata.coverage_gap recorded when official docs/validators can't be checked.toolkit-hardener (repair/harden) or plugin-builder (packaging) here.toolkit-hardener — audit/repair/harden lifecycle over the packet and its gates.plugin-builder — packaging skills into a shareable plugin.claude-command-authoring — slash-command vs skill decision and authoring.custom-tooling-extension — extension decision tree and tool whitelisting.references/source-map.md — official skill-authoring provenance and refresh boundary. [CONFIG]description 3ª persona/trigger fuerte, cuerpo lean, progressive disclosure a references/. [EXPLICIT]plugin-builder. [EXPLICIT]Capas del packet, cargables bajo demanda (disciplina ICM: una capa por vez, nunca todas juntas): references/ guías de profundidad (cargar UNA por etapa).
e8f986b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.