Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add isvlasov/rageatc-oss --skill writing-skillsgit clone --depth 1 https://github.com/isvlasov/rageatc-ossWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/isvlasov/rageatc-oss/writing-skills)<a href="https://agentmods.dev/skills/isvlasov/rageatc-oss/writing-skills"><img src="https://agentmods.dev/badge/skills/isvlasov/rageatc-oss/writing-skills/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/isvlasov/rageatc-oss/writing-skills"><img src="https://agentmods.dev/badge/skills/isvlasov/rageatc-oss/writing-skills.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00038 | $0.01776 |
| Opus 5 | $0.00019 | $0.00888 |
| Sonnet 5 | $0.00008 | $0.00355 |
| Haiku 4.5 | $0.00004 | $0.00178 |
Grade A, and why
writing-skills scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 101 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Writing Skills
The reader of every skill is an agent. A line earns its place only if it changes the agent's behaviour versus what it would do anyway — text the agent already knows, filler, and repetition are bloat. Apply that test to every line you write.
The same test scales up. Prefer the simplest thing that fixes an observed failure — often that is nothing at all: if the model already handles the task well, don't write the skill; if a line answers an imagined problem, don't write the line. Simple beats clever, and YAGNI applies to skills as much as to code.
If the skill's intent, triggers, or location (personal ~/.claude/skills/, project .claude/skills/, or a plugin's skills/) are unclear, ask before writing.
How skills load
Three tiers drive every design decision:
- Always in context: every installed skill's
nameanddescription(pluswhen_to_useif set), ~100 tokens each. The listing capsdescription+when_to_useat 1,536 chars combined; when the total listing budget overflows, least-used skills' descriptions are truncated first (/doctorshows this). At library scale, every description word is a recurring cost. - On trigger: the SKILL.md body. Keep under ~500 lines / ~5,000 tokens.
- On demand: bundled files, loaded only when referenced. Free until read.
Workflow
Step 1 — Choose the invocation mode first
Decide before writing anything else; it shapes the description and the body:
- Model-invoked (default): the agent discovers it by description match. Needs a rich trigger description.
- User-invoked only (
disable-model-invocation: true): for task skills with side effects (deploy, commit) or skills the user deliberately runs as/name. The description becomes a short human-facing summary — the user, not the matcher, is the audience. - Model-only (
user-invocable: false): background knowledge; hidden from the/menu.
Step 2 — Name it
Lowercase letters, numbers, hyphens; ≤64 chars; must match the folder name; no "claude" or "anthropic" (reserved). Prefer gerund form (reviewing-code). Avoid generic terms (helper, utils, tools).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 101 lines · 38 tokens per session scan A 85798372070b
writing-skills is a skill published in the GitHub repository isvlasov/rageatc-oss (9 stars, last pushed 1mo ago), licensed MIT. It adds 38 tokens to every session and 1,776 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
design-method
Use when starting any design task — resolves register, sets the 3 dials, locks Gate 0, and routes to the right move and target skill.
design-webapp
Use when building or extending a dashboard, SaaS screen, or any authenticated app surface — use design-web instead for a marketing site.
design-web
Use when building or revising a marketing/landing/campaign page, register brand locked at Gate 0 — use design-webapp for app screens instead.
react-tanstack-router
Use when implementing routing in a React app (NOT Next.js) with TanStack Router — file-based routes, loaders, search params.
git-flow
Use when committing, branching, opening PRs, or deciding merge/branch strategy.
fusecore
Use when creating modules, understanding FuseCore structure, or implementing features in a FuseCore modular-monolith Laravel project.