使用 Pencil MCP 创建/编辑 .pen 设计文件,或导出为 React 代码。 Use when: 设计 UI、编辑 .pen 文件、从设计稿生成代码。 Not for: 纯代码实现(无设计稿)、非 Pencil 工具的设计工作。 Output: .pen 设计文件 或 React/Tailwind 组件代码。
Pencil 是装在 Antigravity IDE 上的设计扩展。 .pen 文件是加密格式,只能通过 Pencil MCP 工具读写,Read/Grep/cat 无法解析。
配置要求:MCP 配置必须加 --app antigravity(不是默认 IDE)。
feat-lifecycle → Design Gate → **pencil-design** → writing-plans → worktree → tdd
pencil-design 在 spec 确认后、写代码前。先把 UX 做对,再动手写代码。
这是最重要的规则。 在创建任何新设计之前,必须完成以下步骤:
如果要设计的功能是已有产品的扩展(如给 Mission Hub 加新 Tab):
| 类型 | 做法 | 例子 |
|---|---|---|
| 扩展现有产品 | 必须复用现有风格,作为现有界面的自然延伸 | 给 Mission Hub 加 Tab |
| 全新独立产品 | 可以用 get_style_guide_tags + get_style_guide 探索新风格 | 新的独立工具 |
| 重新设计 | 先对比旧设计和新方向,铲屎官确认后再动手 | 产品改版 |
设计完成后,get_screenshot 截图,然后和现有 UI 截图并排对比:
踩坑教训 (F076):给 Mission Hub 做面板时用了深色 command-center 风格,和现有暖色调 Mission Hub 完全不搭,铲屎官原话"不能说一模一样,只能说毫不相关"。被否决后全部重做。
用 Pencil MCP 工具操作设计画布:
| 工具 | 用途 |
|---|---|
get_editor_state | 查看当前画布状态(首先调用) |
open_document | 打开已有 .pen 文件("new" 不落盘,需用户手动 Cmd+S) |
batch_get | 批量读取 layer/component 属性 |
batch_design | 批量创建/修改设计元素(每次最多 25 ops) |
get_screenshot | 获取当前画布截图(验证设计结果) |
get_guidelines | 获取布局参考线 |
get_style_guide | 获取项目色系/字体规范 |
关键限制:
batch_design 每次最多 25 ops,超出必须分批调用batch_design 调用复用🔴 .pen 文件管理规则:
open_document("new") 新建,不要在其他 feat 的 .pen 文件上修改batch_get + get_screenshot),但不要 batch_design/Update/Delete 别人的节点open_document("new") 创建的文件不落盘,猫猫无法自行保存。设计完成后:
{项目根目录}/designs/{文件名}.pengit rev-parse --show-toplevel 动态获取项目根目录,不要硬编码绝对路径{feat-id}-{描述}.pen(如 F096-interactive-rich-blocks-ux.pen)open_document("{完整路径}") 打开验证内容完整get_editor_state + batch_get 读取设计属性get_style_guide 获取设计 token(颜色、字体、间距)get_screenshot → 目视验证还原度设计任务
↓
现有 UI 截图分析(扩展型设计必须!)
↓
get_editor_state(了解画布现状)
↓
get_style_guide_tags + get_style_guide(仅全新设计)
↓
Mode A: batch_design(分批,≤25 ops/次)
Mode B: batch_get → 生成 React/Tailwind
↓
get_screenshot(验证)
↓
和现有 UI 对比 → 风格一致?
├─ 不一致 → 修正配色/布局后重新 batch_design
└─ 一致 → 请铲屎官保存
↓
告诉铲屎官完整路径(git rev-parse --show-toplevel + /designs/Fxxx-xxx.pen)
铲屎官 Cmd+S 保存 → commit push 到 main
↓
铲屎官/设计负责人 review 设计截图
├─ 否决 → 记录反馈 → 回到 batch_design 修正
└─ 通过 → 如需实现 → worktree → tdd
| 错误 | 后果 | 修复 |
|---|---|---|
| 🔴 不看现有 UI 就设计 | 风格断裂,被否决重做 | 先截图分析现有风格 |
| 🔴 做独立 dashboard 而不是集成扩展 | 和产品割裂 | 问清楚是"扩展"还是"全新" |
| 用 Read/Grep 读 .pen 文件 | 乱码,无法解析 | 只用 Pencil MCP 工具 |
| batch_design 超过 25 ops | 工具报错 | 拆成多次调用 |
MCP 配置未加 --app antigravity | 工具不可用 | 加上后等下次激活 |
| 跨调用复用 binding | binding 失效 | 每次调用重新声明 |
open_document("new") 后忘记保存 | 内容丢失 | 告诉铲屎官完整路径,请求 Cmd+S |
get_style_guide 的 tags 传字符串 | 参数格式错误 | 必须传 JSON 数组 |
| 🔴 在别人的 .pen 上修改 | 覆盖其他猫的设计 | 永远 open_document("new") 新建 |
| 🔴 保存路径硬编码 | 项目搬家后路径失效 | 用 git rev-parse --show-toplevel |
| 🔴 保存后不 commit push | 其他猫看不到设计稿 | 请铲屎官保存后 commit push 到 main |
tdd / worktree:代码实现阶段 — pencil-design 是设计阶段,先于代码quality-gate:检查代码合规 — pencil-design 输出的是设计文件或组件代码worktree → tddtdd 编写测试 + 集成