An agent skill for building true theme systems and making logo/favicon swaps a one-command operation instead of a scavenger hunt.
AI site builders rarely produce what a web developer would call a theme: hex colors get scattered inline across pages, logo files get copy-pasted into random folders, half the pages forget the apple-touch-icon. When the brand changes, some assets get replaced, some don't — and nobody notices the missed ones until a customer does.
This skill teaches an agent to:
- Build a real theme system — one
theme.csswith CSS custom properties (tokens) as the single source of truth, consumed by every page, with dark-mode variants defined. - Track and replace logo/favicon assets from a manifest — every copy of
every asset across the project (and its clones) is fingerprinted with
sha256, so
--checkproves nothing drifted and--replaceregenerates and redistributes the whole asset set in one command.
# 1. Crawl your project for existing logo/favicon files + HTML references
python scripts/generate-manifest.py /path/to/your-site \
--root-alias site --output scripts/logo/logo-manifest.json
# 2. Verify every tracked asset is present and unmodified
python scripts/update-logo.py --manifest scripts/logo/logo-manifest.json --check
# 3. Preview a logo swap (writes nothing)
python scripts/update-logo.py --manifest scripts/logo/logo-manifest.json \
--replace /path/to/new-logo.png --dry-run
# 4. Replace the logo EVERYWHERE — regenerates the full set
# (transparent master, favicon.ico 16/32/48, 32/180/192/512 PNGs)
# and copies it over every manifest location
python scripts/update-logo.py --manifest scripts/logo/logo-manifest.json \
--replace /path/to/new-logo.png| Path | Purpose |
|---|---|
SKILL.md |
The agent-facing procedure: theme-system setup, manifest workflow, fallbacks, true-theme checklist. |
scripts/generate-manifest.py |
Crawls a project for logo/favicon files and HTML icon references; emits a starter manifest. Pure stdlib. |
scripts/update-logo.py |
--check, --replace, --dry-run, --bg, --keep-bg, --commit. Stdlib + Pillow only. |
scripts/logo-manifest.template.json |
Generic manifest shape with placeholder roots. Never commit real home-folder paths. |
references/theme-checklist.md |
The full true-theme audit checklist. |
--replaceruns--checkfirst and refuses to proceed on drift or missing files (override with--force).--dry-runprints the exact per-file plan without writing anything.- Colored-background logos are rejected unless you pass
--bg R,G,Bor--keep-bg. --commitonly touches repos listed undergit_repos, skips anything under aprotected_rootsentry, and never pushes.
Copy the folder into your agent's skills directory, e.g.:
# Claude Code
cp -r logo-theme-manager ~/.claude/skills/
# Kimi Work
cp -r logo-theme-manager \
"$HOME/Library/Application Support/kimi-desktop/daimon-share/daimon/skills/"MIT — see LICENSE.