From perfect-readme
Create stunning, website-like GitHub README files with animated SVG banners, multi-column layouts, dark/light theme support, and bold visual design. Use when the user wants to create or redesign a README.md for a GitHub repository or profile. Triggers on: 'readme', 'README', 'profile readme', 'github profile', 'project documentation page'.
How this skill is triggered — by the user, by Claude, or both
Slash command
/perfect-readme:perfect-readmeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill creates distinctive, visually striking GitHub README files that look and feel like polished websites — while working within GitHub's markdown rendering constraints. Every README should be UNFORGETTABLE, not a generic template.
This skill creates distinctive, visually striking GitHub README files that look and feel like polished websites — while working within GitHub's markdown rendering constraints. Every README should be UNFORGETTABLE, not a generic template.
The user provides context about their project, profile, or repository. They may specify tone, audience, or technical details.
Before writing ANY markdown, commit to a BOLD aesthetic direction:
CRITICAL: Generic READMEs with default badges and plain text are the equivalent of "AI slop" in frontend. Commit to a vision and execute with precision.
<div>, <table>, <tr>, <td>, <th>, <details>, <summary>, <picture>, <source>, <img>, <a>, <br>, <hr>, <kbd>, <sup>, <sub>, <samp>, <code>, <pre>, <b>, <strong>, <i>, <em>, <del>, <ins>, <mark>, <small>, <blockquote>, <p>, <span>, <h1>–<h6>, <ul>, <ol>, <li>, <dl>, <dt>, <dd>, <figure>, <figcaption>, <ruby>, <rt>, <rp>, <abbr>, <dfn>, <time>, <wbr>, <video> (GitHub-hosted only)
<a>: href<img>: src, alt, height, width, align<td>, <th>: align, width, colspan, rowspan<p>, <div>, <h1>–<h6>: align<details>: open<source>: srcset, media, typestyle="" inline styles — STRIPPED<style> blocks — STRIPPEDclass, id attributes — STRIPPED<script>, <iframe>, <form>, <input>, <button> — STRIPPED<embed>, <object>, <link> — STRIPPEDonclick and all JS event handlers — STRIPPED<audio> — NOT SUPPORTED<svg> — STRIPPED (but SVG files via <img> work!)This is the PRIMARY tool for achieving website-like aesthetics. Create .svg files using native SVG elements with SMIL animations. GitHub proxies SVG images through camo.githubusercontent.com which strips <foreignObject> and all CSS/HTML inside it. Only pure SVG elements survive.
CRITICAL: <foreignObject> does NOT work on GitHub. GitHub's image proxy sanitizes it. Use native SVG only.
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 200" width="800" height="200">
<defs>
<!-- Gradients for colors -->
<linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#0a0a0f"/>
<stop offset="100%" stop-color="#111127"/>
</linearGradient>
<linearGradient id="title-grad" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" stop-color="#a5b4fc"/>
<stop offset="100%" stop-color="#22d3ee"/>
<!-- Animated gradient shift -->
<animate attributeName="x1" values="-100%;0%;-100%" dur="4s" repeatCount="indefinite"/>
<animate attributeName="x2" values="0%;100%;0%" dur="4s" repeatCount="indefinite"/>
</linearGradient>
<!-- Glow filter -->
<filter id="glow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="40" result="blur"/>
<feComposite in="blur" operator="over"/>
</filter>
<!-- Grid pattern -->
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
<path d="M 40 0 L 0 0 0 40" fill="none" stroke="#6366f1" stroke-opacity="0.06" stroke-width="1"/>
</pattern>
</defs>
<!-- Background + grid -->
<rect width="800" height="200" fill="url(#bg)"/>
<rect width="800" height="200" fill="url(#grid)"/>
<!-- Animated glow orbs -->
<ellipse cx="200" cy="50" rx="150" ry="150" fill="#6366f1" opacity="0.15" filter="url(#glow)">
<animate attributeName="cx" values="200;240;180;200" dur="8s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.15;0.22;0.15" dur="8s" repeatCount="indefinite"/>
</ellipse>
<!-- Title text with gradient fill -->
<text x="400" y="105" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif"
font-size="48" font-weight="800" fill="url(#title-grad)" letter-spacing="-2">
Project Name
</text>
<!-- Animated decorative line -->
<rect x="340" y="125" width="120" height="1" fill="#6366f1" rx="0.5">
<animate attributeName="width" values="80;160;80" dur="3s" repeatCount="indefinite"/>
<animate attributeName="x" values="360;320;360" dur="3s" repeatCount="indefinite"/>
<animate attributeName="opacity" values="0.4;1;0.4" dur="3s" repeatCount="indefinite"/>
</rect>
</svg>
Then reference in README: 
SVG Design Guidelines:
<text>, <rect>, <circle>, <ellipse>, <path>, <polygon>, <line><defs> for <linearGradient>, <radialGradient>, <pattern>, <filter> definitions<animate> and <animateTransform> for animations — these survive GitHub's proxyx1/x2 for shimmer effects, element cx/cy for floating, opacity for pulsing<feGaussianBlur> filters for glow effects<pattern> for grid/dot backgroundsviewBox and explicit width/height on the SVG root<foreignObject>, CSS @keyframes, @import, <style>, JavaScript — ALL stripped by GitHub:hover does NOT work (SVGs render as <img> elements)<picture> in README<picture>
<source media="(prefers-color-scheme: dark)" srcset="./assets/logo-dark.svg">
<source media="(prefers-color-scheme: light)" srcset="./assets/logo-light.svg">
<img alt="Logo" src="./assets/logo-light.svg" width="200">
</picture>
Use this for ALL visual elements — banners, logos, diagrams, section headers. Always provide both themes.
<table>
<tr>
<td width="50%" valign="top">
**Left Column**
Content with full Markdown support inside table cells.
</td>
<td width="50%" valign="top">
**Right Column**
More content here.
</td>
</tr>
</table>
Use width percentages for responsive-ish columns. align and valign attributes work. Blank lines around Markdown content inside <td> are required for proper rendering.
<details>
<summary><strong>Click to expand</strong></summary>
Hidden content with full Markdown support.
```code blocks work here too```
</details>
Use <details open> for default-expanded sections. Chain multiple <details> blocks for FAQ-style layouts.
<!-- Shields.io badges -->


