Brand asset registry.
One repo holds every logo. Every README points here. Update once, update everywhere. A SHA-256 manifest catches drift and accidental overwrites before they ship.
Verify
brand verify
Reconcile
brand audit --remote --org my-org
History
brand history my-tool
Features
Why centralize brand assets.
Single source of truth
Hundreds of logos across the org. Rebrand once, update everywhere — no more hunting through repos for stale logos.
Drift detection
A SHA-256 manifest tracks every asset, and CI fails the build the moment disk and manifest disagree. It catches accidents, not adversaries — the handbook is explicit about where that line sits.
Org reconciliation
Repos get renamed, archived, and deleted; registries quietly rot. One command checks every tracked slug against the live org and tells you which are renamed, archived, or genuinely orphaned.
CLI
Verify integrity
# Check all logos against manifest hashes
brand verify
# CI mode — fail if manifest is stale
brand manifest --checkReconcile with the org
# Audit a whole org without cloning it
brand audit --remote --org my-org
# Reports renamed, archived and orphaned slugs.
# Nothing is ever deleted for you.Inspect & remove
# When did this logo change, and to what?
brand history my-tool
# Removal is destructive, so it asks
brand remove old-tool --dry-run
brand remove old-tool --yesBattle-tested
Lessons learned from migrating 100+ repos.
Badge collision guard
shields.io URLs with &logo= parameters look like brand logos. Multi-gate filtering catches badges before they get rewritten.
Markdown rendering traps
4+ spaces makes code blocks. Blank lines break HTML context. The audit command catches these before they break your README.
Format preservation
PNGs stay PNGs. JPEGs stay JPEGs. Format is a brand decision, not a build target. Never converts or compresses.
Quality scorecard
50/50 on the Ship Gate audit.
| Category | Score | Notes |
|---|---|---|
| A. Security | 10/10 | SECURITY.md, SHA-256 integrity, no network, no telemetry |
| B. Error Handling | 10/10 | Structured errors, clear CLI output, uniform 0/1/2/3 exit codes |
| C. Operator Docs | 10/10 | README, CHANGELOG, handbook, full CLI docs |
| D. Shipping Hygiene | 10/10 | Node 20/22/24 matrix, SHA-pinned actions, npm audit, Dependabot, 237 tests, full tag/release/npm parity |
| E. Identity | 10/10 | Logo, translations, landing page, metadata |