Skip to content

Step M4: Operator visual UAT #29

Description

@aberson

Build step 7 of 7 — Work-section refresh (observatory-fed) (umbrella #22)

Build doc: documentation/portfolio-refresh-plan.md §7 Step M4 · Step type: operator

What to build

Operator loads the live site: checks all five Work blocks, both themes (OS toggle), the utility table on mobile width, the xmarks Live link, case-study pages under the new palette, and reads the new "How it all fits together" for story fit.

Existing context

  • Astro 7 + content collections; Work grid = ProjectGrid.astro reading getCollection('projects') (10 md files, hidden flag, order sort); EcosystemSection.astro holds the hardcoded LOOPS array; consts.ts shows the TS data-module import pattern.
  • Deploy gates run before build in .github/workflows/deploy.yml: astro check, prettier --check, no-TODO: grep (src/ only), astro build, linkinator (dead-link checker).
  • Brand: the site owns brand/{tokens.json,modes.dark.json}; onbrand build . + scripts/sync-brand.ps1 re-vendor src/assets/; forced light in BaseLayout.astro (to be removed).
  • portfolio.json contract: companion plan §5d (dev-observatory/plans/portfolio-pages-plan.md in aberson/coding-root); pinned counts flagship=3 / utility=13 / fun=6 / professional=3 / third-party=2.

Done when

operator signs off

Depends on

12 (#28)

Parallel-safe with

none — operator step

Produces

UAT verdict; redlines for wording/visuals

Operator workflow notes (autonomous + UI-bundle + parallel)

  • Operator step: /build-phase halts here intentionally; complete the checks above, then resume.

Synced from documentation/portfolio-refresh-plan.md by /repo-sync at c54a2cc

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions