feat(brand+website): brand redesign v2 + website v2 — v1.0.2#51
Merged
Conversation
Visual identity refresh and public-facing site rewrite, mobile-tested.
Brand:
- New palette: canvas #12110F (dark) / paper #F4EFE6 (light) / coral oklch(0.74 0.14 35) accent / dusk + moss for status (replaces amber #F0C040 / void #080808).
- New typography: Geist (sans) + Cormorant Garamond (italic display) + JetBrains Mono (code) — replaces Share Tech Mono / Rajdhani.
- New mark: simplified C — circle + diagonal slash + centered coral dot — replaces the orbital.
design/ (wiped + replaced):
- Removed: 8 brand-system HTML variants + banner-dark.svg + logo-light.svg.
- Added: brand-system.html (dark) + brand-system-light.html + logos.html + font-pairings.html + shared styles.css + logos.js + readme-banner.{svg,png} + logo-dark.svg (extracted from new mark).
website/ (rebuilt as single-page Astro 5 static):
- Removed: 12 .astro components + 4 JSON data files + 2 scripts + Base.astro layout + index.astro + global.css + PLAN.md + obsolete package-lock.json.
- Added: src/pages/index.html (passes through verbatim) + public/{styles.css, app.js, favicon.svg, robots.txt, assets/hero-workshop.png}.
- Light/dark theme toggle, localStorage-persisted, prefers-color-scheme respected.
- Mobile media queries at 1024 / 900 / 640 / 400px + hover:none coverage.
- Cloudflare Pages compatible: same astro.config.mjs, same `npm run build → dist/`. Verified locally.
Cascade (per CLAUDE.md PR-003 / PR-005):
- README.md banner + footer logo refs swapped, badges recolored.
- CLAUDE.md "Design System" section rewritten end-to-end.
- frontend-engineer.md + documentation-agent.md design path + palette refs updated.
Version: 1.0.1 → 1.0.2 across pyproject.toml + __init__.py + cli.py.
validate-docs: 10/10 (1 pre-existing test-count warning).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…olves robots.txt declares Sitemap: https://zerooperators.com/sitemap.xml but no sitemap was shipping. Adds a static single-URL sitemap.xml in public/ — Astro copies it verbatim to dist/sitemap.xml at build time. Resolves the dead pointer for crawlers; trivial to extend if more routes are added. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…hosts test_dry_run_rejected_in_conversational_mode invokes `zo init foo --dry-run` and expects an error mentioning --dry-run + --no-tmux. But `zo init` checks tmux availability before flag validation: on a no-tmux host, the earlier guardrail fires and the test never reaches its target branch. Patch shutil.which inside the test's context manager so the test exercises the flag-validation path independent of host tooling. Documents the rule as PR-032 in PRIORS.md (tests targeting downstream logic must mock upstream environment guardrails — the inverse of PR-025). 669 tests pass on both no-tmux and tmux-present hosts. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Deploying zero-operators with
|
| Latest commit: |
5782696
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://9f8ca0f9.zero-operators.pages.dev |
| Branch Preview URL: | https://claude-brand-redesign-v2.zero-operators.pages.dev |
3 tasks
SamPlvs
added a commit
that referenced
this pull request
Apr 30, 2026
feat(brand+website): brand redesign v2 + website v2 — v1.0.2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
prefers-color-scheme). Same Cloudflare-deployable shape as before.What changed
design/— wiped and replaced:banner-dark.svg+logo-light.svg.brand-system.html(dark) +brand-system-light.html+logos.html+font-pairings.html+ sharedstyles.css+logos.js+readme-banner.{svg,png}+logo-dark.svg(extracted from new mark, used in README inline refs).website/— rebuilt:.astrocomponents + 4 JSON data files + 2 scripts +Base.astro+ oldindex.astro+global.css+PLAN.md+ obsoletepackage-lock.json.src/pages/index.html(Astro passes static HTML through verbatim) +public/{styles.css, app.js, favicon.svg, robots.txt, assets/hero-workshop.png, sitemap.xml}.@media (hover: none) and (pointer: coarse).Cascade docs (per CLAUDE.md PR-003 / PR-005):
README.md— banner uses newdesign/readme-banner.png; footer mark uses newdesign/logo-dark.svg; badges recolored to coral on canvas; test count refreshed (524 → 669); footer version v1.0.1 → v1.0.2.CLAUDE.md— "Design System" section rewritten end-to-end..claude/agents/frontend-engineer.md+.claude/agents/documentation-agent.md— design path refs (design/zero_operators_brand_system.html→design/brand-system.html) + palette/font refs updated.Version cascade:
pyproject.toml1.0.1 → 1.0.2src/zo/__init__.py1.0.1 → 1.0.2src/zo/cli.py1.0.1 → 1.0.2Memory:
memory/zo-platform/STATE.md— current position updated to v1.0.2; session-021 entry added.memory/zo-platform/DECISION_LOG.md— 2026-04-25T22:00:00Z DESIGN entry recording the redesign, alternatives, and outcome.Cloudflare safety
The Cloudflare Pages dashboard is unchanged: build cmd
cd website && npm install && npm run build, outputwebsite/dist, production branchmain, automatic deployments enabled, watch*. The new site uses the sameastro.config.mjs(static,_assetsbuild dir) and samepackage.json(Astro ^5.0.0,astro buildscript), so the existing pipeline produces a cleandist/on merge with no Cloudflare config changes needed.Verified locally:
npm install→ 376 packages.npm run build→dist/with 7 files (index.html,styles.css,app.js,favicon.svg,robots.txt,sitemap.xml,assets/hero-workshop.png), ~260 ms build time.scripts/validate-docs.sh: 10 / 10 hard checks pass, 1 pre-existing test-count warning unrelated to this PR.Test plan
assets/hero-workshop.png) loads on the deployed preview.https://<preview>.pages.dev/sitemap.xmlresolves with the home URL entry.main, production deploy atzerooperators.comreflects the new brand.🤖 Generated with Claude Code