Skip to content

Skill Frontmatter Schema

YAML frontmatter at the top of SKILL.md controls how Claude discovers, invokes, and constrains a skill.

FieldRequiredTypeNotes
nameyesstringKebab-case, ≤64 chars. Must match the parent directory name.
descriptionyesstringWhat the skill does and when it applies. Claude uses this for auto-matching against conversation context — be specific about trigger conditions.
allowed-toolsnocomma-separated listRestricts which tools Claude can use within the skill. Example: Read, Write, Bash. Omit to inherit the session’s full tool grant.
disable-model-invocationnobooleantrue = skill is explicit-invocation only (won’t auto-match). Set this for skills meant to be run via a slash command with arguments.
argument-hintnostringArgument template displayed in the slash-command picker. Example: --flag <value>.
---
name: rfp-synthesize
description: Ingest a multi-document RFP package and produce a structured internal synthesis covering scope, requirements counts, timeline, evaluation weights, contract watch-outs, and pre-qual questions. Use when the user has received an RFP folder and needs to understand it before shaping a response.
allowed-tools: Read, Glob, Grep, Bash, Agent
---
---
name: review
description: Review code for quality, security, and best practices
disable-model-invocation: true
allowed-tools: Read, Grep, Glob, Bash
---
---
name: generate
description: Generate PPTX slides — create new decks from branded flavors (acn-standard, acn-anthropic) or clone-and-fill from existing slides
allowed-tools: Bash, Read, Write, Glob, Grep
disable-model-invocation: true
argument-hint: --new --flavor <name> --content <path> | <deck.pptx> --slide <n> --content <path> [--after <n>] [--output <path>]
---

The description is how Claude decides whether to apply the skill. A good description:

  • States what the skill produces, not just what it does internally
  • Names the trigger conditions (“Use when…”)
  • Mentions the input shape if non-obvious
  • Stays under ~3 sentences — longer descriptions hurt selection precision

Generic descriptions like “Helps with code” cause Claude to either over- or under-trigger. Specific descriptions like “Reviews staged or unstaged Git changes against a quality, security, testing, and performance checklist” produce reliable invocation.