| name | readme-standard |
| description | Enforces a consistent README.md + README.tr.md structure across projects.
Use when:
- "readme oluştur" / "create readme" / "yeni readme" → Create mode: generates both README.md and README.tr.md from scratch
- "readme kontrol et" / "audit readme" / "readme'yi incele" → Audit mode: prints a checklist report, writes no files
- "readme düzelt" / "fix readme" / "readme standardize et" / "readme'yi güncelle" → Fix mode: rewrites existing README(s) to match the standard
- "tr readme güncelle" / "sync tr readme" / "türkçe readme güncelle" → TR Sync mode: regenerates README.tr.md only from current README.md
Supports Turkish and English triggers. Reads package.json / .csproj / pyproject.toml / SKILL.md to auto-detect project type, name, version, and description for badge generation.
Standard: README.md is English-only with a TR reference link; README.tr.md is a full Turkish mirror with identical badges and untranslated code blocks.
|
| metadata | {"version":"1.0.0","author":"sametbrr@gmail.com"} |
Standard structure
README.md (English)
[badges]
[nav line] ← include only if ≥8 sections or ≥200 lines (Rule 14)
# Project Name
One-line description.
> 🇹🇷 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
## 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.
README.tr.md (Turkish)
Mirror of README.md with these rules:
- First content line (after badges):
> 🇬🇧 For English see [README.md](README.md)
- All prose and section headings: translated — see references/tr-translations.md
- Badges: identical (same shields.io URLs)
- Code blocks: never translated
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 TR link, 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 names and order are fixed (Rule 11 discipline applies to conditional
sections too). README.tr.md must contain exactly the same section set.
Mode workflows
Audit mode
- Read README.md and README.tr.md (if exists)
- 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
- Generate README.tr.md from assets/templates/README.tr.md.tmpl
- Write both to the current directory
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
- Generate README.tr.md as a full Turkish translation of the new README.md
- Confirm before overwriting existing files: "README.md ve README.tr.md üzerine yazılacak. Devam?"
TR Sync mode
- Read README.md (must exist — error if missing)
- Translate fully to Turkish following references/tr-translations.md
- Overwrite README.tr.md only
Project type detection
Read these files in order (first match wins):
| File | Project type | Extract |
|---|
package.json | npm package | name, description, version, repository.url |
*.csproj | NuGet package | <PackageId> or <AssemblyName>, <Version>, <Description> |
pyproject.toml | Python package | [project] name, version, description |
SKILL.md | Claude Code skill | name, description frontmatter fields |
| No match | Generic/library | directory name + git remote |
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.json beats pyproject.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 + MIT license |
| npm package | npm version + MIT license |
| CLI / skill | GitHub release + MIT + agentskills.io + Claude Code |
| Generic | GitHub release + MIT 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 description + TR link
- Quick Start: install command + minimal working example, ≤15 lines total
- TR link in README.md:
> 🇹🇷 Türkçe için [README.tr.md](README.tr.md)
- EN link in README.tr.md:
> 🇬🇧 For English see [README.md](README.md)
- Code blocks: never translated
- Tables: monolingual — EN-only in README.md, TR-only in README.tr.md
- Section heading emojis: only if the project already uses them consistently
- License section: always last
## section — MIT — see [LICENSE](LICENSE).
- All 5 core sections mandatory in order: Quick Start → Features → Requirements → Installation → Usage
- 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** — solution pattern; 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 TR link — 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
Quick lookup: references/tr-translations.md