About skill-best-practices
skill-best-practices is an agent skill for creating skills that follow the agentskills.io specification and progressive disclosure principles. It covers metadata validation, directory structure, authoring, helper scripts, and final checks.
Key features
- 01Validate skill names and descriptions
- 02Set up the prescribed skill directory structure
- 03Draft instructions with progressive disclosure
- 04Identify and document bundled helper scripts
- 05Check paths, references, and final compliance
Use cases
- 01Create a skill from an initial specification
- 02Validate skill metadata before authoring
- 03Organize procedures into instructions and references
- 04Review a skill for path and helper-script clarity
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ pedronauck/ skills --skill skill-best-practicesAfter installing, type/skill-best-practicesin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
assets/SKILL.template.mdreferences/checklist.mdscripts/validate-metadata.pyDetails
From the project READMESkill Authoring Procedure
Follow these steps to generate a skill that adheres to the agentskills.io specification and progressive disclosure principles.
Bundled Path Rule
Resolve bundled paths relative to the directory that contains this SKILL.md. When invoking a helper from another working directory, expand <skill-best-practices-dir> to that directory first so the command is unambiguous.
Step 1: Initialize and Validate Metadata
- Define a unique
name: 1-64 characters, lowercase, numbers, and single hyphens only. - Draft a
description: Max 1,024 characters, written in the third person, including negative triggers. - Execute Validation Script (read-only helper): Run the validation script to ensure compliance before proceeding:
python3 <skill-best-practices-dir>/scripts/validate-metadata.py --name "[name]" --description "[description]" - If the script returns an error, self-correct the metadata based on the
stderroutput and re-run until successful.
Step 2: Structure the Directory
- Create the root directory using the validated
name. - Initialize the following subdirectories:
scripts/: For tiny CLI tools and deterministic logic.references/: For flat (one-level deep) context like schemas or API docs.assets/: For output templates, JSON schemas, or static files.
- Ensure no human-centric files (README.md, INSTALLATION.md) are created.
Step 3: Draft Core Logic (SKILL.md)
- Use the template in
assets/SKILL.template.mdas the starting point. - Write all instructions in the third-person imperative (e.g., "Extract the text," "Run the build").
- Enforce Progressive Disclosure:
- Keep the main logic under 500 lines.
- If a procedure requires a large schema or complex rule set, move it to
references/. - Command the agent to read the specific file only when needed: "Read references/api-spec.md to identify the correct endpoint."
Step 4: Identify and Bundle Scripts
- Identify "fragile" tasks (regex, complex parsing, or repetitive boilerplate).
- Outline a single-purpose script for the
scripts/directory. - Ensure the script uses standard output (stdout/stderr) to communicate success or failure to the agent.
- In
SKILL.md, reference bundled helpers by a path that is unambiguous from the agent's working directory (the same path the agent will type to invoke them), rather than barescripts/helper.pysnippets that silently depend on CWD. - Label each helper as read-only, bootstrap, or mutating so downstream agents know whether the helper only inspects state or changes it.
Step 5: Final Logic Validation
- Review the
SKILL.mdfor "hallucination gaps" (points where the agent is forced to guess). - Verify all file paths are relative and use forward slashes (
/). - Verify every referenced helper path is unambiguous from the agent's working directory and that the helper's role (
read-only,bootstrap, ormutating) is stated. - Read
references/checklist.mdand cross-reference every checklist item against the final output.
Error Handling
- Metadata Failure: If
scripts/validate-metadata.pyfails, identify the specific error (e.g., "STYLE ERROR") and rewrite the field to remove first/second person pronouns. - Context Bloat: If the draft exceeds 500 lines, extract the largest procedural block and move it to a file in
references/.