agentleFS
sametbrrsametbrr/github-manager/skills/readme-standard/SKILL.md

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

  • Other versions3 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 3

    1. openclaw/agent-skills★ 1.1ksame name
    2. juninmd/skills★ 2same name
    3. 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.

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
  1. Very specific:

    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, …

    line 28
  2. Very specific:

    Only for codes in readme.mirrors or mirrors that already exist.

    line 77
  3. Distinctive:

    All prose and section headings translated.

    line 80
  4. Distinctive:

    Check the signals during Create and Fix modes.

    line 88
  5. Distinctive:

    Only Audit mode is read-only.

    line 127
  6. Very specific:

    Read README.md and every mirror (configured codes plus existing README.*.md translations)

    line 132
  7. Distinctive:

    Check each rule against references/rules.md

    line 133
  8. Distinctive:

    Check conditional sections two-way (section↔signal, WARN only — see Conditional sections)

    line 134
  9. Distinctive:

    Do NOT write any files

    line 136
  10. Distinctive:

    Write the files to the current directory

    line 146
  11. Distinctive:

    If README.md already exists, never overwrite it in Create mode: say so and switch to Fix mode.

    line 148
  12. Distinctive:

    Read existing README.md (required — error if missing)

    line 152
  13. Distinctive:

    Read README.md (must exist — error if missing)

    line 161
  14. Distinctive:

    Write the mirror files only

    line 165
  15. Distinctive:

    Read these files in order (first match wins):

    line 169
  16. Very specific:

    Package + plugin hybrids: When the repo is a publishable npm, NuGet or PyPI package (a package.json without "private": true, a packable …

    line 183
  17. Distinctive:

    If no git remote exists, ask the user explicitly.

    line 193
  18. Distinctive:

    All 5 core sections mandatory in order: Quick Start → Features → Requirements → Installation → Usage.

    line 234

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

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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:

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

SectionPlacementInclude whenDetection signal
Value paragraphAfter the description (and mirror link line), before first ---Published package/productnpm/NuGet/PyPI badge generated; package.json not private
### UninstallSubsection of InstallationProject installs something persistentglobal install (-g), installer script, hook/MCP config writes, PATH changes
ConfigurationAfter UsageUser-facing config existsconfig file schema, env vars, settings file in code
How It WorksAfter ConfigurationInternal mechanics non-obviousmulti-step pipeline, background process, index/cache mechanism
Project StructureAfter How It WorksMulti-component projectmultiple top-level modules/packages
LimitationsAfter Project StructureKnown user-facing constraint existsdocumented constraint, known issue, platform limit
TroubleshootingAfter LimitationsPredictable failure scenarios existexternal dependency (gh, docker, API key), auth/network step, multi-step install
ContributingAfter TroubleshootingContributions acceptedCONTRIBUTING.md, public repo + dev/test scripts
CommunityAfter ContributingCommunity channels existDiscord/Slack/forum/discussions link
DocumentationAfter CommunityExternal docs site existsdocs URL (homepage field, published docs/)
FooterAfter License, last elementGitHub repo + README ≥200 linesgit 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 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

  1. Read README.md and every mirror (configured codes plus existing README.*.md translations)
  2. Check each rule against references/rules.md
  3. Check conditional sections two-way (section↔signal, WARN only — see Conditional sections)
  4. Print checklist — ✅ PASS / ❌ FAIL / ⚠️ WARN per rule, with line reference where it fails
  5. Do NOT write any files

Create mode

  1. Detect project type and read metadata → see Project type detection below
  2. Evaluate conditional section signals → see Conditional sections (user instructions override)
  3. Build badge line → see references/badge-patterns.md
  4. Generate README.md from assets/templates/README.md.tmpl — for CLI/plugin projects build Usage from assets/templates/usage-cli-command.tmpl
  5. For each configured mirror, generate README.<code>.md (Turkish: assets/templates/README.tr.md.tmpl; other languages: same structure, translated)
  6. List the files that will be written and which of them already exist, then wait for an explicit yes
  7. 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

  1. Read existing README.md (required — error if missing)
  2. Detect project type and read metadata
  3. Evaluate conditional section signals → see Conditional sections (user instructions override; add sections whose signal is present, remove sections whose condition cannot be met)
  4. Rewrite README.md: remap existing content to correct sections, apply all rules
  5. Regenerate each mirror (configured or already present) as a full translation of the new README.md
  6. List the files that will be overwritten and wait for an explicit yes before writing

Mirror Sync mode

  1. Read README.md (must exist — error if missing)
  2. For each configured or existing mirror (or only the language the user names), translate fully; Turkish follows references/tr-translations.md
  3. List the mirror files that will be written or overwritten and wait for an explicit yes
  4. Write the mirror files only

Project type detection

Read these files in order (first match wins):

FileProject typeExtract
.claude-plugin/plugin.json or .codex-plugin/plugin.jsonAgent 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.jsonMCP server (npm)name, description, version, bin; list tools for an ## MCP Tools section
package.json + next.config.* / vite.config.* / astro.config.*Web app / sitename, scripts (dev, build); usually "private": true, no registry badge
package.jsonnpm packagename, description, version, repository.url, bin
go.modGo module / CLImodule path; binary name from cmd/<name>/; version from git tags
*.csprojNuGet package<PackageId> or <AssemblyName>, <Version>, <Description>
pyproject.tomlPython package[project] name, version, description; MCP server if it depends on mcp
SKILL.md (root or single skills/<name>/)Agent skillname, description frontmatter fields
No matchGeneric/librarydirectory 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):

  1. A manifest at the repo root always beats one in a subdirectory.
  2. Multiple different manifest types at the root → the table order above decides (package.json beats pyproject.toml, etc.).
  3. 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 typeBadges
