Generate rigorous, evidence-based README documentation for any software project. Use this skill when the user asks to "create a readme", "generate readme", "write documentation", "生成readme", "写文档", "生成项目文档", or requests README files in any language.
Instalación
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Generate rigorous, evidence-based README documentation for any software project. Use this skill when the user asks to "create a readme", "generate readme", "write documentation", "生成readme", "写文档", "生成项目文档", or requests README files in any language.
version
2.0.0
argument-hint
[language: <locale>]
user-invocable
true
allowed-tools
["Read","Glob","Grep","Bash","Write"]
README Generator
Generate polished, reader-centric README documentation from actual repository contents.
README Quality Rubric
Before generating, internalize these six criteria. A successful README must satisfy ALL of them. After writing, verify each one (see Verification Pass).
Reader-first journey — The README answers questions a new reader asks, in order:
"What is this?" → "Should I use it?" → "How do I start?" → "Where do I go next?"
The reader is someone who found this repo and wants to know what it does and how to use it in under 5 minutes.
Evidence-backed — Every feature, command, endpoint, version number, and architectural claim is traceable to a file in the repository. If the evidence is ambiguous, omit the claim.
Actionable — Every command shown is exact and verifiable from build files or scripts. Every configuration key documents its purpose. The reader can copy-paste and run.
Scannable — Skimming headers alone tells the story. Code blocks are minimal (≤10 lines). Technical details have a home (API table, config reference) — they are not scattered through narrative paragraphs.
WHAT not HOW — The README describes what the project does and how to use it. Internal implementation details (class hierarchy, algorithm choices, code structure walkthrough) belong in developer docs or CONTRIBUTING.md — not in the README.
Maintainer voice — Reads as if the project maintainer wrote it for a new team member. No AI self-reference ("I scanned", "the model found"), no generic advice ("it is recommended that"), no filler.
Step 1: Understand The Project First
Before scanning files, establish what this project IS and who it's FOR. Read in priority order:
Any existing README (README.md, README.*.md, docs/)
Project description field in manifests (package.json description, pyproject.toml description, pom.xml description, Cargo.toml description, mix.exs description, *.gemspec summary)
Top-level directory layout
Entry-point files (CLI main, server startup, app bootstrap)
From these, answer: what problem does this project solve, and for whom? This answer shapes every section that follows. Do not proceed to scanning until you can state it in one sentence.
Step 2: Choose The Right Structure
Pick the structure that serves THIS project's readers. The sections below are patterns, not mandates — adapt to what the project actually needs.
Pattern A: Library / SDK
For packages consumed by other code.
# Name
One-line: what it does, what problem it solves.
## Installation
## Quick Start (minimal working example: install → import → use)
## Usage (organized by task, not by class/method)
## API Reference (link or compact table)
## Configuration (if any)
## License
Pattern B: Application / Service
For deployable services and applications.
# Name
One-line: what the service does, its role.
## Architecture Overview (if multi-component — keep to 5-9 nodes)
## Prerequisites
## Setup & Installation
## Configuration Reference
## Running
## API (if applicable — compact table: Method | Path | Purpose | Source)
## Operations / Deployment
## License
Pattern C: CLI Tool
For command-line utilities.
# Name
One-line: what the tool does.
## Installation
## Quick Examples (3-5 most common invocations with their output intent)
## Command Reference
## Configuration
## Development
## License
Pattern D: Full-Stack / Monorepo
For projects with both frontend and backend.
# Name
One-line: what the project does.
## Architecture Overview
## Backend
### Prerequisites, Setup, Configuration, Running
## Frontend
### Prerequisites, Setup, Configuration, Running
## Shared / Development Workflow
## Deployment
## License
Structure Principles
Start with what the reader needs to know FIRST. What is it → how to get it running. Everything else supports these two.
A section exists because it answers a real question, not because a template has it. Omit empty sections without comment.
Complex commercial projects need more detail — that's expected. The README should be as long as the project requires and no longer. Do not pad; do not truncate to hit an arbitrary line count.
If the project already has a README with a well-organized structure and visual identity (badges, centered headers, Mermaid diagrams), preserve and update it in place. Do not flatten existing polish into a generic template.
Entry points — main source, server startup, CLI entry, route definitions
Configuration — example config, env templates, config structs/models
Project tree — source layout, test layout, deployment configs
Project Type Detection
Use the following signals to identify the implementation language(s). When multiple languages coexist, identify each one's role (e.g., "Python backend + TypeScript frontend") — do not force a single label.
*.sh with project-scale structure, Makefile-only projects
README handling rules by ecosystem:
Node.js/TS: Detect package manager from lockfile (pnpm-lock.yaml → pnpm, yarn.lock → yarn, package-lock.json → npm, bun.lockb → bun). Extract real scripts from package.json. Separate frontend/backend when both exist.
Python: Detect tooling (uv.lock → uv, poetry.lock → Poetry, Pipfile → Pipenv, requirements*.txt → pip). For web frameworks, document the actual run command found in code or scripts.
Java/Kotlin: Detect Maven vs Gradle. Identify framework from dependencies (Spring Boot, Quarkus, Micronaut). Do not read private Spring profile files.
Go: Use module path from go.mod. For CLI tools, include command examples from flag definitions. For services, document routes from explicit router registrations.
Rust: Detect binary vs library from Cargo.toml. Use cargo commands. For CLI, extract help text or arg definitions.
C#/.NET: Use dotnet commands. Identify project type (web, console, library) from .csproj.
Ruby: Detect gem vs Rails app. Use bundle/gem commands accordingly.
PHP: Detect Composer packages vs Laravel/Symfony apps. Use appropriate artisan/console commands.
Elixir: Detect Mix project type. Use mix commands. Identify Phoenix if present.
Dart/Flutter: Detect pure Dart vs Flutter. Use dart/flutter commands accordingly.
Step 4: Content Generation Rules
Overview
2-4 sentences answering: What does this project do? Who is it for? What problem does it solve? Ground in the project description from manifests, existing docs, or entry-point comments.
Do NOT describe the tech stack here, do NOT list features, do NOT say "built with X and Y."
Features
List user-visible capabilities only. Not implementation details.
Each feature: one line describing what it does, not how.
BAD: "Uses Redis for caching" — GOOD: "Fast responses with automatic caching"
BAD: "Implemented with Spring Security" — GOOD: "Role-based access control for admin and user accounts"
Group related features. List only what the project actually has — do not pad.
Tech Stack
A categorized reference table, not narrative prose. Include only categories with evidence:
Category
Technology
Version
Purpose
Runtime
Node.js
22
Server runtime
Keep to one row per distinct technology. Group related items under category headers.
Project Structure
Compact directory tree:
Max depth 3 (deeper only if showing a critical subdirectory)
## Security And Privacy
Default configuration documents the structure needed to run the project. Production keys, passwords, and credentials should be injected through environment variables or private configuration — not committed.
This system handles medical data. Use de-identified data for demos, tests, and screenshots.
License:
If a license file exists, name it accurately and link to it.
If no license file exists, state it factually without legal advice or pressure:
## License
This repository does not currently include a standalone `LICENSE` file. Add an explicit license before public distribution or open-source release.
Step 5: Content Quality Rules
MUST Include
What the project does and who it's for (first 5 lines)
How to install, configure, run, and test (exact, verified commands)
What external dependencies or services are needed
Where to find more (docs, API reference, contributing guide, website)
License status (factual only)
MUST Exclude
Code blocks longer than 10 lines — link to source files instead
Do NOT mix languages within the same file except for code, commands, package names, and standard technical identifiers.
Step 7: Bilingual & Multilingual Generation
Create separate files per language.
Keep structure and facts equivalent across all versions.
Localize naturally — do not machine-translate. Section names, explanations, and notes should sound native in each language.
Code, commands, and technical identifiers remain in their original language.
Support any human language the user requests. If unsure, ask.
Step 8: MANDATORY Verification Pass
After writing the README, perform a second pass. This is NOT optional. Check each item against the generated output, and fix any failures before reporting done.
A. Factual Accuracy
For each claim in the README, trace it to a source file:
Every command (npm run dev, go build, cargo test, etc.) exists in build files, scripts, or Makefile.
Every API endpoint (method + path) was found in source code or an OpenAPI file.
Every version number comes from a manifest or lockfile.
Every external service mentioned (database, cache, queue, third-party API) has corresponding dependency or config evidence.
Architecture node descriptions match source directories or documented modules.
License name matches the actual LICENSE file. If no license file, the README states so without inventing one.
B. Content Integrity
Inspect the generated README line by line:
First 5 lines tell the reader what the project does and who it's for.
No code block exceeds 10 lines.
No log output, error messages, stack traces, or terminal dumps appear.
No AI self-reference anywhere (grep for: "I scanned", "I found", "according to", "the model", "the agent", "the repository shows").
No filler or placeholder content (grep for: "TODO", "TBD", "coming soon", "will be added", "placeholder").
No implementation-detail narrative: class hierarchy, algorithm walkthrough, "the code is organized as follows"-style paragraphs.
C. Structure Quality
Verify the reader's journey:
Every section answers a real reader question. No section exists solely because a template includes it.
Tech stack is a reference table, not narrative prose.
The README would let a new developer clone, configure, and run the project without asking questions.
Existing visual style (badges, centered headers, Mermaid diagrams) is preserved unless explicitly asked to change.
D. Tone
Read the entire README as if you're a new team member:
Consistent voice — same person appears to have written every section.
No hedging ("should work", "may need", "it is recommended", "please note that").
No generic advice divorced from this specific project.
If any check fails, fix it. Do not report the README as complete until all checks pass.