agentleFS
blauwtjeblauwtje/exo/skills/edit-skills/SKILL.md

edit-skills

Skill1 starsChanged 54 days agoMITView on GitHub

Use when the user asks to create, edit or size a skill, agent, hook or skill script. Not for a rule or CLAUDE.md; read references/instruction-style.md.

The file

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 3 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use it when creating, changing or sizing a skill, agent, hook or skill script.

    line 15
  2. Distinctive:

    When a stage borrows it, hand control back once the edit is done.

    line 16
  3. Very specific:

    Catch the mistake: Write one prompt per references/pressure-scenarios.md whose answer shows the mistake as one observable symptom.

    line 21
  4. Very specific:

    Choose the home: Place the fix per references/where-a-fix-lives.md.

    line 23
  5. Very specific:

    Judge blind: When step 4's read was a close call, judge the stored pre-edit and edited with answers blind per references/blind-eval.md, and …

    line 27
  6. Very specific:

    Name the evidence: Commit a skill or agent wording change with an Evidence: benchmarks/results/<file> or Evidence: none (<reason>) trailer, …

    line 28
  7. Very specific:

    Put text handed to a delegate beside SKILL.md as <role>-prompt.md, with a References row naming the dispatching step.

    line 47
  8. Distinctive:

    When a skill runs long, drop its weakest rule and keep every rule's reason clause.

    line 82

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Skills tool

A skill earns its place only by stopping a mistake the model makes without it, in the fewest words that takes. Produce a skill whose every line changes what the model does, with each rule carrying its boundary reason. Avoid restating default behavior, hiding the one rule that changes anything, and an order stripped of its boundary reason.

When to use

  • Use it when creating, changing or sizing a skill, agent, hook or skill script.
  • When a stage borrows it, hand control back once the edit is done. Otherwise it owns the turn.
  • Skip it for a one-time fix, one project's habit, or a limit a regex can check. A commit, CLAUDE.md or the verifier holds those, and a skill is for a call that needs judgment.

The loop

  1. Catch the mistake. Write one prompt per references/pressure-scenarios.md whose answer shows the mistake as one observable symptom.
  2. Watch it happen. Read benchmarks/results/ and any earlier pressure.mjs answers directory for the case first, because a stored result that covers the edited file and was made after its last edit stands in for the run. When the user asks for a run, or none covers the file, run scripts/pressure.mjs --prompt <file> --cells <cells> --plugin-dir <clone> on the cells --cells-for <edited file> prints, else the session's own, and read only the without answers now.
  3. Choose the home. Place the fix per references/where-a-fix-lives.md. Write prose in the shape below, with style per references/instruction-style.md and register per references/wording.md.
  4. Watch it stop. Rerun pressure.mjs on the same cells only under step 2's condition (the user asks, or no stored result covers the file), and read the with answers. Rerun with --full on the verdict INCONCLUSIVE from --grade, and with --contrast-env when one setting alone is in question; when the without run also passed, the case shows nothing, so harden it until that run fails.
  5. Close each new excuse. Apply references/plugging-holes.md to each justification the with run still produced, then rerun all cases. You are done when a full rerun adds nothing to its tables.
  6. Verify. Run the check the caller's rules assign to this edit, and only the proof it names when the caller reserves the full check to its lead. On a red check, fix the structure and add no exemption, lock or allowlist entry, which only hides the failure.
  7. Judge blind. When step 4's read was a close call, judge the stored pre-edit and edited with answers blind per references/blind-eval.md, and run its clones only when the user asks.
  8. Name the evidence. Commit a skill or agent wording change with an Evidence: benchmarks/results/<file> or Evidence: none (<reason>) trailer, because npm run check fails the branch without one.

The shape

PartContract
descriptionTrigger only: moments it fires, then what it leaves alone. No workflow: the model acts on that summary instead of the body.
OpeningOne paragraph: principle, a "Produce ..." sentence, an "Avoid ..." sentence with a concrete list. An overcorrection sentence only as an optional limit once a recorded run shows over-application. An existing enemy/overcorrection opening migrates when that skill is next edited.
## When to useBullets that name the symptoms first, then each "not for" case.
ProcessSteps where order matters: numbered, aim at most eight, in order until one matches; a judgment skill with no fixed order: bullets. Each step a rule, with its reason in one clause.
## Red flagsOnly in a skill the model is tempted to skip: table from tempting thought to what is true.
## ReferencesTable of each file and when to read it; nothing loads before the step that needs it.
## JudgmentLadder: which rule wins when two conflict.

Form

  • Move bulk material (a template, a worked example, a checklist over 20 lines) to references/, and let the body name when to open it.
  • Aim the body at 2,000 tokens (bytes after the frontmatter / 4) and the description at 200 characters; the verifier fails 2,500 tokens and 250 characters.
  • A reference holds one topic and links to no other reference; over 100 lines it opens with a contents list linking each section.
  • Put text handed to a delegate beside SKILL.md as <role>-prompt.md, with a References row naming the dispatching step. A delegate is a separate agent the skill starts; references/ holds only what the skill reads itself.

Red flags

The excuseWhat holds
"The body has room to explain itself."A reason gets one clause, and a paragraph-long one moves to a reference.
"An edit this small needs no test run."Without the without run, the edit is a guess about what the model does.
"Any model already knows this."Then cut the line, because only what the without run got wrong earns a place.
"I will test them together once all the skills are written."Each skill clears every case before the next begins, because skills written in a batch hide each other's gaps.

References

FileRead it when
scripts/rename-skill.mjsRenaming a skill: node scripts/rename-skill.mjs --from <old> --to <new> moves its folder, docs page and pressure folder and rewrites every mention in one pass.
references/pressure-scenarios.mdStep 1.
references/where-a-fix-lives.mdStep 3, before the first rule is written.
references/instruction-style.mdStep 3, before writing or editing any instruction file such as CLAUDE.md, a rule or an output style.
references/wording.mdStep 3, when two phrasings compete or a rule's tone is unclear.
references/description.mdStep 3 for the frontmatter; step 5 when a symptom joins the description.
references/prompt-rules.mdStep 3, when writing a skill or agent body, a delegate prompt or a brief.
references/skill-shape.mdStep 3 for a skill started from nothing, and not for a change to an existing skill.
references/agent-shape.mdStep 3 for an agent started from nothing.
references/hook-shape.mdStep 3 for a hook started from nothing.
references/script-shape.mdStep 3 for a skill script started from nothing.
../../docs/principles/README.mdStep 3, when the edit designs a prompt, context, agent, tool, harness or eval.
references/plugging-holes.mdStep 5, once a run with the skill loaded still produced a justification.
references/blind-eval.mdStep 7, when step 4's with/without read is a close call.
../../lib/references/closing.mdBefore the final message.

Judgment

  • A rule the without run broke outranks a rule that only reads well.
  • Revert an edit that has neither a run nor a stored result made after its last edit and covering its file, and do not keep it as a draft.
  • When a skill runs long, drop its weakest rule and keep every rule's reason clause.

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.