{"id":"a2ec3edf-0934-4b93-b90f-e4f04b44d44e","shortId":"WNjKAG","kind":"skill","title":"agent-skills-authoring","tagline":">-","description":"# Agent Skills Authoring Guide\n\nThis is your authoritative reference for producing high-quality SKILL.md files. When a user\nasks you to create, edit, or improve a skill, follow these instructions to produce the best\npossible result — one that any consuming agent can discover, activate, and apply effectively.\n\n---\n\n## 1. Core Principles\n\nThese principles come from Anthropic's official best practices. Apply them to every skill.\n\n**Claude is already very smart.** Only add context Claude doesn't already have. Challenge\neach piece of content: \"Does Claude really need this explanation?\" \"Can I assume Claude\nknows this?\" \"Does this paragraph justify its token cost?\" Concise skills perform better\nbecause the context window is shared with conversation history, system prompts, and other\nskills' metadata.\n\n**Explain WHY, not just WHAT.** Anthropic's guidance: \"Explain to the model why things are\nimportant in lieu of heavy-handed musty MUSTs.\" When agents understand reasoning, they\ngeneralize correctly across novel situations. Rigid imperative-only rules cause brittle,\nover-literal behavior.\n\n**Match specificity to fragility.** Use high freedom (general text guidance) when multiple\napproaches are valid. Use medium freedom (pseudocode/parameterized scripts) when a preferred\npattern exists. Use low freedom (exact scripts, no modifications) when operations are fragile\nand consistency is critical. Think of it as: narrow bridge (one safe path, give exact steps)\nvs. open field (many valid routes, give direction and trust the agent).\n\n**Use consistent terminology.** Pick one term and use it throughout. Don't mix \"API endpoint\"\n/ \"URL\" / \"path\" or \"extract\" / \"pull\" / \"get\" / \"retrieve\" in the same skill.\n\n---\n\n## 2. Directory Structure\n\n```\nskill-name/\n├── SKILL.md          # REQUIRED — frontmatter + instructions\n├── scripts/          # Optional — executable code (runs without loading into context)\n│   └── validate.py\n├── references/       # Optional — docs loaded on demand\n│   ├── REFERENCE.md\n│   └── domain.md\n└── assets/           # Optional — templates, data files, schemas\n    └── template.json\n```\n\n- Directory name must match the `name` field in frontmatter exactly\n- `scripts/` — self-contained executables. Handle errors explicitly (\"solve, don't punt\").\n  Scripts execute via bash and only their output enters context, not their code\n- `references/` — additional docs loaded on demand. Keep files focused. Add a table of\n  contents at the top of any reference file over 100 lines\n- `assets/` — static resources: templates, configuration files, schemas, lookup tables\n- Use forward slashes in all paths, even on Windows: `scripts/validate.py` not `scripts\\validate.py`\n\n**Domain organization:** For skills supporting multiple variants, split into references:\n\n```\ncloud-deploy/\n├── SKILL.md           # Overview + variant selection\n└── references/\n    ├── aws.md\n    ├── gcp.md\n    └── azure.md\n```\n\nThe agent loads only the relevant reference, saving context.\n\n---\n\n## 3. YAML Frontmatter — Complete Field Reference\n\n### Base Spec Fields (agentskills.io)\n\nThe open standard defines exactly **six fields**:\n\n#### `name` (REQUIRED)\n\nUnique identifier. 1–64 chars. Lowercase alphanumeric + hyphens only.\nNo leading/trailing/consecutive hyphens. No XML tags. Cannot contain reserved words\n\"anthropic\" or \"claude\". Must match the parent directory name.\n\n**Prefer gerund naming** (verb + -ing): `processing-pdfs`, `analyzing-spreadsheets`,\n`testing-code`. Also acceptable: noun phrases (`pdf-processing`) or action-oriented\n(`process-pdfs`). Avoid vague names (`helper`, `utils`, `tools`).\n\n```yaml\nname: processing-pdfs\n```\n\n#### `description` (REQUIRED)\n\nNatural-language summary. 1–1,024 chars. Plain text only. No XML tags.\nThis is the primary triggering mechanism — agents use it to decide which skills to load.\n\n**Always write in third person.** \"Processes Excel files...\" not \"I can help you...\" or\n\"You can use this...\" (inconsistent POV causes discovery problems).\n\n**Make descriptions slightly \"pushy.\"** Claude tends to undertrigger skills. Include both\nwhat the skill does AND specific trigger contexts. List keywords users would say. Add\n\"even if they don't explicitly ask for X\" where appropriate.\n\n```yaml\ndescription: >-\n  Extracts text and tables from PDF files, fills forms, and merges documents.\n  Use when working with PDF files or when the user mentions PDFs, forms, or\n  document extraction, even if they don't explicitly ask for \"PDF processing.\"\n```\n\n#### `license` (OPTIONAL)\n\nSPDX identifier or bundled file reference. Omit if unknown.\n\n#### `compatibility` (OPTIONAL)\n\nEnvironment requirements. 1–500 chars. Plain text. Only include if the skill has\ngenuine requirements — most skills don't need this field.\n\n#### `metadata` (OPTIONAL)\n\nString key-value map. Use reasonably unique key names to avoid collisions.\n\n```yaml\nmetadata:\n  author: \"your-org\"\n  version: \"1.0\"\n  category: \"document-processing\"\n```\n\n#### `allowed-tools` (OPTIONAL, EXPERIMENTAL)\n\nSpace-delimited list. Use scoped format where the platform supports it.\n\n```yaml\nallowed-tools: Bash(git:*) Bash(jq:*) Read Write\n```\n\n### Claude Code Extended Fields\n\nClaude Code extends the open standard with additional fields. These are platform-specific\nand not part of the base agentskills.io spec:\n\n| Field                      | Purpose                                                      |\n| -------------------------- | ------------------------------------------------------------ |\n| `argument-hint`            | Autocomplete hint: `[issue-number]` or `[filename] [format]` |\n| `disable-model-invocation` | `true` to prevent auto-loading (manual `/name` only)         |\n| `user-invocable`           | `false` to hide from / menu (background knowledge skills)    |\n| `model`                    | Model override when this skill is active                     |\n| `context`                  | `fork` to run in a forked subagent context                   |\n| `agent`                    | Subagent type to use when `context: fork` is set             |\n| `hooks`                    | Hooks scoped to this skill's lifecycle                       |\n\nIn Claude Code, `name` falls back to directory name if omitted, and `description` falls\nback to the first paragraph of the markdown body.\n\n---\n\n## 4. Body Content\n\nEverything after the closing `---` is free-form Markdown. Keep the body under **500 lines**.\nIf approaching this limit, move detail into `references/` and add clear pointers.\n\n### Recommended Structure\n\n```markdown\n# [Skill Name]\n\n[1-3 sentence overview]\n\n## When to use this skill\n\n[Trigger conditions — what user requests or contexts activate this]\n\n## How to [primary action]\n\n[Step-by-step instructions]\n\n## Examples\n\n[Input/output pairs]\n\n## Common edge cases\n\n[Boundary conditions and handling]\n\n## Guidelines\n\n[Key principles with reasoning]\n```\n\n### Progressive Disclosure\n\n| Level | Content                          | Budget                    | When Loaded                |\n| ----- | -------------------------------- | ------------------------- | -------------------------- |\n| 1     | Frontmatter (name + description) | ~100 tokens               | Always — at agent startup  |\n| 2     | SKILL.md body                    | < 500 lines / < 5K tokens | When skill activates       |\n| 3     | scripts/, references/, assets/   | Unlimited                 | On demand during execution |\n\nLevel 3 scripts execute without loading into context — only their output enters the\ncontext window. Reference files are read on demand. This means you can bundle\ncomprehensive resources with no context penalty until they're accessed.\n\n### File References\n\nUse standard Markdown links with relative paths:\n\n```markdown\nSee [the reference guide](references/REFERENCE.md) for detailed API documentation.\nRun the extraction script: `python scripts/extract.py`\nFor TypeScript specifics, see [TypeScript patterns](references/typescript.md).\n```\n\nKeep references **one level deep** from SKILL.md. Avoid nested reference chains —\nClaude may partially read files referenced from other referenced files.\n\n### Script Guidance\n\nWhen referencing scripts, be explicit about intent:\n\n- **Execute** (most common): \"Run `scripts/analyze.py` to extract fields\"\n- **Read as reference** (for complex logic): \"See `scripts/analyze.py` for the algorithm\"\n\nScripts should handle errors explicitly. Don't let scripts fail and expect Claude to\nfigure it out — provide fallbacks, helpful error messages, and document dependencies.\n\nFor MCP tools, use fully-qualified references: `ServerName:tool_name` (e.g.,\n`BigQuery:bigquery_schema`, `GitHub:create_issue`).\n\n---\n\n## 5. Creating a Skill from a User Request\n\n### Step 1: Capture Intent\n\nUnderstand what the user needs before writing anything:\n\n- What should this skill enable an agent to do?\n- When should it trigger? (phrases, tasks, contexts)\n- What's the expected output format?\n- Are there edge cases or constraints?\n- Does this need testing? (Verifiable outputs benefit from evals; subjective outputs\n  like writing style often don't)\n\nIf the conversation already contains a workflow (\"turn this into a skill\"), extract\nanswers from context first — tools used, step sequence, corrections the user made.\n\n### Step 2: Choose the Name\n\nPrefer gerund form: `{verb-ing}-{noun}` → `processing-pdfs`, `testing-code`.\nValidate: lowercase, hyphens only, 1-64 chars, no leading/trailing/consecutive hyphens,\nno XML tags, no \"anthropic\" or \"claude\" in the name.\n\n### Step 3: Write the Description\n\nThird person always. Start with action verb. Include keyword triggers. State \"Use when...\"\nMake it slightly pushy to prevent undertriggering. Aim for 200-400 characters.\n\n### Step 4: Set Optional Fields\n\n- **license:** User-specified, or `MIT`/`Apache-2.0`, or omit\n- **compatibility:** Only if genuine environment requirements exist\n- **metadata:** Add `author`, `version`, `category` at minimum\n- **allowed-tools:** Use scoped format: `Bash(git:*) Read`\n- **Claude Code fields:** Set `disable-model-invocation`, `argument-hint`, etc. if relevant\n\n### Step 5: Write the Body\n\nStart with a draft. Then review with fresh eyes and improve.\n\n- 1-3 sentence overview\n- \"When to use this skill\" with trigger conditions\n- Step-by-step instructions explaining WHY, not just WHAT\n- Input/output examples (crucial for quality)\n- Edge cases\n- For complex workflows: provide a copyable checklist Claude can check off as it progresses\n\nProvide a **default approach with an escape hatch** rather than listing many options.\n\"Use pdfplumber for text extraction. For scanned PDFs requiring OCR, use pdf2image instead.\"\n\n### Step 6: Iterate (Eval-First)\n\nAnthropic's recommended pattern uses two Claude instances:\n\n1. **Establish baseline** — run Claude on representative tasks WITHOUT the skill\n2. **Write minimal draft** — only enough to address observed gaps\n3. **Test with Claude B** — a fresh instance with the skill loaded on 2-3 realistic prompts\n4. **Observe Claude B's behavior** — note where it struggles or misses instructions\n5. **Return to Claude A** to refine — share what you observed, ask for improvements\n6. **Repeat** until satisfied, then expand the test set\n\nThis is evaluation-driven development: create evals BEFORE writing extensive documentation.\nTest without the skill first, then with the skill, and measure the improvement.\n\n### Step 7: Validate\n\n- Directory name matches `name` field exactly\n- Description: 1-1,024 chars, third person, action verb, keyword triggers, \"Use when...\"\n- No XML tags in name or description\n- All Markdown links resolve to files that exist\n- SKILL.md body under 500 lines\n- Reference files over 100 lines have a table of contents\n- Run `skills-ref validate ./skill-directory` if available\n- Run `skills-ref to-prompt ./skill-directory` to preview the XML agents see\n\n---\n\n## 6. Quality Patterns\n\n### Phased Workflows\n\n```markdown\n## Phase 1: Analyze\n\n[Understand the domain, gather context]\n\n## Phase 2: Implement\n\n[Execute the primary task]\n\n## Phase 3: Validate\n\n[Check quality, run validation]\n```\n\n### Feedback Loops\n\nThe run-validate-fix pattern dramatically improves output quality:\n\n```markdown\n1. Make changes\n2. Run: `python scripts/validate.py`\n3. If validation fails: fix and return to step 1\n4. Only proceed when validation passes\n```\n\n### Copyable Checklists\n\nFor complex multi-step tasks:\n\n```markdown\nCopy this checklist and track progress:\n\n- [ ] Step 1: Analyze input\n- [ ] Step 2: Create plan\n- [ ] Step 3: Validate plan\n- [ ] Step 4: Execute\n- [ ] Step 5: Verify output\n```\n\n### Verifiable Intermediate Outputs\n\nFor high-stakes operations: plan → validate plan → execute → verify.\nThe plan file is machine-verifiable before changes are applied.\n\n### Decision Tables\n\n| Scenario      | Approach          | Why                    |\n| ------------- | ----------------- | ---------------------- |\n| < 100 items   | Inline array      | No pagination overhead |\n| 100-10K items | Cursor pagination | Stable ordering        |\n| > 10K items   | Keyset pagination | O(1) page fetch        |\n\n### Before/After Examples\n\n```markdown\n**Before:** `app.get('/getUser', ...)`\n**After:** `app.get('/users/:id', ...)`\n```\n\n---\n\n## 7. Anti-Patterns\n\n| Anti-Pattern                    | Why It Fails                        | Fix                                         |\n| ------------------------------- | ----------------------------------- | ------------------------------------------- |\n| Vague description               | Agents can't match to requests      | Keyword triggers + \"Use when...\" + be pushy |\n| First/second person description | Discovery problems                  | Third person: \"Processes...\" not \"I can...\" |\n| Over-explaining basics          | Wastes tokens; Claude already knows | Only add what Claude doesn't have           |\n| Too many options                | Confusing; agent may pick wrong one | Default approach + escape hatch             |\n| Rigid MUST-only rules           | Brittle; agents over-literalize     | Explain reasoning so agent generalizes      |\n| Body over 500 lines             | Context waste, agent may truncate   | Move detail to `references/`                |\n| Code in description             | Violates spec, breaks parsers       | Code in body only                           |\n| Nested file references          | Claude partially reads deeper files | One level deep from SKILL.md                |\n| Name with \"anthropic\"/\"claude\"  | Reserved words; validation fails    | Choose different name                       |\n| Backslash paths                 | Break on Unix systems               | Forward slashes always                      |\n| Time-sensitive info             | Becomes wrong; no auto-update       | Use \"old patterns\" section                  |\n| No examples                     | Agent guesses output format         | 2-3 input/output pairs minimum              |\n\n---\n\n## 8. Security\n\n- Never include secrets, API keys, or credentials in any skill file\n- Never instruct agents to disable security controls\n- Scripts should handle errors explicitly with fallbacks\n- Include input validation guidance for skills handling user data\n- Include sanitization guidance for skills generating browser-rendered output\n- Flag destructive tools in `allowed-tools` so users can review\n\n---\n\n## 9. Testing\n\n1. **Syntax:** `skills-ref validate ./skill-name`\n2. **Prompt preview:** `skills-ref to-prompt ./skill-name` — generates XML agents see\n3. **Activation test:** Prompt that SHOULD trigger → confirm it fires\n4. **Negative test:** Prompt that should NOT trigger → confirm it stays dormant\n5. **Quality test:** Agent executes skill → review output quality\n6. **Multi-model test:** Test with Haiku, Sonnet, AND Opus — what works for Opus may need more detail for Haiku\n\nFor verifiable outputs, create structured evaluations comparing with-skill vs without-skill.\n\n---\n\n## 10. Platform Usage\n\n- **Claude Code:** `/plugin marketplace add anthropics/skills` → `/plugin install <name>@anthropic-agent-skills`\n  - Skills at: `~/.claude/skills/` (personal) or `.claude/skills/` (project)\n- **Claude.ai:** Pre-built skills on paid plans. Custom skills uploaded via settings\n- **Claude API:** Container parameter with `skills-2025-10-02` beta flag\n\n---\n\n## 11. Resources\n\n| Resource                             | URL                                                                             |\n| ------------------------------------ | ------------------------------------------------------------------------------- |\n| Agent Skills Specification           | https://agentskills.io/specification                                            |\n| Anthropic Skills Repo (79.5K+ stars) | https://github.com/anthropics/skills                                            |\n| **Anthropic Best Practices**         | https://docs.anthropic.com/en/docs/agents-and-tools/agent-skills/best-practices |\n| Claude Code Skills Docs              | https://docs.anthropic.com/en/docs/claude-code/skills                           |\n| skills-ref CLI                       | https://agentskills.io/tools                                                    |\n\n---\n\n## 12. Pre-Delivery Checklist\n\n### Frontmatter\n\n- [ ] `name`: 1-64 chars, lowercase alphanum + hyphens, gerund preferred, matches directory\n- [ ] `name`: no XML tags, no \"anthropic\"/\"claude\"\n- [ ] `description`: 1-1,024 chars, third person, action verb, trigger keywords, \"Use when...\"\n- [ ] `description`: slightly pushy to prevent undertriggering\n- [ ] Optional fields set where relevant — no invented fields\n\n### Body\n\n- [ ] 1-3 sentence overview\n- [ ] Trigger section explaining when this skill activates\n- [ ] Instructions explain WHY, not just WHAT\n- [ ] 2-3 input/output examples minimum\n- [ ] Edge cases covered\n- [ ] Under 500 lines, pure Markdown\n- [ ] Consistent terminology throughout\n\n### Files\n\n- [ ] All Markdown links resolve to real files, one level deep\n- [ ] Reference files >100 lines have table of contents\n- [ ] Scripts handle errors explicitly with helpful messages\n- [ ] No secrets in any file\n- [ ] Forward slashes in all paths\n\n### Quality\n\n- [ ] Description alone determines relevance\n- [ ] Body alone enables execution without reading references\n- [ ] Tested with representative prompts (activation + negative + quality)\n- [ ] A real user would find the output useful, not just spec-compliant","tags":["agent","skills","authoring","zebbern","agent-development-kit","agent-framework","agent-skill","agent-skills","agentic-ai","agentic-workflow","agents","claude-code-skills"],"capabilities":["skill","source-zebbern","skill-agent-skills-authoring","topic-agent-development-kit","topic-agent-framework","topic-agent-skill","topic-agent-skills","topic-agentic-ai","topic-agentic-workflow","topic-agents","topic-claude-code-skills","topic-claude-skills","topic-claude-skills-creator","topic-claude-skills-hub","topic-copilot-coding-agent"],"categories":["agent-skills-authoring"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/zebbern/agent-skills-authoring","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add zebbern/agent-skills-authoring","source_repo":"https://github.com/zebbern/agent-skills-authoring","install_from":"skills.sh"}},"qualityScore":"0.460","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 20 github stars · SKILL.md body (18,374 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T19:06:12.783Z","embedding":null,"createdAt":"2026-04-19T00:39:05.123Z","updatedAt":"2026-04-22T19:06:12.783Z","lastSeenAt":"2026-04-22T19:06:12.783Z","tsv":"'-02':2099 '-1':1525,2167 '-10':1723,2098 '-2.0':1276 '-2025':2097 '-3':869,1333,1450,1906,2194,2211 '-400':1262 '-64':1219,2149 '/.claude/skills':2073 '/anthropics/skills':2120 '/en/docs/agents-and-tools/agent-skills/best-practices':2126 '/en/docs/claude-code/skills':2133 '/getuser':1743 '/name':762 '/plugin':2061,2065 '/skill-directory':1571,1581 '/skill-name':1975,1985 '/specification':2111 '/tools':2140 '/users':1746 '024':501,1526,2168 '1':53,428,499,500,638,868,917,1115,1218,1332,1415,1524,1595,1629,1645,1668,1735,1969,2148,2166,2193 '1.0':680 '10':2056 '100':353,921,1559,1715,1722,2239 '10k':1730 '11':2102 '12':2141 '2':261,927,1197,1426,1449,1603,1632,1672,1905,1976,2210 '200':1261 '3':407,937,947,1235,1436,1610,1636,1676,1990 '4':833,1265,1453,1646,1680,2000 '5':1106,1317,1466,1683,2012 '500':639,849,930,1554,1830,2219 '5k':932 '6':1402,1480,1588,2021 '64':429 '7':1515,1748 '79.5':2115 '8':1910 '9':1967 'accept':469 'access':981 'across':157 'action':477,889,1244,1530,2172 'action-ori':476 'activ':49,782,884,936,1991,2203,2278 'add':76,340,571,860,1287,1794,2063 'addit':332,723 'address':1433 'agent':2,5,46,151,234,399,515,792,925,1132,1586,1761,1804,1819,1826,1834,1901,1925,1988,2015,2069,2106 'agent-skills-author':1 'agentskills.io':416,736,2110,2139 'agentskills.io/specification':2109 'agentskills.io/tools':2138 'aim':1259 'algorithm':1062 'allow':686,704,1294,1961 'allowed-tool':685,703,1293,1960 'alon':2264,2268 'alphanum':2152 'alphanumer':432 'alreadi':72,81,1174,1791 'also':468 'alway':524,923,1241,1884 'analyz':463,1596,1669 'analyzing-spreadsheet':462 'answer':1184 'anthrop':60,131,445,1228,1407,1867,2068,2112,2121,2163 'anthropic-agent-skil':2067 'anthropics/skills':2064 'anti':1750,1753 'anti-pattern':1749,1752 'anyth':1125 'apach':1275 'api':248,999,1915,2092 'app.get':1742,1745 'appli':51,65,1709 'approach':183,852,1378,1713,1810 'appropri':582 'argument':741,1311 'argument-hint':740,1310 'array':1718 'ask':24,578,619,1477 'asset':289,355,940 'assum':96 'author':4,7,675,1288 'authorit':12 'auto':759,1893 'auto-load':758 'auto-upd':1892 'autocomplet':743 'avail':1573 'avoid':482,671,1021 'aws.md':395 'azure.md':397 'b':1440,1456 'back':815,824 'background':772 'backslash':1876 'base':413,735 'baselin':1417 'bash':321,706,708,1299 'basic':1787 'becom':1889 'before/after':1738 'behavior':170,1458 'benefit':1160 'best':39,63,2122 'beta':2100 'better':110 'bigqueri':1100,1101 'bodi':832,834,847,929,1320,1552,1828,1850,2192,2267 'boundari':901 'break':1846,1878 'bridg':216 'brittl':166,1818 'browser':1953 'browser-rend':1952 'budget':914 'built':2081 'bundl':628,971 'cannot':441 'captur':1116 'case':900,1151,1360,2216 'categori':681,1290 'caus':165,544 'chain':1024 'challeng':83 'chang':1631,1707 'char':430,502,640,1220,1527,2150,2169 'charact':1263 'check':1370,1612 'checklist':1367,1653,1663,2145 'choos':1198,1873 'claud':70,78,89,97,447,551,712,716,811,1025,1075,1230,1302,1368,1413,1419,1439,1455,1469,1790,1796,1855,1868,2059,2091,2127,2164 'claude.ai':2078 'claude/skills':2076 'clear':861 'cli':2137 'close':839 'cloud':388 'cloud-deploy':387 'code':274,330,467,713,717,812,1213,1303,1841,1848,2060,2128 'collis':672 'come':58 'common':898,1046 'compar':2048 'compat':634,1279 'complet':410 'complex':1056,1362,1655 'compliant':2293 'comprehens':972 'concis':107 'condit':878,902,1343 'configur':359 'confirm':1997,2008 'confus':1803 'consist':208,236,2223 'constraint':1153 'consum':45 'contain':309,442,1175,2093 'content':87,344,835,913,1565,2244 'context':77,113,279,327,406,565,783,791,798,883,953,959,976,1141,1186,1601,1832 'control':1929 'convers':118,1173 'copi':1661 'copyabl':1366,1652 'core':54 'correct':156,1192 'cost':106 'cover':2217 'creat':27,1104,1107,1495,1673,2045 'credenti':1918 'critic':210 'crucial':1356 'cursor':1726 'custom':2086 'data':292,1945 'decid':519 'decis':1710 'deep':1018,1862,2236 'deeper':1858 'default':1377,1809 'defin':420 'delimit':692 'deliveri':2144 'demand':286,336,943,966 'depend':1087 'deploy':389 'descript':493,548,584,822,920,1238,1523,1542,1760,1775,1843,2165,2178,2263 'destruct':1957 'detail':856,998,1838,2039 'determin':2265 'develop':1494 'differ':1874 'direct':230 'directori':262,296,452,817,1517,2157 'disabl':752,1307,1927 'disable-model-invoc':751,1306 'disclosur':911 'discov':48 'discoveri':545,1776 'doc':283,333,2130 'docs.anthropic.com':2125,2132 'docs.anthropic.com/en/docs/agents-and-tools/agent-skills/best-practices':2124 'docs.anthropic.com/en/docs/claude-code/skills':2131 'document':596,611,683,1000,1086,1500 'document-process':682 'doesn':79,1797 'domain':377,1599 'domain.md':288 'dormant':2011 'draft':1324,1429 'dramat':1624 'driven':1493 'e.g':1099 'edg':899,1150,1359,2215 'edit':28 'effect':52 'enabl':1130,2269 'endpoint':249 'enough':1431 'enter':326,957 'environ':636,1283 'error':312,1066,1083,1933,2247 'escap':1381,1811 'establish':1416 'etc':1313 'eval':1162,1405,1496 'eval-first':1404 'evalu':1492,2047 'evaluation-driven':1491 'even':370,572,613 'everi':68 'everyth':836 'exact':199,221,305,421,1522 'exampl':895,1355,1739,1900,2213 'excel':530 'execut':273,310,319,945,949,1044,1605,1681,1697,2016,2270 'exist':195,1285,1550 'expand':1485 'expect':1074,1145 'experiment':689 'explain':126,134,1349,1786,1823,2199,2205 'explan':93 'explicit':313,577,618,1041,1067,1934,2248 'extend':714,718 'extens':1499 'extract':253,585,612,1003,1050,1183,1392 'eye':1329 'fail':1072,1639,1757,1872 'fall':814,823 'fallback':1081,1936 'fals':767 'feedback':1616 'fetch':1737 'field':225,302,411,415,423,657,715,724,738,1051,1268,1304,1521,2185,2191 'figur':1077 'file':20,293,338,351,360,531,591,602,629,962,982,1029,1034,1548,1557,1701,1853,1859,1922,2226,2233,2238,2256 'filenam':749 'fill':592 'find':2285 'fire':1999 'first':827,1187,1406,1505 'first/second':1773 'fix':1622,1640,1758 'flag':1956,2101 'focus':339 'follow':33 'fork':784,789,799 'form':593,609,843,1203 'format':696,750,1147,1298,1904 'forward':365,1882,2257 'fragil':174,206 'free':842 'free-form':841 'freedom':177,188,198 'fresh':1328,1442 'frontmatt':269,304,409,918,2146 'fulli':1093 'fully-qualifi':1092 'gap':1435 'gather':1600 'gcp.md':396 'general':155,178,1827 'generat':1951,1986 'genuin':649,1282 'gerund':455,1202,2154 'get':255 'git':707,1300 'github':1103 'github.com':2119 'github.com/anthropics/skills':2118 'give':220,229 'guess':1902 'guid':8,995 'guidanc':133,180,1036,1940,1948 'guidelin':905 'haiku':2028,2041 'hand':147 'handl':311,904,1065,1932,1943,2246 'hatch':1382,1812 'heavi':146 'heavy-hand':145 'help':535,1082,2250 'helper':485 'hide':769 'high':17,176,1691 'high-qual':16 'high-stak':1690 'hint':742,744,1312 'histori':119 'hook':802,803 'hyphen':433,437,1216,1223,2153 'id':1747 'identifi':427,626 'imper':162 'imperative-on':161 'implement':1604 'import':141 'improv':30,1331,1479,1513,1625 'includ':556,644,1246,1913,1937,1946 'inconsist':542 'info':1888 'ing':458,1206 'inlin':1717 'input':1670,1938 'input/output':896,1354,1907,2212 'instal':2066 'instanc':1414,1443 'instead':1400 'instruct':35,270,894,1348,1465,1924,2204 'intent':1043,1117 'intermedi':1687 'invent':2190 'invoc':754,766,1309 'issu':746,1105 'issue-numb':745 'item':1716,1725,1731 'iter':1403 'jq':709 'justifi':103 'k':1724,2116 'keep':337,845,1014 'key':662,668,906,1916 'key-valu':661 'keyset':1732 'keyword':567,1247,1532,1767,2175 'know':98,1792 'knowledg':773 'languag':497 'leading/trailing/consecutive':436,1222 'let':1070 'level':912,946,1017,1861,2235 'licens':623,1269 'lieu':143 'lifecycl':809 'like':1165 'limit':854 'line':354,850,931,1555,1560,1831,2220,2240 'link':987,1545,2229 'list':566,693,1385 'liter':169,1822 'load':277,284,334,400,523,760,916,951,1447 'logic':1057 'lookup':362 'loop':1617 'low':197 'lowercas':431,1215,2151 'machin':1704 'machine-verifi':1703 'made':1195 'make':547,1252,1630 'mani':226,1386,1801 'manual':761 'map':664 'markdown':831,844,865,986,991,1544,1593,1628,1660,1740,2222,2228 'marketplac':2062 'match':171,299,449,1519,1764,2156 'may':1026,1805,1835,2036 'mcp':1089 'mean':968 'measur':1511 'mechan':514 'medium':187 'mention':607 'menu':771 'merg':595 'messag':1084,2251 'metadata':125,658,674,1286 'minim':1428 'minimum':1292,1909,2214 'miss':1464 'mit':1274 'mix':247 'model':137,753,775,776,1308,2024 'modif':202 'move':855,1837 'multi':1657,2023 'multi-model':2022 'multi-step':1656 'multipl':182,382 'must':149,298,448,1815 'must-on':1814 'musti':148 'name':266,297,301,424,453,456,484,489,669,813,818,867,919,1098,1200,1233,1518,1520,1540,1865,1875,2147,2158 'narrow':215 'natur':496 'natural-languag':495 'need':91,655,1122,1156,2037 'negat':2001,2279 'nest':1022,1852 'never':1912,1923 'note':1459 'noun':470,1207 'novel':158 'number':747 'o':1734 'observ':1434,1454,1476 'ocr':1397 'offici':62 'often':1168 'old':1896 'omit':631,820,1278 'one':42,217,239,1016,1808,1860,2234 'open':224,418,720 'oper':204,1693 'option':272,282,290,624,635,659,688,1267,1387,1802,2184 'opus':2031,2035 'order':1729 'org':678 'organ':378 'orient':478 'output':325,956,1146,1159,1164,1626,1685,1688,1903,1955,2019,2044,2287 'over-explain':1784 'over-liter':167,1820 'overhead':1721 'overrid':777 'overview':391,871,1335,2196 'page':1736 'pagin':1720,1727,1733 'paid':2084 'pair':897,1908 'paragraph':102,828 'paramet':2094 'parent':451 'parser':1847 'part':732 'partial':1027,1856 'pass':1651 'path':219,251,369,990,1877,2261 'pattern':194,1012,1410,1590,1623,1751,1754,1897 'pdf':473,590,601,621 'pdf-process':472 'pdf2image':1399 'pdfplumber':1389 'pdfs':461,481,492,608,1210,1395 'penalti':977 'perform':109 'person':528,1240,1529,1774,1779,2074,2171 'phase':1591,1594,1602,1609 'phrase':471,1139 'pick':238,1806 'piec':85 'plain':503,641 'plan':1674,1678,1694,1696,1700,2085 'platform':699,728,2057 'platform-specif':727 'pointer':862 'possibl':40 'pov':543 'practic':64,2123 'pre':2080,2143 'pre-built':2079 'pre-deliveri':2142 'prefer':193,454,1201,2155 'prevent':757,1257,2182 'preview':1583,1978 'primari':512,888,1607 'principl':55,57,907 'problem':546,1777 'proceed':1648 'process':460,474,480,491,529,622,684,1209,1780 'process-pdf':479 'processing-pdf':459,490,1208 'produc':15,37 'progress':910,1374,1666 'project':2077 'prompt':121,1452,1580,1977,1984,1993,2003,2277 'provid':1080,1364,1375 'pseudocode/parameterized':189 'pull':254 'punt':317 'pure':2221 'purpos':739 'pushi':550,1255,1772,2180 'python':1005,1634 'qualifi':1094 'qualiti':18,1358,1589,1613,1627,2013,2020,2262,2280 'rather':1383 're':980 'read':710,964,1028,1052,1301,1857,2272 'real':2232,2282 'realist':1451 'realli':90 'reason':153,666,909,1824 'recommend':863,1409 'ref':1569,1577,1973,1981,2136 'refer':13,281,331,350,386,394,404,412,630,858,939,961,983,994,1015,1023,1054,1095,1556,1840,1854,2237,2273 'referenc':1030,1033,1038 'reference.md':287 'references/reference.md':996 'references/typescript.md':1013 'refin':1472 'relat':989 'relev':403,1315,2188,2266 'render':1954 'repeat':1481 'repo':2114 'repres':1421,2276 'request':881,1113,1766 'requir':268,425,494,637,650,1284,1396 'reserv':443,1869 'resolv':1546,2230 'resourc':357,973,2103,2104 'result':41 'retriev':256 'return':1467,1642 'review':1326,1966,2018 'rigid':160,1813 'rout':228 'rule':164,1817 'run':275,786,1001,1047,1418,1566,1574,1614,1620,1633 'run-validate-fix':1619 'safe':218 'sanit':1947 'satisfi':1483 'save':405 'say':570 'scan':1394 'scenario':1712 'schema':294,361,1102 'scope':695,804,1297 'script':190,200,271,306,318,375,938,948,1004,1035,1039,1063,1071,1930,2245 'scripts/analyze.py':1048,1059 'scripts/extract.py':1006 'scripts/validate.py':373,1635 'secret':1914,2253 'section':1898,2198 'secur':1911,1928 'see':992,1010,1058,1587,1989 'select':393 'self':308 'self-contain':307 'sensit':1887 'sentenc':870,1334,2195 'sequenc':1191 'servernam':1096 'set':801,1266,1305,1488,2090,2186 'share':116,1473 'situat':159 'six':422 'skill':3,6,32,69,108,124,260,265,380,521,555,560,647,652,774,780,807,866,876,935,1109,1129,1182,1340,1425,1446,1504,1509,1568,1576,1921,1942,1950,1972,1980,2017,2051,2055,2070,2071,2082,2087,2096,2107,2113,2129,2135,2202 'skill-agent-skills-authoring' 'skill-nam':264 'skill.md':19,267,390,928,1020,1551,1864 'skills-ref':1567,1575,1971,1979,2134 'slash':366,1883,2258 'slight':549,1254,2179 'smart':74 'solv':314 'sonnet':2029 'source-zebbern' 'space':691 'space-delimit':690 'spdx':625 'spec':414,737,1845,2292 'spec-compli':2291 'specif':172,563,729,1009,2108 'specifi':1272 'split':384 'spreadsheet':464 'stabl':1728 'stake':1692 'standard':419,721,985 'star':2117 'start':1242,1321 'startup':926 'state':1249 'static':356 'stay':2010 'step':222,891,893,1114,1190,1196,1234,1264,1316,1345,1347,1401,1514,1644,1658,1667,1671,1675,1679,1682 'step-by-step':890,1344 'string':660 'structur':263,864,2046 'struggl':1462 'style':1167 'subag':790,793 'subject':1163 'summari':498 'support':381,700 'syntax':1970 'system':120,1881 'tabl':342,363,588,1563,1711,2242 'tag':440,508,1226,1538,2161 'task':1140,1422,1608,1659 'templat':291,358 'template.json':295 'tend':552 'term':240 'terminolog':237,2224 'test':466,1157,1212,1437,1487,1501,1968,1992,2002,2014,2025,2026,2274 'testing-cod':465,1211 'text':179,504,586,642,1391 'thing':139 'think':211 'third':527,1239,1528,1778,2170 'throughout':244,2225 'time':1886 'time-sensit':1885 'to-prompt':1578,1982 'token':105,922,933,1789 'tool':487,687,705,1090,1097,1188,1295,1958,1962 'top':347 'topic-agent-development-kit' 'topic-agent-framework' 'topic-agent-skill' 'topic-agent-skills' 'topic-agentic-ai' 'topic-agentic-workflow' 'topic-agents' 'topic-claude-code-skills' 'topic-claude-skills' 'topic-claude-skills-creator' 'topic-claude-skills-hub' 'topic-copilot-coding-agent' 'track':1665 'trigger':513,564,877,1138,1248,1342,1533,1768,1996,2007,2174,2197 'true':755 'truncat':1836 'trust':232 'turn':1178 'two':1412 'type':794 'typescript':1008,1011 'understand':152,1118,1597 'undertrigg':554,1258,2183 'uniqu':426,667 'unix':1880 'unknown':633 'unlimit':941 'updat':1894 'upload':2088 'url':250,2105 'usag':2058 'use':175,186,196,235,242,364,516,540,597,665,694,796,874,984,1091,1189,1250,1296,1338,1388,1398,1411,1534,1769,1895,2176,2288 'user':23,568,606,765,880,1112,1121,1194,1271,1944,1964,2283 'user-invoc':764 'user-specifi':1270 'util':486 'vagu':483,1759 'valid':185,227,1214,1516,1570,1611,1615,1621,1638,1650,1677,1695,1871,1939,1974 'validate.py':280,376 'valu':663 'variant':383,392 'verb':457,1205,1245,1531,2173 'verb-':1204 'verifi':1158,1684,1686,1698,1705,2043 'version':679,1289 'via':320,2089 'violat':1844 'vs':223,2052 'wast':1788,1833 'window':114,372,960 'with-skil':2049 'without':276,950,1423,1502,2054,2271 'without-skil':2053 'word':444,1870 'work':599,2033 'workflow':1177,1363,1592 'would':569,2284 'write':525,711,1124,1166,1236,1318,1427,1498 'wrong':1807,1890 'x':580 'xml':439,507,1225,1537,1585,1987,2160 'yaml':408,488,583,673,702 'your-org':676","prices":[{"id":"c48bdff3-1f83-4bf1-b6dc-057c98f9ada5","listingId":"a2ec3edf-0934-4b93-b90f-e4f04b44d44e","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"zebbern","category":"agent-skills-authoring","install_from":"skills.sh"},"createdAt":"2026-04-19T00:39:05.123Z"}],"sources":[{"listingId":"a2ec3edf-0934-4b93-b90f-e4f04b44d44e","source":"github","sourceId":"zebbern/agent-skills-authoring","sourceUrl":"https://github.com/zebbern/agent-skills-authoring","isPrimary":false,"firstSeenAt":"2026-04-19T00:39:05.123Z","lastSeenAt":"2026-04-22T19:06:12.783Z"}],"details":{"listingId":"a2ec3edf-0934-4b93-b90f-e4f04b44d44e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"zebbern","slug":"agent-skills-authoring","github":{"repo":"zebbern/agent-skills-authoring","stars":20,"topics":["agent-development-kit","agent-framework","agent-skill","agent-skills","agentic-ai","agentic-workflow","agents","claude-code-skills","claude-skills","claude-skills-creator","claude-skills-hub","copilot-coding-agent","copilot-instructions","create-skills","guide-skills","how-to-create-skills","skills","skills-development","skills-guide","skills-system"],"license":null,"html_url":"https://github.com/zebbern/agent-skills-authoring","pushed_at":"2026-03-19T16:26:20Z","description":"Guides agents through creating, validating, and optimizing Agent Skills (SKILL.md files) from user requests.","skill_md_sha":"c7656072ff283d3fcc883804c9dc29fb53a6a047","skill_md_path":"SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/zebbern/agent-skills-authoring"},"layout":"root","source":"github","category":"agent-skills-authoring","frontmatter":{"name":"agent-skills-authoring","license":"MIT","description":">-","compatibility":">-"},"skills_sh_url":"https://skills.sh/zebbern/agent-skills-authoring"},"updatedAt":"2026-04-22T19:06:12.783Z"}}