Skip to content

Publish Xerox concept theme#104

Merged
nickhamze merged 14 commits into
mainfrom
agent/xerox-concept
Apr 30, 2026
Merged

Publish Xerox concept theme#104
nickhamze merged 14 commits into
mainfrom
agent/xerox-concept

Conversation

@nickhamze
Copy link
Copy Markdown
Contributor

Summary

  • Adds the new Xerox concept theme, playground content, bespoke product/category imagery, and branch Playground blueprint.
  • Includes the mockup-fidelity pipeline hardening from the repair pass: image retry behavior, duplicate sibling photo detection, tolerant JSON parsing, and a layout contrast fix.
  • Removes visible generated placeholder copy and applies first-pass Xerox storefront chrome so the theme can be reviewed now.

Playground

Test plan

  • PASS: python3 bin/check.py xerox --quick --phase content
  • PASS: node bin/blocks-validator/check-blocks.mjs xerox
  • WARN: python3 bin/snap.py report xerox --strict after refreshed mobile/desktop snaps: 0 errors, warnings remain.
  • Bypassed local commit/push hooks per request to publish now and fix later. Known remaining follow-ups: generated !important cleanup, distinctive chrome deltas, theme screenshot refresh, and snap evidence refresh after final edits.

Made with Cursor

1. **API key preflight** (`design.py/_phase_photos`): fails fast with
   `.env` setup instructions when no image key (OPENAI_API_KEY / FAL_KEY)
   is present, instead of burning ~1-2 min in the Claude prompt-build step
   before discovering the gap.

2. **Parallel image generation** (`design-agent.py/run_photos`): replaces
   the sequential per-SKU loop with a `ThreadPoolExecutor(max_workers=8)`
   (tunable via `FIFTY_PHOTO_WORKERS`). 30 product photos now complete in
   ~3-4 min instead of ~25 min.

3. **`--no-strict` propagates to agent subprocesses** (`design.py`): both
   `_phase_photos` and `_phase_frontpage` now pass `--keep-going` to
   `design-agent.py` whenever the parent pipeline was started with
   `--no-strict`, preventing the scoring snap from aborting a high-
   confidence layout.

4. **CDN race fixed** (`design.py/_wait_for_cdn`): after prepublish push,
   polls `raw.githubusercontent.com/<org>/<repo>/<branch>/<slug>/playground/
   content/content.xml` in 5s increments (60s timeout) until the CDN
   serves the freshly-pushed file. Snap no longer dies with "W&O CSV
   malformed" on a fast machine.

5. **Structural template headings always rewritten** (`generate-microcopy.py`):
   adds `_TEMPLATE_STRUCTURAL_LABELS` (Dispatch address, Billing address,
   Returns within 30 days, etc.) that are force-added to the duplicate set
   and passed to the API for in-voice replacements before falling back to
   the generic hash-suffix label. Prevents short functional headings from
   slipping through when the API batch is large.

6. **Auto-allowlist for brand-new themes** (`design.py/_phase_allowlist`):
   new `allowlist` phase between `snap` and `check` that runs
   `snap.py allowlist regenerate --theme <slug>` once — but only when the
   theme has no existing allowlist entries — so inherited upstream WC
   axe-core findings don't block the very first build. Added to both
   `_PHASES_FOR_BUILD` and `_PHASES_FOR_DRESS`; SKILL.md phase table
   updated to match.

Made-with: Cursor
Add a design-tokens phase that consumes the frontpage agent output, mockup, and home snap to produce token-patches.json and apply spacing, radius, shadow, border, and token-based CSS refinements. Wire mockups into the vision review path so mockup divergence is judged against the actual concept image instead of prose alone.

Made-with: Cursor
Removes generated placeholder copy, hardens photo retry behavior, and adds first-pass Xerox chrome polish so the branch can be reviewed while remaining visual-fit issues are handled follow-up.

Published per explicit request to ship now and fix later. Local hook bypassed with known remaining checks: No !important in generated token patch CSS, distinctive chrome deltas for checkout/payment surfaces, theme screenshot refresh, and snap evidence freshness after final edits. The editor-parity block validator was fixed before bypassing.

Made-with: Cursor
@github-actions github-actions Bot added the design Theme design / restyle work label Apr 30, 2026
@nickhamze nickhamze merged commit 0ae3a6e into main Apr 30, 2026
13 of 17 checks passed
@nickhamze nickhamze deleted the agent/xerox-concept branch April 30, 2026 18:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

design Theme design / restyle work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant