agentleFS
henit-chobisahenit-chobisa/deck/.agents/skills/change-the-skill/SKILL.md

change-the-skill

Skill33 starsChanged 27 days agoApache-2.0View on GitHub

Edit crates/app/skill/SKILL.md and its references/, the files that tell an agent when and how to use deck. Use whenever the skill is being improved, rewritten, or a rule is being added to it. It is compiled into the binary, it is pinned by tests that look strange until you know why, and rewriting it has quietly destroyed the parts that made it work — twice.

The file

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 2 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    All of it is include_str!'d into the binary, and written to disk together.

    line 24
  2. Distinctive:

    Do that when testing a change — otherwise you are watching the old one.

    line 51
  3. Distinctive:

    If one fails, the question is whether you meant to remove that rule — not how to make the test go away.

    line 68

≈ “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

Changing the skill

crates/app/skill/SKILL.md is what makes an agent reach for deck at all. The commands are the easy half; this file is the product.

Where it lives, and the copy that is read now

crates/app/skill/SKILL.md      the loop, and which reference to read when.
crates/app/skill/references/   the rest: writing, groups, pictures, pages, …
~/.agents/skills/deck/         what agents on this machine read right now.

All of it is include_str!'d into the binary, and written to disk together.

SKILL.md stays short; the detail goes in a reference

SKILL.md is read whole every time the skill is used and stays in context for the session. After a compaction only its first 5,000 tokens come back. At 2,551 lines everything past the voice sections — the loop, the waiter, the review — was what a long session lost. A test holds it under 500 lines and 20,000 bytes.

So a new rule goes in the reference for the job it belongs to, and SKILL.md keeps only the loop and the table that says which reference to read when. A new reference needs a row in that table, an entry in REFERENCES in crates/app/src/skill.rs, and a contents list if it runs past 100 lines; the tests check all three.

Moving text between files is a move, not a rewrite. When it was split into references every line went across word for word, and only the cross-references that now pointed into another file were changed.

An edit to the source does nothing until either a release ships or the file is copied:

cp -R crates/app/skill/SKILL.md crates/app/skill/references ~/.agents/skills/deck/

Do that when testing a change — otherwise you are watching the old one.

Warn the reader not to run deck setup before upgrading. It writes the binary's embedded copy over the file, which will be the older text until a release goes out.

The tests that look strange

crates/app/src/skill.rs asserts that specific sentences are present:

assert!(front.contains("TWO OR MORE"));
assert!(SKILL.contains("Predict before reveal"));

Pinning prose looks wrong until you have watched a rewrite drop the rule that made the thing work. Each of those assertions is a rule that was lost once. If one fails, the question is whether you meant to remove that rule — not how to make the test go away.

One of them parses the example diagram out of the file as a real Diagram, so an example that would not draw cannot ship.

What rewriting it keeps costing

The file has been rewritten twice and both times it came back shorter, better-shaped, and worse. Numbered rules became prose, an argument became an assertion, and the reader said the explanations had got worse — which is the only measure that counts.

  • Do not tidy it. Length is not the problem it looks like.
  • An argument is not the same as a rule. "A group with one ref should be a decision, not a default" works because the paragraph under it argues for it — the pairs to look for, why the relationship is the thing being taught. Compress that to the claim and it stops changing anybody's behaviour.
  • Examples are what get copied. A model follows the worked example over the prose every time, so a rule with no example is a rule that gets read and not applied.

The description decides everything

The frontmatter description is read while a model is choosing whether this is a deck moment. The body is read after. A rule that only lives in the body arrives too late to be the thing that decides.

That has been got wrong: a countable trigger was put in the description, then a later restore brought back an older description and the count survived only in the body. It stopped firing.

Whatever decides whether to build a deck belongs in the description.

Checking a change

cargo test -p deck-app skill
cp -R crates/app/skill/SKILL.md crates/app/skill/references ~/.agents/skills/deck/

Then the real test, which is not a test: use it. Ask the person you are working with whether decks got better or worse. Both rewrites passed every assertion in the file and were worse anyway.

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.