Brand asset registry.
One repo holds every logo. Every README points here. Update once, update everywhere. SHA-256 integrity verification keeps your brand safe.
Verify
brand verify
Audit
brand audit --repos /path/to/clones
Migrate
brand migrate --repos /path/to/clones --dry-run
Features
Why centralize brand assets.
Single source of truth
148 logos across the org. Rebrand once, update everywhere — no more hunting through repos for stale logos.
Tamper detection
SHA-256 manifest tracks every asset. CI catches accidental overwrites, drift, and compromised logos before they ship.
Safe migration
Multi-gate regex distinguishes brand logos from shields.io badges. Dry-run first, spot-check, push incrementally.
CLI
Verify integrity
# Check all logos against manifest hashes
brand verify
# CI mode — fail if manifest is stale
brand manifest --check Audit & migrate
# Find broken refs, badge collisions, traps
brand audit --repos ./clones
# Rewrite READMEs to point at brand repo
brand migrate --repos ./clones --dry-run Battle-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
49/50 on the Ship Gate audit — pending v1.0.3 tag.
| 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, exit codes |
| C. Operator Docs | 10/10 | README, CHANGELOG, handbook, full CLI docs |
| D. Shipping Hygiene | 9/10 | CI integrity check, 29 tests; v1.0.3 tag pending |
| E. Identity | 10/10 | Logo, translations, landing page, metadata |