All skills
microsoft avatar

/skill-authoring

@70c03ac official

Guidelines for writing Agent Skills that comply with the agentskills.io specification. WHEN: "create a skill", "new skill", "write a skill", "skill template", "skill structure", "review skill", "skill PR", "skill compliance", "SKILL.md format", "skill frontmatter", "skill best practices".

Use this Skill: https://skilld.dev/gh/microsoft/github-copilot-for-azure/skill-authoring

This session only. Nothing lands on disk.

referencesguidelinesfrontmatter.md

≈515 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Frontmatter Requirements

Required Fields

---
name: my-skill-name
description: A clear description of what this skill does and when to use it.
---

name rules:

  • 1-64 characters
  • Lowercase letters, numbers, and hyphens only (a-z, 0-9, -)
  • Must not start or end with -
  • Must not contain consecutive hyphens (--)
  • Must match the parent directory name

description rules:

  • 1-1024 characters
  • Should describe BOTH what the skill does AND when to use it
  • Include keywords that help agents identify relevant tasks

Optional Fields

---
name: my-skill-name
description: Description here.
license: Apache-2.0
compatibility: Requires az CLI and docker
metadata:
  author: your-org
  version: "1.0"
---

Activation Triggers

Use WHEN: with distinctive quoted trigger phrases (preferred for cross-model compatibility):

# Good - WHEN: with quoted phrases (preferred)
description: "Perform Azure compliance assessments using azqr. WHEN: \"check compliance\", \"assess Azure resources\", \"run azqr\", \"review security posture\"."
# Accepted - USE FOR: still works
description: "Perform Azure compliance assessments using azqr. USE FOR: \"check compliance\", \"assess Azure resources\", \"run azqr\"."
# Bad - too vague
description: "Helps with Azure stuff."

⚠️ Do NOT add "DO NOT USE FOR:" clauses unless the skill has trigger overlap with a broader skill (e.g., azure-prepare). For most skills, DO NOT USE FOR: causes keyword contamination on Claude Sonnet and similar models — use positive routing with distinctive WHEN: phrases instead.

Exception — disambiguation-critical skills: When a specialized skill shares trigger phrases with a broader skill, DO NOT USE FOR: is REQUIRED to prevent the broader skill from capturing the specialized skill's prompts. Removing it causes routing regressions. Always run integration tests before removing a DO NOT USE FOR: clause.

Source: SKILL.md on GitHub

No alerts15d5 checks · Risk SAFE
  • Gen Agent Trust Hub15d

    This skill is a comprehensive documentation and validation guide for authoring agent skills. It follows security best practices and contains no identified threats.

  • Socket15d

    No alerts

  • Snyk15d

    Risk: LOW · No issues

  • Runlayer7mo

    14 files scanned · No issues

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 70c03ac. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 6 months ago
metadata
{
  "author": "Microsoft",
  "version": "1.0.1"
}
  • Documentation
  • skill-authoring
  • specification
  • agentskills
  • guidelines
  • frontmatter
  • validation

README badge

README badge for microsoft/github-copilot-for-azure/skill-authoring

Provides guidelines for authoring Agent Skills that comply with the agentskills.io specification, including frontmatter structure, token budgets, progressive disclosure patterns, and validation procedures. Use this when creating a new skill, reviewing a skill PR for compliance, or checking if a skill follows best practices.

Generated from the current SKILL.md.

What are the token limits for a skill?
SKILL.md must stay under 5000 tokens (soft limit ~500), and each reference file under 1000 tokens. References load only when explicitly linked, not on activation.
What should the description field contain?
The description must explain WHAT the skill does and WHEN to use it, be ≤60 words, and include a WHEN: clause with quoted trigger phrases.
How do references get loaded?
References are just-in-time loaded only when explicitly linked via [text](references/file.md) in the SKILL.md. Link to files, not folders, and each file loads in full.
What structure should a skill have?
A skill requires SKILL.md with frontmatter (name, description) and instructions. References and scripts directories are optional for detailed docs and executable code.
How do I validate my skill before submission?
Run npm run references to check for broken links and npm run tokens -- check to verify token limits. Use the checklist in references/CHECKLIST.md before submitting.

Generated from the current SKILL.md. These answers refresh after source changes.