Skip to content

Add deployment guidance and missing frontmatter fields to skill-creator#985

Open
flound1129 wants to merge 2 commits intoanthropics:mainfrom
flound1129:fix/skill-creator-deployment-guidance
Open

Add deployment guidance and missing frontmatter fields to skill-creator#985
flound1129 wants to merge 2 commits intoanthropics:mainfrom
flound1129:fix/skill-creator-deployment-guidance

Conversation

@flound1129
Copy link
Copy Markdown

@flound1129 flound1129 commented Mar 25, 2026

Problem

The skill-creator guides users through creating and iterating on skills but never tells them where to place the finished skill so Claude Code actually discovers it. This is the most common reason skills fail to trigger after creation — they end up in the working directory instead of a discovery path.

The skill-creator also only teaches 3 frontmatter fields (name, description, compatibility) while Claude Code supports 11. Users who need disable-model-invocation, context: fork, or allowed-tools have no guidance within the skill-creation workflow.

What this PR changes

Adds a "Deploying the finished skill" section to the skill-creator SKILL.md covering:

  • The four skill placement levels (enterprise, personal, project, plugin) with priority ordering
  • Project root clarification (.claude/skills/ lives at project root)
  • Monorepo nested discovery behavior
  • How the name field relates to directory name (optional, defaults to dir)
  • A deployment checklist
  • All supported frontmatter fields with behavioral notes (context:fork turns skill body into subagent prompt, effort:max is Opus-only, hooks links to docs)
  • String substitutions ($ARGUMENTS, ${CLAUDE_SKILL_DIR}, etc.)
  • Dynamic context injection (!command syntax)
  • Updated core loop summary to include the deployment step

All content sourced from the official Claude Code docs at code.claude.com/docs/en/skills and platform.claude.com/docs/en/agents-and-tools/agent-skills/.

Methodology

We downloaded and cross-referenced the official Anthropic skill docs against the skill-creator SKILL.md and identified every gap where the skill-creator is silent on information users need to successfully deploy a skill.

Two rounds of code review caught issues in the initial draft:

  • A fabricated "name must match directory" constraint (softened to "recommended, not enforced" per the official docs)
  • Missing enterprise tier in the placement table
  • Missing effort:max Opus-only qualifier
  • Missing context:fork behavioral explanation
  • Missing hooks docs pointer
  • Missing monorepo nested discovery

Adversarial pressure testing

We ran 3 pressure scenarios, each tested once without any skill guidance (baseline) and once with the updated guidance that documents the same placement/frontmatter information this PR adds:

Metric Baseline (no skill) With skill guidance
Correct discovery path 1/3 3/3
Correct directory structure 1/3 3/3
Correct frontmatter fields (no hallucinations) 0/3 3/3
Correct priority ordering 0/1 1/1
Hallucinated fields/variables 4 0
Used deprecated commands system 1 0

Test 1 (manual-invoke skill): Baseline hallucinated trigger: manual. With guidance, agent used correct disable-model-invocation: true.

Test 2 (skill in ~/Downloads not triggering): Baseline diagnosed using the deprecated .claude/commands/ system and flat files. With guidance, agent correctly identified ~/.claude/skills/api-linter/SKILL.md.

Test 3 (monorepo + subagent + dynamic injection): Baseline hallucinated agent: true, tools:, and $GIT_BRANCH fields, and got priority ordering backwards. With guidance, agent used correct context: fork + agent: Explore and correct priority (enterprise > personal > project).

Environment

Harness Version Model Model ID
Claude Code 2.1.71 Claude Opus 4.6 claude-opus-4-6

The skill-creator guides users through creating and iterating on skills
but never tells them where to place the finished skill so Claude Code
actually discovers it. This is the most common reason skills fail to
trigger after creation — they end up in the working directory instead
of a discovery path.

Add a "Deploying the finished skill" section covering:
- The four skill placement levels (enterprise, personal, project, plugin)
  with priority ordering
- Project root clarification (.claude/skills/ lives at project root)
- Monorepo nested discovery behavior
- How the name field relates to directory name (optional, defaults to dir)
- A deployment checklist
- All supported frontmatter fields with behavioral notes (context:fork
  turns skill body into subagent prompt, effort:max is Opus-only, hooks
  link to docs)
- String substitutions ($ARGUMENTS, ${CLAUDE_SKILL_DIR}, etc.)
- Dynamic context injection (!`command` syntax)
- Updated core loop summary to include the deployment step

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The !`command` examples inside a code block were being interpreted as
actual dynamic injection directives when Claude Code loaded the SKILL.md.
Replace the code block with prose that describes the syntax without
containing executable examples.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant