Generate and improve README files for software projects. Triggers on: 'create readme', 'generate readme', 'write readme', 'improve readme', 'update readme', 'fix readme', 'readme for this project'. Supports Rust (libraries, CLI tools, services), TypeScript/JavaScript (npm packages), and Python (PyPI packages). Applies ecosystem-specific conventions: badges, installation sections, MSRV for Rust, feature flags documentation.
Generates and improves README files for software projects using ecosystem-specific conventions and best practices.
npx claudepluginhub bug-ops/claude-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/badges.mdreferences/examples.mdreferences/python.mdreferences/rust-cli.mdreferences/rust-library.mdreferences/typescript.mdGenerate professional README files or improve existing ones. Applies ecosystem-specific best practices from 90+ curated examples.
[!IMPORTANT] Always detect project type FIRST before generating. Wrong template = wrong conventions.
| Project Type | Detection | Key Requirements |
|---|---|---|
| Rust library | Cargo.toml + src/lib.rs | crates.io badge, docs.rs, MSRV, feature flags |
| Rust CLI | Cargo.toml + src/main.rs | Multi-platform install (cargo, brew, apt, etc.) |
| TypeScript | package.json + tsconfig.json | npm/yarn/pnpm/bun tabs, bundle size badge |
| Python | pyproject.toml or setup.py | pip/poetry/conda, Python versions badge |
[!IMPORTANT] Use GitHub callouts in generated READMEs to highlight critical information. They render beautifully on GitHub.
Use these callout blocks in generated README files:
> [!NOTE]
> Useful information that users should know, even when skimming content.
> [!TIP]
> Helpful advice for doing things better or more easily.
> [!IMPORTANT]
> Key information users need to know to achieve their goal.
> [!WARNING]
> Urgent info that needs immediate user attention to avoid problems.
> [!CAUTION]
> Advises about risks or negative outcomes of certain actions.
| Callout | Use For | Example |
|---|---|---|
[!NOTE] | Additional context, FYI | "This crate re-exports types from X" |
[!TIP] | Best practices, recommendations | "Use --release for production builds" |
[!IMPORTANT] | Breaking changes, requirements | "Requires Rust 1.70+" |
[!WARNING] | Potential issues, deprecations | "This API will change in v2.0" |
[!CAUTION] | Dangerous operations, data loss | "This command deletes all data" |
Place callouts strategically:
Rust library with MSRV:
## Installation
\`\`\`toml
[dependencies]
my-crate = "1.0"
\`\`\`
> [!IMPORTANT]
> Requires Rust 1.70 or later. See [MSRV policy](#msrv-policy).
CLI tool with destructive command:
## Usage
\`\`\`bash
my-tool clean --all
\`\`\`
> [!CAUTION]
> The `--all` flag removes ALL cached data including user preferences. This cannot be undone.
Library with async feature:
## Features
> [!TIP]
> Enable the `async` feature for non-blocking I/O. Recommended for high-throughput applications.
\`\`\`toml
my-crate = { version = "1.0", features = ["async"] }
\`\`\`
Python package with version requirement:
## Installation
\`\`\`bash
pip install my-package
\`\`\`
> [!WARNING]
> Python 3.8 reaches end-of-life in October 2024. Consider upgrading to Python 3.10+.
# Check for project markers
ls -la Cargo.toml package.json pyproject.toml setup.py tsconfig.json 2>/dev/null
Decision tree:
Cargo.toml exists → Rust project
[[bin]] or src/main.rs → CLI tool (use references/rust-cli.md)references/rust-library.md)package.json exists → JavaScript/TypeScript
tsconfig.json exists → TypeScript (use references/typescript.md)references/typescript.md)pyproject.toml or setup.py → Python (use references/python.md)[!TIP] Extract metadata from project files — don't ask the user for info that's already in Cargo.toml/package.json.
Extract from project files:
Rust:
# Get package info
grep -E "^name|^version|^description|^license|^rust-version" Cargo.toml
# Get features
grep -A 50 "^\[features\]" Cargo.toml | head -50
# Check for binary
grep -E "^\[\[bin\]\]" Cargo.toml || ls src/main.rs 2>/dev/null
TypeScript/JavaScript:
# Get package info
cat package.json | jq '{name, version, description, license, keywords}'
# Check for types
ls src/*.ts tsconfig.json 2>/dev/null
Python:
# From pyproject.toml
grep -E "^name|^version|^description|^license" pyproject.toml
# Or from setup.py
grep -E "name=|version=|description=" setup.py
After detecting project type, read the appropriate reference file:
references/rust-library.mdreferences/rust-cli.mdreferences/typescript.mdreferences/python.md[!WARNING] Never use placeholder text like
[TODO]or<description>in final output. Extract real values or ask user.
Apply the template structure. Essential sections in order:
Hero section (required)
Visual hook (highly recommended)
assets/, docs/, or images/Installation (required)
Usage/Examples (required)
Features (recommended)
API/Configuration (if applicable)
Contributing (recommended)
License (required)
[!NOTE] When improving, preserve existing custom sections and contribution acknowledgments. Don't overwrite user's content.
When improving an existing README:
Audit current state:
cat README.md
Check against requirements:
Common improvements:
Preserve existing content:
See references/badges.md for complete badge syntax by ecosystem.
Quick reference:
<!-- Rust -->
[](https://crates.io/crates/CRATE)
[](https://docs.rs/CRATE)
<!-- TypeScript/npm -->
[](https://www.npmjs.com/package/PACKAGE)
[](https://bundlephobia.com/package/PACKAGE)
<!-- Python -->
[](https://pypi.org/project/PACKAGE)
[](https://pypi.org/project/PACKAGE)
Before completing, verify:
[!CAUTION] These mistakes make READMEs significantly worse. Check against this list before completing.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.