assign-brand · Tune-up
2026-07-06 · design-artifacts + Python build repo · build: python3 build/assemble.py (green, exit 0)
Git hygiene & backup (P1)
TUNE-01P1missingNo git remote
The repo is local-only — no remote, no backup, unshareable. All of the session's console/design/marketing work exists on one machine.
$ git remote -v → (none)
Fix: create private greyskymedia/assign-brand and push (matches the design-system repo precedent).
TUNE-02P1ignored~A session of work uncommitted
12 tracked files modified since the last commit (96507d6) — the entire console buildout (mutations, responsive, transitions, polish, global search/org) + marketing pricing — plus 9 untracked files never added (cssscope.py, order-cards.html, CONTRACT.md, the tiers doc, both design viewers). One power failure from losing weeks of work.
M assignx-console.html · M build/*.html (×9) · M marketing/assignwaivers.com/index.html
?? build/cssscope.py · ?? build/order-cards.html · ?? build/CONTRACT.md · ?? ds-source-of-truth.html · ?? handovers/ASSIGN-FAMILY-TIERS.md
Fix: stage + commit in two logical commits (console/build-system, marketing) and push.
TUNE-03P1missingNo .gitignore
.DS_Store and the .wrangler/ deploy cache are untracked with nothing ignoring them — first git add -A commits junk into history.
$ ls .gitignore → No such file · ?? .DS_Store · ?? .wrangler/
Fix: add .gitignore (.DS_Store, .wrangler/, deploy temp, .idea, *.log).
Dead & drifted (P2)
TUNE-04P2cleanup_ins.html — 267KB stray
A stray instrumented copy of the console (diagnostic artifact). Nothing references it; it's dead weight and confusing.
$ grep -rl _ins.html . → (nothing) · 267,455 bytes
Fix: delete.
TUNE-05P2missingNo README / instruction layer
No root README.md / CLAUDE.md. The build system, the artifact map, and the per-project Cloudflare deploy commands are undocumented — a cold session has no entry point. build/CONTRACT.md exists but is module-specific and untracked.
$ ls README.md CLAUDE.md DESIGN-SYSTEM.md → none
Fix: add README.md (repo purpose, build system, artifacts, deploy commands, design-system pointers) + docs/STATUS.md.
TUNE-06P2cleanupTwo overlapping viewers
ds-dashboard-viewer.html (responsive dashboards) is superseded by ds-source-of-truth.html (the canonical plan, per the latest decision). Keeping both invites drift.
ds-dashboard-viewer.html: "Responsive Targets" · ds-source-of-truth.html: "source of truth"
Fix: keep the file (still deployed) but mark it superseded in the README; recommend redirecting assign-ds-viewer.pages.dev → assign-ds.pages.dev (Your call).
Reliability & UX (P3)
TUNE-07P3confusingDated brandkit snapshots
brandkit-extract/**/ASSIGN-*-2026-06-26.html are point-in-time snapshots that can drift from the live brand viewer assign-family.html.
brandkit-extract/.../ASSIGN-FAMILY-BRAND-VIEWER-2026-06-26.html (dated)
Fix: note in README that the live source is assign-family.html; snapshots are reference only.
TUNE-08P3brokenassemble.py has no error context
Fragment reads use bare .read_text() with no guard — a missing/renamed build/*.html throws a raw FileNotFoundError traceback instead of naming the file.
build/assemble.py:31 t = raw if raw is not None else (base/'build'/fn).read_text()
Fix: wrap reads in a helper that raises a clear SystemExit("missing fragment: …").
TUNE-09P3missingLiteral "Chart placeholder"
Gift Cards → Insights ships a gray box reading "Chart placeholder" in an otherwise fully-built mock.
build/giftcards.html:253 …color:var(--muted)">Chart placeholder
Fix: replace with a small CSS bar chart using design tokens.
TUNE-10P3missingNo STATUS record
No docs/STATUS.md — deploy targets, live URLs, and open threads live only in memory/handovers.
$ ls docs/ → (did not exist)
Fix: add docs/STATUS.md with deploy targets + open threads.