rmdd
Skill1 starsChanged 8 days agoMITView on GitHub
Run ReadMe Driven Development only when explicitly invoked as `$rmdd`. Make a project's code and tests match its current root README and relevant linked documentation without editing those documents. Keep private, local run receipts under `.rmdd/rmdd/` in Git and non-Git projects. Do not invoke for ordinary README reading, writing, reviewing, or discussion.
In this repository23 other files it gives its agents.
- AGENTS.mdAGENTS.md
- aftermath-rewindSkill
- aiconographerSkill
- ask-socratesSkill
- check-project-nameSkill
- goal-checkSkill
- lean-proof-reviewSkill
- parallax-imageSkill
- prior-artSkill
- projectbotSkill
- quiet-uxSkill
- rmdsSkill
- rmdvSkill
- rrr-review-remedy-respondSkill
- soft-skill-creatorSkill
- thought-rigSkill
- todoSkill
- verifier-systemSkill
- what-huhSkill
- what-whatSkill
- write-humanlySkill
- write-plainlySkill
- write-simplified-technical-englishSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. About 0 are common, 10 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use the README as the description of the product we want.
- Distinctive: line 13
Treat the current root README.md and any local documentation it relies on as product intent.
- Distinctive: line 14
Leave those documents untouched.
- Very specific: line 15
Read prior .rmdd/rmdd/ receipts only as execution history.
- Distinctive: line 26
Read the project instructions and the complete root README.
- Very specific: line 34
Keep the returned run_dir for later commands.
- Distinctive: line 41
If it cannot create writable local state, stop before changing project files.
- Distinctive: line 46
Read local documentation linked by the README when it helps define observable behavior.
- Distinctive: line 57
Use reasonable judgment when the README leaves room for a safe, reversible choice.
- Distinctive: line 61
Add or update tests for changed behavior and run the checks that matter for this project.
- Very specific: line 76
Run receipt.py refresh --run-dir <run_dir> before finishing.
- Distinctive: line 86
Keep progress updates to one or two useful sentences.
- Distinctive: line 96
Use plain descriptions instead of a status table for every behavior.
- Very specific: line 106
Use FAILED only when the run itself could not complete.
≈ “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.
Files
ReadMe Driven Development
Use the README as the description of the product we want. Read it, inspect the project, and make the implementation agree with it.
Keep the boundary clear
- Treat the current root
README.mdand any local documentation it relies on as product intent. - Leave those documents untouched. A developer may update them while the run is in progress.
- Read prior
.rmdd/rmdd/receipts only as execution history. The current documentation wins. - Work directly inside
.rmdd/rmdd/. Do not list.rmdd/or inspect.rmdd/rmdv/. - Save authored progress and the final answer. Leave tool output, private reasoning, credentials, and unrelated conversation out of the receipt.
The README can use ordinary prose, links, and examples. It needs no RMDD-specific syntax.
Start a receipt
- Find the project root. Use the Git work-tree root when Git is available. Otherwise, walk upward
to the nearest
README.md. - Read the project instructions and the complete root README.
Resolve
scripts/receipt.pyrelative to this skill. Run it with an available Python 3 interpreter, preferring the project's environment when it has one:receipt.py start --project-root <root> --readme <root>/README.mdKeep the returned
run_dirfor later commands. Mirror the opening progress update with:receipt.py progress --run-dir <run_dir> --message <authored update>
The helper creates the snapshots, Git evidence, local /.rmdd/ exclusion, and starting metadata.
If it cannot create writable local state, stop before changing project files. An exclude warning is
safe to continue past; mention it in the final answer.
Reconcile the project
Read local documentation linked by the README when it helps define observable behavior. Before relying on one, save its starting evidence:
receipt.py document --run-dir <run_dir> --path <document>Compare the complete current documentation with the code and tests. Preserve compatible behavior, implement clear additions and changes, and remove behavior the documentation withdraws. Keep shared or ambiguous code when removal could damage something still intended.
Use reasonable judgment when the README leaves room for a safe, reversible choice. Call out the interpretation afterward. Finish compatible work before raising a narrow blocker that needs a consequential product decision or new authority.
Add or update tests for changed behavior and run the checks that matter for this project. Record useful receipt details as you go:
receipt.py note --run-dir <run_dir> --kind changed --text <path>
receipt.py note --run-dir <run_dir> --kind check --text <command and result>
receipt.py note --run-dir <run_dir> --kind warning --text <warning>For a non-Git project, send the relevant before/after edit evidence to receipt.py evidence on
standard input. Mirror each later user-facing progress update with receipt.py progress in the
same order it appears in chat.
Check the latest save
Run receipt.py refresh --run-dir <run_dir> before finishing. Re-read the root README and every
recorded intent document. If changed_sources is non-empty, reconsider the affected work and rerun
its checks. Keep both README snapshots when the source changed during the run, and never overwrite
or revert the developer's edit.
Inspect the final implementation diff or recorded edits. Confirm that RMDD did not change the root README or any linked intent document.
Talk like a teammate
Keep progress updates to one or two useful sentences. Say what you found, what you are changing, or what needs a decision. Keep receipt mechanics in the receipt unless a failure affects the run.
Make the final answer easy to skim. Cover:
- what changed;
- anything still open and why;
- checks that ran; and
- the receipt location.
Use plain descriptions instead of a status table for every behavior. Skip hashes, pointer rules, Git plumbing, and repeated labels when everything worked. A natural update such as "The formatter now preserves blank lines, and its focused tests pass" carries enough information.
Compose the complete final Markdown, then pass it on standard input to:
receipt.py finish --run-dir <run_dir> --status FINISHEDUse FAILED only when the run itself could not complete. A focused product blocker can remain in a
finished run. If finish catches a newer documentation save, reconcile it, run refresh again,
and rewrite the final answer. Re-read response.md and return that Markdown verbatim.
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.

