
Crafting Readme Files
- 2 installs
- 55 repo stars
- Updated August 4, 2026
- dicklesworthstone/remote_compilation_helper
Generates professional GitHub README files with hero sections, TL;DR, comparison tables, install paths, architecture diagrams, and troubleshooting.
About
Provides a golden README structure, section templates, and anti-patterns for open-source projects, leading with value before installation. A developer uses it when creating or revising a README for a CLI tool, library, or open-source project.
- Golden structure: hero, TL;DR, quick example, reference, support
- Section templates plus a pre-publish checklist and badge reference
Crafting Readme Files by the numbers
- 2 all-time installs (skills.sh)
- Ranked #1,294 of 1,879 Documentation skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/dicklesworthstone/remote_compilation_helper --skill crafting-readme-filesAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2 |
|---|---|
| repo stars | ★ 55 |
| Last updated | August 4, 2026 |
| Repository | dicklesworthstone/remote_compilation_helper ↗ |
What it does
Generates professional GitHub README files with hero sections, TL;DR, comparison tables, install paths, architecture diagrams, and troubleshooting.
Files
Crafting README.md Files for GitHub
Core insight: A README is a sales pitch, onboarding guide, and reference manual compressed into one document. Lead with value, prove with examples, document with precision.
Why This Matters
Most READMEs fail because they:
- Bury the value proposition under installation steps
- Explain what the tool IS instead of what problem it SOLVES
- Lack concrete examples (abstract descriptions don't sell)
- Miss the "quick escape hatch" for impatient users (curl one-liner)
- Don't show how it compares to alternatives
Great READMEs convert scanners into users in under 60 seconds.
---
THE EXACT PROMPT — README Revision
Read the current README.md and dramatically revise it following this structure:
1. Hero section: illustration + badges + one-liner description + curl install
2. TL;DR: "The Problem" + "The Solution" + "Why Use X?" feature table
3. Quick example showing the tool in action (5-10 commands)
4. Design philosophy (3-5 principles with explanations)
5. Comparison table vs alternatives
6. Installation (curl one-liner, package managers, from source)
7. Quick start (numbered steps, copy-paste ready)
8. Command reference (every command with examples)
9. Configuration (full config file example with comments)
10. Architecture diagram (ASCII art showing data flow)
11. Troubleshooting (common errors with fixes)
12. Limitations (honest about what it doesn't do)
13. FAQ (anticipate user questions)
Make it comprehensive but scannable. Use tables for comparisons.
Show, don't tell. Every claim should have a concrete example.
Use ultrathink.---
Golden Structure
1. HERO SECTION (above the fold)
├─ Illustration/logo (centered)
├─ Badges (CI, license, version)
├─ One-liner description
└─ Quick install (curl | bash)
2. TL;DR (sell the value)
├─ The Problem (pain point)
├─ The Solution (what this does)
└─ Why Use X? (feature table)
3. QUICK EXAMPLE (prove it works)
└─ 5-10 commands showing core workflow
4. REFERENCE SECTIONS
├─ Design Philosophy
├─ Comparison vs Alternatives
├─ Installation (multiple paths)
├─ Quick Start
├─ Commands
├─ Configuration
└─ Architecture
5. SUPPORT SECTIONS
├─ Troubleshooting
├─ Limitations
├─ FAQ
├─ Contributing
└─ License---
Section Templates
Hero Section
# tool-name
<div align="center">
<img src="illustration.webp" alt="tool-name - One-line description">
</div>
<div align="center">
[](https://github.com/user/repo/actions/workflows/ci.yml)
[](https://opensource.org/licenses/MIT)
</div>
One-sentence description of what this tool does and its key differentiator.
<div align="center">
<h3>Quick Install</h3>
curl -fsSL https://raw.githubusercontent.com/user/repo/main/install.sh | bash
**Or build from source:**
cargo install --git https://github.com/user/repo.git
</div>TL;DR Section
## TL;DR
**The Problem**: [Specific pain point in 1-2 sentences. Be concrete.]
**The Solution**: [What this tool does to solve it. Action-oriented.]
### Why Use tool-name?
| Feature | What It Does |
|---------|--------------|
| **Feature 1** | Concrete benefit, not abstract capability |
| **Feature 2** | Another specific value proposition |
| **Feature 3** | Quantify when possible (e.g., "<10ms search") |Quick Example
### Quick Example
Initialize (one-time setup)
$ tool init
Core operation
$ tool do-thing --flag value
See results
$ tool show results
The killer feature
$ tool magic --auto
Comparison Table
## How tool-name Compares
| Feature | tool-name | Alternative A | Alternative B | Manual |
|---------|-----------|---------------|---------------|--------|
| Feature 1 | ✅ Full support | ⚠️ Partial | ❌ None | ❌ |
| Feature 2 | ✅ <10ms | 🐢 ~500ms | ✅ Fast | N/A |
| Setup time | ✅ ~10 seconds | ❌ Hours | ⚠️ Minutes | ❌ |
**When to use tool-name:**
- Bullet point of ideal use case
- Another use case
**When tool-name might not be ideal:**
- Honest limitation
- Another case where alternatives winInstallation Section
## Installation
### Quick Install (Recommended)
curl -fsSL https://raw.githubusercontent.com/user/repo/main/install.sh | bash
**With options:**
Auto-update PATH
curl -fsSL https://... | bash -s -- --easy-mode
Specific version
curl -fsSL https://... | bash -s -- --version v1.0.0
System-wide (requires sudo)
curl -fsSL https://... | sudo bash -s -- --system
### Package Managers
macOS/Linux (Homebrew)
brew install user/tap/tool
Windows (Scoop)
scoop bucket add user https://github.com/user/scoop-bucket scoop install tool
### From Source
git clone https://github.com/user/repo.git cd repo cargo build --release cp target/release/tool ~/.local/bin/
Command Reference Pattern
## Commands
Global flags available on all commands:
--verbose # Increase logging --quiet # Suppress non-error output --format json # Machine-readable output
### `tool command`
Brief description of what this command does.
tool command # Basic usage tool command --flag value # With options tool command --help # See all options
Architecture Diagram
## Architecture
┌─────────────────────────────────────────────────────────────────┐ │ Input Layer │ │ (files, API calls, user commands) │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Processing Layer │ │ Component A → Component B → Component C │ └─────────────────────────────────────────────────────────────────┘ │ ┌───────────────────┼───────────────────┐ ▼ ▼ ▼ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │ Storage A │ │ Storage B │ │ Output │ │ - Detail 1 │ │ - Detail 1 │ │ - Format 1 │ │ - Detail 2 │ │ - Detail 2 │ │ - Format 2 │ └──────────────────┘ └──────────────────┘ └──────────────────┘
Troubleshooting Pattern
## Troubleshooting
### "Error message here"
Solution
command to fix it
### "Another common error"
Explanation of why this happens and how to fix it.
Check the state
diagnostic command
Fix it
fix command
Limitations Section
## Limitations
### What tool-name Doesn't Do (Yet)
- **Limitation 1**: Brief explanation, workaround if any
- **Limitation 2**: Why this is out of scope
### Known Limitations
| Capability | Current State | Planned |
|------------|---------------|---------|
| Feature X | ❌ Not supported | v2.0 |
| Feature Y | ⚠️ Partial | Improving |FAQ Pattern
## FAQ
### Why "tool-name"?
Brief etymology or meaning.
### Is my data safe?
Yes/No with explanation. Privacy guarantees.
### Does it work with X?
Compatibility information.
### How do I [common task]?
Command to accomplish it
tool do-thing
---
Critical Rules
1. Lead with value, not installation — TL;DR before Quick Start 2. Curl one-liner above the fold — Impatient users escape hatch 3. Every feature claim needs an example — Show, don't tell 4. Comparison tables beat prose — Scannable > readable 5. Be honest about limitations — Builds trust, saves support time 6. Multiple installation paths — curl, package manager, source 7. Architecture diagrams for complex tools — ASCII art is fine 8. Troubleshooting section is mandatory — Top 5 errors with fixes
---
Anti-Patterns (Avoid)
| Anti-Pattern | Why Bad | Fix |
|---|---|---|
| Installation-first README | Buries value proposition | Lead with TL;DR |
| "This is a tool that..." | Passive, abstract | "Solves X by doing Y" |
| Screenshot-heavy | Breaks, doesn't copy-paste | ASCII + code blocks |
| No examples | Abstract claims don't sell | Every feature → example |
| Hiding limitations | Users discover painfully | Honest Limitations section |
| Single install method | Alienates users | curl + pkg manager + source |
| No troubleshooting | Support burden | Top 5 errors with fixes |
| Outdated badges | Looks abandoned | Remove or keep current |
---
AGENTS.md Blurb Template
For CLI tools, include a condensed reference block:
## tool — Brief Description
One-line description of what it does and key differentiator.
### Core Workflow
1. Initialize
tool init
2. Main operation
tool do-thing
3. View results
tool show
Key Flags
--flag1 # Description --flag2 # Description
Storage
- Location 1: path/to/thing
- Location 2: path/to/other
Notes
- Important caveat 1
- Important caveat 2
This provides AI agents with scannable reference without loading full README.
---
Checklist
Before publishing:
□ Hero section with illustration + badges + one-liner + curl install
□ TL;DR with Problem/Solution/Feature table
□ Quick example (5-10 commands)
□ At least 3 installation methods documented
□ Every command has usage examples
□ Architecture diagram for complex tools
□ Comparison table vs at least 2 alternatives
□ Troubleshooting section (top 5 errors)
□ Honest Limitations section
□ FAQ with 5+ questions
□ All code blocks are copy-paste ready
□ No broken links or badges
□ Consistent terminology throughout
□ Grammar/spelling checked---
Badge Reference
Common badges for GitHub READMEs:
# CI Status
[](https://github.com/USER/REPO/actions/workflows/ci.yml)
# License
[](https://opensource.org/licenses/MIT)
[](https://opensource.org/licenses/Apache-2.0)
# Version/Release
[](https://github.com/USER/REPO/releases)
# Downloads
[](https://github.com/USER/REPO/releases)
# Crates.io (Rust)
[](https://crates.io/crates/CRATE)
# npm (JavaScript)
[](https://www.npmjs.com/package/PACKAGE)
# PyPI (Python)
[](https://pypi.org/project/PACKAGE/)---
Real-World Examples
Study these READMEs for patterns:
| Project | Notable Pattern |
|---|---|
| xf | Comprehensive CLI docs, search deep-dives |
| ripgrep | Benchmarks, comparison tables |
| bat | GIF demos, feature highlights |
| exa | Screenshot galleries, color themes |
| starship | Preset configurations, installation matrix |
| jq | Tutorial progression, manual links |
---
Advanced: Progressive Disclosure for Long READMEs
For READMEs exceeding 1000 lines, use collapsible sections:
<details>
<summary><strong>Advanced Configuration</strong></summary>
Content that most users don't need on first read...
</details>Or link to separate docs:
## Documentation
- [Installation Guide](docs/installation.md)
- [Configuration Reference](docs/configuration.md)
- [API Documentation](docs/api.md)
- [Contributing Guide](CONTRIBUTING.md)Keep the README itself focused on the 80% use case.
Extended Section Templates
Additional templates for specialized README sections.
---
Performance Section
For tools where speed matters:
## Performance
`tool-name` is designed for speed:
| Operation | Time | Notes |
|-----------|------|-------|
| Startup | <50ms | Lazy initialization |
| Search | <10ms | Memory-mapped indices |
| Indexing | 1000 docs/sec | Parallel processing |
### Benchmarks
On a typical workload (10,000 items):
| Operation | tool-name | Alternative A | Alternative B |
|-----------|-----------|---------------|---------------|
| Cold start | 45ms | 230ms | 890ms |
| Warm query | 3ms | 15ms | 120ms |
| Memory (idle) | 12MB | 45MB | 200MB |
*Tested on M2 MacBook Pro, 16GB RAM. Your results may vary.*
### Optimizations
- **Lazy initialization**: Resources compiled on first use
- **Memory-mapped files**: OS-level caching
- **Parallel processing**: Multi-core utilization via rayon
- **Incremental updates**: Only process changed items---
Security Section
For tools handling sensitive data:
## Security
### Your Data Never Leaves Your Machine
`tool-name` is designed with privacy as a non-negotiable:
┌─────────────────────────────────────────────────────────────┐ │ YOUR MACHINE │ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Input │───▶│ Process │───▶│ Output │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ ❌ No network calls │ │ ❌ No telemetry │ │ ❌ No cloud sync │ │ ❌ No API keys required │ └─────────────────────────────────────────────────────────────┘
### What's Stored Where
| Location | Contents | Sensitive? |
|----------|----------|------------|
| `~/.tool/db.sqlite` | Metadata, indices | ⚠️ Yes |
| `~/.tool/cache/` | Temporary files | Low |
| Config file | Settings only | No |
### Secure Deletion
Remove all tool data
rm -rf ~/.tool/
Verify removal
ls ~/.tool/ # Should not exist
---
Data Model Section
For tools with complex data structures:
## Data Model
### What Gets Indexed
| Field | Indexed | Stored | Notes |
|-------|---------|--------|-------|
| `id` | ✅ Term | ✅ | Primary key |
| `content` | ✅ Full-text | ✅ | Searchable |
| `created_at` | ✅ Date | ✅ | For filtering |
| `metadata` | ❌ | ✅ | JSON blob |
### Schema
CREATE TABLE items ( id TEXT PRIMARY KEY, content TEXT NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, metadata JSON );
CREATE INDEX idx_created ON items(created_at); CREATE VIRTUAL TABLE items_fts USING fts5(content);
---
API Reference Section
For libraries with programmatic APIs:
## API Reference
### Basic Usage
use tool_name::Client;
let client = Client::new()?; let results = client.search("query")?;
### Configuration
let client = Client::builder() .with_timeout(Duration::from_secs(30)) .with_retry(3) .build()?;
### Error Handling
match client.operation() { Ok(result) => println!("Success: {:?}", result), Err(Error::NotFound) => println!("Item not found"), Err(Error::Timeout) => println!("Operation timed out"), Err(e) => return Err(e.into()), }
### Types
| Type | Description |
|------|-------------|
| `Client` | Main API client |
| `Config` | Configuration options |
| `Result<T>` | Operation result |
| `Error` | Error variants |---
Migration/Upgrade Section
For tools with breaking changes:
## Upgrading
### From v1.x to v2.x
**Breaking changes:**
- Config file location changed from `~/.toolrc` to `~/.config/tool/config.toml`
- Command `tool old-cmd` renamed to `tool new-cmd`
- Flag `--old-flag` removed, use `--new-flag` instead
**Migration steps:**
1. Backup existing config
cp ~/.toolrc ~/.toolrc.backup
2. Install v2
curl -fsSL https://... | bash
3. Migrate config
tool migrate --from v1
4. Verify
tool doctor
### From v2.x to v3.x
No breaking changes. Upgrade in place:
tool update
---
Contributing Section (Expanded)
For projects accepting contributions:
## Contributing
### Development Setup
Clone
git clone https://github.com/user/repo.git cd repo
Install dependencies
cargo build
Run tests
cargo test
Run lints
cargo clippy --all-targets -- -D warnings
### Pull Request Process
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Run tests (`cargo test`)
5. Run lints (`cargo clippy`)
6. Commit (`git commit -m 'Add amazing feature'`)
7. Push (`git push origin feature/amazing-feature`)
8. Open a Pull Request
### Code Style
- Follow Rust standard formatting (`cargo fmt`)
- All public APIs must have doc comments
- Tests required for new features
- No warnings from clippy
### Commit Messages
Format: `type(scope): description`
Types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`
Examples:feat(search): add fuzzy matching support fix(parser): handle empty input gracefully docs(readme): add troubleshooting section
---
Ecosystem/Integration Section
For tools in a larger ecosystem:
## Ecosystem Integration
`tool-name` integrates with the following tools:
| Tool | Integration | Use Case |
|------|-------------|----------|
| **Tool A** | Native | Primary workflow |
| **Tool B** | Via CLI | Automation |
| **Tool C** | Plugin | IDE integration |
### With Tool A
tool-name provides data to Tool A
tool export --format tool-a | tool-a import
### With Tool B
Use tool-name output in Tool B pipelines
tool search "query" --format json | tool-b process
### IDE Integration
- **VS Code**: Install extension `tool-name-vscode`
- **JetBrains**: Plugin available in marketplace
- **Vim/Neovim**: See [vim-tool-name](https://github.com/user/vim-tool-name)---
Environment Variables Reference
## Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `TOOL_HOME` | Data directory | `~/.tool` |
| `TOOL_CONFIG` | Config file path | `~/.config/tool/config.toml` |
| `TOOL_LOG_LEVEL` | Logging verbosity | `info` |
| `TOOL_NO_COLOR` | Disable colored output | unset |
| `TOOL_OFFLINE` | Disable network access | unset |
### Example
Use custom data directory
export TOOL_HOME=/data/tool
Enable debug logging
export TOOL_LOG_LEVEL=debug
Run tool
tool command
---
Shell Completion Section
## Shell Completions
### Bash
Add to ~/.bashrc
eval "$(tool completions bash)"
Or generate file
tool completions bash > ~/.local/share/bash-completion/completions/tool
### Zsh
Add to ~/.zshrc
eval "$(tool completions zsh)"
Or generate file
tool completions zsh > ~/.zfunc/_tool
### Fish
tool completions fish > ~/.config/fish/completions/tool.fish
### PowerShell
tool completions powershell | Out-String | Invoke-Expression
---
Release Notes Pattern
For CHANGELOG or release sections:
## Release Notes
### v2.1.0 (2026-01-15)
**New Features:**
- Added `tool new-command` for X functionality
- Support for Y file format
**Improvements:**
- 40% faster search performance
- Better error messages for common failures
**Bug Fixes:**
- Fixed crash when input contains unicode
- Resolved memory leak in long-running sessions
**Breaking Changes:**
- None
### v2.0.0 (2025-12-01)
**Breaking Changes:**
- Config file format changed from JSON to TOML
- Removed deprecated `--old-flag`
See [Migration Guide](#upgrading) for upgrade instructions.---
Acknowledgments Section
## Acknowledgments
Built with:
- [Rust](https://www.rust-lang.org/) — Systems programming language
- [Tantivy](https://github.com/quickwit-oss/tantivy) — Full-text search engine
- [SQLite](https://sqlite.org/) — Embedded database
- [clap](https://github.com/clap-rs/clap) — Command-line argument parsing
Inspired by:
- [ripgrep](https://github.com/BurntSushi/ripgrep) — Fast grep alternative
- [bat](https://github.com/sharkdp/bat) — Cat with wings
Special thanks to all [contributors](https://github.com/user/repo/graphs/contributors).{
"id": "crafting-readme-files",
"version": "1.0.0",
"name": "Crafting README.md Files",
"description": "Craft professional README.md files for GitHub open source projects. Generates hero sections, installation instructions, feature tables, and architecture diagrams. Use when creating or revising a README, documenting a CLI tool, library, or open source project, or when user asks about README structure, badges, or project documentation.",
"metadata": {
"author": "Jeffrey Emanuel",
"created": "2026-01-14",
"updated": "2026-01-14",
"tags": ["documentation", "github", "readme", "markdown", "open-source"],
"layer": "base",
"quality_score": 0.95,
"token_estimate": {
"minimal": 100,
"overview": 500,
"standard": 1800,
"full": 4500,
"complete": 7000
},
"platforms": ["any"],
"network_requirement": "none",
"triggers": [
"readme",
"README.md",
"documentation",
"project documentation",
"github readme",
"open source documentation",
"write readme",
"create readme",
"revise readme",
"improve readme",
"badges",
"installation section",
"troubleshooting section"
]
},
"sections": [
{
"id": "why-this-matters",
"title": "Why This Matters",
"type": "overview",
"priority": 1
},
{
"id": "exact-prompt",
"title": "THE EXACT PROMPT",
"type": "prompt",
"priority": 1
},
{
"id": "golden-structure",
"title": "Golden Structure",
"type": "reference",
"priority": 2
},
{
"id": "section-templates",
"title": "Section Templates",
"type": "template",
"priority": 2
},
{
"id": "critical-rules",
"title": "Critical Rules",
"type": "rules",
"priority": 1
},
{
"id": "anti-patterns",
"title": "Anti-Patterns",
"type": "pitfalls",
"priority": 2
},
{
"id": "agents-md-blurb",
"title": "AGENTS.md Blurb Template",
"type": "template",
"priority": 3
},
{
"id": "checklist",
"title": "Checklist",
"type": "checklist",
"priority": 2
},
{
"id": "badge-reference",
"title": "Badge Reference",
"type": "reference",
"priority": 3
},
{
"id": "real-world-examples",
"title": "Real-World Examples",
"type": "examples",
"priority": 3
},
{
"id": "progressive-disclosure",
"title": "Progressive Disclosure for Long READMEs",
"type": "advanced",
"priority": 3
}
],
"references": [
{
"path": "references/section-templates.md",
"description": "Extended templates for Performance, Security, API Reference, Migration, Contributing, and other specialized sections"
}
],
"evidence": {
"sources": [
{
"type": "experience",
"description": "Patterns extracted from revising ms README following xf README model",
"session_id": null
},
{
"type": "reference",
"description": "xf README at /data/projects/xf/README.md",
"url": "https://github.com/Dicklesworthstone/xf"
},
{
"type": "reference",
"description": "ripgrep, bat, starship READMEs",
"url": null
}
]
}
}