一键导入
critique
Use when the user says 'critique', 'how does it look', 'check the UI', 'visual review', or 'polish the UI'. Also use proactively after frontend changes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when the user says 'critique', 'how does it look', 'check the UI', 'visual review', or 'polish the UI'. Also use proactively after frontend changes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when executing a preflight checklist. Triggers: 'fly', 'launch execution', 'run the checklist', or when given a preflight checklist file path.
Use when the user says '/learn', 'learn this', 'document this', 'capture this', 'remember this for next time', 'update the docs', asks to capture a durable project learning, or after fixes/reviews reveal reusable patterns.
Use when the user asks to merge, land, rebase before landing, resolve landing conflicts, or advance an integration branch such as main, master, or m3.
Use when the user asks to close, end, clean up, tear down, or finish a worktree/session after work is landed.
Use when starting an interactive parent task session, when the user gives feedback about agent behavior, or when the user asks about observations, skill improvements, or observation logs. Skip delegated/non-interactive subagents, review-only workers, verify-only workers, Codex/Claude print-mode reviewers, and sessions that only report back to a parent agent.
Use when the user says 'deep review', 'thorough review', 'full review', 'triple review', or 'ultra review'.
| name | critique |
| description | Use when the user says 'critique', 'how does it look', 'check the UI', 'visual review', or 'polish the UI'. Also use proactively after frontend changes. |
| user-invocable | true |
Step back and evaluate the current UI/UX with fresh eyes. Take screenshots, assess what's working and what isn't, then fix what you can. This is a visual and interaction review, not a code review.
/build uses this in its critique loop)Open the page and take a screenshot. Before analyzing details, answer:
| Check | What to look for |
|---|---|
| Hierarchy | Clear entry point. Primary action is obvious. Secondary content recedes. |
| Spacing | Consistent scale (4/8/12/16/24/32/48). No arbitrary values. Related items grouped. |
| Alignment | Elements snap to a grid. No subtle misalignments. |
| Typography | Font sizes from a deliberate scale. Line heights readable (1.4-1.6 for body). No more than 2-3 font sizes per view. |
| Color | Palette feels cohesive. Accent colors used for emphasis, not decoration. Sufficient contrast (WCAG AA: 4.5:1 body, 3:1 large text). |
| Borders & shadows | Consistent weight. Not overused. Serve a purpose (separation, elevation). |
| Icons | Consistent style and size. Meaningful, not decorative. |
| State | How to test | What to look for |
|---|---|---|
| Empty | Clear any data or navigate to an empty collection | Helpful message, not just blank space. Suggests what to do next. |
| Loading | Refresh the page or trigger data fetch | Skeleton or spinner visible. No layout shift when content loads. |
| Error | Submit invalid data or disconnect network | Clear error message near the problem. Not just a red border. |
| Hover | Mouse over interactive elements | Visual feedback. Cursor changes. Tooltips where helpful. |
| Focus | Tab through the page | Visible focus ring. Logical tab order. No focus traps. |
| Disabled | Find any disabled controls | Visually muted. Cursor indicates not-interactive. Tooltip explains why. |
| Overflow | Add very long text or many items | Text truncates gracefully. Lists scroll. No broken layouts. |
If there are forms/dialogs, also check (per CLAUDE.md conventions):
*<form> tag with onSubmit)prefers-reduced-motion respected on animationsUse Playwright MCP tools for all browser interaction. These give you a real browser you can click, type, and navigate - not just screenshots.
| Tool | Purpose |
|---|---|
browser_navigate | Go to a URL |
browser_snapshot | Get accessibility tree (fast, cheap - use for structure/content checks) |
browser_take_screenshot | Get visual screenshot (use for layout/design checks) |
browser_click | Click an element (by text, role, or ref from snapshot) |
browser_type | Type into a field |
browser_tab_navigate_back | Browser back button |
browser_press_key | Press keys (Tab, Enter, Escape, etc.) |
browser_hover | Hover over an element |
browser_resize | Resize viewport |
Make sure the dev server is running. Check launch.json for the port.
Navigate and take a screenshot for the visual first impression:
browser_navigate → http://localhost:<PORT>/relevant-path
browser_take_screenshot
Get the accessibility snapshot to understand page structure:
browser_snapshot
This returns the element tree with refs you can click/interact with. It's cheaper than screenshots for checking content and structure.
Actually use the UI. This is the key difference from just looking at screenshots. Click through the real flows:
After each interaction, take a snapshot or screenshot to verify the result.
Check console for errors after interacting. Use browser_console_messages or check via snapshot for error states in the UI.
Evaluate. For each page/view, answer two questions:
What do I like about this? Be specific. "The spacing between cards feels right" not just "looks good".
What could be improved? Be specific. "The delete button has no hover state" not just "needs polish".
Produce a numbered list of improvements. For each item, decide:
Implement all "act on it" items.
Re-test interactively to verify fixes. Don't just screenshot - click through the same flows again to confirm the fixes actually work.
Each round should find fewer issues than the last. If it's not converging, the approach may need rethinking. Stop and flag it.
After the critique, present a summary:
## Critique Summary
### What's working well
- [Specific things that look good]
### Changes made
1. [What was changed and why]
2. [...]
### Skipped (not worth doing now)
For each skipped item, plain English with the user-facing impact:
- **<plain-English title>**
- **What's happening:** <what the user sees today, in feature terms - not "the button uses a different border-radius than the cards", but "the primary action button doesn't visually match the rest of the page">
- **User-facing impact:** <one sentence: how does this affect a real user? "Looks slightly inconsistent but no one will misuse the page", "Subtle - regular users won't notice, but reviewers/stakeholders will flag it", "Could confuse first-time users about what's clickable">
- **Why I skipped:** <one short sentence>
### Could still improve
For each item, same plain-English / user-facing-impact format:
- **<plain-English title>**
- **What's happening:** <2-3 sentences in user terms>
- **User-facing impact:** <one sentence>
- **Worth considering because:** <one sentence>
Why this format matters: UI critiques especially tend toward jargon ("inconsistent border-radius scale", "non-grid-aligned spacing"). Translating to user impact ("buttons feel mismatched", "the page feels slightly off without the user being able to say why") is what lets the user actually decide if it's worth their time. If the impact is genuinely subjective polish, say so explicitly: "User-facing impact: minimal - this is taste, not a usability issue."
When called by another skill (e.g. /build), return this summary for inclusion in the build report.