Automated summary
An engineering-standards library for writing and reviewing SKILL.md files: frontmatter, description style, allowed-tools, CLI exit codes, and semver versioning.
Strengths
- Draws a clear boundary with the official skill-creator through an ownership table and a hand-off index
- Covers details that are often gotten wrong: metadata nesting, description length and tone (100-300 chars), allowed-tools
- Gives concrete CLI standards (exit codes, output protocol, config, permissions) plus a semver breaking-change workflow
- Cites external sources it builds on (anthropics/skills repo, Click, Typer, uv)
Limitations
- Not standalone: it assumes you have already followed the official skill-creator workflow
- Does not cover the creation process, evaluations, or Claude.ai/Cowork adaptation, which stay with skill-creator
- The provided content is partly truncated (end of §0.5), so some referenced companion files are not detailed here
Load it alongside skill-creator whenever you author, audit, or fix a SKILL's frontmatter, description, or engineering standards.
Don't use it as the sole guide for building a skill from scratch, or as a replacement for skill-creator's workflow and evaluation tooling.
Security analysis
SafeThe skill is purely informational and uses only the Read tool; it contains no instructions for destructive actions, exfiltration, or execution of code, and therefore poses no security risk.
No concerns found
How this analysis is madeExamples
Review the frontmatter of my SKILL.md. The description is only 60 characters, metadata fields are flat instead of nested, and allowed-tools is malformed. Bring it in line with the SKILL engineering standards.My skill wraps a Python CLI. Add the exit code conventions, output protocol, config handling, and permission notes from the CLI standards, and tell me which parts belong to skill-creator instead.I need to rename a section and change the description of my published skill. Walk me through the semver versioning and breaking-change workflow, including what to bump in metadata.version.name: skill-dev-standard description: | Use when building, reviewing, or fixing any SKILL. Covers: frontmatter spec, description style (100-300 chars, pushy), metadata nesting, allowed-tools, CLI standards, versioning. Trigger for: SKILL.md authoring, undertriggering, structure questions. Do NOT use for: skill-creator workflow. license: MIT allowed-tools: [Read] metadata: version: "2.2.0" type: docs author: Shrek valid_until: evergreen source_urls: - "https://github.com/anthropics/skills" - "https://click.palletsprojects.com/" - "https://typer.tiangolo.com/" - "https://docs.astral.sh/uv/" tags: - skill-development - standards - engineering - frontmatter - cli - docs
SKILL Engineering Standards
This SKILL is your project's quality standards library for building AI Agent Skills. When creating or modifying any SKILL, load this alongside skill-creator — this SKILL provides engineering standards, skill-creator provides the development workflow.
What This SKILL Does
This SKILL does not replace the official Anthropic skill-creator. It is its engineering complement. The two are complementary and should be loaded together:
| Concern | Owner | | -------------------------------------------------------------------------------------------------- | ---------------------------- | | Development workflow (requirements capture, interviews, testing, evaluation, iteration, packaging) | skill-creator (official) | | Design philosophy (Progressive Disclosure, writing style) | skill-creator (official) | | Evaluation toolchain (eval-viewer, run_loop, benchmark) | skill-creator (official) | | Claude.ai / Cowork environment adaptation | skill-creator (official) | | CLI SKILL engineering standards (exit codes, output protocol, config, permissions) | this SKILL | | Output Schema (inter-SKILL contracts, reducing compose hallucinations) | this SKILL | | Docs SKILL freshness and quality (valid_until, golden-set) | this SKILL | | Frontmatter compliance details (metadata nesting, allowed-tools) | this SKILL | | Semver versioning and Breaking Change workflow | this SKILL | | Quality checklist (CLI / docs / general — three columns) | this SKILL |
Do NOT use this SKILL alone — it assumes you have already followed skill-creator's workflow through "requirements capture → draft → testing → iteration". This SKILL supplements engineering standards at each stage. Full hand-off index: see §0.5 below.
§0.5 Hand-off Index with skill-creator
Forward hand-off (skill-creator → this SKILL)
| skill-creator stage | Hand off to this SKILL |
| ------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
| After Capture Intent | Read §1 to choose SKILL type (CLI / docs / hybrid) |
| Write the SKILL.md | Read references/skillmd-authoring.md §2.0–2.2 (progressive disclosure + description writing) |
| Configure frontmatter | Read references/permissions.md §9 (permissions + allowed-tools) |
| Choose CLI implementation language | Read references/cli-templates.md §4.0 (language-agnostic conventions), §4.6 (multi-language comparison) |
| Need output templates / config boilerplates / payload samples | Read references/project-structure.md §3.5 (assets/ directory spec) |
| Test Cases stage | CLI SKILL: read references/testing.md §10.1 (CliRunner); Docs SKILL: read §10.2 (golden-set) |
| Iterate stage (bug fixing) | Read references/cli-runtime.md §7 (error handling), §8 (Output Schema) |
| Before packaging | Read references/quality-and-release.md §12 quality checklist |
| Version upgrade | Read references/quality-and-release.md §11 (Semver + breaking change workflow) |
| MCP integration (optional) | Read references/quality-and-release.md §11.4 (MCP annotation alignment) |
Reverse hand-off (this SKILL → skill-creator)
| Trigger | Hand off to skill-creator | | ------------------------------------------------- | ------------------------------------------------------------------ | | Need requirements interview / scope clarification | "Capture Intent + Interview" section | | Need to run with-skill / baseline comparison | "Running and evaluating test cases" | | Need to measure description trigger rate | "Description optimization" (run_loop.py) | | Need to package into .skill file | "Package and Present" (package_skill.py) | | Need Claude.ai / Cowork environment adaptation | "Claude.ai-specific instructions" / "Cowork-Specific Instructions" |
§1 SKILL Type Decision
Classification
| Type | Purpose | Use When | Tech Stack | | ---------------- | ---------------------------------------- | ---------------------------------------------------- | --------------- | | CLI SKILL | Wraps CLI tools or APIs | System operations, API integrations, data processing | Click / Typer | | Docs SKILL | Wraps knowledge bases and reference docs | Domain knowledge, API docs, best practices | Markdown + code | | Hybrid SKILL | CLI + Docs combined | Scenarios requiring both operations and knowledge | CLI + Docs |
Decision Matrix
Choose CLI SKILL when:
- Executing system commands or operations
- Calling REST APIs for data interaction
- Wrapping existing command-line tools
- Needing CRUD operations
- Data format conversion or processing
Choose Docs SKILL when:
- Encapsulating domain knowledge and best practices
- API reference documentation lookups
- Coding conventions and pattern libraries
- Architecture design guides
- Troubleshooting guides
Choose Hybrid SKILL when:
- Need both knowledge queries and operational execution
- Docs contain executable code snippets
- Dynamic queries and real-time operations need to be combined
See official examples: Anthropic skill-examples repository
Usage Steps
When creating a new SKILL, follow this order:
- Read §1 (this file) — decide type (CLI / docs / hybrid)
- Read
references/skillmd-authoring.md§2.0 — understand Progressive Disclosure principles - Read
references/skillmd-authoring.md§2.2 — write description (trigger-first + pushy style + negative examples) - Read
references/project-structure.md§3 — set up directory structure - Read
references/cli-runtime.md§8,references/permissions.md§9 — declare output_schema and permissions - Read
references/permissions.md§9.4 — declare allowed-tools (top-level frontmatter field) - Read
references/testing.md§10 — write minimal test suite - Use
references/quality-and-release.md§12 checklist to validate, then hand to skill-creator to package
When modifying an existing SKILL:
- Directly audit using
references/quality-and-release.md§12 checklist - Fill in missing
metadata.output_schemaormetadata.permissions - Confirm
allowed-toolsis declared at the top level - Optimize description trigger keywords against
references/skillmd-authoring.md§2.2
Quick Reference
description writing (highest priority)
The description is the core basis for Agent routing — how it is written directly determines recall rate. It must:
- Start with verb + scenario enumeration, not a noun
- Include 1–2 negative exclusions to help Agent avoid false triggers
- 100–300 words recommended (hard limit: 1024 chars); keep key triggers in the first 30 words
- No
<or>: will be rejected by quick_validate.py (use{}for placeholders) - Pushy style: Claude defaults to undertriggering (not using SKILLs when it should). Actively list multiple user phrasings, related concepts, and implicit scenarios — not just a description of functionality.
Good example (CLI type):
Use this skill when generating Conventional Commits-compliant commit messages from git diff, staged changes, or change descriptions.
Covers: completing commit type prefixes (feat/fix/refactor/docs), inferring scope from multi-file diffs, generating multi-line commit bodies, appending BREAKING CHANGE annotations.
Also triggers when users say "how should I write this commit", "help me write a proper commit message", "format this as conventional commits".
Do NOT use for: actually running git commit, modifying git config, merging PRs.
Bad example:
Git commit tool that wraps commit message generation.
Full examples and rules → references/skillmd-authoring.md §2.2
Frontmatter compliant fields
Packaging validation only allows top-level fields: name, description, license, allowed-tools, metadata, compatibility
All custom fields (output_schema, permissions, valid_until, etc.) go inside metadata;
allowed-tools is a top-level compliant field — do NOT put it inside metadata:
---
name: my-skill
description: "Use this skill when... Do NOT use for..."
license: MIT
allowed-tools: [Read, Bash]
metadata:
version: "1.0.0"
type: cli # cli | docs | hybrid
valid_until: "2026-12-31" # or "evergreen"
source_urls:
- "https://docs.example.com"
output_schema:
format: json # json | text | mixed
permissions:
read_paths: ["~/.my-skill/"]
write_paths: ["~/.my-skill/"]
network_endpoints: ["https://api.example.com"]
requires_elevation: false
accesses_env_vars: ["MY_SKILL_TOKEN"]
---
Full template → references/skillmd-authoring.md §2.3
Directory naming conventions
| SKILL type | External reference dir | Knowledge base dir |
| ------------ | ---------------------- | ------------------ |
| CLI SKILL | docs/ | — |
| Docs SKILL | — | references/ |
| Hybrid SKILL | docs/ | references/ |
CLI SKILLs do NOT use
references/— avoids confusion with the docs SKILL knowledge base directory.
Full structure diagrams → references/project-structure.md §3.1–§3.4
Error output convention
All CLI SKILLs use JSON format for error output. Normal results → stdout, errors → stderr:
# Normal output
click.echo(json.dumps({"status": "ok", "data": result}))
# Error output
click.echo(json.dumps({"status": "error", "code": 1, "message": "..."}), err=True)
sys.exit(1)
Exit code convention: 0=success, 1=config error, 2=network error, 3=permission error, 4=param error, 99=unexpected error.
Full spec → references/cli-runtime.md §7
Reference Files Index
Read the relevant file on demand — no need to load everything:
| File | Coverage | When to read |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| references/skillmd-authoring.md | §2.0 Progressive Disclosure; §2.1 required fields; §2.2 description writing; §2.3 full SKILL.md template; §2.4 docs SKILL specifics | When writing or reviewing any SKILL.md |
| references/project-structure.md | §3.1–3.4 four structure diagrams (flat/modular/docs/hybrid); §3.5 assets/ spec (directory boundaries, placeholders, security) | When designing directory structure or needing output templates |
| references/cli-templates.md | §4.0 language-agnostic conventions; §4.1 uv dependency management; §4.3 Click full template; §4.4 Typer template; §4.5 Click quick ref; §4.6 multi-language comparison | When implementing a CLI SKILL |
| references/docs-development.md | §5.1 content organization; §5.2 quality standards; §5.3 freshness mechanism (valid_until); §5.4 doc templates | When implementing a Docs SKILL |
| references/cli-runtime.md | §6 config management (priority + class template); §7 error handling (exit codes + JSON format); §8 Output Schema (TypedDict + JSON Schema) | When implementing config loading, error handling, or declaring output structure |
| references/permissions.md | §9.1–9.3 permissions fields; §9.4 allowed-tools (top-level field) | When declaring permission boundaries |
| references/testing.md | §10.1 CliRunner unit test template; §10.2 golden-set Q&A pairs; §10.3 test directory; §10.4 minimum test requirements | When writing tests |
| references/quality-and-release.md | §11 Semver + Breaking Change + MCP annotation; §12 quality checklist (CLI/docs/general); §13 minimal templates; Appendix A references | Before packaging or on version upgrades |
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/skill-engineering-standards-mrwakaar/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/skill-engineering-standards-mrwakaar' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/skill-engineering-standards-mrwakaar/download' --output '.skill-downloads/skill-engineering-standards-mrwakaar/SKILL.md.part' && mv '.skill-downloads/skill-engineering-standards-mrwakaar/SKILL.md.part' '.skill-downloads/skill-engineering-standards-mrwakaar/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Original excerpt: Quick Reference
description writing (highest priority)
The description is the core basis for Agent routing — how it is written directly determines recall rate. It must:
- Start with verb + scenario enumeration, not a noun
- Include 1–2 negative exclusions to help Agent avoid false triggers
- 100–300 words recommended (hard limit: 1024 chars); keep key triggers in the first 30 words
- No
<or>: will be rejected by quick_validate.py (use{}for placeholders) - Pushy style: Claude defaults to undertriggering (not using SKILLs when it should). Actively list multiple user phrasings, related concepts, and implicit scenarios — not just a description of functionality.
Good example (CLI type):
Use this skill when generating Conventional Commits-compliant commit messages from git diff, staged changes, or change descriptions.
Covers: completing commit type prefixes (feat/fix/refactor/docs), inferring scope from multi-file diffs, generating multi-line commit bodies, appending BREAKING CHANGE annotations.
Also triggers when users say "how should I write this commit", "help me write a proper commit message", "format this as conventional commits".
Do NOT use for: actually running git commit, modifying git config, merging PRs.
Bad example:
Git commit tool that wraps commit message generation.
Full examples and rules → references/skillmd-authoring.md §2.2
Frontmatter compliant fields
Packaging validation only allows top-level fields: name, description, license, allowed-tools, metadata, compatibility
All custom fields (output_schema, permissions, valid_until, etc.) go inside metadata;
allowed-tools is a top-level compliant field — do NOT put it inside metadata:
---
name: my-skill
description: "Use this skill when... Do NOT use for..."
license: MIT
allowed-tools: [Read, Bash]
metadata:
version: "1.0.0"
type: cli # cli | docs | hybrid
valid_until: "2026-12-31" # or "evergreen"
source_urls:
- "https://docs.example.com"
output_schema:
format: json # json | text | mixed
permissions:
read_paths: ["~/.my-skill/"]
write_paths: ["~/.my-skill/"]
network_endpoints: ["https://api.example.com"]
requires_elevation: false
accesses_env_vars: ["MY_SKILL_TOKEN"]
---
Full template → references/skillmd-authoring.md §2.3
Directory naming conventions
| SKILL type | External reference dir | Knowledge base dir |
|---|---|---|
| CLI SKILL | docs/ | — |
| Docs SKILL | — | references/ |
| Hybrid SKILL | docs/ | references/ |
CLI SKILLs do NOT use
references/— avoids confusion with the docs SKILL knowledge base directory.
Full structure diagrams → references/project-structure.md §3.1–§3.4
Error output convention
All CLI SKILLs use JSON format for error output. Normal results → stdout, errors → stderr:
# Normal output
click.echo(json.dumps({"status": "ok", "data": result}))
# Error output
click.echo(json.dumps({"status": "error", "code": 1, "message": "..."}), err=True)
sys.exit(1)
Exit code convention: 0=success, 1=config error, 2=network error, 3=permission error, 4=param error, 99=unexpected error.
Full spec → references/cli-runtime.md §7
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/skill-engineering-standards-mrwakaar/SKILL.md' && test -s '.skill-downloads/skill-engineering-standards-mrwakaar/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/skill-dev-standard' && cp -R '.skill-downloads/skill-engineering-standards-mrwakaar' '.claude/skills/skill-dev-standard'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/skill-engineering-standards-mrwakaar'openskills read 'skill-engineering-standards-mrwakaar'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/skill-engineering-standards-mrwakaar/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
Supabase Docs Authoring
Documentation
Write, edit, and review Supabase documentation content including guides, tutorials, reference docs, and partials. Follow style guides and MDX/TOML validation rules.
Create Architecture Decision Record
Documentation
Create a new Architecture Decision Record with sequential numbering, register it in the AgentDB graph, and link related ADRs.
Plan update with deep research
Documentation
Updates a plan document by launching parallel subagents to analyze a topic across all compiler passes, then consolidates findings into the plan doc.