关于 understand-figma
understand-figma 用于分析 Figma 文件,并在现有仪表板中生成交互式设计知识图谱。它通过 Figma API 扫描文件,再由 LLM 分析补充图谱信息。
主要功能
- 01扫描并解析 Figma 文件
- 02按页面分组分析设计节点
- 03合并并验证设计图谱
- 04在现有仪表板中展示
适用场景
- 01把 Figma 文件整理为设计图谱
- 02在仪表板中查看设计节点与关系
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ egonex-ai/ understand-anything --skill understand-figma安装后在 Claude Code 中输入/understand-figma确认已加载。
附带文件figma-merge.mjsfigma-scan.mjs
详细介绍
/understand-figma
分析 Figma 文件,并在现有仪表板中生成交互式设计知识图谱。
前置条件
FIGMA_TOKEN环境变量 — Figma 个人访问令牌(在 https://www.figma.com/settings 创建)。如果缺少此变量,立即停止并告知用户:请先设置 Figma 令牌:在 figma.com/settings 创建令牌,然后运行
export FIGMA_TOKEN=<token>。- Node ≥ 22,pnpm ≥ 10。
安全性: 令牌只从环境中读取,并且仅通过
X-Figma-Token请求标头传输。切勿将其写入图谱、meta.json、日志或中间文件。此技能会向api.figma.com发起外部请求 — 与/understand不同,它并非完全离线。只需告知用户一次。
阶段 0 — 预检
- 解析
$ARGUMENTS,获取 Figma URL 或裸文件键(非标志参数),以及可选的--language <lang>。 - 将
PROJECT_ROOT解析为当前工作目录。解析数据目录$UA_DIR一次,并在下方每次读取和写入时重复使用:UA_DIR="$PROJECT_ROOT/$([ -d "$PROJECT_ROOT/.understand-anything" ] && echo .understand-anything || echo .ua)"— 如果旧版.understand-anything/已存在,则使用它;否则使用新的.ua/。由于每个阶段都可能在新的 shell 中运行,请像保留$PROJECT_ROOT一样保留$UA_DIR;如果后续命令块需要重新解析,则使用相同的命令行。 - 解析
PLUGIN_ROOT,并确保 core 已构建(使用与/understand阶段 0.1.5 相同的逻辑)。如果packages/core/dist/figma/index.js不存在,则运行:cd "$PLUGIN_ROOT" && (pnpm install --frozen-lockfile 2>/dev/null || pnpm install) && pnpm --filter @understand-anything/core build mkdir -p $UA_DIR/intermediate。
阶段 1 — 获取并解析(确定性)
运行捆绑的扫描脚本(<SKILL_DIR> 是此技能所在目录):
FIGMA_TOKEN="$FIGMA_TOKEN" node <SKILL_DIR>/figma-scan.mjs "$PROJECT_ROOT" "<url-or-key>"
脚本会写入 $UA_DIR/intermediate/scan-manifest.json 并输出节点数量。将数量告知用户。如果脚本以非零状态退出,则转达 stderr 并停止。
如果扫描输出
UP_TO_DATE,请报告“此 Figma 文件版本的设计图谱已是最新”并停止。若要强制完整重建,请在环境中设置UNDERSTAND_FIGMA_FORCE=1后重新运行。
阶段 2 — 分析(LLM 增强)
- 读取
scan-manifest.json。将节点分组为每批约 15 个,尽可能按页面分组。 - 对每个批次,使用
design-analyzerAgent 定义(agents/design-analyzer.md)分派一个子 Agent。传入:- 该批次的节点(
id、type、name、figmaMeta、子节点名称、令牌用量), - 所有现有节点 ID 的完整列表,
$INTERMEDIATE_DIR = $UA_DIR/intermediate,- 用于输出文件命名的批次编号。
Agent 会写入
analysis-batch-<N>.json。 如果提供了--language,请附加$LANGUAGE_DIRECTIVE(重复使用/understand的指令文本)。
- 该批次的节点(
- 最多同时运行 5 个批次。如果某批次失败,记录警告并继续 — 清单是可靠的基础。
阶段 3 — 合并
node <SKILL_DIR>/figma-merge.mjs "$PROJECT_ROOT"
此步骤会合并 scan-manifest.json 和 analysis-batch-*.json,运行 mergeDesignGraph(验证并重新附加 kind:"design"),然后写入 knowledge-graph.json 和 meta.json。转达输出的统计数据,以及任何非 auto-corrected 的问题。
阶段 4 — 保存并启动
- 清理中间文件,保留
scan-manifest.json:INTER="$UA_DIR/intermediate" find "$INTER" -mindepth 1 -maxdepth 1 -not -name 'scan-manifest.json' -exec rm -rf {} + - 汇总报告:项目名称、按节点类型统计的数量、按类型统计的边数、图层、导览步骤,以及路径
$UA_DIR/knowledge-graph.json。 - 调用
/understand-dashboard技能自动启动仪表板。