Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add mayuemarsha-del/pm-skills --skill ui-walkthroughgit clone --depth 1 https://github.com/mayuemarsha-del/pm-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/mayuemarsha-del/pm-skills/ui-walkthrough)<a href="https://agentmods.dev/skills/mayuemarsha-del/pm-skills/ui-walkthrough"><img src="https://agentmods.dev/badge/skills/mayuemarsha-del/pm-skills/ui-walkthrough/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/mayuemarsha-del/pm-skills/ui-walkthrough"><img src="https://agentmods.dev/badge/skills/mayuemarsha-del/pm-skills/ui-walkthrough.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00231 | $0.03841 |
| Opus 5 | $0.00115 | $0.01920 |
| Sonnet 5 | $0.00046 | $0.00768 |
| Haiku 4.5 | $0.00023 | $0.00384 |
Grade A, and why
ui-walkthrough scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 216 lines — stays where its author put it; the contents beside it link to each section on GitHub.
-
UI 走查(UI 还原度走查 Skill)
研发把页面做上线后,用这个 skill 把 PM 提供的 UI 设计 HTML 和线上实现,同视口、同状态逐区块比对,产出可直接发研发的 UI 还原度差异清单。
判差异不靠肉眼猜——肉眼能看出"颜色不对",但说不清"线上 #1677ff vs 设计 #fc7913"。每个可疑处都要在两边各读一次 computed style 实锤具体值,研发才能照着改。
-
一、输入约定
每次启动走查,PM 给两样:
2.1. 设计 HTML 路径:UI 设计好的那一份单文件 HTML(浏览器可直接打开)。这是唯一参照系——线上对不对,全看跟这份 HTML 一不一致,不引入其他设计规范、不掺个人审美。 2.2. 线上 URL:研发部署好的页面入口。
只给了 PRD / 模块名没给 HTML:在 PRD 同目录的
prototype/子目录里找对应 HTML,找到多个按文件名匹配,不确定就问 PM。特殊情况:
2.3. HTML 和线上 URL 明显不是同一个页面 / 功能:停下来问 PM,不要硬比。 2.4. 一份 HTML 用 page-switch JS 承载多个状态(列表 / 详情 / 弹窗 / 各 tab):每个状态都是一个独立走查单元,比的时候两边都要切到对应状态。
-
二、走查前准备
3.1. 摸清设计 HTML 有哪些状态
先打开设计 HTML 看一遍:是单状态,还是用 page-switch JS / 多文件承载列表、详情、弹窗、多个 tab。把所有状态列出来——每个状态是一个走查单元,线上要逐个对上。
3.2. 统一视口宽度
设计 HTML 一般按全视口设计、无 max-width。线上和 HTML 必须用同一视口宽度截图,否则布局错位、留白这些差异全是假的,白费功夫。
默认 1440 宽(常用桌面断点)。如果设计稿明显是按别的断点画的(如内容在 1280 才不挤),跟着改,两边一起改。
3.3. 接管浏览器(默认 MCP,可选高速)
默认路径:chrome-devtools MCP。设计 HTML 用
file://绝对路径 navigate,线上用 URL navigate;同一 Chrome 实例切换 tab 即可。MCP 是单 Chrome 天生串行,状态多的情况下逐个跑。可选高速路径:
browser-cap。装了BROWSER_CAP_DIR才能用。设计 HTML 和线上页面各开一个 Chrome 实例,互不干扰:bash ${BROWSER_CAP_DIR}/bin/cap-launch-chrome.sh <端口>(端口 9222-9299,已占自动拒绝,换一个)。node ${BROWSER_CAP_DIR}/bin/capture.js <端口> <配方.json>驱动:导航 / 切状态 / 截图 / 读 computed style。- 截图先落临时目录,再
bash ${BROWSER_CAP_DIR}/bin/stash-shots.sh <源> <目标>入库到<ACCEPTANCE_DIR>/.../screenshots/。
设计 HTML 用
file://绝对路径作url,capture.js 直接能导航。怎么选:未装
browser-cap或 PM 要手过登录 / 验证码 → 走 MCP;装了且状态多(多 tab / 多弹窗 / 列表 + 详情)→ 走 browser-cap 并行模式。 -
三、走查执行
4.1. 执行模式
- MCP 模式:单 Chrome 串行,按状态顺序逐个走查。
- browser-cap 模式:状态多时按状态拆分区并行:一条消息里用 Agent 工具同时起 N 个子代理,每个子代理认领一个状态、起两个端口(一个开设计 HTML、一个开线上)、回传该状态的差异行 + 截图。主代理汇总成一份报告。
4.2. 同视口、同状态,两边分别截全图
- 设计 HTML:导航
file://URL → 切到目标状态 →fullPage:true截全图。 - 线上:同视口、同状态、
fullPage:true截全图。 - 线上是真实数据、设计 HTML 是 mock 数据——截图只用来比结构和样式,不比内容文字、不比数据条数。
4.3. 两图并排,先肉眼定位可疑区块
两张图入库后,用 Read 都读进来并排看,找"长得不一样"的地方:区块缺失 / 多余 / 错位、组件形态不同、颜色或字体明显不对。肉眼这一步只负责定位到哪个区块可疑,不负责下结论。
4.4. 可疑处读 computed style 实锤,不靠肉眼猜数值
这是 UI 走查的"真点开"——肉眼说不出具体差多少,研发就没法改。对每个可疑部位,在设计 HTML 的 DOM 和线上的 DOM 上各跑一次
getComputedStyle,拿真实值再比。probe 模板(MCP 用
evaluate_script、browser-cap 配方用eval字段,两边各跑一次;选择器按各自页面的类名改):JSON.stringify((()=>{ const r=el=>{if(!el)return null;const g=getComputedStyle(el),b=el.getBoundingClientRect(); return{bg:g.backgroundColor,color:g.color,radius:g.borderRadius, border:g.borderWidth+' '+g.borderColor,font:g.fontFamily, size:g.fontSize,weight:g.fontWeight,lh:g.lineHeight, pad:g.padding,h:Math.round(b.height),w:Math.round(b.width)};}; return{ 侧栏: r(document.querySelector('选择器')), 激活导航项: r(document.querySelector('选择器')), 主按钮: r(document.querySelector('选择器')), 卡片: r(document.querySelector('选择器')), 输入框: r(document.querySelector('选择器')), 表头: r(document.querySelector('选择器')), 表格行: r(document.querySelector('选择器')), body: r(document.body), }; })())设计 HTML 和线上的类名通常不一样,要各自定位"对应的那个元素"再读,不能套同一个选择器。
4.5. 七个维度逐一过,别只挑扎眼的
每个走查单元都按下面七维过一遍。只看最扎眼的那一两处,一定漏:
维度 看什么 结构 区块有没有缺 / 多、层级与顺序、栏宽(侧栏宽度)、是否全视口无多余留白 组件 按钮 / 卡片 / 输入框 / 表格 / 弹窗 / 下拉 / badge / 分页 的形态是否一致 颜色 主色、品牌色、语义色、激活态颜色、背景色、边框色——读真实色值比 字体 字体族、字号、字重、行高、标题层级 圆角 卡片 / 按钮 / 输入框 / 弹窗 / 表头 的圆角值 图标 图标库是否一致、有没有用 emoji 当图标、描边粗细、尺寸 间距 内外边距、组件高度(表头 / 行高)、区块间距——比真实值的档位,不报"差 2px" 4.6. 实锤后才下差异
拿到两边真实值,能命名的偏差才写进报告("线上圆角 8px,设计 24px")。说不清是否有意的微调——差 2-3px、抗锯齿引起的色值末位差、headless 字体回退造成的渲染差——不写,那是噪声。
-
四、报告产出
5.1. 文件结构
每次走查新建一个文件夹,用绝对路径建:
<ACCEPTANCE_DIR>/{YYYY-MM-DD}-{模块名}-UI走查/ ├── 报告.md └── screenshots/ ├── 设计-01-侧栏.png ├── 线上-01-侧栏.png └── ...
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 216 lines · 231 tokens per session scan A 888b83d715d4
ui-walkthrough is a skill published in the GitHub repository mayuemarsha-del/pm-skills (3 stars, last pushed 3mo ago), licensed MIT. It adds 231 tokens to every session and 3,841 once invoked, about $0.0012 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
html-demo
A workflow for building a self-contained interactive HTML demo from a screenshot and a short requirement. The demo imitates the interface and includes simulated controls so its states can be explored.
top-design
Create award-winning, immersive web experiences at the level of Awwwards-featured agencies. Use when the user mentions "Awwwards quality", "make my site stunning", "scroll animations", "parallax storytelling", "cinematic web design", "portfolio site", or "brand experience". Also trigger when elevating a standard…
web-typography
Select, pair, and implement typefaces for web projects. Use when the user mentions "font pairing", "which typeface", "line height", "responsive typography", "web font loading", "type hierarchy", "variable fonts", "FOUT/FOIT", "typographic scale", or "the text is hard to read". Also trigger when choosing between system…
refactoring-ui
Audit and fix visual hierarchy, spacing, color, and depth in web UIs. Use when the user mentions "my UI looks off" (or amateur/unprofessional), "fix the design", "Tailwind styling", "color palette", "visual hierarchy", "design system", "spacing scale", or "component styling". Also trigger when building consistent…
impeccable
Provides premium design vocabulary, supporting Google Stitch spec-based DESIGN.md / PRODUCT.md and anti-pattern slop removal.
web-design
A guide to designing websites and user interfaces, including layouts, colors, typography, spacing, and component systems.