readme-standard
Skill0 starsChanged 12 days agoMITView on GitHub
Creates, audits and fixes project READMEs against one consistent structure (Quick Start, Features, Requirements, Installation, Usage, License plus conditional sections), with badges detected from package.json, csproj, pyproject.toml, go.mod, plugin manifests or SKILL.md, and optional full translations such as README.tr.md. Use when the user asks to create, check, audit, fix, standardize or translate a README, for example "create readme", "audit readme", "fix readme", "sync mirrors", "readme oluştur", "readme kontrol et", "readme düzelt", "tr readme güncelle". Not for the login/login GitHub profile README (use profile-readme) or account-wide repo audits (use gh-audit). Audit mode writes nothing; other modes write only after the user confirms the file list.
3 other projects use a version of this.
Adopted by
Most recently taken up by
- openclaw/agent-skillstheir own version, first seen Nov 8, 2026
- juninmd/skillstheir own version, first seen Nov 1, 2026
- RodrigoSouzaS/claudeSkillstheir own version, first seen Sep 24, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- openclaw/agent-skills★ 1.1ksame name
- juninmd/skills★ 2same name
- RodrigoSouzaS/claudeSkills★ 0same name
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.
In this repository8 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- gh-auditSkill
- gh-normalizeSkill
- gh-onboardSkill
- profile-bioSkill
- profile-readmeSkill
- release-workflowSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
18 rules. 0 are common, 14 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
14
Distinctive
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
- could be automatic: a setting could enforce it
- Very specific: line 28
Before Create or Fix, check whether README.md is produced by a tool: a marker in the first lines (Generated, auto-generated, DO NOT EDIT, …
- Very specific: line 77
Only for codes in readme.mirrors or mirrors that already exist.
- Distinctive: line 80
All prose and section headings translated.
- Distinctive: line 88
Check the signals during Create and Fix modes.
- Distinctive: line 127
Only Audit mode is read-only.
- Very specific: line 132
Read README.md and every mirror (configured codes plus existing README.*.md translations)
- Distinctive: line 133
Check each rule against references/rules.md
- Distinctive: line 134
Check conditional sections two-way (section↔signal, WARN only — see Conditional sections)
- Distinctive: line 136
Do NOT write any files
- Distinctive: line 146
Write the files to the current directory
- Distinctive: line 148
If README.md already exists, never overwrite it in Create mode: say so and switch to Fix mode.
- Distinctive: line 152
Read existing README.md (required — error if missing)
- Distinctive: line 161
Read README.md (must exist — error if missing)
- Distinctive: line 165
Write the mirror files only
- Distinctive: line 169
Read these files in order (first match wins):
- Very specific: line 183
Package + plugin hybrids: When the repo is a publishable npm, NuGet or PyPI package (a package.json without "private": true, a packable …
- Distinctive: line 193
If no git remote exists, ask the user explicitly.
- Distinctive: line 234
All 5 core sections mandatory in order: Quick Start → Features → Requirements → Installation → Usage.
“Common” is measured: kept by at least 6 in 10 of the 3 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-standard
Configuration
Optional, shared with the rest of the github-manager plugin:
${GITHUB_MANAGER_HOME:-$HOME/.agents/github-manager}/config.json. Keys used here:
| Key | Default | Effect |
language | "en" | language of README.md |
readme.mirrors | [] | language codes; each gets a full translation README.<code>.md |
readme.badges | "auto" | auto, minimal or none (see badge patterns) |
readme.extraSections | [] | project-specific ## sections, placed after Troubleshooting and before Contributing (Rule 10) |
With no config there are no mirrors: write only README.md. A mirror that already exists in the repo but isn't configured is kept and synced in Fix mode; ask before deleting it. User instructions in the conversation override the config ("add a Turkish mirror", "no badges").
Generated READMEs
Before Create or Fix, check whether README.md is produced by a tool: a marker in the first lines
(Generated, auto-generated, DO NOT EDIT, <!-- generated by), a readme script in
package.json, a workflow that writes or checks README.md, or a template (README.tmpl,
docs/README*, scripts/*readme*). If so, edit the source and run the generator instead, or
stop and ask when the source is unclear. Audit mode still reports on the output.
Standard structure
README.md (primary language)
[badges]
[nav line] ← include only if ≥8 sections or ≥200 lines (Rule 14)
# Project Name
One-line description.
[mirror link line] ← include only if mirrors exist (Rule 4), e.g. > 🇹🇷 Türkçe için [README.tr.md](README.tr.md)
[value paragraph] ← include only if published package/product (Rule 20)
---
## Quick Start
## Features ← table form if ≥7 features (Rule 19)
## Requirements
## Installation
### Uninstall ← include only if project installs something persistent
## Usage ← per-command template if CLI/plugin (Rule 21)
## Configuration ← include only if user-facing config exists
## How It Works ← include only if internal mechanics are non-obvious
## Project Structure ← include only for multi-component projects
## Limitations ← include only if known user-facing constraints exist
## Troubleshooting ← include only if predictable failure scenarios exist
## <project-specific> ← optional slot, see Rule 10 (readme.extraSections)
## Contributing ← include only if contributions are accepted
## Community ← include only if community channels exist
## Documentation ← include only if external docs site exists
## License
[footer] ← include only if GitHub repo and ≥200 lines (Rule 23)Section selection is governed by Conditional sections below: a conditional section is included only when its detection signal is present, and is never emitted empty or as a placeholder.
Mirrors (README.<code>.md, optional)
Only for codes in readme.mirrors or mirrors that already exist. Each mirror is a full
translation of README.md:
- Back link right after the translated description (Rule 5), e.g.
> 🇬🇧 For English see [README.md](README.md) - All prose and section headings translated; for Turkish use references/tr-translations.md, for other languages translate consistently
- Badges: identical (same shields.io URLs)
- Code blocks: identical to README.md except comments, which are translated (Rule 6)
- Same section set and order as README.md
Conditional sections
Each optional section has a defined inclusion condition and detection signal. Check the signals during Create and Fix modes; include the section only when the signal is present.
| Section | Placement | Include when | Detection signal |
| Value paragraph | After the description (and mirror link line), before first --- | Published package/product | npm/NuGet/PyPI badge generated; package.json not private |
### Uninstall | Subsection of Installation | Project installs something persistent | global install (-g), installer script, hook/MCP config writes, PATH changes |
| Configuration | After Usage | User-facing config exists | config file schema, env vars, settings file in code |
| How It Works | After Configuration | Internal mechanics non-obvious | multi-step pipeline, background process, index/cache mechanism |
| Project Structure | After How It Works | Multi-component project | multiple top-level modules/packages |
| Limitations | After Project Structure | Known user-facing constraint exists | documented constraint, known issue, platform limit |
| Troubleshooting | After Limitations | Predictable failure scenarios exist | external dependency (gh, docker, API key), auth/network step, multi-step install |
| Contributing | After Troubleshooting | Contributions accepted | CONTRIBUTING.md, public repo + dev/test scripts |
| Community | After Contributing | Community channels exist | Discord/Slack/forum/discussions link |
| Documentation | After Community | External docs site exists | docs URL (homepage field, published docs/) |
| Footer | After License, last element | GitHub repo + README ≥200 lines | git remote is GitHub + line count |
Rules:
- Placement is relative order, not a dependency. The "Placement" column defines the canonical order of the table; "After X" does not require X to exist. When a predecessor is omitted, the section slots in after the nearest present section that precedes it in the table (e.g. if How It Works is omitted, Project Structure goes directly after Configuration — or after Usage if Configuration is also omitted).
- User instruction always overrides detection — "uninstall ekleme" / "skip troubleshooting" removes the section even when the signal is present; "troubleshooting ekle" adds it even without a signal (ask the user for content if none is detectable).
- A conditional section whose condition is not met is omitted entirely — never emitted empty, as "N/A", or as a placeholder (that is a FAIL, Rule 17).
- In Audit mode, conditional sections produce ⚠️ WARN only, never ❌ FAIL:
- section present but signal absent →
⚠️ 'Uninstall' present but project installs nothing persistent - signal present but section missing →
⚠️ Project installs globally; 'Uninstall' section recommended
- section present but signal absent →
- Section names and order are fixed (Rule 11 discipline applies to conditional sections too). Every mirror must contain exactly the same section set.
Mode workflows
Only Audit mode is read-only. Create, Fix and Mirror Sync always show the list of files they will write or overwrite and wait for the user's explicit yes; nothing is written before that.
Audit mode
- Read README.md and every mirror (configured codes plus existing
README.*.mdtranslations) - Check each rule against references/rules.md
- Check conditional sections two-way (section↔signal, WARN only — see Conditional sections)
- Print checklist — ✅ PASS / ❌ FAIL / ⚠️ WARN per rule, with line reference where it fails
- Do NOT write any files
Create mode
- Detect project type and read metadata → see Project type detection below
- Evaluate conditional section signals → see Conditional sections (user instructions override)
- Build badge line → see references/badge-patterns.md
- Generate README.md from assets/templates/README.md.tmpl — for CLI/plugin projects build Usage from assets/templates/usage-cli-command.tmpl
- For each configured mirror, generate
README.<code>.md(Turkish: assets/templates/README.tr.md.tmpl; other languages: same structure, translated) - List the files that will be written and which of them already exist, then wait for an explicit yes
- Write the files to the current directory
If README.md already exists, never overwrite it in Create mode: say so and switch to Fix mode.
Fix mode
- Read existing README.md (required — error if missing)
- Detect project type and read metadata
- Evaluate conditional section signals → see Conditional sections (user instructions override; add sections whose signal is present, remove sections whose condition cannot be met)
- Rewrite README.md: remap existing content to correct sections, apply all rules
- Regenerate each mirror (configured or already present) as a full translation of the new README.md
- List the files that will be overwritten and wait for an explicit yes before writing
Mirror Sync mode
- Read README.md (must exist — error if missing)
- For each configured or existing mirror (or only the language the user names), translate fully; Turkish follows references/tr-translations.md
- List the mirror files that will be written or overwritten and wait for an explicit yes
- Write the mirror files only
Project type detection
Read these files in order (first match wins):
| File | Project type | Extract |
.claude-plugin/plugin.json or .codex-plugin/plugin.json | Agent plugin (unless a publishable package manifest also exists, see below) | name, description, version; list skills/*/SKILL.md for Usage |
package.json with @modelcontextprotocol/sdk dependency, or server.json | MCP server (npm) | name, description, version, bin; list tools for an ## MCP Tools section |
package.json + next.config.* / vite.config.* / astro.config.* | Web app / site | name, scripts (dev, build); usually "private": true, no registry badge |
package.json | npm package | name, description, version, repository.url, bin |
go.mod | Go module / CLI | module path; binary name from cmd/<name>/; version from git tags |
*.csproj | NuGet package | <PackageId> or <AssemblyName>, <Version>, <Description> |
pyproject.toml | Python package | [project] name, version, description; MCP server if it depends on mcp |
SKILL.md (root or single skills/<name>/) | Agent skill | name, description frontmatter fields |
| No match | Generic/library | directory name + git remote |
Package + plugin hybrids. When the repo is a publishable npm, NuGet or PyPI package (a
package.json without "private": true, a packable *.csproj, or a pyproject.toml with a
version) and also ships an agent plugin or skill layer, the package type wins: detect it as the
package, put its registry badges first, and treat the plugin as a feature (mention it in Features
and Usage). The agentskills.io badge is optional there, placed after the package badges.
A private app (private repo, no publishable manifest) still gets the core sections; Installation then means local setup (clone, env vars, run).
GitHub username and repo: git remote get-url origin → parse from URL.
If no git remote exists, ask the user explicitly.
Monorepo / multiple manifests (tiebreakers):
- A manifest at the repo root always beats one in a subdirectory.
- Multiple different manifest types at the root → the table order above
decides (
package.jsonbeatspyproject.toml, etc.). - Multiple same-type manifests in subdirectories and none at the root → the README is being written for the repo, not one package: use the directory name + git remote (Generic) and ask the user which package, if any, should drive the badges.
Badge generation
Exact markdown for each type: references/badge-patterns.md
| Project type | Badges |
| NuGet package | NuGet version + downloads + license |
| npm package / MCP server (npm) | npm version + license |
| Python package | PyPI version + Python versions + license |
| Go module / CLI | Go Reference + GitHub release + license |
| Agent plugin / agent skill | GitHub release + license + agentskills.io (no host-specific badge) |
| Package that also ships a plugin | the package's registry badges first + license; agentskills.io optional, last |
| CLI tool (not an agent skill) | GitHub release + license (+ registry badge if published) |
| Web app / private app | license only (or none with readme.badges: none) |
| Generic | GitHub release + license |
Key rules summary
Full rules with correct/wrong examples: references/rules.md
- No
**EN:** ... **TR:** ...inline bilingual patterns — ever - Quick Start is always the FIRST section after the description (and mirror link line)
- Quick Start: install command + minimal working example, ≤15 lines total
- (mirrors) One mirror link line in README.md after the description, e.g.
> 🇹🇷 Türkçe için [README.tr.md](README.tr.md) - (mirrors) Back link in each mirror, e.g.
> 🇬🇧 For English see [README.md](README.md) - (mirrors) Code blocks stay identical — commands, paths, prompts, trees, output — only comments are translated
- Tables: monolingual, one language per file
- Section heading emojis: only if the project already uses them consistently
- License section: always last
##section —<SPDX id> — see [LICENSE](LICENSE). - All 5 core sections mandatory in order: Quick Start → Features → Requirements → Installation → Usage; project-specific sections go in one slot after Troubleshooting, before Contributing
- Section names must match exactly — approved aliases only: "Commands" (CLI/plugin) and "Get Started" (multi-step install)
---horizontal rule between every##section (blank line above and below)- Description is plain text, one line — no blockquote (
>), no multi-paragraph - Nav line below badges when ≥8 sections or ≥200 lines — max 6 anchor links,
•separator - Troubleshooting =
**Symptom** — solutionpattern; Limitations = constraint + reason + workaround <details>only for secondary depth (alternative paths, methodology) — primary path never collapsed- Conditional sections: omit entirely when condition unmet — empty/placeholder sections are FAIL
- Callouts: only
> **⚠️ Important:**,> **Note:**,> **Heads up:**— no freeform variants - Features: 2-column table mandatory at ≥7 features, recommended at ≥4 — never mix table and bullets
- Value paragraph (≤4 sentences, bold opener) after the description — only for published packages/products
- CLI/plugin Usage: command cheat-sheet block + per-command
###subsections - Hero block / banner / demo GIF only if visual assets exist in
assets/ - Footer (
Report Bug · Request Feature, centered) after License — GitHub repos ≥200 lines only
Section heading translations
Turkish mirrors: references/tr-translations.md. Other languages: translate the same headings once and reuse them across all files of that language.
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.

