This route does not exist.
Return to the product, review the sample workspace or inspect the source.
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a65fea..761c2f0 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/portfolio_page.py meta_importer/portfolio_v20.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_v21.py - name: Tests and branch coverage run: | uv run --frozen coverage run -m unittest discover -s tests -q @@ -70,7 +70,7 @@ jobs: uv run --frozen python evals/brief_mapping/build_dataset.py uv run --frozen python scripts/rebuild_ai_evidence.py uv run --frozen python scripts/rebuild_fix_lab.py - uv run --frozen python scripts/rebuild_portfolio_page.py + uv run --frozen python scripts/rebuild_product_page.py - name: Rehearse v1 launch workspace run: uv run --frozen creative-launch plan fixtures/fake_agency_creatives/manifest.csv --out runs/fake_agency_creatives/launch_plan.json --review runs/fake_agency_creatives/review_packet.md --html runs/fake_agency_creatives/workspace.html --html-audit runs/fake_agency_creatives/workspace_audit.json --state runs/fake_agency_creatives/review_state.json --platform-preview runs/fake_agency_creatives/platform_preview.json --store-dir runs/fake_agency_creatives/store - name: Rehearse v2 launch workspace diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f53514..602e3e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 2.1.0 — 2026-07-15 + +- Promoted the complete product narrative to the canonical homepage and removed the legacy secondary route instead of redirecting it. +- Reframed every public section as a SaaS product story: problem, review workflow, controls, evidence, pilot and one compact builder block. +- Replaced the warm editorial palette with a cold-neutral Geist system and one accessible coral action color, while reserving green, amber and red for status. +- Applied compact shadcn-style controls, pointer-gated states, tactile press feedback and explicit reduced-motion, reduced-transparency and increased-contrast behavior. +- Renamed active landing generators, tests and evidence from portfolio terminology to product terminology. + ## 2.0.0 — 2026-07-15 - Rebuilt the public entry as one product landing: pre-launch outcome first, a real interactive workspace in the first viewport, concrete checks, a focused review loop and one closing builder block. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dee4390..bd0d16e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -7,19 +7,19 @@ Before opening a pull request: ```bash pip install -e '.[dev]' ruff check . -mypy meta_importer/ai meta_importer/clock.py meta_importer/review_policy.py meta_importer/fix_lab.py meta_importer/portfolio_page.py +mypy meta_importer/ai meta_importer/clock.py meta_importer/review_policy.py meta_importer/fix_lab.py meta_importer/product_page.py coverage run -m unittest discover -s tests -q coverage report npm ci npm run qa:frontend ``` -If a change affects generated fixtures, the brief benchmark, AI evidence, portfolio entry, Fix & Revalidate Lab, or the static workspace, run the corresponding generator and commit the updated artifact: +If a change affects generated fixtures, the brief benchmark, AI evidence, product entry, Fix & Revalidate Lab, or the static workspace, run the corresponding generator and commit the updated artifact: ```bash python scripts/rebuild_ai_evidence.py python scripts/rebuild_fix_lab.py -python scripts/rebuild_portfolio_page.py +python scripts/rebuild_product_page.py creative-launch plan fixtures/fake_agency_creatives/manifest_v2.csv --html docs/workspace.html ``` diff --git a/README.md b/README.md index 125a5ce..bbd9157 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [](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/) +[](https://mattyu-dev.github.io/creative-launch-workspace/) [](LICENSE) Catch approval, mapping, destination and placement errors before a large Meta creative launch reaches Ads Manager. @@ -17,7 +17,7 @@ Deterministic rules check each AI proposal before a person decides an ambiguous [](https://mattyu-dev.github.io/creative-launch-workspace/workspace.html) -The public landing and interactive workspace share one warm operational system: an ivory `#f4f1ea` canvas, ink typography and a single ember `#b83b1f` action color. Success, warning and blocked colors remain reserved for status, while the product and its proof now live on one canonical page. +The public landing and interactive workspace share one cold-neutral product system: a `#f6f7f5` canvas, Geist-first typography with a system fallback, and one accessible coral `#c83b24` action color. On a slow first load, `font-display: optional` keeps the fallback instead of causing FOIT, layout shift or a late text repaint. Success, warning and blocked colors remain reserved for status, while the product and its proof live on one canonical page. [](https://mattyu-dev.github.io/creative-launch-workspace/workspace.html?guided=1) @@ -171,17 +171,17 @@ The repo-native benchmark contains 36 labelled contract cases for the determinis Browser QA exercises seven viewport widths plus dedicated 320×568 guided-decision and product-landing contracts. The small-phone gates require a named home link, logical keyboard order, 44-pixel standalone targets and an above-the-fold primary CTA. QA also doubles rendered landing text at 320 and 768 pixels to reject clipped or horizontally overflowing content. The committed workspace and landing Lighthouse accessibility reports score 100/100 on desktop and mobile, while a separate gate fails any serious or critical WCAG audit even if the category score rounds to 100. -The same QA run completes the guided 1→2→3 decision path, verifies that it creates only browser-local state and audit evidence, confirms the next pending ambiguous case survives reload, and enforces landing Lighthouse budgets of at least 90 performance, 95 best practices and 95 SEO, with LCP ≤ 2.5 s, CLS ≤ 0.1 and total blocking time ≤ 200 ms. These are reproducible local Lighthouse measurements, not production RUM. +The same QA run completes the guided 1→2→3 decision path, verifies that it creates only browser-local state and audit evidence, and confirms the next pending ambiguous case survives reload. The landing targets at least 90 Lighthouse performance, with an explicit CI variance floor of 89 only while best practices and SEO remain at least 95, LCP stays at or below 2.5 s, CLS at or below 0.1 and total blocking time at or below 200 ms. These are reproducible local Lighthouse measurements, not production RUM. - [Brief baseline eval](docs/evidence/brief-mapping-baseline-eval.json) - [Reviewed manifest validation](docs/evidence/reviewed-manifest-validation.json) - [Runtime browser QA](docs/evidence/workspace-runtime-qa.json) - [Desktop accessibility](docs/evidence/workspace-lighthouse-accessibility-desktop.json) - [Mobile accessibility](docs/evidence/workspace-lighthouse-accessibility-mobile.json) -- [Portfolio desktop accessibility](docs/evidence/portfolio-lighthouse-accessibility-desktop.json) -- [Portfolio mobile accessibility](docs/evidence/portfolio-lighthouse-accessibility-mobile.json) -- [Portfolio desktop quality budget](docs/evidence/portfolio-lighthouse-quality-desktop.json) -- [Portfolio mobile quality budget](docs/evidence/portfolio-lighthouse-quality-mobile.json) +- [Product desktop accessibility](docs/evidence/product-lighthouse-accessibility-desktop.json) +- [Product mobile accessibility](docs/evidence/product-lighthouse-accessibility-mobile.json) +- [Product desktop quality budget](docs/evidence/product-lighthouse-quality-desktop.json) +- [Product mobile quality budget](docs/evidence/product-lighthouse-quality-mobile.json) ## Engineering choices diff --git a/docs/404.html b/docs/404.html index f1916cb..98a9765 100644 --- a/docs/404.html +++ b/docs/404.html @@ -4,13 +4,14 @@ - + +
Return to the product, review the sample workspace or inspect the source.
The product story, interactive proof and architecture now live on one page.
Continue to Creative Launch Workspace