Agent Skillsdifferent-ai/openwork › design-spec-review

design-spec-review

GitHub

审查代码变更,检查用户界面是否违反 DESIGN.md 规范。仅对 UI 变更发出中等或低优先级警告,不阻断流程。涵盖内容、组件复用及视觉系统合规性检查。

.warden/skills/design-spec-review/SKILL.md different-ai/openwork

Trigger Scenarios

用户提交包含 UI 变更的代码 diff 需要验证前端界面是否符合设计规范

Install

npx skills add different-ai/openwork --skill design-spec-review -g -y
More Options

Non-standard path

npx skills add https://github.com/different-ai/openwork/tree/dev/.warden/skills/design-spec-review -g -y

Use without installing

npx skills use different-ai/openwork@design-spec-review

指定 Agent (Claude Code)

npx skills add different-ai/openwork --skill design-spec-review -a claude-code -g -y

安装 repo 全部 skill

npx skills add different-ai/openwork --all -g -y

预览 repo 内 skill

npx skills add different-ai/openwork --list

SKILL.md

Frontmatter
{
    "name": "design-spec-review",
    "description": "Warn when user-facing UI changes drift from DESIGN.md. Advisory only; findings never gate Warden clearance.",
    "allowed-tools": "Read Grep Glob"
}

You are reviewing a diff to answer one question: does this change introduce user-facing UI that violates a numbered rule in DESIGN.md? Read DESIGN.md at the repository root first; it is the single source of truth. Cite rule ids (P2, S1, C1, V5, T3…) in every finding.

Advisory contract — this skill only warns:

  • Report medium for a clear violation of a numbered rule in changed code.
  • Report low for a likely violation you could not fully confirm from the diff, or for a missing-evidence note.
  • Never report high. Nothing from this skill blocks clearance.

