readme
This skill should be used when the user asks to "create a README", "write a README", "generate a README", "improve my README", "make my README better", "README best practices", or mentions needing project documentation. Provides guidance for creating excellent READMEs following patterns from awesome-readme.
What this skill does
# README Generation
Generate excellent README files that communicate project value clearly and help users get started quickly.
## Core Principles
Great READMEs answer three questions immediately:
1. **What is this?** - Clear, one-sentence description of purpose
2. **Why should I care?** - The problem it solves or value it provides
3. **How do I use it?** - Quick start that gets users running in under a minute
## Before Writing
Analyse the project to understand:
- **Primary audience**: Developers? End users? Both?
- **Project maturity**: Alpha/beta? Production-ready?
- **Complexity level**: Simple utility? Complex framework?
- **Key differentiators**: What makes this stand out from alternatives?
Read existing code, configuration files, and any existing documentation to extract accurate information.
## Essential Sections
### 1. Title and Description
Start with a clear, descriptive title. Follow with a one-paragraph description that explains:
- What the project does (not how it works)
- Who it's for
- Key benefits or features
```markdown
# Project Name
Brief description of what this project does and why it exists.
A sentence about the key benefit or problem it solves.
```
### 2. Visual Elements (When Applicable)
Add visual elements that communicate quickly:
- **Badges**: Build status, version, licence, coverage
- **Logo/Banner**: Professional branding for larger projects
- **Screenshot/GIF**: Show the tool in action (especially for CLIs and UIs)
- **Architecture diagram**: For complex systems
Place badges immediately after the title. Place screenshots/GIFs after the description.
### 3. Quick Start
Provide the fastest path to a working example:
```markdown
## Quick Start
\`\`\`bash
npm install project-name
\`\`\`
\`\`\`javascript
import { thing } from 'project-name';
thing.doSomething();
\`\`\`
```
Keep quick start under 5 steps. Link to detailed installation for complex setups.
### 4. Installation
Cover all supported installation methods:
- Package managers (npm, pip, cargo, brew)
- Building from source
- Docker/container options
- System requirements and prerequisites
Include version compatibility information where relevant.
### 5. Usage
Show real, practical examples:
- Start with the most common use case
- Progress from simple to complex
- Include actual output where helpful
- Cover configuration options
```markdown
## Usage
### Basic Example
\`\`\`javascript
// Description of what this does
const result = doThing(input);
console.log(result);
// Output: expected output
\`\`\`
### Advanced Configuration
\`\`\`javascript
// More complex example with options
\`\`\`
```
### 6. API Reference (For Libraries)
Document public interfaces:
- Function signatures with parameter types
- Return values and their types
- Example usage for each function
- Error handling and edge cases
For extensive APIs, link to separate documentation rather than bloating the README.
### 7. Contributing
Include or link to contribution guidelines:
- How to report bugs
- How to suggest features
- Development setup instructions
- Code style and testing requirements
- Pull request process
### 8. Licence
State the licence clearly. Link to the full LICENCE file.
```markdown
## Licence
MIT - see [LICENCE](LICENCE) for details.
```
## Section Order
Recommended order for most projects:
1. Title + Badges
2. Description
3. Screenshot/Demo (if applicable)
4. Table of Contents (for longer READMEs)
5. Quick Start
6. Installation
7. Usage/Examples
8. API Reference (if applicable)
9. Configuration
10. Contributing
11. Licence
12. Acknowledgements (optional)
## Writing Style
### Be Concise
- Lead with the most important information
- Use bullet points for lists
- Keep paragraphs short (2-4 sentences)
- Remove unnecessary words
### Be Specific
- Show exact commands, not descriptions of commands
- Include actual output examples
- Specify versions and compatibility
- Provide working code, not pseudocode
### Be Scannable
- Use descriptive headings
- Add table of contents for READMEs over 200 lines
- Use code blocks liberally
- Bold key terms and warnings
## Project-Specific Guidance
### CLI Tools
- Show installation via package manager
- Include GIF of the tool in action
- Document all flags and options
- Show common workflows end-to-end
### Libraries/Frameworks
- Focus on API examples
- Show integration with common tools
- Include TypeScript types if available
- Link to comprehensive docs site
### Applications
- Lead with screenshots
- Include system requirements
- Provide download links prominently
- Cover configuration and customisation
### Open Source Projects
- Include badges for build status, coverage, version
- Add contributing guidelines prominently
- Show appreciation for contributors
- Link to community channels (Discord, discussions)
## Common Mistakes to Avoid
- **Starting with installation**: Lead with what the project does first
- **Assuming knowledge**: Explain acronyms and concepts on first use
- **Outdated examples**: Ensure code examples actually work
- **Missing prerequisites**: List all dependencies and requirements
- **Wall of text**: Break up content with headings and code blocks
- **No quick start**: Users should see something working in under a minute
- **Hiding the demo**: Screenshots and GIFs should be near the top
## Quality Checklist
Before finalising a README:
- [ ] Title clearly describes the project
- [ ] Description explains what it does and why
- [ ] Quick start gets users running in under a minute
- [ ] All code examples are tested and working
- [ ] Installation covers all supported methods
- [ ] Screenshots/GIFs show the project in action (where applicable)
- [ ] Badges reflect current project status
- [ ] Links are not broken
- [ ] Licence is clearly stated
- [ ] Contact/contribution info is included
## Additional Resources
For detailed patterns, badge examples, and templates:
- **`references/patterns.md`** - Comprehensive patterns, badge snippets, and structural templates
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.