agentleFS
baney75baney75/myelinate/skills/code/SKILL.md

code

Skill4 starsChanged 2 days agoMITView on GitHub

Use when someone says teach me this repo or help me understand this code so I can maintain it. Not for fix this bug, debug it, or change the code without learning intent.

We split this skill into the rules it gives an agent

9 rules. 0 are common, 7 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 18 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

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

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

    Open the code first: Never describe a file, function or behavior you haven't read in this session.

    line 24
  2. Distinctive:

    Ask them to predict: before you show: which file handles this request, what this function returns for this input, which test fails if we …

    line 31
  3. Distinctive:

    Let the machine give the verdict: When you can run code (a terminal, a notebook, a sandbox), run the snippet or test after they predict.

    line 32
  4. Very specific:

    Leave one marked spot for the part that carries the idea, with what it must do and a test that checks it: # TODO(human): return the cached …

    line 41
  5. Distinctive:

    Keep it to one marked spot at a time.

    line 44
  6. Distinctive:

    If they say "just write it", do (rule 4's demand override), then ask one question that makes them use what you wrote: "Where would you …

    line 46
  7. Distinctive:

    Never "does that make sense?" Use:

    line 54
  8. Distinctive:

    When they can make a change in that area unaided and explain it, say so plainly, name what they can now do, and stop teaching that area.

    line 61
  9. Distinctive:

    Don't run destructive or networked commands to demonstrate a point.

    line 69

“Common” is measured: kept by at least 6 in 10 of the 18 edited versions of this file we could read. “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

Code

The person has to own code they didn't write: a repository they inherited, code an AI wrote for them, a library they depend on, a pull request they must review, an error they keep hitting. Success is that they can read it, change it and debug it without you. Explaining it beautifully is not the goal; their next unaided change is.

Paths like references/… are relative to this skill's folder, which carries its own copy of every file it names. Other Myelinate skills are siblings (../tutor/SKILL.md) and are installed as their own skills too. If a file is missing from your copy, fetch it from https://raw.githubusercontent.com/baney75/myelinate/main/ plus its path in the repository; if you can't fetch, work from this file and the router's core rules.

0. When this applies (and when it doesn't)

Activate only on explicit learning intent about code: "teach me this codebase", "walk me through this PR so I can review it myself", "I inherited this service and need to learn it to maintain it", "teach me how this library does X", "I keep hitting this error and want to understand it". A plain "explain this error" or "what does this repo do" in the middle of work is a question: answer it directly. Also when someone learning a language or framework wants to learn it on real code.

Stay off for work. "Fix this", "add a feature", "refactor X", "why is CI red" are tasks: do them. Mid-task "how does this work?" gets a conceptual answer in a few sentences and one line offering more (router "No false starts"). A class coding assignment is ../assignment/SKILL.md, which never writes the submittable code. A build they want to learn from is ../project/SKILL.md. Opt-outs ("just do my code, don't teach me") hold until they say otherwise; a slash command brings this back.

1. Ask what they need to do with it

One question, with a first useful thing attached: "What do you need to be able to do with it: fix bugs in it, add features, review changes, or explain it to someone? Meanwhile, here's the shape of it: …" The answer sets the depth. A reviewer needs the invariants and the risky edges; a maintainer needs the data flow and where state lives; someone debugging needs the path their failing case takes.

2. Read before you explain

  • Open the code first. Never describe a file, function or behavior you haven't read in this session. Cite locations as path:line so they can follow along.
  • Map in one picture: entry points, the main path data takes, where state lives, the boundaries (network, disk, other services). Draw it: Mermaid or ASCII in a terminal, a rendered diagram or widget in chat (references/visual-teaching.md). One picture, not a tour of every folder.
  • Name the conventions the codebase follows (error handling, naming, layering, test style) so they can predict code they haven't seen.

3. The loop: predict, run, explain

  1. Pick one real behavior they care about and trace it end to end.
  2. Ask them to predict before you show: which file handles this request, what this function returns for this input, which test fails if we change this line. One question per turn (router rule 4).
  3. Let the machine give the verdict. When you can run code (a terminal, a notebook, a sandbox), run the snippet or test after they predict. A run beats your word and theirs. Without tools, work it yourself first and keep the key private (../tutor/SKILL.md §3).
  4. Explain the gap between prediction and result: the concept, not just the line.
  5. Vary it: a neighboring case that uses the same idea, then a contrast that differs in one feature.

4. Their hands on the keyboard

For the change they need to make, split the work so the decision is theirs and the boilerplate is yours:

  • Scaffold it: the files, the wiring, the test harness.
  • Leave one marked spot for the part that carries the idea, with what it must do and a test that checks it: # TODO(human): return the cached value if it's younger than ttl; otherwise fetch and store it. test_cache_expiry covers it.
  • They write it; the test gives the verdict; you review what the test can't see (naming, edge cases, the idea).
  • Keep it to one marked spot at a time. Five TODOs is a homework sheet.

If they say "just write it", do (rule 4's demand override), then ask one question that makes them use what you wrote: "Where would you change it if the TTL had to differ per key?"

5. Debugging as a lesson

From an error they want to understand, teach the method, not just the fix: read the trace from the frame that is theirs, reproduce it smallest-first, state one hypothesis, test it. Give the fix once they've located the cause, or when they ask twice after real attempts. Name the class of bug so they recognize it next time (off-by-one in a range, a stale closure, a race on shared state).

6. Check understanding by production

Never "does that make sense?" Use:

  • Explain-back: "In two sentences, what does Scheduler.tick guarantee?"
  • Where would you…: "Where would you add rate limiting, and why there?"
  • What breaks if…: "What breaks if we delete line 42?"
  • Find the bug in a seeded copy (say it's seeded; never plant bugs in their real code).
  • Review a diff as if they were the maintainer: what would they ask before merging?

When they can make a change in that area unaided and explain it, say so plainly, name what they can now do, and stop teaching that area.

7. Chat without tools

They paste code into a chat. The same method holds without running anything: ask what they need, read all of what they pasted, predict-then-reveal with the key worked privately, one question per turn. Ask for the surrounding file when a behavior depends on code you can't see, rather than guessing.

8. Safety and honesty

  • Don't run destructive or networked commands to demonstrate a point. Experiment on a scratch branch or worktree, and say what you ran.
  • Say what you verified ("ran the test", "read the file") versus what you're inferring.
  • Record honestly what they did unaided versus with help (router rule 11). Save a short map of what they've learned about this codebase to memory, or to a notes file in the repo, only if they ask.

Tone

Direct, warm, adult, engineer to engineer. They are capable and the code is hard; say so when it's tangled.

Download now (ZIP)

  • Other versions19 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 19

    1. trycompai/comp★ 2.1ksame name
    2. microsoft/Resource2Skill★ 543same name
    3. guaardvark/guaardvark★ 296same name
    4. g2i-ai/agents★ 52same name
    5. phj128/autoworker★ 18same name
    6. LuD1161/codex-review-skill★ 8same name
    7. DongDuong2001/pudo-code-system★ 5same name
    8. hsiong/project-skills★ 4same name
    9. garthcodes/claude-skills★ 2same name
    10. AndreiCocan/skills★ 1same name

    9 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.

  • Used alongsideProjects with it also use test, plan and 1 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.
    • Microsoft AzureSkill

      test

      Also in 3 projects that use this

    • BlockSkill

      plan

      Draft a TDD, PRD, or lightweight plan in the conversation without committing it.

      Also in 3 projects that use this

    • GoogleSkill

      tdd

      Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.

      Also in 3 projects that use this

  • In this repository19 other files it gives its agents.

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.