Scope: only changed lines in user-facing surfaces — apps/app/src/** (React UI, index.css, styles), apps/desktop/** renderer UI, ee/apps/den-web/**, and MCP App / artifact view sources. Ignore tests, mocks, fixtures, storybook, docs, server code, and pre-existing code you did not change.

What to check (one finding per root cause)

Copy and structure (P1, P2, P3, C1–C7):

  • A new page, card, row, dialog, or settings group that renders both a title and a description/subtitle (CardDescription under CardTitle, a muted <p> directly under a heading, description props alongside title) — P2.
  • New explanatory prose in a default surface ("This page lets you…", "Here you can…", helper paragraphs, feature tours, || "No description yet." fallbacks) — P1.
  • Button/action labels that are "Submit", "OK", "Click here", "Learn more", or otherwise not verb-first and outcome-specific — C1. Action names that change between button and confirmation/toast — C2.
  • Raw tool ids, toolName, JSON, MCP server config, or provider internals shown to end users outside a "Technical details" disclosure — C3, T2.
  • Blocked/locked/permission-denied states styled as errors (destructive or red tokens) — C5. Capabilities removed by policy without a visible locked state or reason — P4.
  • ALL-CAPS eyebrow labels, appended to button text, middle-dot meta strings used as decoration — C7.

Components and reuse (P5, S1–S6):

  • A hand-rolled button/input/select/dialog/popover/tooltip/menu where a @/components primitive exists (<div onClick> acting as a button, custom dropdown without keyboard handling, bespoke modal). Grep apps/app/src/components/ui/ before reporting — P5.
  • Card nested inside a card or bordered tile inside a bordered tile — S1.
  • Inline chat widgets, MCP App frames, or artifact previews that add internal scrolling, tabs/nested navigation, or more than two primary actions — S4.
  • Code that opens a side panel, tab, dialog, or moves focus in response to a tool result, background event, or fetch completion rather than a user action — S5.

Visual system (V1–V7):

  • Hardcoded #000, #fff, or hex/rgb literals in component code where a semantic token (--background, --border, --muted-foreground, --dls-*, Tailwind theme colors) exists; pure black/white text — V2.
  • border + box-shadow on the same lifted surface; solid borders where hairline --border is the convention — V3.
  • Generic lucide icon used for a named company/service (Slack, Google, GitHub, Linear, Notion, Microsoft…) where a brand mark is the norm; emoji used as icons; sparkle/wand/magic/robot icons signalling "AI" — V5.
  • Motion: transition: all, durations > 300ms on UI controls, bounce/elastic easing, entrance animations added to menus/palettes/rows, missing prefers-reduced-motion handling for new keyframe animations — V6.
  • outline: none / outline-0 / focus:outline-none without a replacement focus-visible ring — V6/accessibility.
  • Purple/blue gradients, glassmorphism, identical card grids, uniform rounded-* applied to every element in a new surface — V7.

Chat, tool calls and MCP Apps (T1–T5):

  • New tool-activity rows that show JSON/arguments by default instead of a sentence label + duration — T1, C4.
  • New MCP App / artifact frames without a header carrying source, title and explicit state, or with more than one header action — T3.
  • Approval/consent UI that does not name the action, the data affected, and the risk/reversibility, or that lacks a decline path — P9, T4.

Evidence (P10):

  • If the diff adds or changes rendered UI and no .png/.jpg/.gif/.mp4 screenshot or recording is referenced in the PR body or in the diff's evidence files, report ONE low finding titled "UI change without screenshot evidence" naming the changed component files. Skip this when the change is CSS-token-only or copy-only.

Do NOT report

  • Anything in unchanged code, tests, fixtures, docs, or server-only code.
  • Style preferences not tied to a numbered rule.
  • Security, correctness, performance, or desktop↔den contract issues (other skills own those).
  • Uses of existing primitives that already violate a rule internally.
  • Rules the diff explicitly opts out of with a comment citing the rule id and a reason (e.g. // DESIGN.md P2 exception: legal text required).

Report format

For each finding: the rule id and one-line rule paraphrase; the file and changed line(s); what was observed; the smallest fix (name the primitive, token, or copy to use). Keep findings terse. Zero findings is a valid and common result — do not invent issues to fill the report.

Version History

  • c26be48 Current 2026-09-23 01:45

Same Skill Collection

.opencode/skills/agent-first-screenshots/SKILL.md
.opencode/skills/browser-automation/SKILL.md
.opencode/skills/build-a-witness/SKILL.md
.opencode/skills/cloud-dashboard-walkthrough/SKILL.md
.opencode/skills/create-plugin/SKILL.md
.opencode/skills/daytona-chrome-cdp/SKILL.md
.opencode/skills/daytona-cloud-instance/SKILL.md
.opencode/skills/daytona-cloud-server/SKILL.md
.opencode/skills/daytona-dev/SKILL.md
.opencode/skills/daytona-electron-den/SKILL.md
.opencode/skills/daytona-electron-test/SKILL.md
.opencode/skills/daytona-flow-validator/SKILL.md
.opencode/skills/daytona-recording-artifacts/SKILL.md
.opencode/skills/daytona-secrets-volume/SKILL.md
.opencode/skills/daytona-seeded-cloud-demo/SKILL.md
.opencode/skills/daytona-windows-cert/SKILL.md
.opencode/skills/daytona/SKILL.md
.opencode/skills/diagnose-a-red-run/SKILL.md
.opencode/skills/fraimz/SKILL.md
.opencode/skills/get-env-var/SKILL.md
.opencode/skills/hunt-a-prod-error/SKILL.md
.opencode/skills/open-a-pr/SKILL.md
.opencode/skills/openwork-models/SKILL.md
.opencode/skills/preview-my-work/SKILL.md
.opencode/skills/product-tutorial-pipeline/SKILL.md
.opencode/skills/prove-a-pr/SKILL.md
.opencode/skills/publish-evidence/SKILL.md
.opencode/skills/record-a-demo/SKILL.md
.opencode/skills/release/SKILL.md
.opencode/skills/review-a-contributor-pr/SKILL.md
.opencode/skills/run-evals/SKILL.md
.opencode/skills/run-tests/SKILL.md
.opencode/skills/shadcn/SKILL.md
.opencode/skills/upload-photo/SKILL.md
.opencode/skills/validate-a-release/SKILL.md
.opencode/skills/write-a-spec/SKILL.md
.warden/skills/confidentiality-review/SKILL.md
.warden/skills/desktop-den-sync-review/SKILL.md
.warden/skills/diff-security-review/SKILL.md
.warden/skills/spec-provenance-review/SKILL.md
integrations/agent-plugins/openwork-connect/skills/openwork-connect/SKILL.md

Metadata

Files
0
Version
c26be48
Hash
f93cb1f6
Indexed
2026-09-23 01:45

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-09-23 06:31
浙ICP备14020137号-1