Audit your brand. Catch every break. Ship on-brand.
A Claude Code plugin that scans your project for brand and SEO inconsistencies, then generates your README, OG image, brand kit, and annex pages — all in your terminal.
/plugin marketplace add Sakaax/brand-pilot
Copy
/plugin install brand-pilot@brand-pilot
Copy
Built for quality, not volume.
102 tests. 0 API keys. 0 telemetry. Everything runs locally, on your machine, with no account and no subscription.
The brand QA every indie ships without.
You spent hours on your landing page. There's still a native <select> in the form, a hardcoded #333 that's not in your palette, and no og:image on the page. Nobody catches them — until a user screenshots it on Twitter.
| Manual approach | brand-pilot | |
|---|---|---|
| SEO | Check one thing at a time | Full audit with score + fix prompts |
| Consistency | Eye-balling every component | Automated AST scan of the whole codebase |
| README | Write from scratch each time | Generated from brief + repo analysis |
| OG images | Design in Figma, export, upload | HTML → PNG, on-brand |
| Brand tokens | Copy-paste hex codes | CSS vars + Tailwind config exported |
| Annex pages | Forget they exist | 404, changelog, docs included |
Six commands. One install.
Every command runs standalone or as part of the full flow /brand-pilot. Outputs land in brand-pilot/ at your project root.
Brand audit /brand-pilot audit
AST-based scan across React, Svelte, Vue, and HTML. Catches native <select>, off-palette colors (ΔE CIE76), inconsistent radii and shadows, off-brief fonts, and default :focus outlines. Scored HTML report with paste-ready fix prompts.
SEO analyzer /brand-pilot seo
Title length, meta description, OG tags, Twitter cards, canonical, favicon, heading hierarchy, alt text, semantic landmarks, lazy images, font-display: swap, render-blocking scripts, robots.txt, sitemap.xml, JSON-LD.
README generator /brand-pilot readme
Reads your brief, your package.json / Cargo.toml / pyproject.toml, and your LICENSE, then drafts a complete README to readme-draft.md. Never touches your existing README.md.
OG image /brand-pilot og
1200 × 630 HTML template using your brief colors, fonts, and tagline. If Playwright MCP is installed, screenshots to PNG. Always emits ready-to-paste <meta> tags.
Brand kit /brand-pilot kit
tokens.css, tailwind.config.snippet.js, palette.html (click-to-copy swatches), and a human-readable brand-kit.md — all derived from your brief.
Annex pages /brand-pilot pages
404, changelog, and docs templates. On-brand colors, fonts, and tokens applied inline. Drop-in ready.
What it catches.
Every finding in every report includes a plain-text fix prompt. Paste it into Claude Code to fix the issue without leaving your terminal.
<select>, date/time/file/checkbox/radio inputs, <dialog>, <details>, unstyled <textarea>, <progress>, <meter>.var(--x) resolved, plus Tailwind arbitrary bg-[#hex]. Flagged when ΔE CIE76 > 5 from palette.font-family compared against brief. Size-scale chaos flagged when more than 8 distinct sizes.:focus rule checked for explicit outline or box-shadow. Inconsistent transition durations flagged when > 3 distinct values.<h1>, heading order, <img> alt text, semantic landmarks (<main>, <nav>, <footer>).@font-face with font-display: swap, non-blocking <script> in <head>.robots.txt, sitemap.xml, mobile viewport meta, schema.org JSON-LD structured data.Works with ux-pilot.
If you've run ux-pilot, brand-pilot detects ux-pilot/ux-brief.md automatically and inherits every design decision — colors, fonts, style, tone. Zero re-saisie.
ux-pilot → UX discovery, audit, preview, export brand-pilot → Brand consistency, SEO, README, OG, kit
Same typography. Same palette. Same voice. The pilot plugins share one visual identity on purpose — when you install a second one, you already know where everything lives. Consistency at the ecosystem level is the same discipline brand-pilot enforces at the project level.
brand-pilot enforces the rules.
Generic AI aesthetics are the #1 reason projects look the same. brand-pilot catches them automatically — the same anti-slop rules ux-pilot defines are applied during audits.
Banned
Instead
Still wondering?
brand-pilot/ at your project root (auto-added to .gitignore). Your README.md is never overwritten — the generator writes to brand-pilot/readme-draft.md.ux-pilot/ux-brief.md first, then brand-pilot/brief.md. If neither exists, it runs a quick 6-question discovery (ABCD choices + free text) and saves its own brand-pilot/brief.md.