Skip to content

feat(landing): factory-tone rebuild with interactive live-DOM ultrawork demo, team mode & ulw-research sections#99

Closed
code-yeongyu wants to merge 8 commits into
mainfrom
code-yeongyu/factory-tone-landing-ulw-demo
Closed

feat(landing): factory-tone rebuild with interactive live-DOM ultrawork demo, team mode & ulw-research sections#99
code-yeongyu wants to merge 8 commits into
mainfrom
code-yeongyu/factory-tone-landing-ulw-demo

Conversation

@code-yeongyu

@code-yeongyu code-yeongyu commented Jul 2, 2026

Copy link
Copy Markdown
Owner

Summary

Rebuilds the lazycodex.ai landing in a factory.ai-style clean, declarative tone while keeping every existing LazyCodex asset intact (logo, green design system, copy, docs, features). The raster "Ultrawork" badge section is replaced by an interactive, live-DOM Codex Desktop window that replays a real ultrawork run in 8 scenes — ULTRAWORK MODE ENABLED! → Explorer/Librarian research fan-out → Prometheus plan → todo registration → lane assignment → TDD RED → GREEN + record-evidence → QA retry → checkpoint — and new Team Mode and ulw-research sections introduce features the product actually ships, with every visible string traced to a source.

Changes

Interactive Ultrawork demo (components/site/ulw-demo/, lib/ulw-demo-scenes.ts, app/styles/ulw-demo.css)

  • A light Codex Desktop window (macOS chrome, transcript, subagent roster, environment/ledger cards, composer) rendered entirely as DOM — no raster stand-ins.
  • Typed 8-scene state machine: autoplay arms on scroll-into-view (IntersectionObserver), scene tabs (role=tablist, arrow-key navigation), play/pause with aria-pressed, prefers-reduced-motion disables autoplay and the caret/scene animations.
  • Scene copy is ported verbatim from the previously reviewed prototype whose workflow beats map to OMO source truth (see QA & Evidence).

New sections (components/site/team-mode-section.tsx, ulw-research-section.tsx, lib/site-config.ts)

  • Team Mode: leader/member thread mock with the real "Sent by Codex from another thread" note; copy grounded in plugins/omo/skills/teammode/SKILL.md.
  • ulw-research: saturation-research feature band; copy grounded in plugins/omo/skills/ulw-research/SKILL.md.

Design system (DESIGN.md, app/styles/design-system.css)

  • New isolated --codex-window-* adapter palette (light surface) with documented primitives, states, and motion rules — written before component code.
  • New binding rule: hover feedback only on actionable elements; decorative hovers are defects.

Information architecture (app/page.tsx)

  • install → live demo → command cards → workflows/skills → team modeulw-research → Hephaestus/OmO origin → docs CTA. Hero, install, commands, workflows, Hephaestus, CTA, and footer copy are byte-identical to main.

Accessibility — Lighthouse mobile initially scored a11y 91 on this branch (play button inside the tablist; opacity-dimmed inactive rows failing contrast on white). Fixed with AA-safe color states, darker roster glyphs, a green-800 window accent, and a display: contents tablist. Both presets now score 100.

QA & Evidence

All artifacts live in the worktree's .omo/evidence/ (synced to the repo's .omo/, not committed).

  • TDD RED→GREEN: e2e/ulw-demo.spec.ts + e2e/landing-sections.spec.ts captured failing (6 fails: components absent) before any component code, green after (g2-c1-demo-e2e.txt, g3-c1-sections.txt).
  • Demo behavior (real browser): autoplay advances scenes; the checkpoint tab updates transcript, side rail, proof chips, and ledger atomically; play/pause toggles aria-pressed; reduced-motion keeps scene 0 static while tabs still switch; 390×844 shows zero horizontal overflow (g2-c2-demo-reduced-mobile.txt, g2-c2-demo-mobile.png).
  • Regression: full non-Lighthouse e2e — 56 passed (landing, home, SEO, responsive, docs, GitHub stars, demo, sections) + tsc --noEmit + biome lint clean (g3-c3-full-suite.txt).
  • Lighthouse: 100/100/100/100 on mobile AND desktop presets, real Chrome via Playwright CDP against the production build (g4-c1-lighthouse.txt).
  • Live-DOM + hover audit: rendered demo contains 0 img/picture/url() backgrounds; the only hover rule added by this branch is .ulw-control:hover (actionable tab/play buttons) (g2-c4-hover-raster-audit.txt).
  • Copy grounding: 16 new visible strings all cited in copy-ledger.md (skill SKILL.md lines, docs lines, or recorded Codex Desktop session frames); forbidden-drift scan (pricing/customers/testimonials/KPIs/dates) clean (g3-c2-copy-ledger-check.txt).
  • Visual QA: dual-oracle review (design-system integrity + visual fidelity) on fresh captures at 375/768/1280 incl. scene-transition motion frames (g4-c2-visual-qa/).

Risks & Residuals

  • The demo window is a light surface inside a dark page by design (matches the real Codex Desktop reference); its palette is an isolated token adapter and cannot leak into ordinary UI.
  • Autoplay is intentionally conservative: any tab interaction pauses it; reduced-motion users never see it.
  • .omo/ evidence is not part of the diff; the captures below are the reviewer-facing subset.

