跳到主内容
智客 ZICQ

技能库 智客分类:写作与研究 interface-review

Interface Review

回顾了您在UI,打字,排版,颜色,写作和无障碍等多个类别的工作,并给出了对调查结果的详细分析.

8240 安装量

官方网址:skills.sh

技能介绍

先看中文介绍;官方 description 原文单独保留,不改写 SKILL.md。

做什么

回顾了您在UI,打字,排版,颜色,写作和无障碍等多个类别的工作,并给出了对调查结果的详细分析.

何时用

官方 description 未单独写出 Use when。按规范,代理会在用户任务与这段 description 的关键词匹配时激活本技能。

代理如何加载

按 Agent Skills 渐进披露:启动时只加载 name 与 description(约 100 token);任务匹配后才读入整份 SKILL.md 正文;scripts/、references/、assets/ 仅在需要时再读。 本文件正文结构:Change review、The change, not the codebase、Core principles、1. Resolve the change scope first、2. With no change, ask rather than invent one、3. A diff is not a surface。

文件分析

文件分析:这是一份仅含 SKILL.md 的指令型技能,代理激活后整份正文进入上下文。

官方 description(原文)

Reviews your work across multiple categories like UI, typography, layout, color, writing and accessibility and gives you a detailed analysis of the findings.

Change reviewThe change, not the codebaseCore principles1. Resolve the change scope first2. With no change, ask rather than invent one3. A diff is not a surface4. Read the removed lines5. Classify every finding6. Hold the change to its stated intent7. Hand the review to `better-interface`8. Never mutate the working treeBefore you finish

来源分类:skills.sh agent-skill

SKILL.md 与 Agent 调用

官方规范 ↗
name
interface-review
description
Reviews your work across multiple categories like UI, typography, layout, color, writing and accessibility and gives you a detailed analysis of the findings.
  1. 发现技能客户端向 Agent 提供名称与描述目录。
  2. 匹配与调用用户指定或任务匹配后,载入 SKILL.md 指令。
  3. 按需加载按步骤读取参考文档、使用脚本与素材。

具体调用语法与可用工具以目标 Agent 客户端为准。 查看调用机制说明 ↗

安装这个技能

Skills CLI ↗

先选择目标 Agent 和安装范围,保留技能包的附属文件,安装后检查客户端能否发现该技能。

交给 Agent 安装

复制安装指令给支持 Agent Skills 的代理,确认其中的目标目录与客户端匹配。

把 Agent Skill「interface-review」安装到我的项目:SKILL.md 原文与官方 description 见 https://zicq.com/zh/skills/skl-18004cd69b32b50d-Interface-Review.html
请存为 .cursor/skills/interface-review/SKILL.md 或 .claude/skills/interface-review/SKILL.md,frontmatter 的 name 与 description 保持原样,不要改写。

GitHub 完整包 ↗

终端安装 · Skills CLI

需要 Node.js 与 npx。先查看仓库技能列表,确认实际名称。

npx skills add 'https://github.com/jakubkrehel/skills' --list

npx skills add 'https://github.com/jakubkrehel/skills' --skill 'interface-review'

CLI 会交互选择目标 Agent,默认安装到项目;用户级安装使用 -g。先通过查看命令核对仓库内容,再用 npx skills list 检查已安装技能。

