Agent skill
formax-web-css-convergence-workflow
Use when changing web CSS/UI styling so requirements, state ownership, and acceptance checks are locked before edits to prevent rework churn.
Install this agent skill to your Project
npx add-skill https://github.com/yusifeng/formax/tree/main/.codex/skills/formax-web-css-convergence-workflow
SKILL.md
formax-web-css-convergence-workflow
Goal
- Prevent repeated CSS rework by locking requirements before any style edits.
- Convert ambiguous visual requests into a concrete edit contract with explicit acceptance checks.
- Keep behavior stable while converging structure, naming, and styling.
Use this skill when the task involves:
- component styling or layout adjustments
- cross-file CSS + TSX class changes
- interaction visual states (hover/active/focus/selected)
- repeated back-and-forth UI tuning that needs convergence
Intake Contract (Run Before Editing)
- Require this 8-line input contract (fill missing items by explicit assumptions, not guesswork):
- Target model in one sentence (final visual geometry).
- Non-goals / do-not-touch list.
- State model (if any) and single source of truth.
- Ownership boundary (main process vs renderer).
- Acceptance criteria (what must be true, what must never appear).
- Runtime matrix (command, platform, light/dark).
- Iteration policy (single-axis change per pass).
- Rollback point (which commit/file set is safe fallback).
Where to change what
- Core styling surfaces:
packages/web-reference-react/src/styles.csspackages/web-reference-react/src/css/theme.css
- Core UI wiring:
packages/web-reference-react/src/app/ui/AppShell.tsxpackages/web-reference-react/src/components/LeftRail.tsxpackages/web-reference-react/src/components/left-rail/SidebarItem.tsx
- Browser bridge typing surface (when needed):
packages/web-reference-react/src/vite-env.d.ts
- Desktop main/preload ownership (only for stateful window-level visuals):
packages/desktop-electron/src/main.tspackages/desktop-electron/src/preload.tspackages/desktop-electron/src/windowAppearanceState.ts
- Scenario-specific construct (read only if task touches transparency):
docs/contracts/web/window-transparency-construct.md
Patterns
- Freeze-Then-Edit Pattern
- Restate final model first.
- Freeze non-goals (do not touch drag region, menu entries, unrelated text/copy).
- Only then open code.
- Single-Axis Convergence Pattern
- Pass A: geometry/layers only.
- Pass B: color/opacity tokens only.
- Pass C: interaction/focus/hover only.
- Never mix all three in one pass.
- State Ownership Lock Pattern
- If the task has window/app state coupling:
- renderer does not invent business states
- canonical state lives in the owner layer
- pending UI must converge to canonical state
- Evidence-Driven Pattern
- Use deterministic checks instead of eye-balling:
- explicit before/after acceptance list
- “must-not-see” artifact list
- screenshot evidence when visual regressions are likely
Tests to update
- Required baseline for CSS changes in web-reference:
bun run test -- src/App.test.tsx(inpackages/web-reference-react)
- Required for desktop bridge/state shape changes:
npm --prefix packages/desktop-electron run build:main
- Required only for transparency scenario:
bun run test:e2e -- e2e/window-transparency.evidence.spec.js --project=chromium(inpackages/web-reference-react)
- Required before commit in this repo:
codex review --uncommitted -c model="gpt-5.3-codex" -c model_reasoning_effort="medium"
Guardrails
- Do not change unrelated UI behavior while “just tuning CSS”.
- Do not rely on one environment result; verify against the declared runtime matrix.
- If acceptance criteria are unclear, ask for clarification before directional edits.
- Avoid speculative visual “patch layers” that do not belong to the target model.
- If user requests
cleanup-pass/返工收敛, reduce churn only:- remove redundancy
- unify naming/state shape
- preserve behavior
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
formax-dev-loop-workflow
Use when working on Formax code changes and you need a disciplined dev loop: keep a single mainline task, avoid scope drift, run only targeted tests (no coverage), avoid partial staging (MM), run mandatory review before commit, include an incremental optimization check, and keep commits small and reviewable.
formax-rework-convergence-workflow
Use when code has gone through repeated rework and may contain redundant logic, style drift, or tangled structure. Trigger when user asks for "返工收敛", "cleanup-pass", or requests a focused cleanup pass that reduces churn without changing behavior.
formax-tool-ui-blocks-workflow
Implement or refactor Formax tool transcript UI using the Tool UI Blocks (C-lite) pattern (ToolUiBlocks renderer + blocks presenters) to avoid touching many tool presenter files; use when adjusting ⏺/⎿ spacing, indent rules, or migrating additional tools to blocks presenters with targeted Ink/Vitest tests and Codex review before commit.
formax-config-settings-workflow
Use when implementing or extending /config (storage, prompt injection, request params, UI-only toggles) with tests and strict UI parity.
formax-semantics-parity-workflow
Use when implementing or modifying behavior that must stay consistent across TUI and Web (mode/input/tool/replay/order). Require canonical semantics first, then TUI/Web adapters, then renderer-specific UI.
formax-rolling-plan-loop-workflow
Use when the user wants a reusable rolling execution pattern (README + TODO-INDEX) like plans/web-reference-react-refactor, and wants to run delivery in small validated loops.
Didn't find tool you were looking for?