Claude Code Plugins

Community-maintained marketplace

Feedback

readme-generator

@bug-ops/claude-skills
1
0

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.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name readme-generator
description 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.

README Generator

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

Quick Reference

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

GitHub Callouts

[!IMPORTANT] Use GitHub callouts in generated READMEs to highlight critical information. They render beautifully on GitHub.

Callout Types

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.

When to Use Each Callout

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"

Callout Placement in README

Place callouts strategically:

  1. After Installation — compatibility warnings, system requirements
  2. In Usage section — tips for common patterns, important gotchas
  3. Before Breaking Changes — migration notes, deprecation warnings
  4. In Configuration — dangerous options, security considerations

Examples in Generated READMEs

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

Workflow

1. Detect Project Type

# 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
    • Has [[bin]] or src/main.rs → CLI tool (use references/rust-cli.md)
    • Otherwise → Library (use references/rust-library.md)
  • package.json exists → JavaScript/TypeScript
    • tsconfig.json exists → TypeScript (use references/typescript.md)
    • Otherwise → JavaScript (use references/typescript.md)
  • pyproject.toml or setup.py → Python (use references/python.md)

2. Gather Project Context

[!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

3. Load Template

After detecting project type, read the appropriate reference file:

  • Rust library → Read references/rust-library.md
  • Rust CLI → Read references/rust-cli.md
  • TypeScript/JavaScript → Read references/typescript.md
  • Python → Read references/python.md

4. Generate README

[!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:

  1. Hero section (required)

    • Project name as H1
    • One-line description (from package metadata)
    • Badge row (ecosystem-specific)
  2. Visual hook (highly recommended)

    • GIF/screenshot demo if exists in assets/, docs/, or images/
    • Terminal recording for CLI tools
  3. Installation (required)

    • Ecosystem-appropriate commands
    • Multiple package managers for CLI tools
  4. Usage/Examples (required)

    • Runnable code snippets
    • Common use cases
  5. Features (recommended)

    • Bullet list of key capabilities
  6. API/Configuration (if applicable)

    • For libraries: key types and functions
    • For CLI: command-line arguments
    • For services: environment variables
  7. Contributing (recommended)

    • Link to CONTRIBUTING.md if exists
    • Basic guidelines otherwise
  8. License (required)

    • License name with link to LICENSE file

5. Improve Existing README

[!NOTE] When improving, preserve existing custom sections and contribution acknowledgments. Don't overwrite user's content.

When improving an existing README:

  1. Audit current state:

    cat README.md
    
  2. Check against requirements:

    • Missing essential sections?
    • Outdated badges?
    • No code examples?
    • Wall of text without structure?
  3. Common improvements:

    • Add missing badges
    • Add installation section if missing
    • Add usage examples if missing
    • Break up long paragraphs
    • Add table of contents if >500 words
    • Update outdated version numbers
  4. Preserve existing content:

    • Keep custom sections
    • Maintain existing links
    • Preserve contribution history acknowledgments

Badge Reference

See references/badges.md for complete badge syntax by ecosystem.

Quick reference:

<!-- Rust -->
[![Crates.io](https://img.shields.io/crates/v/CRATE)](https://crates.io/crates/CRATE)
[![docs.rs](https://img.shields.io/docsrs/CRATE)](https://docs.rs/CRATE)

<!-- TypeScript/npm -->
[![npm](https://img.shields.io/npm/v/PACKAGE)](https://www.npmjs.com/package/PACKAGE)
[![Bundle Size](https://img.shields.io/bundlephobia/minzip/PACKAGE)](https://bundlephobia.com/package/PACKAGE)

<!-- Python -->
[![PyPI](https://img.shields.io/pypi/v/PACKAGE)](https://pypi.org/project/PACKAGE)
[![Python](https://img.shields.io/pypi/pyversions/PACKAGE)](https://pypi.org/project/PACKAGE)

Quality Checklist

Before completing, verify:

  • One-line description is clear and specific
  • Badges are valid and ecosystem-appropriate
  • Installation commands are copy-pasteable
  • At least one runnable code example
  • License is specified
  • No broken links
  • No placeholder text remaining
  • Callouts used for warnings, tips, and important notes
  • Callouts placed after relevant sections (not floating)

Anti-patterns to Avoid

[!CAUTION] These mistakes make READMEs significantly worse. Check against this list before completing.

  • Wall of text without headers
  • Generic descriptions ("A tool for doing things")
  • Missing installation section
  • No code examples
  • Outdated badges/version numbers
  • Excessive badges (>6 is usually too many)
  • TOC for short READMEs (<300 words)