<!-- GitHub Stats Cards -->

<!-- Custom badge with logo -->

Badge styles: flat, flat-square, plastic, for-the-badge, social. Choose ONE style consistently.
<p align="center">
<a href="#features">Features</a> •
<a href="#installation">Installation</a> •
<a href="#usage">Usage</a> •
<a href="#api">API</a> •
<a href="#contributing">Contributing</a>
</p>
Press <kbd>Ctrl</kbd> + <kbd>C</kbd> to copy
<p align="center">Centered text or images</p>
<p align="right">Right-aligned content</p>
<div align="center">Block of centered content</div>
align is the ONLY layout attribute that works natively. Use it extensively.
Adapted from frontend-design philosophy for the README medium:
<br> and blank lines generously. Dense walls of text are the enemy. Whitespace is a design tool.NEVER create generic READMEs with:
The key insight: build READMEs as landing pages assembled from SVG visual components.
Each section of the README is a standalone SVG file — a visual building block with its own gradients, animations, and layout. These SVG blocks are referenced in markdown via <picture> (for dark/light) or <img>, with markdown text and HTML tables providing structure between them.
This approach gives you:
Every README should be assembled from these component types:
| Component | Purpose | Naming |
|---|---|---|
| Hero Banner | Full-width animated header with title, tagline, badges | banner-dark.svg, banner-light.svg |
| Feature Grid | 2x2 or 3x1 card layout with icons, titles, descriptions | features-dark.svg, features-light.svg |
| Steps/Timeline | Numbered workflow with connecting line | steps-dark.svg, steps-light.svg |
| Install Card | Terminal-style command display | install-dark.svg, install-light.svg |
| Before/After | Side-by-side visual comparison | before-after.svg |
| Divider | Gradient line between sections | divider-dark.svg, divider-light.svg |
| Section Header | Styled heading for a section | header-{name}-dark.svg |
<!-- Hero -->
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./assets/banner-dark.svg">
<source media="(prefers-color-scheme: light)" srcset="./assets/banner-light.svg">
<img alt="Project Name" src="./assets/banner-dark.svg" width="100%">
</picture>
<p align="center"><strong>Tagline goes here</strong></p>
<p align="center">
<a href="#features">Features</a> • <a href="#install">Install</a> • <a href="#usage">Usage</a>
</p>
<!-- Divider -->
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./assets/divider-dark.svg">
<source media="(prefers-color-scheme: light)" srcset="./assets/divider-light.svg">
<img alt="" src="./assets/divider-dark.svg" width="100%">
</picture>
## Section Title
<!-- SVG visual component -->
<picture>
<source media="(prefers-color-scheme: dark)" srcset="./assets/features-dark.svg">
<source media="(prefers-color-scheme: light)" srcset="./assets/features-light.svg">
<img alt="Features" src="./assets/features-dark.svg" width="100%">
</picture>
<!-- Markdown text between components -->
Additional details in markdown...
<!-- Accordion for extra content -->
<details>
<summary><strong>More details</strong></summary>
Content here...
</details>
When creating a README, ALWAYS deliver:
README.md — assembled from SVG components + markdownassets/ directory with ALL SVG components in dark + light variants:
banner-dark.svg + banner-light.svg — animated herofeatures-dark.svg + features-light.svg — feature gridsteps-dark.svg + steps-light.svg — workflow timelineinstall-dark.svg + install-light.svg — install commanddivider-dark.svg + divider-light.svg — section dividersviewBox and explicit width/height on root <svg>'Segoe UI', Arial, sans-serif for display, 'Courier New', monospace for code)<defs> as <linearGradient> elements, reuse across all components<animate> only — gradient shimmer, opacity pulsing, position drift. Keep cycles 3-8s, subtle<feGaussianBlur> for glow effects, <feDropShadow> for card shadows<pattern> for grid/dot backgroundsRemember: Claude is capable of extraordinary creative work. The goal is to make every README look like a designed landing page — assembled from beautiful SVG visual components, with the polish and intentionality of a real website.
npx claudepluginhub oxgeneral/perfectreadmeWrites or rewrites GitHub READMEs using a proven structure from AFFiNE's 0→60K star journey. Covers tagline engineering, first-screen law, copywriting guides, anti-patterns, and a pre-publish checklist.
Provides README.md templates and standards for generating, improving, or checking project documentation compliance. Activates on README creation, audits, or best practices mentions.
Generates a bespoke explainer site from any GitHub repo, with visual metaphor, content arc, and deployment.