project-readme-author
Create, modify, validate, and optimize README.md files following GitHub best practices.
What this skill does
# README Author
Create READMEs that hook readers in 5 seconds, prove value in 30 seconds, and enable success in under 10 minutes.
## Operations
| Operation | Triggers | Purpose |
|-----------|----------|---------|
| **create** | No README exists, "create/generate README" | Build from scratch |
| **modify** | README exists, "update/change README" | Preserve structure, update sections |
| **validate** | "check/review/audit README" | Score against best practices |
| **optimize** | "improve/enhance README" | Fix issues, enhance quality |
### Operation Detection
Use the deterministic operation selector:
```bash
uv run shared/select_operation.py --skill project-readme-author --args "$ARGUMENTS" --check-files "README.md"
```
**Fallback rules (if script unavailable):**
1. Check `$ARGUMENTS` for explicit operation keywords
2. Check if README.md exists at target path
3. Default: `create` if no README, `modify` if README exists
---
## Create Operation
Use when building a README from scratch. Follow the Core Framework and Workflow sections below.
**Mandatory pre-draft checklist:**
- [ ] Archive status checked — `.archived.md` exists? If yes, archive notice goes first
- [ ] Aha moment identified — "What's the most impressive single thing?"
- [ ] Tagline crafted with emoji(s)
- [ ] At least one quantified metric (if available)
- [ ] Appropriate CTA tier determined
## Modify Operation
Use when updating an existing README while preserving its structure.
- **Keep custom prose** — user-written descriptions, explanations, context
- **Update dynamic content** — versions, badge URLs, install commands
- **Respect markers** — content within `<!-- custom -->...<!-- /custom -->` is never touched
- **Preserve section order** — don't reorder unless explicitly requested
- **Preserve manual notes** — any hand-written note, warning, tip that's factually relevant
- **Default to preservation** — when relevance is unclear, use AskUserQuestion to confirm
- **Never assume obsolescence** — only remove when explicitly asked or factually incorrect
- **Archive notice sync** — if `.archived.md` exists, ensure notice is present and current; if removed, remove the notice
- **Deprecated sections** — ask user via AskUserQuestion before removing
**When in doubt, preserve existing content and use AskUserQuestion to confirm before removing anything.**
## Validate Operation
Score an existing README against best practices. Run Essential → Professional → Elite → **Virality** checklists plus project-type specifics. See [references/validation-guide.md](references/validation-guide.md) for scoring format, tiers, project-type checks, and checklists.
**Scoring weights:** Essential 40%, Professional 25%, Elite 15%, Virality 20%
## Optimize Operation
**Quick Wins (auto-apply):** Center hero, add alt text, fix badge URLs, add TOC if >500 words, standardize badge style, fix heading hierarchy, add emojis to headers, add archive notice if `.archived.md` exists and notice is missing.
**Virality Quick Wins (auto-apply):**
- Add star badge if stars > 100
- Add download badge if downloads > 1000/week
- Format existing stats as quotable block
**Requires Approval:** Add new sections, rewrite tagline, change badge selection, remove emojis, restructure content order.
**Virality Suggestions (require approval):**
- Add curiosity hook to hero
- Restructure overview as pain point narrative
- Create comparison table vs alternatives
- Add tiered CTAs
---
## Core Framework: Hook → Prove → Enable → Extend
| Phase | Time | Purpose | Elements | Virality Trigger |
|-------|------|---------|----------|------------------|
| **Hook** | 0-3 sec | Instant recognition | Logo + badges + one-liner + demo visual | Curiosity gap + visual impact |
| **Prove** | 3-30 sec | Build credibility | Social proof, features, trust signals | Social proof + comparison wins |
| **Enable** | 30 sec - 5 min | Immediate success | One-liner install + working example | "I can do this" moment |
| **Extend** | Committed users | Deep engagement | Docs links, contributing, API reference | Share triggers + community |
**The goal: Time to first success under 10 minutes.** The first 5-10 lines visible without scrolling determine whether users stay or leave.
## Aha Moment Visualization
The "aha moment" is the single most impressive demonstration of your project's value. It must answer "What does this DO?" within 3 seconds.
### 3-Second Rule
The first visual element after the tagline must show transformation — before → action → after.
### Aha Patterns by Project Type
| Type | Aha Format | Example |
|------|------------|---------|
| **CLI** | Terminal GIF: before → command → after | ripgrep searching 1M files in 0.2s |
| **Library** | 3-line code with commented "wow" output | `# 50 lines → 3 lines` |
| **AI/ML** | Benchmark comparison chart | "2x faster than GPT-3" |
| **Web App** | GIF of core interaction loop | One-click deploy animation |
### Requirements
- **Show transformation** — what changes from input to output
- **Max 5 seconds** — attention drops sharply after this
- **Loop seamlessly** — GIFs should restart without jarring cuts
- **Placement** — immediately after tagline, before any text
### Identifying the Aha Moment
Ask: "What's the most impressive single thing this project does?" Then visualize it.
## Logo Generation (Mandatory)
Every README must have a logo:
1. **Check for existing logo** — look for `logo.png` at repo root; if found, skip to README generation
2. **Generate if missing** — invoke the **project-logo-author** skill
3. **Determine display size** — use `mcp__image-tools__get_image_metadata` to get width, then divide by 2 for retina display (e.g., 1024px → `width="512"`)
## Hero Section
The hero section must be center-aligned with these elements in order:
### Title Rule
**The title must be exactly the repository name.** Preserve original casing — `my-awesome-tool` stays `my-awesome-tool`, not "My Awesome Tool".
```markdown
<div align="center">
<img src="logo.png" alt="Project Name" width="{DISPLAY_WIDTH}"/>
[](link) [](link) [](link)
**A clear, catchy one-liner that explains what this does and why it matters**
[Documentation](url) · [Demo](url) · [Discord](url)
</div>
```
### Curiosity Hook (Optional)
A bold line placed after badges, before tagline, to create an information gap:
| Type | Example |
|------|---------|
| **Question** | "Ever spent 2 hours debugging what this fixes in 10 seconds?" |
| **Stat** | "Used by 50,000+ developers worldwide" |
| **Comparison** | "10x faster than grep for code search" |
| **Challenge** | "Find any file in your repo under 100ms" |
**Rules:**
- Must be verifiable (don't exaggerate)
- Connects to a real pain point
- Creates desire to learn more
### Hero Elements
| Element | Specification |
|---------|---------------|
| Logo | Width = half actual pixels (for retina), centered |
| Badges | 3-6 maximum, shields.io for consistency |
| Curiosity hook | Optional bold line creating information gap |
| Tagline | One sentence with emoji(s), max 350 chars (fits GitHub "About" field) |
| Quick links | Docs, demo, community (if available) |
### Tagline Rules
**The tagline is THE hook** — the single most critical line in your README. Users decide to stay or leave based on this one sentence. It must be short, witty, and instantly communicate what the project does.
**Bookend Emoji Pattern:**
- One emoji at START, one emoji at END
- Creates visual framing that draws the eye
- Reinforces the message from both sides
**Requirements:**
- **Max 350 characters** — ideal 80-150 chars, punchy and scannable
- **Instantly clear** — reader must understand what project does from this line alone
- **Source from pyproject.toml** — if `description` field exists, use as base and enhance. If crafting new, sync back.
**Great taglines (bookend pattern):**
- ✅ `🚀 Build production-ready APIs in minutes, not hours ⚡`
- ✅ `🔍 FinRelated 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.