B Brand
SHA-256 integrity verified

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.

CategoryScoreNotes
A. Security10/10SECURITY.md, SHA-256 integrity, no network, no telemetry
B. Error Handling10/10Structured errors, clear CLI output, exit codes
C. Operator Docs10/10README, CHANGELOG, handbook, full CLI docs
D. Shipping Hygiene9/10CI integrity check, 29 tests; v1.0.3 tag pending
E. Identity10/10Logo, translations, landing page, metadata