writing-skills
Skill3 starsChanged 3 days agoMITView on GitHub
The discipline of authoring SKILL.md: RED-GREEN, SDO (name and description for findability), token budget, model- vs user-invoked, authoring failure modes. Trigger words (RU+EN): написать скилл, SKILL.md, авторинг скилла, описание под находимость / write a skill, SKILL.md, skill authoring, description for findability.
191 other projects use a version of this.
Adopted by
Most recently taken up by
- rundesk-ai/skillstheir own version, first seen Nov 15, 2026
- draekien/skillstheir own version, first seen Nov 15, 2026
- mintunitish/tandemtheir own version, first seen Nov 15, 2026
- crbnos/carbontheir own version, first seen Nov 15, 2026
- mdiri-ai/SoduWorktheir own version, first seen Nov 15, 2026
- PostHog/posthogtheir own version, first seen Nov 14, 2026
Used with
Projects with it also use chinese-code-review, chinese-commit-conventions and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Leodorareluctant259Skillchinese-code-review
中文代码审查规范——在保持专业严谨的同时,用符合国内团队文化的方式给出有效反馈
Also in 8 projects that use this
Leodorareluctant259Skillchinese-commit-conventions
中文 Git 提交规范 — 适配国内团队的 commit message 规范和 changelog 自动化
Also in 8 projects that use this
obraSkilldiagnosing-superpowers
Use when a superpowers session went wrong and your human partner wants to know why — repeated work, ignored plans, stumbles, poor results, a skill that didn't fire, "it took too long", "why is it so expensive", "what is it doing" — or wants to build a bug report for the superpowers maintainers, for the current session or a past one identified by id or path, on any harness.
Also in 20 projects that use this
kntismSkillcondition-based-waiting
Use when tests have race conditions, timing dependencies, or inconsistent pass/fail behavior - replaces arbitrary timeouts with condition polling to wait for actual state changes, eliminating flaky tests from timing guesses
Also in 3 projects that use this
aaddrickSkillwriting-agents
Use when creating new agents, editing existing agents, or defining specialized subagent roles for the Task tool
Also in 3 projects that use this
frankxaiSkilldefense-in-depth
Use when invalid data causes failures deep in execution, requiring validation at multiple system layers - validates at every layer data passes through to make bugs structurally impossible
Also in 3 projects that use this
- +3 more from Leodorareluctant259
Other versions191 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 191
- obra/superpowers★ 314ksame name
- PostHog/posthog★ 41ksame name
- jnMetaCode/superpowers-zh★ 8.5ksame name
- openai/plugins★ 7.8ksame name
- farm-fe/farm★ 5.6ksame name
- compozy/compozy★ 2.9ksame name
- crbnos/carbon★ 2.8ksame name
- lingyired/status-trio★ 1.8ksame name
- GanyuanRan/Aegis★ 1.4ksame name
- pcvelz/superpowers★ 1.3ksame name
181 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository16 other files it gives its agents.
- complexity-budgetSkill
- diagnosingSkill
- frontend-tasteSkill
- gateSkill
- gitea-flowSkill
- gitlab-flowSkill
- graph-firstSkill
- guardrailsSkill
- receiving-reviewSkill
- researchSkill
- retrofitSkill
- second-opinionSkill
- session-reviewSkill
- task-cycleSkill
- test-generationSkill
- wayfinderSkill
The file
Files
Authoring skills
Retainer stamps out skills — the engine IS skills. A skill is valuable not for describing a technique but for the agent taking the same PROCESS every run (the predictability root, donor mattpocock/writing-great-skills). Not "one output" — one way to act. Two runs by one skill diverged in behavior → the skill is underwritten.
Whether a skill is needed at all is [[complexity-budget]] on the skill itself (the deletion test: remove it → what drifts). Here — once writing is decided, HOW to write it so it is found and runs the same way.
RED-GREEN-REFACTOR for skills (donor superpowers/writing-skills)
A skill is born as a test, not as an essay (deepens the "a technique, not a story" thesis from
docs/SKILLS.md).
- RED — see the failure WITHOUT the skill: where the agent actually errs on this task, not
hypothetically. No observed failure — no skill (that is a
no-op, below). - GREEN — the minimal text closing exactly this failure. Not an encyclopedia of the topic.
- REFACTOR — close the loopholes: name explicitly every rationalization by which the agent would bypass the rule. Match form to failure — the form to the class of failure (a checklist / a table / a single ban), not a universal template.
RED-GREEN for FEATURES/code lives in [[task-cycle]]; here the same rhythm applied to skills.
SDO — how a skill is found (donor superpowers)
A skill that did not activate does not exist. name and description are the only thing the model
sees BEFORE loading the body.
name== the folder name, lowercase/hyphens, descriptive (writing-skills, nothelper) — otherwise it will not load by the agentskills.io spec.description— TRIGGERS ("when to call"), not a retelling of the workflow: what it does AND on which words/tasks to activate. Keep within the ≤1024-character limit. Keyword coverage: include the words a task will be named by.
Budget and information hierarchy (donor mattpocock)
- Token budget — the body <150 lines (our default ~<130). With a model-invoked description it hangs in the window every turn; a bloated skill is a tax on EVERY task, not only its own.
- Links instead of duplicates — a fact lives in one home, a copy rots out of sync. Three delivery levels: in-skill step (runs now) · in-skill reference (nearby, on hand) · external reference (a context pointer to a file, loaded on demand — progressive disclosure).
- Completion criterion — a checkable/exhaustive "done" condition, otherwise premature completion (below).
Invocation: model- vs user-invoked (donor mattpocock)
- model-invoked (auto by
description) — a discipline firing on a task trigger (writing-skills, gate). The cost is context load: the description in the window every turn. Keep the description sharp. - user-invoked (
/skill) — the owner decides when to call it. The cost is cognitive load: one must remember the skill exists. - A user-invoked set grew → a router skill (an index pointing to the right one). Do not breed dozens of user-invoked ones without an index.
Leading words
A compact pretrained concept anchors behavior in a minimum of tokens: "tracer bullets", "tight loop", "RED/GREEN", "the deletion test". A precise anchor word replaces a paragraph — the model already knows the concept. Pick words that drag BEHAVIOR along, not only meaning.
Authoring failure modes (donor mattpocock)
| Failure | What it is | Cure |
| premature completion | "done" without meeting the criterion | a checkable completion criterion |
| duplication | a fact copied from another skill | a [[…]] link, one home |
| sediment | layers of edits, the skill bloated | a periodic refactor, cut the dead |
| sprawl | one skill about everything at once | one skill = one class of failure |
| no-op | a rule the model follows anyway | delete — no RED, no skill |
| negation | "do not do X" → the model thinks about X | steer by the POSITIVE: what to do instead |
Armor against rationalizations (donor superpowers)
The agent will bypass a discipline rule if a gap is left. Close each explicitly:
- a rationalization table — "the agent will say … → the answer …" right in the skill (as in [[receiving-review]], [[guardrails]]).
- red flags — bypass-signal phrases ("this time it's fine", "it's obvious anyway", "formally satisfied").
- spirit vs letter — name the rule's INTENT so letter-reading does not hollow it out.
- a subagent test — give a fresh subagent a task under the skill and watch whether it fails. A
micro-test: the
descriptionalone → "when would you apply it?" (a findability check), before a full scenario. An authoring practice, not a gate.
When NOT to apply
A one-off instruction for a specific task is not a skill (a skill is portable, a technique ≠ an
episode). A rule the model follows anyway is a no-op, do not write it. Writing/editing the code
itself — not here ([[task-cycle]], [[gate]]).
Related: [[complexity-budget]] (is a skill needed), [[task-cycle]] (RED-GREEN for code), [[receiving-review]], [[guardrails]] (rationalization tables).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