Screenshots

Landing (1280) Landing (375)
landing 1280 landing 375

Demo scenes — research (autoplay start) → TDD red → checkpoint, plus a mid-transition frame proving the scene swap animates:

Scene 01 Research Scene 05 TDD RED
scene 0 scene 4
Scene 08 Checkpoint Mid-transition (~100ms)
scene 7 motion mid

Images served from the disposable pr-assets/factory-tone-landing branch — delete it after this PR closes.


Summary by cubic

Rebuilt the landing with a live-DOM Ultrawork demo and added Team Mode and ulw-research sections to showcase real workflows. Achieves 100/100/100/100 Lighthouse scores, replaces the raster badge, and adds e2e coverage.

  • New Features

    • Interactive Ultrawork demo: 8-scene state machine (research → plan → todo → assign → TDD red → green + record-evidence → QA retry → checkpoint) with autoplay on scroll, scene tabs (keyboardable), play/pause, and reduced-motion support.
    • Codex window UI: transcript pane, numbered workflow steps, subagent roster, environment/ledger cards, and composer — all live DOM, no images.
    • New sections: Team Mode (leader/member threads with grounded copy) and ulw-research (maximum-saturation research lanes). Section order: install → demo → commands → workflows → team mode → ulw-research → Hephaestus → docs CTA.
    • Tests: Playwright e2e for demo behavior (autoplay, tabs, reduced-motion, 390px overflow) and new sections (grounded copy, section order).
  • Refactors

    • Design system: added isolated Codex-window adapter tokens and a “hover only on actionable elements” rule; removed decorative hover from command cards; MarketingSection now accepts an id.
    • Accessibility and motion: valid tablist, aria-live status updates, AA-safe colors on light surfaces, reduced-motion disables autoplay; both presets score 100 across Lighthouse.
    • Cleanup: removed raster Ultrawork badge section and images, brand-image.tsx, and the unused ultraworkTagline.

Written for commit 4025875. Summary will update on new commits.

Review in cubic

…nd motion contract

Defines the light Codex Desktop adapter palette, the CodexWindow /
TeamModeSection / UlwResearchSection primitives with their states, the
ulw-demo timeline rules (autoplay, reduced-motion), and the binding
hover-is-an-affordance rule before any component code lands.
Eight-scene Ultrawork run (research fan-out, Prometheus plan, todo
registration, lane assignment, TDD red, record-evidence, QA retry,
checkpoint) ported verbatim from the reviewed prototype whose beats map
to OMO source truth, plus the subagent roster, workflow steps, proof
chips, and environment rows the Codex window renders.
Light Codex Desktop window (adapter tokens from DESIGN.md): transcript
pane with command chip and numbered stages, subagent roster, environment
and ledger cards, composer bar, and a scene state machine with
IntersectionObserver autoplay, tab/play controls, and reduced-motion
support. MarketingSection gains an optional id for section anchors.
Copy grounded in plugins/omo/skills/teammode/SKILL.md and
plugins/omo/skills/ulw-research/SKILL.md plus the recorded team-mode
session: leader/member thread mock with a cross-thread verification
note, when-to-team guidance, and the saturation-research feature band.
…rk badge

Mounts the interactive demo right after the install block and the team
mode / ulw-research sections after the workflow pillars, drops the
raster badge section in favor of the live-DOM window, and adds the e2e
contracts for the demo (autoplay, tabs, reduced motion, 390px overflow)
and the new sections (grounded copy, section order).
Lighthouse mobile flagged aria-required-children (play button inside the
tablist) and color-contrast (opacity-dimmed inactive steps/workers on
white). Inactive states now use AA-safe adapter colors instead of
opacity, worker glyphs move to darker shades, the window accent darkens
to green-800, and the play control sits outside a display:contents
tablist. Both presets now score 100/100/100/100.
Pass A: the scene status live region moves outside the keyed swap
subtree so screen readers actually announce scene changes, and the
remaining raw colors (traffic lights, active borders, glyph text,
on-accent text) become declared tokens. Pass B: the demo section gains
scroll-margin below the sticky header, command-card code samples get a
right-edge fade as a scroll affordance, and the card's decorative
hover — a non-actionable element — is removed per the design rule.
The final gate flagged BrandImage and ultraworkTagline as dead after
ultrawork-section.tsx was replaced by the live demo — both removed with
zero remaining references. The demo tabpanel also gains aria-labelledby
pointing at the active tab.
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Thanks for the PR! Changes to LazyCodex land through oh-my-openagent — could you open this against omo-codex over there instead? PRs in this repository can't be merged.

If you're working with a coding agent, prompt it like this:

I opened #99 ("feat(landing): factory-tone rebuild with interactive live-DOM ultrawork demo, team mode & ulw-research sections") against code-yeongyu/lazycodex, but changes there land through code-yeongyu/oh-my-openagent, where the Codex implementation lives under packages/omo-codex. Read my original PR, then open an equivalent PR against code-yeongyu/oh-my-openagent. In the new PR body, link the original PR (#99), explain that it was first opened against lazycodex, and describe in detail what that PR changed and why.

@github-actions github-actions Bot closed this Jul 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant