UI Sift

SkillSearch

Design, implement, review, or polish clean, finely interactive frontend pages and components. Provides project profiling, visual judgment, curated component search, official skills/MCP and source discovery, multi-library integration, and evidence-based acceptance. Use for new pages, admin panels, AI

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the UI Sift skill

What this skill tells your AI

The instructions your AI receives, as published by ciao1019/ui-sift in SKILL.md and read by ahel’s review.

让界面安静、清楚、顺手,在关键操作上有恰到好处的反馈。精选资源是候选素材库;最终交付应具有统一的产品语言。

面向不同开发者与工程使用,不预设目录结构、包管理器、路由、图标或 UI 基座。新项目按产品需要建立体系,已有项目优先适配其实际约束。

按任务展开,而不是一次读完

先判断工作范围,选择下面的路径。沿用用户已有授权,常规设计与选型不添加审批节点。用户只要评审时不自动改代码。

任务工作路径按需读取
局部修饰、单个组件 / 状态找到原实现 → 保留约束 → 修改 → 定向验证本文件;必要时读交互配方
新页面、明显重构简报 → 视觉方向 → 选型 → 真实主流程 → 打磨 → 验证工作流、视觉语言
多页面、多库工作台上述路径 + 共享能力归属 + 页面间状态连续性组件契约、集成模式
参考还原拆结构 / 排版 / 密度 → 实现 → 同视口比较 → 修正差异视觉语言、布局与内容
UI 评审实际主流程 → 记录影响最大的具体问题 → 在请求范围内交付质量评审

阶段完成凭可观察结果判断:约束可解释、主流程能完成、状态反馈真实、相关验证有证据。跨轮次任务可保存 设计简报;小任务不必生成文档。用户改变方向时更新受影响判断,保留仍适用的接线与验证。

先理解正在做什么

阅读项目约定、依赖、路由、主题 tokens 和目标页面的调用链。确认框架、版本、包管理器、基础组件、图标、动效运行时,以及需要保留的交互和数据接口。存在 components.json 时,检查 aliases、style、base library 和 registries。

先搜索本地已有组件与实际调用;“目录里有文件”“已接入业务”“只有演示”是不同证据。不要为视觉调整迁移框架、替换整套设计系统或顺手重构业务。

工程较大时可运行只读 scripts/profile_project.py。先选目标 package,monorepo 合并结果不能代替目标框架判断。扫描输出只是线索,继续读目标文件与调用链。

用几句话确定本次设计:谁在使用 → 最重要的任务 → 信息层级 → 一个值得打磨的交互。从上下文能判断的细节直接决定;只询问会改变实现方向的缺失信息,同时继续独立工作。

用户已有品牌、布局或参考图时,以它们为准。没有视觉基线时,选择符合产品内容的中性色层次、清晰排版和少量强调色;简洁可以温暖,也可以严谨,不绑定某套字体或黑白模板。

新页面先决定工作方式、信息密度、表现强度、动效强度。选一个能改善任务的细节:保留滚动位置、错误后恢复、触摸可达、工具结果可追溯等。具体判断读 视觉语言,不要把“简洁”简化为删掉必要信息。

按任务挑组件

先选择一个主方案,再补足确实缺失的专项能力。小改动可以完全使用现有组件;新页面通常只需检查一至三个相关来源,无须遍历整个清单。

当前需要优先查看选择边界
AI 工具结果、选择与确认Tool UI数据 schema 与用户操作回执要接通
完整 AI 对话、流式消息、高亮assistant-ui;轻量界面可看 prompt-kit沿用已有 runtime 和 Markdown 管线
只读 Markdown、数学、引用Lobe UI Markdown不为只读文本引入编辑器
富文本编辑、批注、块操作Plate只加载需要的插件
文档预览、抽取校验、审核Extend UI普通上传不需要整套工作台
文件树、复杂应用组件Kibo UI、UI TripleD、Astryx比较能力、键盘交互和主题集成成本
思维导图mindmapcn静态层级图可沿用已有图表能力
选日期或日期范围现有 Calendar / shadcn/ui真正日程管理才考虑 DayFlow
多视图日程、拖拽排程DayFlow确认框架适配及 Core / Pro 边界
手写签名Cuicui Signature;文档流程可看 Extend需要触摸输入、清除与确认状态
克制的微交互moumenlab、GodUI、UI TripleD选能解释状态变化的效果
局部等待或活动强调Libraries.dev Beam / Orbs按真实任务状态启停
营销区块与应用布局Ruixen、Shadcn Studio;Variant 找方向只取符合页面叙事的区块
Vue / Nuxt 动效nxui不把 Vue 源码当成 React 组件
Go templ 界面shadcn-templ它不是 React 的 shadcn/ui
动态图标现有图标体系;Heroicons Animated项目已有其他体系时保持一致

候选组件、来源与取舍见 资源目录。只有对应场景才读取相关条目。目录列出的“值得探索”是编辑建议,不等于已在用户项目验证。

用工具缩小候选范围

包内有 22 个来源、69 组组件候选、30 类需求意图。检索脚本先过滤框架和动效,再根据需求与已声明依赖排序。候选名称不是 npm export / registry ID,排序值不是审美评分。最终采用前按 组件契约 核对版本、基础库、业务能力、许可与范围。

在当前 skill 目录执行(Python 3.9+,标准库,无额外运行依赖):

python3 scripts/profile_project.py /path/to/frontend-package > /tmp/frontend-profile.json
python3 scripts/recommend.py "文档审核,定位原文" --framework auto --profile /tmp/frontend-profile.json
python3 scripts/recommend.py "分享权限弹层" --framework react --no-new-dependencies

读取返回的理由、排除项和限制,选择一个主方案。复杂自然语言可用 --intent 明确意图;无命中时继续查现有能力和官方资料,不编造候选或硬套资源。脚本不理解完整业务,不代替设计判断。

具体参数、下载与验收命令见 工具手册。没有 Python 或现成工具时,手工完成同等判断即可。

获取官方知识,再获取代码

选定来源后读取 官方接入与下载 中对应条目,核对最新组件页、安装文档、兼容版本及授权。

采用两条互补路径,不把 MCP、skill 和组件依赖混为一谈:

  • 知识路径:已可用的官方 skill / MCP → 官网链接的 skill、MCP、llms.txt 或 Markdown 文档 → 官方网页与仓库。Skill 负责用法,MCP 负责检索或获取;二者均不能代替组件本身。
  • 代码路径:项目已有实现 → 官方 registry / CLI / npm 包 → 官方仓库中的目标源码。没有 MCP 或 skill 时,主动获取所需源码和依赖,完成集成;不要停在“你可以自己下载”。

只读取、下载当前任务所需的官方 skill 及其实际引用文件。先检查内容,再按当前工具支持的方式使用;下载文件不代表当前会话已经动态注册该 skill。长期安装遵循用户已有授权和工具约定,不批量安装清单内所有 skills 或 MCP。

核对下载响应的内容类型和实际内容:返回首页 HTML、登录页或 404 的 llms.txt 不能当成知识索引。没找到官方入口应写“未确认”,而不是断言不支持,更不能猜包名、MCP 地址或 registry ID。

可用 scripts/fetch_reference.py 将已核实官方域名下的单份文本 / registry item 下载到任务缓存,取得 URL 与 hash。它不安装、不执行内容;源码检查、依赖处理、业务接线和验证仍由你完成。文档记录有 MCP 不等于当前已连接;下载了 skill 不等于宿主已加载。

网络或付费访问不可用时,使用本地可验证实现、已授权公开源码或更合适的替代;标明这一限制。不要绕过付费限制,也不要把截图称作可复制源码。

把素材变成产品的一部分

编码前简短说明选中的组件、用途和一项主要取舍,然后继续实现。不要把常规选型变成审批流程,也不必向用户列出所有候选。

  • 视觉归一:组件颜色、字号、圆角、边框、间距、阴影和焦点样式使用项目 tokens。沿用既有图标与动效运行时;静态小元素优先用现有原语或 CSS。
  • 结构优先:先改善内容顺序、对齐、行宽和密度,再增加装饰。列表不必全变成卡片,普通内容不必都有渐变、标题眉标和大面积空白。
  • 真实交互:用 props / 类型替换演示数据,连接真实事件、路由和 API。提交、取消、重试、复制、展开和筛选必须产生对应结果;演示数据只用于明确的原型或测试。
  • 状态可解释:空状态给下一步,失败保留用户输入,异步操作阻止重复提交。进度取自真实任务;不知道比例时呈现阶段或不定进度,不编造百分比。
  • 动效有语义:优先反馈按下、展开、切换、成功与内容到达。动画不应拖慢完成操作,不让多个持续特效争抢注意力;尊重 reduced motion,触摸和键盘不依赖 hover。
  • 集成边界:检查主题 Provider、全局 reset、portal、z-index、SSR / hydration、CSS 版本和基础组件 API。下载或 CLI 添加后检查 diff,保护用户现有改动,保留必要署名与许可。
  • 成本可控:编辑器、文档引擎、可视化和语法高亮按需加载;避免重复 Markdown 管线、日期库、图标库和动效运行时。

需要具体交互参数与场景组合时,读 交互配方。遇到多库集成和主题冲突时,读 集成模式,按使用者的工程决定具体组合。

长内容、异步反馈、双栏转窄屏、输入法与焦点问题,按 布局与内容 检查。先让主要操作成功一次,再打磨动效,避免所有按钮只有外观和空回调。

在实际页面上验收

运行与变更相关的项目现有 typecheck、lint、测试或构建,遵循仓库要求。能运行时,在桌面与窄屏实际操作主流程,并用截图检查层级、间距、溢出与遮挡;只看代码不能宣称视觉验收通过。

检查本次涉及的 loading、empty、error、disabled、hover、focus 状态,键盘操作、触摸、可访问名称和 reduced motion;项目支持明暗主题时都检查。长标题、中英文混排、无数据与较大数据量不能破坏布局。查看控制台错误,区分新增问题与已有问题。

最后做一次减法:去掉没有说明状态、支持任务或体现品牌的装饰。若关键操作难找、反馈失真或主题互相覆盖,先解决这些问题,再评价“好看”。

交付简述:改好了什么、采用什么来源及原因、实际完成的验证、仍存在的限制。未运行的检查如实说明,不以截图代替功能验证,也不以构建通过代替视觉检查。

多页面或复杂交付可以填写 验收记录,用 scripts/check_delivery.py 检查要求覆盖和证据文件引用。这个工具不执行测试或理解截图;evidence_record_complete 只表示记录齐全。具体评审方式见 质量评审。

调用示例

  • “用 $ui-sift 打磨这个后台列表,保留现有 shadcn,交互简洁,不新增大依赖。”
  • “用 $ui-sift 做文档审核页:预览、字段校验、定位原文,窄屏也能操作。”
  • “用 $ui-sift 改善 AI 对话中的工具结果,先查项目已有能力,再选合适的官方组件。”

资料核验日期、Vibe-Skills 等来源的借鉴方式与实际验证范围见 资料依据。维护 skill 时运行包内脚本测试;设计效果另用 真实任务场景 评价,不能用测试数量替代。

本 skill 不依赖指定浏览器、付费服务或额外 skill;使用当前环境可用的读取、浏览和开发工具。源码、注册信息和文档会变化,入选组件以当前官方资料为准。

Advanced
Item type
skill
Key
ui-sift
Source
github.com/ciao1019/ui-sift