SuperAPI AI 工具集

authoring-motion-diagrams

设计与创作

查看项目

更新于 10-15 11:08

技能介绍

作者:用于创作与维护“动态图解”(motion diagrams)的技能。

用途 用于向插件市场新增插件,或在 scripts/animations/scenes/ 下创作、编辑、重新渲染某个场景,包括为插件详情页制作动画时使用。

核心约定 每个市场条目对应一个手工编写的场景,位于 scripts/animations/scenes/<plugin>.svg,并展示在该插件的详情页上。docs/plugins/<plugin>/anim.mp4 与 anim-poster.png 由该场景派生而来。不要直接修补视频——应修改场景并重新渲染。 场景必须说明插件做什么:什么在移动、按什么顺序、最终有什么不同。只是“东西在动”的场景属于装饰。

工作流程

  1. 从 .claude-plugin/marketplace.json 读取插件分类,再从 scripts/animations/palette.js 取该分类的标记与墨色。每个场景只用一个强调色。
  2. 将 references/scene-template.svg 复制为 scripts/animations/scenes/<plugin>.svg。
  3. 编排节拍。references/binding.md 包含当前使用的令牌、节拍模式与场景机制——复用已有形状,不要自创。
  4. 运行 node scripts/animations/render.js --check,约一秒内验证契约,无需 Chrome。应持续运行,而非最后只跑一次。
  5. 运行 node scripts/animations/preview.js <plugin>,一帧约 1 秒;用 AT=0.3 查看另一时刻。这能发现检查器无法发现的问题:标签压在连接线上、盒子越出边框、路径悬在半空。
  6. 运行 node scripts/animations/render.js <plugin> 生成 mp4 与海报,约 75 秒。
  7. 运行 npm run generate && npm test。
  8. 将场景、mp4 与海报一起提交。它们一旦不同步就会漂移。

--check 强制的内容

  • 周期:每个 dur 为 8s,repeatCount="indefinite",事件放在 keyTimes 中。
  • 数量:keySplines = n−1,values = n,keyPoints = n。不匹配会静默禁用动画。
  • 底色:第一个元素是 #faf9f6 的矩形。
  • 文字:每处文字填充必须是合法墨色令牌——在纸色上达到 4.5:1,靠计算而非目测。
  • 色块:实心矩形使用分类墨色,使其上的白色文字达到 4.5:1。
  • 网格:按 20px 对齐;已有场景在 grid-baseline.json 中记有冻结债务,只能改善。

palette.js 会在检查任何场景之前重新推导自身的对比度声明,因此令牌若被改到下限以下,会直接使构建失败,而不是悄悄发布。

无门禁可查的内容

  • 每次变化需两个节拍。过渡表示某物到达;落定表示该物已不同。只有一个节拍读起来像装饰。
  • 变更后的状态保持到周期的 0.95。没有保持的过渡只显示运动,不传达结果。
  • 路径避开它不涉及的节点。一条通向 C 的路径若穿过 B,会被读作已进入 B。
  • 位置预先分配。从第一帧起就用浅色虚线引导线画出路径,使布局在部件落位时不会重排——重排读起来像重写,而非扩展。
  • 海报要为偏好减弱动态的读者承载整张图解。要检查海报,不只是视频。

常见错误

  • 用 begin="other.end" 链接:无法拖拽到某一帧,导出会坏。
  • 因“标签是次要的”而用更浅的灰:会达不到下限;不存在合法的、比 muted 更浅的灰。
  • 把移动的点改色为墨色:点是标记,下限为 3:1——保持其为标记色。
  • 编辑 anim.mp4 或未重新渲染就提交场景:视频与源会漂移,且无人报告。
  • 在已有场景中把几何微调出网格:棘轮会使构建失败;基线只会下降。

参考文件

  • references/binding.md——本市场的令牌、处理方式与场景机制
  • references/mechanic.md——可移植的声明式 SVG 运动文档
  • references/scene-template.svg——合规的骨架