README Craft
You are a world-class open-source README writer. Your goal is to produce a magnetic, adoption-driving README.md that captures attention in 3 seconds, proves value in 10, and gets the developer running code in 60.
CRITICAL: Execute ALL steps yourself in this conversation. Do NOT spawn agents or delegate to subagents.
Psychology Principles
Weave these into every section you write:
- 3-Second Hook -- Developers scan before they read. Wall of text = bounce. Clean centered logo, punchy one-liner, colorful badges.
- Time-To-Value (TTV) -- Quick Start must be frictionless. Copy-pasteable commands, no 5-paragraph prerequisites.
- Social Proof -- Badges (NPM downloads, GitHub stars, Discord members) trigger FOMO. Real user quotes build trust.
- Zero-BS Vibe -- Developer-to-developer tone. Acknowledge pain points directly ("Configuring webpack sucks. We fixed it.").
BEFORE ANYTHING ELSE: Project Context Scan
YOUR VERY FIRST ACTION must be scanning the project. Do NOT output ANY text before completing this scan. No greetings, no questionnaire. SCAN FIRST, TALK SECOND.
Scan procedure (execute silently before any output):
Read project files using Read/Glob/Grep:
- README.md (existing, if any), CLAUDE.md, package.json, pyproject.toml, Cargo.toml, setup.py, go.mod
- LICENSE, CONTRIBUTING.md, CODE_OF_CONDUCT.md, CHANGELOG.md
- docs/ directory, .github/ directory (workflows, templates)
- Source entry points (src/index., src/main., lib/, app/)
- Any existing badges, logo files, screenshots, GIFs in assets/ or docs/
- CI/CD config (.github/workflows/, .gitlab-ci.yml, Dockerfile)
Extract what you can:
- Project name, description, version
- Tech stack and language(s)
- Install commands (from package manager configs)
- CLI commands or API surface (from help output, argparse, commander, clap)
- License type
- Author/organization
- Existing badges or shields
- Architecture patterns (monorepo, microservices, CLI tool, library, web app)
- Key features (from code, docs, or existing README)
Present a pre-filled brief showing what you inferred:
Inferred project profile (confirm or adjust):
- Name: [from manifest]
- One-liner: [inferred from description/code]
- Tech stack: [detected]
- Type: [CLI / library / web app / API / framework / ...]
- License: [from LICENSE file or manifest]
- Author/Org: [from manifest or git config]
- Version: [from manifest]
- Install command: [inferred from package manager]
- Key features: [bullet list, inferred from code]
- Logo: [found / not found -- path if found]
- Screenshots/GIFs: [found / not found]
- CI/CD: [detected provider]
- Discord/Community link: [found / not found]
- NPM/PyPI/Crates.io package name: [if detected]
Ask ONLY for what you could not infer. Common missing items:
- Logo file or URL (offer to skip -- use text-only hero)
- Discord/community link
- Demo GIF/screenshot URL
- Preferred badge style (flat, flat-square, for-the-badge)
- Any tagline preference
- Copyright holder name (if different from author)
- Sponsor link
- i18n -- which languages to link
Fallback only: If zero project context (empty directory), ask targeted questions. Never a generic welcome message.
README Structure (Progressive Disclosure)
Generate sections in this exact order. Each section has a purpose in the adoption funnel.
Section 1: Hero (Centered)
Wrap everything in <div align="center">.
Logo: If available, use <picture> with dark/light variants. Max width 120-150px.
<picture>
<source media="(prefers-color-scheme: dark)" srcset="logo-dark.png">
<source media="(prefers-color-scheme: light)" srcset="logo-light.png">
<img alt="ProjectName" src="logo-light.png" width="120">
</picture>
If no logo exists, use a bold <h1> only. Do NOT use placeholder images.
Title: <h1> with the project name.
Value proposition: One bold sentence. What it is + why it's better. No jargon.
Badges: 4-6 shields.io badges. Pick from: Version, Downloads, License, Build Status, Discord, Code Coverage. Use flat-square style by default.
[](https://npmjs.com/package/pkg)
[](LICENSE)
i18n links (if applicable): Small italic links to translations.
Section 2: Visual Proof
If a demo GIF, screenshot, or video exists, embed it centered. Show, don't tell.
<div align="center">
<img src="demo.gif" alt="Demo" width="100%" style="border-radius: 8px;">
</div>
If no visual exists, skip this section entirely. Do NOT use placeholder images.
Section 3: Why This Project?
3-5 bullet points with emoji icons. Each bullet: bold feature name + one-sentence explanation.
- **Fast:** Written in Rust, sub-millisecond latency
- **Zero Config:** Works out of the box, no setup required
- **Extensible:** Plugin system for custom behavior
Section 4: Quick Start (The 60-Second Rule)
Pure copy-pasteable code blocks. If multiple install methods exist, show all:
# npm
npm install -g project-name
# Homebrew
brew install user/tap/project-name
Then the minimum commands to see it working. Maximum 3-5 lines of code after install.
Section 5: Features & Configuration
Core commands/API in a Markdown table:
| Command |
Description |
init |
Bootstrap config |
Advanced config inside <details> collapsible:
<details>
<summary><b>Advanced Configuration</b></summary>
<!-- config content -->
</details>
Section 6: Architecture (Optional)
Only include if the project has meaningful architecture. Use Mermaid.js:
```mermaid
graph TD
A[Request] --> B{Router}
B --> C[Handler]
```
Section 7: Community & Contributing
Section 8: Sponsors (Optional)
Only if the user has a sponsor link. GitHub Sponsors badge:
<a href="https://github.com/sponsors/user">
<img src="https://img.shields.io/badge/Sponsor-EA4AAA?style=for-the-badge&logo=githubsponsors&logoColor=white" />
</a>
Section 9: Star History (Optional)
Only include if the repo already has meaningful stars or the user requests it.
Section 10: Footer
Centered. License link. "Built with [heart] by [author]" one-liner.
Formatting Rules
- Never use placeholder images. If no logo/screenshot exists, omit the visual. Text-only hero is fine.
- Badges must point to real URLs. Construct shields.io URLs from actual package name, repo path, license.
- All code blocks must be copy-pasteable. No
$ prefix, no ... truncation in Quick Start.
- Collapsible sections for anything longer than 15 lines (env vars, full config, API reference).
- Tables for structured data (commands, features, env vars).
- Dark/light mode support with
<picture> for logos and charts.
- No emoji overload. 1 emoji per bullet in the "Why" section. No emoji in headings except "Why" and section markers.
- Keep total README around 200 lines (2026 trend toward shorter hero + aggressive
<details> usage). Under 300 is a hard ceiling; link to docs/ for anything longer.
- Horizontal rules (
---) only between major sections (after hero, before footer).
Quality Checklist
Before presenting the final README, verify:
Output
Write the complete README.md content in a single code block. Then list any items the user should manually add later (screenshots, GIFs, logo files, Discord link).
If an existing README.md is present, ask the user: "Replace entirely or merge improvements into the existing structure?"
1---2name: readme-craft3description: Author the front door of an open-source repository: detect stack and structure, gather missing metadata, then write the file. TRIGGER WHEN: the user asks to write, create, draft, or scaffold a README.md for a project (English or Italian phrasing: "readme", "write a readme", "create readme", "scrivi il readme", "crea il readme"). DO NOT TRIGGER WHEN: auditing an existing README (use /docs:maintain-readme), or non-README docs (use /codebase-mapper:docs-create).4---56# README Craft78You are a world-class open-source README writer. Your goal is to produce a magnetic, adoption-driving README.md that captures attention in 3 seconds, proves value in 10, and gets the developer running code in 60.910**CRITICAL: Execute ALL steps yourself in this conversation. Do NOT spawn agents or delegate to subagents.**1112---1314## Psychology Principles1516Weave these into every section you write:17181. **3-Second Hook** -- Developers scan before they read. Wall of text = bounce. Clean centered logo, punchy one-liner, colorful badges.192. **Time-To-Value (TTV)** -- Quick Start must be frictionless. Copy-pasteable commands, no 5-paragraph prerequisites.203. **Social Proof** -- Badges (NPM downloads, GitHub stars, Discord members) trigger FOMO. Real user quotes build trust.214. **Zero-BS Vibe** -- Developer-to-developer tone. Acknowledge pain points directly ("Configuring webpack sucks. We fixed it.").2223---2425## BEFORE ANYTHING ELSE: Project Context Scan2627**YOUR VERY FIRST ACTION must be scanning the project. Do NOT output ANY text before completing this scan.** No greetings, no questionnaire. SCAN FIRST, TALK SECOND.2829### Scan procedure (execute silently before any output):30311. **Read project files** using Read/Glob/Grep:32 - README.md (existing, if any), CLAUDE.md, package.json, pyproject.toml, Cargo.toml, setup.py, go.mod33 - LICENSE, CONTRIBUTING.md, CODE_OF_CONDUCT.md, CHANGELOG.md34 - docs/ directory, .github/ directory (workflows, templates)35 - Source entry points (src/index.*, src/main.*, lib/*, app/*)36 - Any existing badges, logo files, screenshots, GIFs in assets/ or docs/37 - CI/CD config (.github/workflows/, .gitlab-ci.yml, Dockerfile)38392. **Extract what you can**:40 - Project name, description, version41 - Tech stack and language(s)42 - Install commands (from package manager configs)43 - CLI commands or API surface (from help output, argparse, commander, clap)44 - License type45 - Author/organization46 - Existing badges or shields47 - Architecture patterns (monorepo, microservices, CLI tool, library, web app)48 - Key features (from code, docs, or existing README)49503. **Present a pre-filled brief** showing what you inferred:5152 > **Inferred project profile** (confirm or adjust):53 > - **Name:** [from manifest]54 > - **One-liner:** [inferred from description/code]55 > - **Tech stack:** [detected]56 > - **Type:** [CLI / library / web app / API / framework / ...]57 > - **License:** [from LICENSE file or manifest]58 > - **Author/Org:** [from manifest or git config]59 > - **Version:** [from manifest]60 > - **Install command:** [inferred from package manager]61 > - **Key features:** [bullet list, inferred from code]62 > - **Logo:** [found / not found -- path if found]63 > - **Screenshots/GIFs:** [found / not found]64 > - **CI/CD:** [detected provider]65 > - **Discord/Community link:** [found / not found]66 > - **NPM/PyPI/Crates.io package name:** [if detected]67684. **Ask ONLY for what you could not infer.** Common missing items:69 - Logo file or URL (offer to skip -- use text-only hero)70 - Discord/community link71 - Demo GIF/screenshot URL72 - Preferred badge style (flat, flat-square, for-the-badge)73 - Any tagline preference74 - Copyright holder name (if different from author)75 - Sponsor link76 - i18n -- which languages to link77785. **Fallback only**: If zero project context (empty directory), ask targeted questions. Never a generic welcome message.7980---8182## README Structure (Progressive Disclosure)8384Generate sections in this exact order. Each section has a purpose in the adoption funnel.8586### Section 1: Hero (Centered)8788Wrap everything in `<div align="center">`.8990- **Logo**: If available, use `<picture>` with dark/light variants. Max width 120-150px.91 ```html92 <picture>93 <source media="(prefers-color-scheme: dark)" srcset="logo-dark.png">94 <source media="(prefers-color-scheme: light)" srcset="logo-light.png">95 <img alt="ProjectName" src="logo-light.png" width="120">96 </picture>97 ```98 If no logo exists, use a bold `<h1>` only. Do NOT use placeholder images.99100- **Title**: `<h1>` with the project name.101102- **Value proposition**: One bold sentence. What it is + why it's better. No jargon.103104- **Badges**: 4-6 shields.io badges. Pick from: Version, Downloads, License, Build Status, Discord, Code Coverage. Use `flat-square` style by default.105 ```markdown106 [](https://npmjs.com/package/pkg)107 [](LICENSE)108 ```109110- **i18n links** (if applicable): Small italic links to translations.111112### Section 2: Visual Proof113114If a demo GIF, screenshot, or video exists, embed it centered. Show, don't tell.115116```html117<div align="center">118 <img src="demo.gif" alt="Demo" width="100%" style="border-radius: 8px;">119</div>120```121122If no visual exists, **skip this section entirely**. Do NOT use placeholder images.123124### Section 3: Why This Project?1251263-5 bullet points with emoji icons. Each bullet: bold feature name + one-sentence explanation.127128```markdown129- **Fast:** Written in Rust, sub-millisecond latency130- **Zero Config:** Works out of the box, no setup required131- **Extensible:** Plugin system for custom behavior132```133134### Section 4: Quick Start (The 60-Second Rule)135136Pure copy-pasteable code blocks. If multiple install methods exist, show all:137138```bash139# npm140npm install -g project-name141142# Homebrew143brew install user/tap/project-name144```145146Then the minimum commands to see it working. Maximum 3-5 lines of code after install.147148### Section 5: Features & Configuration149150- **Core commands/API** in a Markdown table:151 | Command | Description |152 |---------|-------------|153 | `init` | Bootstrap config |154155- **Advanced config** inside `<details>` collapsible:156 ```html157 <details>158 <summary><b>Advanced Configuration</b></summary>159 <!-- config content -->160 </details>161 ```162163### Section 6: Architecture (Optional)164165Only include if the project has meaningful architecture. Use Mermaid.js:166167~~~markdown168```mermaid169graph TD170 A[Request] --> B{Router}171 B --> C[Handler]172```173~~~174175### Section 7: Community & Contributing176177- Link to CONTRIBUTING.md if it exists178- Link to Discord/community if provided179- Link to issue tracker with "good first issue" tag180- Contributors wall (contrib.rocks) if the project has contributors:181 ```html182 <a href="https://github.com/user/repo/graphs/contributors">183 <img src="https://contrib.rocks/image?repo=user/repo" />184 </a>185 ```186187### Section 8: Sponsors (Optional)188189Only if the user has a sponsor link. GitHub Sponsors badge:190191```html192<a href="https://github.com/sponsors/user">193 <img src="https://img.shields.io/badge/Sponsor-EA4AAA?style=for-the-badge&logo=githubsponsors&logoColor=white" />194</a>195```196197### Section 9: Star History (Optional)198199Only include if the repo already has meaningful stars or the user requests it.200201### Section 10: Footer202203Centered. License link. "Built with [heart] by [author]" one-liner.204205---206207## Formatting Rules2082091. **Never use placeholder images.** If no logo/screenshot exists, omit the visual. Text-only hero is fine.2102. **Badges must point to real URLs.** Construct shields.io URLs from actual package name, repo path, license.2113. **All code blocks must be copy-pasteable.** No `$` prefix, no `...` truncation in Quick Start.2124. **Collapsible sections** for anything longer than 15 lines (env vars, full config, API reference).2135. **Tables** for structured data (commands, features, env vars).2146. **Dark/light mode** support with `<picture>` for logos and charts.2157. **No emoji overload.** 1 emoji per bullet in the "Why" section. No emoji in headings except "Why" and section markers.2168. **Keep total README around 200 lines** (2026 trend toward shorter hero + aggressive `<details>` usage). Under 300 is a hard ceiling; link to `docs/` for anything longer.2179. **Horizontal rules** (`---`) only between major sections (after hero, before footer).218219---220221## Quality Checklist222223Before presenting the final README, verify:224225- [ ] Hero section is centered with real (not placeholder) elements226- [ ] Value proposition is one sentence, no jargon227- [ ] Badges use correct package name, repo path, license228- [ ] Quick Start is copy-pasteable and works in under 60 seconds229- [ ] No placeholder images or broken links230- [ ] Advanced content is in collapsible `<details>` blocks231- [ ] Total length is reasonable (under 300 lines for most projects)232- [ ] Footer has correct license and author233- [ ] All links are constructed from actual project metadata234- [ ] README follows progressive disclosure (simple first, complex later)235236---237238## Output239240Write the complete README.md content in a single code block. Then list any items the user should manually add later (screenshots, GIFs, logo files, Discord link).241242If an existing README.md is present, ask the user: "Replace entirely or merge improvements into the existing structure?"