agentleFS
alexuraxinalexuraxin/retainer/skills/writing-skills/SKILL.md

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

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.
  • Leodorareluctant259Skill

    chinese-code-review

    中文代码审查规范——在保持专业严谨的同时,用符合国内团队文化的方式给出有效反馈

    Also in 8 projects that use this

  • Leodorareluctant259Skill

    chinese-commit-conventions

    中文 Git 提交规范 — 适配国内团队的 commit message 规范和 changelog 自动化

    Also in 8 projects that use this

  • obraSkill

    diagnosing-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

  • kntismSkill

    condition-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

  • aaddrickSkill

    writing-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

  • frankxaiSkill

    defense-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

The file

Files
SKILL.md

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, not helper) — 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)

FailureWhat it isCure
premature completion"done" without meeting the criteriona checkable completion criterion
duplicationa fact copied from another skilla [[…]] link, one home
sedimentlayers of edits, the skill bloateda periodic refactor, cut the dead
sprawlone skill about everything at onceone skill = one class of failure
no-opa rule the model follows anywaydelete — no RED, no skill
negation"do not do X" → the model thinks about Xsteer 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 description alone → "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).

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.