readme-writer
Skill0 starsChanged 7 days agoMITView on GitHub
Use when creating or updating a README, or whenever a change affects how a project is installed, configured, run, tested or deployed. Owns the README contract, the per-stack quickstart blocks (Python venv, notebooks, Node, static site, Azure web app, Docker, infrastructure as code) and the rule that every documented command must be executed before it is written down.
- Installs packages
We split this skill into the rules it gives an agent
4 rules. 0 are common, 4 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 17 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Run the commands: Every line in Quickstart, Usage and Development gets executed in the terminal before it goes in the file.
- Distinctive: line 24
Keep it short. A single-script project has a README of about 40 lines.
- Distinctive: line 47
Verify, from a clean state, in the terminal:
- Distinctive: line 89
Every command can be pasted without editing, except values that are genuinely per-user (an API key, a subscription ID).
“Common” is measured: kept by at least 6 in 10 of the 17 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.
Files
README writer
A README is a contract with a stranger holding a fresh clone and no context. It succeeds only if they get to a running project without asking a question.
Operating rules
- Start from
templates/README.template.md. Same sections, same order. Do not improvise a structure. - Every placeholder gets a real value. No
<project name>, noTODO, no "coming soon". If a section does not apply, write one line saying so and why, for example "No configuration. The script takes everything from the command line." - Run the commands. Every line in Quickstart, Usage and Development gets executed in the terminal before it goes in the file. This is the whole point of the skill.
- Read the code for the real values. Entry point filename, the actual CLI flags from
the argparse block, the env vars the code reads, the port the server binds, the Python
version in
.python-versionorpyproject.toml. Never write these from memory. - Both platforms for activation. macOS/Linux and Windows PowerShell, always.
- Keep it short. A single-script project has a README of about 40 lines. Length is not thoroughness.
- No em dashes.
Workflow
Creating a README
Establish the facts. Do not guess any of them:
python3 --version node --version 2>/dev/null ls -a # what is actually in the root cat pyproject.toml requirements.txt package.json 2>/dev/null grep -n "argparse\|add_argument\|os.environ\|getenv" -r . --include=*.py | head -30- Copy
templates/README.template.mdtoREADME.md. - Paste the matching block from
templates/quickstart/into the Quickstart section, then substitute the real values into it. - Fill the rest of the sections. Delete optional sections that do not apply rather than leaving them empty.
Verify, from a clean state, in the terminal:
python3 scripts/readme_check.py- Then actually walk it. The high-value check is deleting
.venv/and running the quickstart start to finish. Do it whenever the setup story changed.
Updating a README
Triggered by: a new dependency, a new env var, a renamed entry point, a new test command, a changed port, a new deploy step, a bumped language version.
Change the affected lines and re-run them. Do not rewrite sections you did not touch.
The contract
Required sections, in this order:
| Section | Must contain |
# Name | Then one paragraph, plain English, what it does and for whom. No preamble. |
## Requirements | Exact versions, and how to check each one. |
## Quickstart | Clone to running, copy-pasteable, both platforms. Ends with what success looks like. |
## Usage | The real invocations with real arguments, and the output shape. |
## Project layout | A table or tree of the files that matter. Not every file. |
## Configuration | Every env var: name, what it does, default, required or not. Or "None". |
## Development | Tests, lint, formatting. The exact commands. |
Optional, in this order after the above: ## Deployment, ## How it works,
## Troubleshooting, ## Roadmap, ## License.
## Troubleshooting earns its place the moment you hit an error while verifying. If the
setup broke for you, it will break for them. Write down the error text and the fix.
Quickstart quality bar
A quickstart passes if all of these hold:
- It starts from
git cloneand ends with something observable: a URL, a printed line, a written file. - Every command can be pasted without editing, except values that are genuinely per-user (an API key, a subscription ID). Those are visibly marked and explained in Configuration.
- The interpreter or runtime version is stated, and the command to install or check it is given.
- Environment setup is separated from running, so a returning reader can skip to the run.
- It tells the reader what success looks like: "prints
Ready on http://127.0.0.1:8000".
Per-stack blocks
Copy from templates/quickstart/:
| File | Use for |
python-venv.md | Any Python script, CLI or library. |
notebook.md | Jupyter, including kernel registration and output stripping. |
static-site.md | A single HTML page or a plain HTML/CSS/JS site. |
node-web.md | Node, Vite, Next, anything with package.json. |
docker.md | Anything containerised. |
azure-webapp.md | Deployed to Azure App Service or Container Apps. |
iac.md | An infra/ folder in Bicep or Terraform. |
Failure modes seen in the wild
- Documenting
pip install -r requirements.txtwhen the file does not exist. Create the file or change the line. source .venv/bin/activateon a repo whose venv is atenv/. Match reality.pythoninstead ofpython3on macOS, where barepythonis often missing.- A port number that came from a different project.
- A
## Configurationtable listing env vars the code never reads, or missing one it requires and crashes without. - Notebook instructions with no kernel step, so the reader opens a notebook that cannot execute.
- An
npm run devthat is not inpackage.jsonscripts.
Other versions21 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 21
- event-driven-io/emmett★ 558same name
- OneByJorah/VirtOffice★ 23same name
- OneByJorah/offivo★ 17same name
- nseney1/Aegis-Guardrails★ 4same name
- nseney1/Soma-Governance★ 4same name
- shimo4228/claude-harness★ 4same name
- WST2002/claude-code-skills★ 3same name
- guihai24/openskills★ 2same name
- brpaz/agent-skills★ 1same name
- ChenYiming-aaa/readme-writer★ 1same name
11 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 security-audit.
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.
CloudflareSkillsecurity-audit
Security guidance and vulnerability review for codebases, APIs, services, CLI tools, libraries, and daemons. Use for security questions, focused reviews, vulnerability research, security audits, or pen tests. Run the complete workflow only for explicit codebase audit or pen-test requests, full/comprehensive/end-to-end reviews, or requested report artifacts.
Also in 3 projects that use this
In this repository8 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- design-taste-frontendSkill
- iac-templatingSkill
- project-bootstrapSkill
- spec-firstSkill
- swiftui-expert-skillSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

