From 1c82b12143bb99a53a707d93f66685b00ae8ccb8 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 7 Jul 2026 21:18:53 +0000 Subject: [PATCH] feat: professional redesign of landing + status pages, gated by forge uicheck One design system across both public pages (the forge dash 8-color warm-ink/ember palette, 4px spacing base, 3 radius levels, 1 shadow); both pass the static design gate and the rendered visual gate, with a minted project fingerprint for conformance. Scroll-reveal is JS-gated progressive enhancement. static.yml now deploys an assembled _site/ (landing at root, status at /status/) instead of the whole repository. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Fc2MvWJbQ1cyNQ76ymv4hs --- .github/workflows/static.yml | 28 +- CHANGELOG.md | 11 + landing/index.html | 1720 ++++++++++++++++------------------ public/index.html | 45 +- scripts/build-pages.mjs | 60 +- 5 files changed, 935 insertions(+), 929 deletions(-) diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml index e34c500..2f77878 100644 --- a/.github/workflows/static.yml +++ b/.github/workflows/static.yml @@ -1,28 +1,25 @@ -# Simple workflow for deploying static content to GitHub Pages +# Deploys the public site to GitHub Pages: the landing page at the site root and the +# generated live-status page at /status/. Only the assembled _site/ directory is +# published — never the whole repository. Both pages share one design system and are +# gated by `forge uicheck design` (see test/pages.test.js and the uicheck suite). name: Deploy static content to Pages on: - # Runs on pushes targeting the default branch push: branches: ["master"] - - # Allows you to run this workflow manually from the Actions tab workflow_dispatch: -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +# Allow only one concurrent deployment, but let in-progress production deploys finish. concurrency: group: "pages" cancel-in-progress: false jobs: - # Single deploy job since we're just deploying deploy: environment: name: github-pages @@ -31,13 +28,24 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + - name: Build site + # build-pages.mjs is node-stdlib-only — no npm ci needed. BUILD_PAGES_LIVE=1 + # refreshes public GitHub counters (best-effort; the build succeeds without it). + run: | + BUILD_PAGES_LIVE=1 node scripts/build-pages.mjs + mkdir -p _site/status + cp landing/index.html _site/index.html + cp public/index.html _site/status/index.html - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: - # Upload entire repository - path: '.' + path: "_site" - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v5 diff --git a/CHANGELOG.md b/CHANGELOG.md index a60133c..422d62b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,17 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). claim ids. `reconcileFacts` now only tombstones locally-authored claims, so a merged teammate fact survives `forge recall consolidate`. Legacy formats are still written — full retirement is the next step. +- **Professional redesign of the public site, gated by forge's own UI system.** The + landing page (`landing/index.html`) and the generated status page + (`scripts/build-pages.mjs` → `public/index.html`) are rebuilt on one design system — + the `forge dash` eight-color warm-ink/ember palette, a strict 4px spacing base, three + radius levels, one shadow — and both now pass `forge uicheck design` **and** the + rendered `forge uicheck visual` gate (the old pages failed with 15–19 accumulated + colors and 5–9 radius levels; a project fingerprint claim is minted so conformance is + checked too). Scroll-reveal is JS-gated progressive enhancement (no-JS UAs, crawlers, + and reduced-motion users see the full page), and the Pages workflow (`static.yml`) now + builds and deploys an assembled `_site/` — landing at the site root, status page at + `/status/` — instead of uploading the entire repository as the artifact. ## [0.6.0] - 2026-07-07 diff --git a/landing/index.html b/landing/index.html index 640de9c..30454ca 100644 --- a/landing/index.html +++ b/landing/index.html @@ -3,39 +3,67 @@ - - Forge Cortex — the self-correcting memory your AI agent is missing - + forgekit — one brain for every AI coding agent - - - + + + + + + + + + + -