Files
cadence-ui/docs/exec-plans/2026-03-25-component-polish-pass.md
T

4.1 KiB

Component Polish Pass

  • Status: completed
  • Owner: codex
  • Date: 2026-03-25

Goal

Run a focused polish pass across six existing component surfaces so the current Material runtime direction feels more intentional in high-traffic docs and product-like stories. The goal is not to add new APIs. The goal is to tighten hierarchy, depth, and interaction feedback while keeping the existing contract stable.

Scope

  • In scope:
    • refine StatCard hierarchy, default interaction treatment, and delta emphasis
    • refine DataTable row, header, toolbar, and selection presentation
    • refine EmptyState composition, especially the split layout media and narrative weight
    • refine Command, Combobox, and Select list item selection and active-state treatment
    • refine MetricCard cohesion across media, footer, and CTA regions
    • refine base Card interactive behavior so general business cards feel less static
    • update the closest Storybook stories and tests where behavior or reviewability changes
  • Out of scope:
    • adding new component families or expanding public props beyond what the current contract needs
    • introducing a second motion language or non-token visual escape hatches
    • broad scene rewrites outside the stories that best demonstrate the updated behavior

Constraints

  • Follow the active visual and motion direction in DESIGN.md.
  • Preserve reduced-motion safety and the current component contract.
  • Keep write scopes isolated so six workers can operate in parallel without conflicting.
  • Keep shared integration surfaces on the main thread where practical.
  • Do not revert or overwrite unrelated in-progress repo changes.

Affected Surfaces

  • packages/ui/src/components/card*
  • packages/ui/src/components/stat-card*
  • packages/ui/src/components/data-table*
  • packages/ui/src/components/empty-state*
  • packages/ui/src/components/command*
  • packages/ui/src/components/combobox*
  • packages/ui/src/components/select*
  • packages/ui/src/components/metric-card*
  • apps/docs/src/components/card.stories.tsx
  • apps/docs/src/components/stat-card.stories.tsx
  • apps/docs/src/components/data-table.stories.tsx
  • apps/docs/src/components/empty-state.stories.tsx
  • apps/docs/src/components/command.stories.tsx
  • apps/docs/src/components/combobox.stories.tsx
  • apps/docs/src/components/select.stories.tsx
  • apps/docs/src/components/metric-card.stories.tsx
  • docs/exec-plans

Plan

  1. Write and commit an execution plan for the six-slice polish pass so delegation stays resumable.
  2. Dispatch six isolated implementation workers, one per polish slice, each owning its component, nearby stories, and nearby tests only.
  3. Review worker diffs in the main thread, resolve any cross-slice visual inconsistencies, and keep shared integration concerns centralized.
  4. Run the narrowest useful harness and component validation suites, then fix any regressions in the main thread.
  5. Summarize what changed, what was validated, and any remaining gaps.

Validation

  • pnpm harness:validate:component
  • pnpm harness:validate:docs
  • pnpm harness:validate:changed

Orchestration Task Sketch

  • T1: polish StatCard
  • T2: polish DataTable
  • T3: polish EmptyState
  • T4: polish Command, Combobox, and Select
  • T5: polish MetricCard
  • T6: polish base Card
  • T7 -> T1,T2,T3,T4,T5,T6: integrate worker results and run focused validation

Status Log

  • 2026-03-25 16:26 started the six-slice polish pass after reviewing the current design language, component implementations, and representative Storybook stories
  • 2026-03-25 16:29 wrote the execution plan and prepared six isolated worker slices plus a main-thread integration pass
  • 2026-03-25 16:38 completed the delegated Card, StatCard, EmptyState, MetricCard, Command/Combobox/Select, and DataTable slices and reviewed the combined result set in the main thread
  • 2026-03-25 16:41 validated the combined changes with targeted Vitest coverage (card, stat-card, empty-state, metric-card, command, combobox, select, data-table), pnpm build:docs, pnpm --filter @ai-ui/ui exec tsc --noEmit, and pnpm --dir apps/docs exec tsc --noEmit