用途:审查 diff 中的动效代码,只处理动效部分,不涉及非动效 UI(由 ui-review 负责)。混合 diff 中 ui-review 先跑,再把动效 hunk 交给本技能。整库扫描并给出优先级修复计划属于 motion-audit;对渲染画面或录屏的评审属于 design-critique。
主要能力:先读项目自身的动效词汇(grep --ease-、--duration-、Tailwind theme 块,以及 motion/framer-motion、React Spring、GSAP 或纯 CSS),所有修复必须用仓库已有 token。核心原则包括:先问频率再问缓动,100+/天或键盘触发的动作不应有动画;五类禁止项直接标记(transition: all、scale(0) 进入、产品 UI 用 ease-in、触发器锚定弹层用 transform-origin: center、键盘动作加动画),弹窗因锚定视口可保留 center;产品 UI 时长超 300ms 视为问题(弹窗抽屉可到 500ms);修复优先级为删除→减少→重缓动→修原点→可中断→GPU→非对称时序→打磨→无障碍;按重触发频率判断可中断性;不因曲线陌生而标记,只标记同一产品混用两套曲线族;代码已注释说明的决策不重开,但无障碍底线除外;无法从源码判断手感的不猜测,交给 design-critique。
使用方式:输出两部分。第一部分为一张 markdown 表格,每行一个问题,列为 | Before | After | Why |,Before 含代码与 file:line,After 含精确替换值(含 token 名),Why 一句话说明用户代价,行间无散文。第二部分按影响分组评论(手感回归、应删除的动效、性能、可中断性与时序、原点物理性与一致性、无障碍),最后单独一行给出 Block 或 Approve。Block 条件:任何手感回归、键盘或 100+/天动作上的动画、五类禁止项之一、或非 GPU 动画有一行 GPU 修复。Approve 条件:无手感回归、无应删除项、时长与曲线在预算内且属同一族、重触发处可中断、存在 reduced-motion 路径。空表加快速 Approve 是有效结果。
限制:具体曲线、时长、弹簧配置、速度与错开数值需查阅 standards.md,资料未提供其内容;豁免与已知误报也需查 standards.md。本技能不评审非动效 UI,不做整库审计,不评审渲染画面。