From 1dd683b7c17400db8cb6659bb498521fac80cf46 Mon Sep 17 00:00:00 2001
From: Mattyu <25262258+mattyu-dev@users.noreply.github.com>
Date: Wed, 15 Jul 2026 17:31:30 +0200
Subject: [PATCH 1/5] feat: rebuild Launch Control landing v3
---
.github/workflows/ci.yml | 2 +-
.impeccable/design.json | 8 +-
CHANGELOG.md | 9 +
DESIGN.md | 142 +-
PRODUCT.md | 79 +-
README.md | 20 +-
docs/404.html | 6 +-
docs/assets/brief-evidence.png | Bin 224369 -> 223147 bytes
docs/assets/fix-lab.png | Bin 163463 -> 163152 bytes
docs/assets/guided-receipt-mobile.png | Bin 146908 -> 142606 bytes
docs/assets/guided-receipt-mobile.webp | Bin 75186 -> 68052 bytes
docs/assets/guided-review-mobile-step-2.png | Bin 33841 -> 34806 bytes
docs/assets/guided-review-mobile-step-3.png | Bin 34554 -> 34978 bytes
docs/assets/guided-review-step-1.png | Bin 158697 -> 155807 bytes
docs/assets/guided-review-step-3.png | Bin 161449 -> 163766 bytes
docs/assets/icons/arrow-down.svg | 16 +
docs/assets/icons/arrow-right.svg | 16 +
docs/assets/icons/check-circle-2.svg | 16 +
docs/assets/icons/circle-alert.svg | 17 +
docs/assets/icons/external-link.svg | 17 +
docs/assets/icons/file-json.svg | 18 +
docs/assets/icons/route.svg | 17 +
docs/assets/icons/rows-3.svg | 17 +
docs/assets/icons/scan-line.svg | 19 +
docs/assets/icons/shield-check.svg | 16 +
.../instrument-serif-latin-italic.woff2 | Bin 0 -> 22128 bytes
docs/assets/inter-latin-variable.woff2 | Bin 0 -> 48256 bytes
docs/assets/launch-control-core-v3.avif | Bin 0 -> 25665 bytes
docs/assets/launch-control-core-v3.png | Bin 0 -> 1512803 bytes
docs/assets/launch-control-core-v3.webp | Bin 0 -> 46394 bytes
docs/assets/product-desktop.png | Bin 738472 -> 426773 bytes
docs/assets/product-mobile.png | Bin 451027 -> 177822 bytes
docs/assets/social-card-v3.png | Bin 0 -> 232929 bytes
docs/assets/social-card.png | Bin 117991 -> 232929 bytes
docs/assets/workspace-desktop.png | Bin 192973 -> 189860 bytes
docs/assets/workspace-desktop.webp | Bin 87050 -> 88850 bytes
docs/assets/workspace-mobile-detail.png | Bin 106242 -> 105256 bytes
docs/assets/workspace-mobile-hero.png | Bin 69208 -> 68541 bytes
docs/assets/workspace-mobile-hero.webp | Bin 33314 -> 31462 bytes
docs/assets/workspace-mobile.png | Bin 157082 -> 154767 bytes
docs/assets/workspace-mobile.webp | Bin 74890 -> 72776 bytes
docs/brief-evidence.html | 6 +-
docs/evidence/interactive-rule-pack.json | 4 +-
...duct-lighthouse-accessibility-desktop.json | 434 +--
...oduct-lighthouse-accessibility-mobile.json | 438 +--
.../product-lighthouse-quality-desktop.json | 2661 +++++++++-------
.../product-lighthouse-quality-mobile.json | 2802 +++++++++--------
.../reviewed-manifest-validation.json | 2 +-
...pace-lighthouse-accessibility-desktop.json | 384 +--
...space-lighthouse-accessibility-mobile.json | 382 +--
docs/evidence/workspace-runtime-qa.json | 169 +-
docs/fix-lab.html | 12 +-
docs/index.html | 835 +++--
docs/social-card.html | 4 +-
docs/workspace.html | 69 +-
meta_importer/ai/evidence_page.py | 6 +-
meta_importer/fix_lab.py | 8 +-
meta_importer/launch_workspace.py | 67 +-
meta_importer/product_landing_v22.py | 414 ---
meta_importer/product_landing_v30.py | 622 ++++
meta_importer/product_page.py | 16 +-
package-lock.json | 34 +-
package.json | 5 +-
pyproject.toml | 2 +-
scripts/workspace_runtime_qa.mjs | 284 +-
tests/test_product_surface.py | 120 +-
66 files changed, 5806 insertions(+), 4409 deletions(-)
create mode 100644 docs/assets/icons/arrow-down.svg
create mode 100644 docs/assets/icons/arrow-right.svg
create mode 100644 docs/assets/icons/check-circle-2.svg
create mode 100644 docs/assets/icons/circle-alert.svg
create mode 100644 docs/assets/icons/external-link.svg
create mode 100644 docs/assets/icons/file-json.svg
create mode 100644 docs/assets/icons/route.svg
create mode 100644 docs/assets/icons/rows-3.svg
create mode 100644 docs/assets/icons/scan-line.svg
create mode 100644 docs/assets/icons/shield-check.svg
create mode 100644 docs/assets/instrument-serif-latin-italic.woff2
create mode 100644 docs/assets/inter-latin-variable.woff2
create mode 100644 docs/assets/launch-control-core-v3.avif
create mode 100644 docs/assets/launch-control-core-v3.png
create mode 100644 docs/assets/launch-control-core-v3.webp
create mode 100644 docs/assets/social-card-v3.png
delete mode 100644 meta_importer/product_landing_v22.py
create mode 100644 meta_importer/product_landing_v30.py
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index e09d584..5be273a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -38,7 +38,7 @@ jobs:
- name: Static checks
run: |
uv run --frozen ruff check .
- uv run --frozen mypy meta_importer/ai meta_importer/clock.py meta_importer/review_policy.py meta_importer/fix_lab.py meta_importer/product_page.py meta_importer/product_landing_v22.py
+ uv run --frozen mypy meta_importer/ai meta_importer/clock.py meta_importer/review_policy.py meta_importer/fix_lab.py meta_importer/product_page.py meta_importer/product_landing_v30.py
- name: Tests and branch coverage
run: |
uv run --frozen coverage run -m unittest discover -s tests -q
diff --git a/.impeccable/design.json b/.impeccable/design.json
index 8e45839..66ac140 100644
--- a/.impeccable/design.json
+++ b/.impeccable/design.json
@@ -1,11 +1,11 @@
{
"schemaVersion": 2,
- "generatedAt": "2026-07-15T12:00:00Z",
+ "generatedAt": "2026-07-15T17:00:00Z",
"source": "DESIGN.md",
"register": "brand",
"platform": "web",
"direction": "Launch Control",
- "personality": ["operational", "kinetic", "exact"],
- "signature": "routing tracks and checkpoint",
- "primaryAction": "Open the workspace"
+ "personality": ["industrial", "calm", "exact"],
+ "signature": "orange Detect Route Prove checkpoint",
+ "primaryAction": "Try the live workspace"
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6472373..0f005a2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
# Changelog
+## 3.0.0 — 2026-07-15
+
+- Rebuilt the canonical product landing from a blank visual system with a neutral depth shell, Inter, restrained Instrument Serif accents, charcoal controls and one industrial-orange brand color.
+- Removed every legacy workspace screenshot from the landing and replaced them with one native interactive Queue, Review and Receipt product shell.
+- Added a real browser-local decision flow, accessible keyboard tabs, a live receipt announcement and an actual `review_state.json` export.
+- Introduced a new responsive brand sculpture in AVIF and WebP while keeping it secondary to product proof and hidden from the mobile fold.
+- Applied the Launch Control palette to the workspace, evidence and fix-lab surfaces for visual continuity.
+- Added exact synthetic-run boundaries, reduced-motion support, 44-pixel controls, mobile-native layouts and a new V3 social card.
+
## 2.2.0 — 2026-07-15
- Rebuilt the canonical homepage as a product-led SaaS launch surface around one category: the launch control layer before Ads Manager.
diff --git a/DESIGN.md b/DESIGN.md
index 2e75ccc..22bb873 100644
--- a/DESIGN.md
+++ b/DESIGN.md
@@ -3,115 +3,105 @@ register: brand
platform: web
---
-# Creative Launch Workspace design system
+# Launch Control visual system
-## 1. Strategy
+## Strategy
-Creative Launch Workspace is a B2B product for teams controlling the handoff between approved creative and campaign build. The public page must behave like a credible SaaS launch surface, not an explanation of a side project.
+Launch Control is a B2B pre-launch QA product for Meta Ads. It must read as a real SaaS product in five seconds: what it catches, how exceptions move, who decides and what evidence remains.
-The creative strategy is **Launch Control**. The signature visual is a routing track: inputs converge at a high-visibility checkpoint and leave with an explicit state. This motif can support the brand mark, product annotations, and workflow explanation, but it must remain semantic and sparse.
+The direction is Industrial AI Elegance, combining Apple-like hierarchy and material restraint with Linear-like product proof. The signature is the orange route from Detect to Route to Prove. The page never uses portfolio, personal-project or case-study framing.
-The first viewport is an asymmetric 44/56 split. The message, primary action, and at least half of a real product surface must be visible at 1440 by 900. No hidden hero content, decorative empty space, or metric template is allowed.
+The hero may use one abstract orange control sculpture as a secondary brand object on desktop. The native Queue, Review and Receipt interface is always the primary proof. The sculpture disappears on mobile so useful product state reaches the first viewport.
-The page tells one sequence: identify the fragile handoff, show the control layer, demonstrate how exceptions move, explain bounded automation, expose inspectable evidence, and invite the visitor into the workspace.
-
-## 2. Foundations
+## Foundations
### Color
-The committed palette is cold canvas, deep plum, action lemon, annotation fuchsia, and data lavender. Status green, amber, and red are reserved for real product states and never become brand decoration.
-
```css
:root {
- --canvas: oklch(97.5% 0.006 315);
- --surface: oklch(100% 0 0);
- --surface-tint: oklch(95.5% 0.014 315);
- --ink: oklch(19% 0.032 315);
- --plum: oklch(21% 0.055 315);
- --plum-raised: oklch(26% 0.062 315);
- --lemon: oklch(91% 0.17 100);
- --lemon-hover: oklch(86% 0.17 100);
- --lemon-pressed: oklch(80% 0.16 100);
- --fuchsia: oklch(57% 0.216 4);
- --fuchsia-text: oklch(44% 0.17 4);
- --lavender: oklch(82% 0.08 292);
- --muted: oklch(50% 0.02 315);
- --border: oklch(87% 0.016 315);
+ --canvas: #ECEDEE;
+ --shell: #F4F5F5;
+ --surface: #FFFFFF;
+ --surface-soft: #F7F7F5;
+ --ink: #232427;
+ --charcoal: #171719;
+ --body: #55575C;
+ --muted: #7B7D82;
+ --orange: #E34A32;
+ --orange-hover: #F05A3C;
+ --orange-soft: #FFF0EC;
}
```
-Lemon is the only primary-action color. Fuchsia occupies less than ten percent of the composition and marks annotations or routing only. Plum carries 35 to 45 percent of the first viewport. Lavender is reserved for data context.
+Orange is the single brand and action color. Green, amber and red are reserved for real product state. Plum, lemon, fuchsia, lavender, gradient text and multicolor CTA systems are forbidden.
### Typography
-Mona Sans Variable is the single UI and display family. Its broad weight range supports a compact operational voice without introducing a second sans family. Geist Mono is reserved for identifiers, counts, and receipts.
-
-- Display: 48 to 72px, 0.96 to 1.02 line height, letter spacing no tighter than -0.04em.
-- Section title: 36 to 56px, 1.0 to 1.08 line height.
-- Lead: 18 to 20px, maximum 70 characters.
-- Body: 15 to 17px, 1.5 to 1.65 line height.
-- Data: 11 to 14px Geist Mono.
-
-### Spacing, geometry, and elevation
-
-Use a four-pixel base grid with 8, 12, 16, 24, 32, 48, 72, 96, and 128px steps. Controls use 8 to 10px radii. Panels use 12 to 16px. Only the main product stage may reach 20px. Pills are reserved for status.
-
-Elevation is minimal and directional. Product surfaces may use one soft shadow; content sections rely on borders, spacing, and color contrast. No glow or translucent glass.
-
-### Motion
-
-The page-load sequence uses one 240 to 360ms entrance with a small 30 to 50ms stagger. Interaction feedback remains under 200ms. Buttons press to 0.97 scale. Product tabs explain a state change; they do not animate for spectacle. Reduced-motion mode removes translation and nonessential transitions while keeping every element visible.
-
-## 3. Components
-
-### Header and brand mark
-
-The header is one line and at most 72px high. The mark reduces the routing-track motif to three incoming lines, one lemon checkpoint, and two outgoing lines. Navigation labels are Product, Workflow, Controls, and Evidence. The persistent action is Open the workspace.
-
-### Buttons
-
-The primary button is plum text on lemon with an arrow that moves two pixels on hover. Secondary actions are text or a restrained outline. Labels state an action and destination. Every interactive target is at least 44px.
-
-### Product stage
-
-The hero product stage uses a real generated screenshot inside a deep-plum frame. The crop must keep the issue, owner, and next action legible. Tabs later in the page switch between Queue, Review, and Receipt views using real screenshots, WAI-ARIA tabs, and keyboard navigation.
+- Inter Variable: body, display and product UI.
+- Instrument Serif Italic: no more than two editorial accents on the full page.
+- System monospace: identifiers and receipts only.
+- Display: 56 to 64px desktop, 44px mobile, weight 600, line height .96 and tracking -.052em.
+- Product UI: 12px minimum, with 14px body copy and 20 to 25px state titles.
-### Routing flow
+The hero implements a 600 to 900 variable-weight proximity interaction. Word groups remain intact so the effect never creates broken wrapping.
-Four actual workflow steps may be numbered: Map brief, Check rows, Route exceptions, Record decision. They form a connected sequence, not four interchangeable feature cards.
+### Shape and depth
-### Evidence and boundaries
+- Page wrapper: 1440px maximum, 40px desktop radius and 28px mobile radius.
+- Product stage: 28px radius with an inner white highlight and diffuse charcoal shadow.
+- Marketing cards: 24px radius.
+- Product panels: 16px radius.
+- Controls: 10 to 13px radius. Primary marketing actions may use pills.
-Fixture counts are labeled as interactive workspace data, never customer outcomes. Product boundaries appear once as compact trust copy. Engineering evidence links directly to source, tests, contracts, and generated evidence.
+Depth comes from warm neutral layers, inset highlights and restrained shadows. Glass is limited to the floating navigation and does not stack across the page.
-## 4. Patterns
+## Product proof
-### Hero
+The landing contains one native HTML/CSS product shell with three real states:
-Use the single eyebrow “Pre-launch QA for Meta creative operations.” The headline is “The launch control layer before Ads Manager.” The subhead names the checks, routing, and human authority. The product remains visible without JavaScript and above the fold on desktop and mobile.
+1. Queue shows the current synthetic run, routed exceptions and named owners.
+2. Review shows the creative, exact launch facts, proposed fix and human actions.
+3. Receipt shows the saved local decision, event trail and exportable JSON state.
-### Product narrative
+Tabs use WAI-ARIA semantics, arrow-key navigation and a Transitions.dev sliding pill. The confirmation writes browser-local state, announces the result through `aria-live` and exports a real JSON file. No raster product screenshot is loaded by the landing.
-Move from the launch handoff to the working control surface. Use alternating full-width compositions, connected rows, and an interactive product stage. Do not create a grid of three equal feature cards.
+## Motion
-### Controls narrative
+- Hero rise: 620ms with 60ms stagger.
+- Tab pill: 250ms cubic-bezier(.22,1,.36,1).
+- Inspector entrance: 280ms, 12px horizontal travel.
+- Receipt timeline: 260ms with 60ms stagger.
+- Button press: scale .98 for 100ms.
-State the operating model once: AI proposes, deterministic rules bound the result, people decide ambiguous calls. Place synthetic-data and no-publish boundaries as supporting trust information, not as the hero message.
+No `transition: all`, ease-in entrance, autoplay carousel, permanent drift or decorative parallax. Reduced-motion mode removes translation and variable-weight behavior while keeping all content visible.
-### Closing action
+## Content and conversion
-Return to the same promise and the same label: Open the workspace. The footer may state “Built by Mathieu Petroni” and link to inspectable profiles or source. It must not become a founder case-study section.
+Eyebrow: **Pre-launch QA for Meta Ads**
-## 5. Content Guidance
+Headline: **Catch creative launch mistakes before Ads Manager.**
-Write as a real product selling an operational outcome. Prefer launch, check, route, owner, exception, decision, evidence, and workspace. Avoid AI-first language, vague transformation claims, theatrical manifestos, internal implementation jargon, and portfolio language.
+Primary action everywhere: **Try the live workspace**
-Use sentence case. Headlines stay under eight words where practical. Paragraphs stay under 70 characters per line. Avoid long dashes in visible copy. Never use fabricated customers, ROI, guarantees, testimonials, pricing, trials, bookings, or enterprise-security claims.
+Synthetic counts must always be labeled as a current synthetic run. Never add fabricated clients, testimonials, ROI, pricing, trials, enterprise claims or platform-write capability.
-Primary action: **Open the workspace**. Secondary action: **See the workflow**.
+## Accessibility and performance
-## 6. Do / Don't
+- WCAG AA contrast for copy and controls.
+- 44px minimum interactive targets.
+- No horizontal overflow at 320px or 200% text zoom.
+- Keyboard tabs and visible focus.
+- Reduced motion, reduced transparency and increased contrast modes.
+- Responsive AVIF and WebP for the brand sculpture. PNG is fallback only.
+- Target Lighthouse: 90+ performance and 100 accessibility.
-Do show the real product in the first viewport. Do make issue, owner, and next action readable. Do use lemon only for high-value actions. Do preserve semantic status colors inside the product. Do support keyboard, reduced motion, reduced transparency, increased contrast, 320px widths, and 200% text zoom.
+## No-go rules
-Do not reuse the previous coral brand. Do not clone a generic purple AI site. Do not use cream paper, gradients, grid patterns, glass, blobs, glow, gradient text, decorative dots, hero metric strips, or repeated card grids. Do not hide default content behind opacity. Do not add a case-study route or describe the product as a personal project.
+- No old workspace, guided-review or evidence screenshots on the landing.
+- No product UI text below 12px.
+- No duplicate use of the sculpture.
+- No fake browser chrome.
+- No H1 longer than two desktop lines.
+- No CTA below the first viewport.
+- No case-study or personal-project route.
+- No long dash in visible copy.
diff --git a/PRODUCT.md b/PRODUCT.md
index a989109..d06c871 100644
--- a/PRODUCT.md
+++ b/PRODUCT.md
@@ -1,66 +1,59 @@
---
-register: brand
+register: product
platform: web
---
-# Creative Launch Workspace
+# Launch Control
-Creative Launch Workspace is the launch control layer before Ads Manager. It validates the handoff between approved creative and campaign build, routes each exception to the right owner, and keeps uncertain calls human.
+Launch Control is pre-launch QA for Meta Ads. It validates approvals, placements, destinations, naming and UTMs across every creative row, routes exceptions to the right owner and keeps ambiguous decisions human.
-## Users
+## Audience
-- Creative operations leads and media buyers who need a fast, inspectable pre-launch review.
-- Heads of Growth, CMOs, and agency leads who need launch risk to have an owner and an evidence trail.
-- Technical evaluators who need to inspect the deterministic contracts, bounded AI role, and browser QA behind the interface.
+- Creative operations leads and media buyers managing launch handoffs.
+- CMOs, Heads of Growth and agency leads who need exceptions to have owners.
+- CTOs and technical recruiters evaluating product judgment, trust boundaries and engineering quality.
-## Purpose and success
+## Product promise
-The public page must make the product category, workflow, and value legible within five seconds. Success means a qualified visitor understands what happens before Ads Manager, sees the actual product without scrolling, and chooses **Open the workspace**.
+**Catch creative launch mistakes before Ads Manager.**
-The product does not publish to Meta, use customer data, or claim customer outcomes. The public experience uses synthetic fixture data and local-only interactions.
+A visitor should understand the category, see the working product and reach the live workspace in one first-screen scan.
-## Positioning
+## Working demo
-**The launch control layer before Ads Manager.**
+The public interaction uses the committed synthetic batch `78f20843aea8a367`:
-The product checks approval, placement, destination, naming, format, and UTM issues for every creative row. Detected exceptions receive an issue, an owner, and a next action. People retain authority over ambiguous decisions.
+- 100 creative rows;
+- 30 ready;
+- 10 held for human decision;
+- 60 blocked;
+- zero external writes.
-## Conversion model
+Queue, Review and Receipt are interactive HTML states. Confirming `cr_007` records browser-local state, creates an inspectable receipt and enables a real JSON export. It does not call Meta.
-- Primary action: **Open the workspace**.
-- Secondary action: **See the workflow**.
-- Belief sequence: launch handoffs are fragile; the product checks each row; exceptions are routed; ambiguity stays human; the evidence can be inspected.
-- Proof: a working 100-row fixture, a guided review, fix and revalidation behavior, versioned contracts, automated tests, and reproducible browser QA.
-- Forbidden proof: customer logos, testimonials, ROI, pricing, trial claims, security claims, or production-readiness claims that are not supported by evidence.
+## Authority boundary
-## Brand personality
+Automation may propose structured source context. Deterministic rules verify allowlists, schema and launch constraints. Named people decide ambiguous intent. The browser demo cannot publish, upload assets, load credentials or change spend.
-Operational, kinetic, exact. The page should feel like a launch control surface under a real deadline: alert enough to focus attention, controlled enough to inspire confidence, and specific enough to be credible.
+## Conversion
-The visitor should feel clarity, control, and curiosity.
+- Primary action: **Try the live workspace**.
+- Desktop secondary action: **See how it works**.
+- Proof links: contracts, deterministic replay, CI and architecture.
+- Belief sequence: Detect, Route, Prove.
-## Anti-references
+## Brand behavior
-- Generic electric-purple AI branding.
-- A cold monochrome Linear clone.
-- Coral or red used as a brand color.
-- Portfolio, personal-project, or case-study framing.
-- Cream editorial paper, glassmorphism, glow, gradient text, floating blobs, decorative grids, and repeated equal cards.
-- Fake social proof, fake metrics, or a pretend enterprise funnel.
+The product feels industrial, calm and exact. Neutral layers create depth, charcoal carries authority and orange identifies the next action. Product evidence is always more prominent than decoration.
-## Product principles
+Forbidden: portfolio framing, case studies, fake clients, logos, testimonials, ROI, pricing, purple AI styling, multiple accent colors and repeated screenshots.
-1. Product before explanation.
-2. Signal instead of decoration.
-3. One clear action.
-4. Control by design.
-5. Proof without pretending.
-
-## Accessibility and performance
-
-- WCAG AA contrast for text and controls.
-- Keyboard-visible focus and 44px minimum targets.
-- No horizontal overflow at 320px or at 200% text zoom.
-- Reduced motion, reduced transparency, and increased contrast support.
-- LCP at or below 2.5s, CLS at or below 0.1, and TBT at or below 200ms in the production build.
+## Quality contract
+- One canonical public landing and no `case-study.html`.
+- Native product proof above the fold.
+- H1 no longer than two lines on desktop.
+- Useful Queue state inside the 390 by 844 mobile fold.
+- 12px minimum product text and 44px minimum controls.
+- Keyboard navigation, `aria-live`, reduced motion and no horizontal overflow.
+- Lighthouse performance at least 90 and accessibility 100.
diff --git a/README.md b/README.md
index 23dc035..39891b8 100644
--- a/README.md
+++ b/README.md
@@ -2,24 +2,22 @@
[](https://github.com/mattyu-dev/creative-launch-workspace/actions/workflows/ci.yml)
[](https://github.com/mattyu-dev/creative-launch-workspace/actions/workflows/codeql.yml)
-[](https://mattyu-dev.github.io/creative-launch-workspace/)
-[](LICENSE)
+[](https://mattyu-dev.github.io/creative-launch-workspace/)
+[](LICENSE)
-The launch control layer before Ads Manager.
+Catch creative launch mistakes before Ads Manager.
-Check every creative row for approval, placement, destination, naming and UTM issues. Route each exception to the right owner. Keep uncertain calls human.
+Validate approvals, placements, destinations, naming and UTMs across every creative row. Route exceptions to the right owner. Keep ambiguous decisions human.
-**[Open the product](https://mattyu-dev.github.io/creative-launch-workspace/)** · [Open the workspace](https://mattyu-dev.github.io/creative-launch-workspace/workspace.html?guided=1) · [Explore the full queue](https://mattyu-dev.github.io/creative-launch-workspace/workspace.html) · [Fix and revalidate a blocked row](https://mattyu-dev.github.io/creative-launch-workspace/fix-lab.html)
+**[Try Launch Control](https://mattyu-dev.github.io/creative-launch-workspace/)** · [Open the live workspace](https://mattyu-dev.github.io/creative-launch-workspace/workspace.html?guided=1) · [Explore the full queue](https://mattyu-dev.github.io/creative-launch-workspace/workspace.html) · [Fix and revalidate a blocked row](https://mattyu-dev.github.io/creative-launch-workspace/fix-lab.html)
-**100 synthetic creatives · 70 seeded issues routed · 10 ambiguous cases held for human review · 0 live platform mutations**
+**Current synthetic run: 100 creative rows · 70 issues routed · 10 human reviews · 0 external writes**
**Mathieu Petroni** designed and built the review workflow, AI orchestration, evaluations, trust boundaries, deterministic validators and responsive interface.
-[](https://mattyu-dev.github.io/creative-launch-workspace/workspace.html)
+[](https://mattyu-dev.github.io/creative-launch-workspace/)
-The public product system uses a cold `#f7f6f8` canvas, Mona Sans, deep-plum `#24142b` control surfaces, lemon `#ffe44d` actions and fuchsia `#d91f72` annotations. Green, amber and red remain reserved for real status. `font-display: optional`, responsive image formats and explicit dimensions keep the production landing stable during first paint.
-
-[](https://mattyu-dev.github.io/creative-launch-workspace/workspace.html?guided=1)
+The V3 public product is a from-scratch Apple and Linear inspired system built with Inter, Instrument Serif accents, a neutral depth shell, charcoal controls and one industrial-orange action color. Queue, Review and Receipt are native interactive states, not screenshots. The only raster image is a new abstract brand sculpture served as AVIF or WebP; it never replaces product proof.
## Why this exists
@@ -61,8 +59,6 @@ The default provider is a transparent deterministic baseline for CI. An optional
Read the [governed intake evidence](https://mattyu-dev.github.io/creative-launch-workspace/brief-evidence.html), [model card](docs/ai/model_card.md), [evaluation protocol](docs/ai/evaluation.md), and [system architecture](docs/architecture/system.md).
-[](https://mattyu-dev.github.io/creative-launch-workspace/brief-evidence.html)
-
## Fix & Revalidate Lab
The browser lab lets you complete one small review loop without pretending it has a production backend. Change placement, approval and UTM fields on a blocked synthetic row, then replay one of eight versioned scenarios generated by the Python validators.
diff --git a/docs/404.html b/docs/404.html
index 745fa0e..b064190 100644
--- a/docs/404.html
+++ b/docs/404.html
@@ -4,14 +4,14 @@
-
+
-
+
Page not found · Mathieu Petroni
404 · Creative Launch Workspace
This route does not exist.
Return to the product, open the workspace or inspect the source.