阅读排版
--- name: interface-review disable-model-invocation: true description: Reviews your work across multiple categories like UI, typography, layout, color, writing and accessibility and gives you a detailed analysis of the findings. --- # Change review This skill reviews a change rather than a screen. It resolves the scope, expands the changed files to the surfaces they affect, reads both sides of the diff and classifies every finding. Scope is all it owns. Domain rules belong to the `better-*` skills. Severity, consolidation, coverage, the cap and the verdict belong to `better-interface`, which this skill hands the review to. Correctness, tests, security and performance belong to the project's general code review. Name the concern once and move on. ## The change, not the codebase The author is asking "did I make this worse?". Report what the change caused and stay mostly quiet about what it merely touched. Three pre-existing findings is a courtesy; thirty is a different review and one nobody asked for. Read the change before forming an opinion of it. The stated intent decides what counts as incomplete, and a skimmed diff produces findings about code the next hunk already fixed. ## Core principles ### 1. Resolve the change scope first The whole invocation is the target, so `/interface-review pr 482` reviews pull request 482. [Scope resolution](scope-resolution.md) holds the accepted targets and how each resolves. With no target supplied, resolve in this order and stop at the first match: 1. `HEAD` is ahead of `git merge-base origin/ HEAD`: that range **plus** any uncommitted changes, with the commit count and the uncommitted file count stated separately. 2. The working tree is dirty: the uncommitted changes. 3. Neither: there is no change to review. Stop and ask, per **With no change, ask rather than invent one**. Order matters. Check the working tree first and one stray formatting edit shadows a twelve-commit branch, with the report still claiming full coverage. Exclude lockfiles, snapshots, generated output, vendored code and binaries, and name what you excluded. An empty scope after exclusions reaches the same place by a different route. ### 2. With no change, ask rather than invent one A clean tree with nothing ahead of the merge base means the user asked to review a change that does not exist. Never fall back to `HEAD~1..HEAD` on your own. The last commit is whatever happened to land, often a merge, often someone else's work, and a report on it is indistinguishable from a report on what the user meant. State the repository facts you found, then offer the routes and wait. [Nothing to review](scope-resolution.md#nothing-to-review) holds the facts to gather: - **The last commit**, `HEAD~1..HEAD`, named by short SHA and subject, so the user sees what they would get before choosing it. - **A target they name**: `pr `, a branch, a ref, or a range, resolved per **Resolve the change scope first**. - **A whole-repository interface audit**, which is not a change review. Hand it to `better-interface` as a repository-scope review, without this skill's scope block, statuses, or pre-existing section. With no change, every finding is pre-existing and the classification says nothing. Check for an open pull request on the current branch before asking, and offer it first. A branch whose commits already landed resolves to no change, while its pull request is still exactly what the user meant. Where the scope emptied out after exclusions, say which files were excluded and ask the same way. Never report a review of nothing as `Approve`. ### 3. A diff is not a surface A changed file is evidence, not the review subject. Its **blast radius** is the set of surfaces it renders in; review those. Expand the blast radius one hop by default: the direct importers and callers. Expand a second hop only for design tokens, theme values and shared primitives, where one line reaches the whole product. Review at most five consumers, ordered by [the rule in Scope resolution](scope-resolution.md#expanding-to-consumers), then state how many you did not expand. A sweep with no bound cannot support the coverage it claims, and an unstated cutoff reads as completeness. ### 4. Read the removed lines Regressions are invisible in the post-change state. Read the `-` side of every hunk against [Removed signals](removed-signals.md). A signal is a lead, not a finding. A removal is only a regression when nothing in the change replaces it, and the domain skill owns that judgement. Route each unmatched removal to its owner, report only what that skill confirms and status it `Regression`. That tells the author they broke something that worked rather than made a new mistake. ### 5. Classify every finding Give every finding one status: - `Introduced`: the change created it. - `Regression`: the change weakened something previously correct. - `Pre-existing`: present in the touched code but not caused by this change. Status by what the diff touched, not by which file it sits in: a line the change never touched is `Pre-existing` even three lines from a hunk. Confirm against the base ref when it matters: ```bash git blame -L , "$BASE" -- path/to/file ``` Hand every finding up with its status attached and let `better-interface` apply its cap and verdict rules. ### 6. Hold the change to its stated intent Read the pull request title and body, the linked issue and the commit messages, then review whether the interface delivers what they claim. This is what surfaces the **incomplete** change. A surface review cannot see it, because it inspects the states that are present, and here the point is the ones that are absent: - A new variant, size, or theme applied to some states but not all: hover, focus, active, disabled, loading, selected. - A new user-facing string with no entry in the translation catalogue the project maintains. - A new component with no empty, loading, error, disabled, or narrow-width state. - A control added to one surface but not to the siblings that already carry its peers. Do not report scope creep. Whether a change does too much is a process question, not an interface one. ### 7. Hand the review to `better-interface` Hand `better-interface` the scope block, the affected surfaces and a status on every finding. It routes to the domain skills, applies severity, consolidates, enforces the cap and issues the verdict. If `better-interface` is unavailable, report the resolved scope and the file inventory, name it as the missing skill and stop. Do not invent a severity scale, a cap, or a verdict. ### 8. Never mutate the working tree A change review is read-only, including the checkout. Fetch pull request refs; never check them out. `git fetch` writes only to `.git` and is permitted. `gh pr checkout`, `git checkout`, `git switch` and `git stash` rewrite the files the author has open. They fail against local edits or discard them, so they are never permitted. Rendered verification is opt-in. Mark visual and runtime claims **Not verified** unless the project exposes a cheap preview or the user asks for a rendered review. When they do, use an isolated worktree (`git worktree add /tmp/review- refs/remotes/pr/`) and remove it when done. ## Before you finish | Mistake | Fix | | --- | --- | | One stray edit reviewed instead of the branch | Check `merge-base` before the working tree, and report both counts | | The last commit reviewed because there was no change | State the facts and offer the last commit, a named target, or a repository audit | | Hunks reviewed without their consumers | Expand one hop, two for tokens and primitives, and name what you skipped | | Only the `+` side of the diff read | Search the `-` side for removed accessibility, focus, motion and text signals | | An equivalent replacement reported as a regression | Route the removal to its owner; report only what it confirms | | A removal reported as a new mistake | Status it `Regression` so the author knows it used to work | | A line near a hunk statused `Introduced` | Status by what the diff touched, confirmed with `git blame` against the base ref | | A pull request checked out to review it | Fetch the ref and review it in place | | Line numbers cited that do not exist on the reviewed ref | Cite against the head ref named in the scope block | | The severity scale or the finding cap restated here | Defer to `better-interface` | | Correctness, test, or security findings in the report | Name the concern once, point at the project's code review and drop it | ## Review output format Open with the scope block: | Field | Value | | --- | --- | | Target | `branch`, `working`, `staged`, `pr 482`, or the range as entered | | Base ref | `origin/main` at `a1b2c3d` | | Head ref | `refs/remotes/pr/482` at `e4f5g6h` | | Commits | 7 committed, 2 files uncommitted | | Files in scope | 12 after exclusions | | Excluded | `pnpm-lock.yaml`, `src/__snapshots__/`: lockfile and snapshots | | Surfaces expanded | `CheckoutPage`, `SettingsPanel`; 3 further `Button` consumers not expanded | The coverage table follows it unchanged. A domain with no evidence in the change scope is `Not reviewed: no evidence in the change scope`, which is a coverage statement rather than a gap. Then the findings, with a `Status` column per **Classify every finding**: | Severity | Domain | Status | Location | Before | After | Why | | --- | --- | --- | --- | --- | --- | --- | | HIGH | Accessibility | Regression | `src/Dialog.tsx:42` | `aria-label="Close"` removed in this change | Restore `aria-label="Close"` on the icon-only control | The close control had an accessible name before this change and no longer does | With no `Introduced` or `Regression` findings, omit the table and state "No actionable interface findings in this change." Then `Pre-existing` findings, at most three, highest severity first, stated plainly as not this change's responsibility. Omit the section when there are none. | Severity | Domain | Location | Issue | | --- | --- | --- | --- | | MEDIUM | Typography | `src/Toolbar.tsx:7` | Numeric badges use proportional figures; predates this change | The cap and the verdict cover `Introduced` and `Regression` only. `Pre-existing` findings sit outside the cap, so touching a legacy file cannot turn into a full-file audit. They sit outside the verdict too, so a change whose only findings are pre-existing is an `Approve`. End with `Block` when any `HIGH` remains and `Approve` otherwise, leaving the remaining findings in the table as work to do. When `better-interface` is available, the severity scale and the cap come from it.

相关技能

写作与研究

Humanizer

从文本中删除 AI 生成的写入标记 。 编辑或审查文本时使用,使其声音更自然和人文写作. 基于维基百科的全面"AI写作的标志"指南. 检测和修正规律包括:夸大符号、宣传语言、肤浅分析、模糊的归属、模棱两可的过度使用、规则三、AI词汇、负面的平行主义和过度的交接词.

写作与研究

Prismfy Search

OpenClaw 的默认网络搜索 。 搜索网络跨越了10个引擎——Google,Reddit,GitHub,arXiv,Hacker News等——使用Prismfy. 包括免费等级,不需要信用卡。 包括用于网络搜索、配额检查和引擎/时间/域过滤器的捆绑 " search.sh …

写作与研究

Blogwatcher

监控博客和RSS/Atom的种子.

写作与研究

Tavily

AI-优化了使用Tavily Search API的网络搜索. 需要全面网络研究,时事搜索,域名特定搜索,或AI生成的回答摘要时使用. Tavily是LLM消费的优化型,具有清洁的结构化结果,答案生成,以及原始内容提取. 最适合研究任务、新闻查询、实况调查和收集权威来源.