NuGet packageNuGet version + downloads + license
npm package / MCP server (npm)npm version + license
Python packagePyPI version + Python versions + license
Go module / CLIGo Reference + GitHub release + license
Agent plugin / agent skillGitHub release + license + agentskills.io (no host-specific badge)
Package that also ships a pluginthe 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 applicense only (or none with readme.badges: none)
GenericGitHub release + license

Key rules summary

Full rules with correct/wrong examples: references/rules.md

  1. No **EN:** ... **TR:** ... inline bilingual patterns — ever
  2. Quick Start is always the FIRST section after the description (and mirror link line)
  3. Quick Start: install command + minimal working example, ≤15 lines total
  4. (mirrors) One mirror link line in README.md after the description, e.g. > 🇹🇷 Türkçe için [README.tr.md](README.tr.md)
  5. (mirrors) Back link in each mirror, e.g. > 🇬🇧 For English see [README.md](README.md)
  6. (mirrors) Code blocks stay identical — commands, paths, prompts, trees, output — only comments are translated
  7. Tables: monolingual, one language per file
  8. Section heading emojis: only if the project already uses them consistently
  9. License section: always last ## section — <SPDX id> — see [LICENSE](LICENSE).
  10. All 5 core sections mandatory in order: Quick Start → Features → Requirements → Installation → Usage; project-specific sections go in one slot after Troubleshooting, before Contributing
  11. Section names must match exactly — approved aliases only: "Commands" (CLI/plugin) and "Get Started" (multi-step install)
  12. --- horizontal rule between every ## section (blank line above and below)
  13. Description is plain text, one line — no blockquote (>), no multi-paragraph
  14. Nav line below badges when ≥8 sections or ≥200 lines — max 6 anchor links, • separator
  15. Troubleshooting = **Symptom** — solution pattern; Limitations = constraint + reason + workaround
  16. <details> only for secondary depth (alternative paths, methodology) — primary path never collapsed
  17. Conditional sections: omit entirely when condition unmet — empty/placeholder sections are FAIL
  18. Callouts: only > **⚠️ Important:**, > **Note:**, > **Heads up:** — no freeform variants
  19. Features: 2-column table mandatory at ≥7 features, recommended at ≥4 — never mix table and bullets
  20. Value paragraph (≤4 sentences, bold opener) after the description — only for published packages/products
  21. CLI/plugin Usage: command cheat-sheet block + per-command ### subsections
  22. Hero block / banner / demo GIF only if visual assets exist in assets/
  23. 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.

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.