write-frontmatter-description
The model MUST write frontmatter descriptions following these rules.
Formatting Rules
- Single-line only — Never use YAML multiline indicators (
>-,|-,>,|) - No colons — Avoid colons (
:) as they trigger YAML quoting. Rephrase or substitute. - Front-load critical info — First 1024 characters are most important
- Claude Code may truncate to 1024 chars in some contexts
- No hard limit, but keep key information in first 1024 chars
- Convey purpose, triggers, and value early
Authoring Rules
These rules govern what the description must communicate — not just how it is formatted.
SOURCE: Anthropic skill-authoring best practices (docs.anthropic.com, accessed 2026-03-23)
1. Third-Person Phrasing
Write in third person. The description is injected into the system prompt as instructions to Claude about when to activate the skill — inconsistent point of view causes discovery problems.
# Correct
description: Generates commit messages by analyzing staged git diffs. Use when the user asks for help writing commit messages.
# Wrong
description: I can help you write commit messages by looking at your staged changes.
# Wrong
description: You can use this to generate commit messages.
2. Directive Trigger Language
Make descriptions slightly directive — models tend to under-trigger skills. Use action words and list specific activation conditions.
Preferred trigger openers: "Use when", "Activates on", "Triggers on", "Apply when"
List specific file types, commands, or task patterns that activate the skill. Vague descriptions produce missed triggers.
3. Description Is the Primary Router
The description field is the main mechanism that determines whether a skill loads from 100+ available skills. It matters more than the skill body for routing. Front-load trigger conditions — the most specific activation signals must appear early.
4. Concrete Examples
# Bad — vague, no triggers
description: A skill for working with documents
# Bad — too broad, no activation context
description: Helps with Python stuff
# Good — specific activity with named triggers
description: Use when building CLI applications with Typer — creating commands, defining arguments and options, composing subcommands, testing with CliRunner, or using advanced features like callbacks and autocompletion.
# Good — front-loads trigger conditions with action word
description: Validate and fix YAML frontmatter in SKILL.md and agent files. Use when creating new skills or agents, when description exceeds 1024 characters, when description uses forbidden YAML multiline indicators, or when optimizing descriptions for AI tool selection.
Schema Field Awareness
Skills and agents have different valid frontmatter fields. Putting a field in the wrong component type causes silent failures.
Skill-only fields (not valid in agent files): user-invocable, disable-model-invocation, argument-hint
Agent-only fields (not valid in skill files): tools, disallowedTools, memory, permissionMode, maxTurns, hooks, color
Shared fields: name, description, model, skills, mcpServers
For the full schema, activate the /plugin-creator:claude-skills-overview-2026 skill (skills) or check Anthropic agent docs (agents).
Validation
After writing, validate with skilllint:
uvx skilllint@latest check [file]
More from jamie-bitflight/claude_skills
perl-lint
This skill should be used when the user asks to lint Perl code, run perlcritic, check Perl style, format Perl code, run perltidy, or mentions Perl Critic policies, code formatting, or style checking.
24brainstorming-skill
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or when users request help with ideation, marketing, and strategic planning. Explores user intent, requirements, and design before implementation using 30+ research-validated prompt patterns.
11design-anti-patterns
Enforce anti-AI UI design rules based on the Uncodixfy methodology. Use when generating HTML, CSS, React, Vue, Svelte, or any frontend UI code. Prevents "Codex UI" — the generic AI aesthetic of soft gradients, floating panels, oversized rounded corners, glassmorphism, hero sections in dashboards, and decorative copy. Applies constraints from Linear/Raycast/Stripe/GitHub design philosophy: functional, honest, human-designed interfaces. Triggers on: UI generation, dashboard building, frontend component creation, CSS styling, landing page design, or any task producing visual interface code.
7python3-review
Comprehensive Python code review checking patterns, types, security, and performance. Use when reviewing Python code for quality issues, when auditing code before merge, or when assessing technical debt in a Python codebase.
7hooks-guide
Cross-platform hooks reference for AI coding assistants — Claude Code, GitHub Copilot, Cursor, Windsurf, Amp. Covers hook authoring in Node.js CJS and Python, per-platform event schemas, inline-agent hooks and MCP in agent frontmatter, common JSON I/O, exit codes, best practices, and a fetch script to refresh docs from official sources. Use when writing, reviewing, or debugging hooks for any AI assistant.
7agent-creator
Create high-quality Claude Code agents from scratch or by adapting existing agents as templates. Use when the user wants to create a new agent, modify agent configurations, build specialized subagents, or design agent architectures. Guides through requirements gathering, template selection, and agent file generation following Anthropic best practices (v2.1.63+).
6