skills/create-skill/SKILL.md
This skill should be used when the user asks to "create a skill", "new skill", "scaffold a skill", "make a skill", "init a skill", or wants to bootstrap a new agent skill in `.agents/skills` (default) or `~/.agents/skills` (with `--global`).
npx skillsauth add paulrberg/dot-agents create-skillInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Bootstrap a new agent skill, then symlink it into .claude/skills/ so Claude Code can discover it. Default to splitting bulk content into references/ and scripts/ so SKILL.md stays lean.
my-skill). Stop if missing or invalid.--global (optional): install under ~ instead of the current repo.| Mode | Skill source | Claude Code symlink |
| --------------- | -------------------------- | ------------------------- |
| local (default) | .agents/skills/<name>/ | .claude/skills/<name> |
| --global | ~/.agents/skills/<name>/ | ~/.claude/skills/<name> |
The symlink target is always the relative path ../../.agents/skills/<name> so it resolves correctly in both scopes.
<name>/
├── SKILL.md # Required: frontmatter + lean workflow (aim for <500 lines)
├── scripts/ # Optional: executable code (Bash/Python/etc.) the workflow invokes
├── references/ # Optional: long-form docs loaded on demand
└── assets/ # Optional: templates / fonts / images used in OUTPUT (never loaded into context)
Agents load skills via progressive disclosure, in three stages:
name + description are visible at startup. Front-load triggers in description.SKILL.md body is read once a task matches.scripts/ run without being read into context; references/ are read only when SKILL.md explicitly links to them.Keep SKILL.md focused on workflow. Push bulk into scripts/ (deterministic logic) or references/ (documentation).
scripts/ whenSKILL.md.Scripts are token-efficient: the agent invokes them without reading them. Document the CLI signature in SKILL.md and leave the implementation in scripts/.
references/ whenSKILL.md.Rules of thumb:
references/placeholder.md directly from SKILL.md, never reference-to-reference.SKILL.md so the agent can locate sections without reading the whole file.SKILL.md or a reference, never both.SKILL.md that says when to read it.Pattern A — High-level guide + topical references
SKILL.md
references/
├── forms.md
├── api.md
└── examples.md
SKILL.md teaches the happy path; references hold deep-dive material.
Pattern B — Domain or variant split
SKILL.md # workflow + selection logic
references/
├── aws.md
├── gcp.md
└── azure.md
The agent reads only the variant the user picked — irrelevant providers never enter context.
Pattern C — Conditional details
Inline the basic case in SKILL.md, link advanced files for edge cases (tracked-changes.md, ooxml.md, etc.).
README.md, INSTALLATION.md, CHANGELOG.md, QUICK_REFERENCE.md — extraneous.Always fetch the latest spec before authoring frontmatter or content:
Use WebFetch to confirm the current frontmatter schema, naming rules, and progressive-disclosure conventions. Do not guess — the spec evolves.
<scope>/.agents/skills/<name>/ or <scope>/.claude/skills/<name> already exists.Before writing anything, decide what belongs where:
scripts/<name>.{sh,py,ts}references/<topic>.mdassets/SKILL.md.Sketch the directory tree first, then create only the subdirectories the layout actually needs.
mkdir -p "<scope>/.agents/skills/<name>"
# Add only the subdirectories the layout calls for:
# mkdir -p "<scope>/.agents/skills/<name>/scripts"
# mkdir -p "<scope>/.agents/skills/<name>/references"
Write <scope>/.agents/skills/<name>/SKILL.md with:
description last. The description is the only field seen at discovery time — front-load trigger phrases there, not in the body.# Title.## Arguments (if any) and ## Workflow sections in imperative form with concrete steps.references/ file the workflow may need, each with a one-line note describing when to read it.Aim for SKILL.md under 500 lines. If a section grows past ~50 lines and is not core workflow, move it to references/ and link it.
Always create a relative symlink so Claude Code picks the skill up from its own discovery path:
mkdir -p "<scope>/.claude/skills"
ln -s "../../.agents/skills/<name>" "<scope>/.claude/skills/<name>"
test -f "<scope>/.agents/skills/<name>/SKILL.md"readlink "<scope>/.claude/skills/<name>" resolves to the source directory.description last.description (discovery-time), not in the body (activation-time only).SKILL.md.SKILL.md (e.g., references/placeholder.md, scripts/example.sh) are relative to the skill directory./bin/bash), since Codex uses the built-in Bash by default.content-media
Summarize or transcribe URLs, YouTube/videos, podcasts, articles, transcripts, PDFs, and local files.
tools
Use Obscura — a Rust headless browser with a Chrome DevTools Protocol server — for fast page fetches, JS execution, scraping, and CDP automation. Drop-in CDP replacement for Chrome with Puppeteer or Playwright. Trigger on requests to "open a page", "fetch a URL with JS", "scrape a site", "render this page", "automate browser via CDP", or any task where Chrome would be too heavy. Also use when the user mentions stealth fingerprinting, tracker blocking, `navigator.webdriver` masking, or evading basic bot detection.
tools
Use the Notion CLI (`ntn`) to interact with the Notion API, manage workers, and upload files. Use when the user asks to "call the Notion API", "deploy a worker", "upload a file to Notion", "create a page", "query a database", or any task involving the `ntn` command.
data-ai
This skill should be used when the user asks to "open CoinGecko historical data", "show historical price on date X", "open coingecko historical page", or wants to view the CoinGecko historical-data page for a coin around a given date in their default browser.