← ClaudeAtlas

writing-skillslisted

Author or edit a skill in this package correctly — the Agent Skills spec frontmatter, the references/core path convention, keeping the drift-linter and roster parity green, and staying agent-agnostic (Claude Code + opencode + AGENTS.md). Use when adding, renaming, or editing a skill, module, or agent.
r3vs/keel · ★ 1 · AI & Automation · score 58
Install: claude install-skill r3vs/keel
# Writing Skills How this package stays self-extending without drifting. Authority: `CONTRIBUTING.md` + `CLAUDE.md`. ## A skill is `skills/<name>/SKILL.md` with Agent-Skills frontmatter: `name` (lowercase-with-hyphens, **matching the directory**) and `description` (≥ 20 chars, saying what it does AND when to use it), optional `license`. Bundle `references/*.md` (skill-relative) alongside; shared docs live in `core/*.md` (repo-root-relative). ## Keep the invariants green (they run in CI) **Run every gate — the list is the Commands block in `CLAUDE.md`**, complete against `.github/workflows/ci.yml`. It is not copied here; the copy that used to be here named four of them under a heading that reads as the set, which is the same claiming-vs-doing bug the gates catch. Two are worth knowing by name while authoring a skill: - `python scripts/verify_commands.py` — every command a shipped file names resolves **after install**, not merely here. The other gates anchor on `__file__` and cannot see that class. - `python scripts/check_tool_carriers.py` — every WRITE tool the MCP server exposes is named by a shipped playbook. Describing an act in English without naming the tool that performs it is the failure this whole repo is organized around; that gate is where it gets caught. Three-way sync: a new or renamed module updates its `modules.json`, its playbook, AND any `SKILL.md` pointer together. ## Stay agent-agnostic Author to the spec once; never hard-code a platform. And when