Facetory 表盘开发
以 Facetory 当前编辑器状态为唯一事实来源。MCP 能表达操作时,不要直接修改 .facetory 二进制文件。
安全开始
- 确认 Facetory 已打开且目标文档处于活动状态。
- 每次文档工作流开始前读取
facetory://document/current。 - 若
status不是active,停止修改并执行资源返回的恢复动作。 - 原样传递不透明
version;不要解码、重建、手抄,亦不要跨 UI 修改复用。 - 续作项目前先读取项目内
AGENTS.md、设计规范、素材清单和工作日志。
连接状态不明时运行 python scripts/check_facetory_mcp.py。选择资源、查询 URI 或写入工具时读取 references/mcp-workflow.md。
按事务修改
每次写操作均执行:
- 检查精确当前版本和目标稳定 ID。
- 使用范围最小的计划工具:新增可见元素用 Compose,导入可复用素材用 Import,稳定 ID 修改用 Edit,产出文件用 Export。
- 检查计划摘要、影响、绑定、校验数量、源路径、覆盖策略和目标主题。
- 只应用一次已确认的
planId。 - 计划被拒绝或过期后重新读取当前版本并重新规划。
- 检查返回的新版本,再原位保存已有标题的项目。
不要试探性应用计划。用户在 UI 修改画布或导出元数据后,不得继续使用旧版本。
修改前检查
使用带版本的文档资源获取完整主题、图层顺序、资源定义、素材、引用和校验问题。匹配排版前查询精确资源:图层对象提供坐标和层级,数据资源提供字号、文本框、颜色、数据源和内容。
不要从其他项目复制稳定 ID 或数据源 ID。通过实时查询和 facetory.data_sources.search 获取;日志中的 ID 仅作示例。
制作表盘
- 按手表物理尺寸判断效果,不只看手机放大画布。
- 时间应为最强视觉元素,次要数据保持紧凑。
- 在数据后方保留低细节、高对比的安全区。
- 导入设备精确尺寸素材,另行保留高分辨率母版。
- 全画布背景置底,并显式把所有动态图层移到其上方。
- Compose 使用
layout.anchor、offsetX、offsetY;Edit 使用稳定图层坐标。 - 使用
#AARRGGBB、明确文本框尺寸、初始零字距和 ASCII 分隔符。 - 仅替换美术时复用已验证的数据图层模板。
制作息屏主题
拓扑允许时优先使用唯一 aod Compose 元素克隆并净化普通主题。若已有空的共享 AOD,先检查,再决定填充或在 UI 中删除重建。
AOD 保持简洁:黑色背景、必要的时间/日期/状态和少量装饰。查询并复刻普通主题的每一层,包括用 1 像素偏移叠加实现的字重。图片遮罩必须保证所有像素 RGB 为零,只用 Alpha 表示覆盖;仅设置 recolor=true 不能修复含 RGB 的像素。AOD、素材权限或导出工作前读取 references/pitfalls.md。
验证与交付
- 用代表性数据分别检查普通主题和所有 AOD 主题。
- 要求 0 个错误,并理解每条警告。
- MCP PNG 漏掉动态文本时,以编辑器画布为准。
- 检查通过后保存;仅向允许的规范目标路径导出精确设备规格。
- 后续更新沿用一个非占位的稳定表盘 ID,并记录作者、标题、设备规格、哈希、数据绑定和限制。
- 整理母版、设备尺寸素材、参考图、提示词、许可、工具、预览和资源清单;明确标记过期备份。
遵守 Android 权限边界
优先使用非 root 路径。即使 Termux 能读共享存储,Facetory 也可能无权限。必须复制到应用私有目录时,逐条说明命令、来源、目标、效果、覆盖行为和风险,并在每次 root 命令前重新取得明确许可;禁止复用历史许可。