From 0a2c3202cb3d71c6d5f914e6fcc13fa6a30037cd Mon Sep 17 00:00:00 2001 From: syh-cpdsss Date: Fri, 29 May 2026 14:23:11 +0800 Subject: [PATCH] fix: whiteboard skill (#1166) Change-Id: Ib1da37c1520d7697eaee7146555185ffbc749217 --- skills/lark-whiteboard/SKILL.md | 34 ++++++------------- .../references/lark-whiteboard-update.md | 8 ++--- 2 files changed, 15 insertions(+), 27 deletions(-) diff --git a/skills/lark-whiteboard/SKILL.md b/skills/lark-whiteboard/SKILL.md index c7e72d8c8..ca7db21b4 100644 --- a/skills/lark-whiteboard/SKILL.md +++ b/skills/lark-whiteboard/SKILL.md @@ -31,10 +31,6 @@ metadata: | 绘制复杂图表(架构/流程/组织等)| → **[§ 创作 Workflow](#创作-workflow)** | | 修改/重绘已有复杂画板 | → **[§ 修改 Workflow](#修改-workflow)** | -> **⚠️ 强制规范(通过 stdin 更新)**: -> 数据来源于本地文件时,**必须**使用 `--source - --input_format <格式>`。 -> 例:`cat chart.mmd | lark-cli whiteboard +update --source - --input_format mermaid` - ## Shortcuts | Shortcut | 说明 | @@ -54,7 +50,7 @@ metadata: | 用户给了什么 | 怎么获取 | |---|---| | 直接给了 whiteboard token(`wbcnXXX`)| 直接使用 | -| 文档 URL 或 doc_id,文档中已有画板 | `lark-cli docs +fetch --api-version v2 --doc --as user`,从返回的 `` 提取 | +| 文档 URL 或 doc_id,文档中已有画板 | `lark-cli docs +fetch --doc --as user`,从返回的 `` 提取 | | 文档 URL 或 doc_id,需要新建画板 | `lark-cli docs +update --api-version v2 --doc --command append --content '' --as user`,从响应 `data.new_blocks[0].block_token` 取得(`block_type == "whiteboard"` 的那条;参数详见 lark-doc SKILL.md)| **Step 2:渲染 & 写入** @@ -89,11 +85,11 @@ metadata: **然后按图表类型 × 身份选路径**,读对应文件按其完整 workflow 执行(含读 scene 指南、生成内容、渲染审查、交付): -| 图表类型 | 身份 | 路径 | -|---|---|---| -| 思维导图、时序图、类图、饼图、甘特图 | 任何身份 | [`routes/mermaid.md`](routes/mermaid.md) | -| 其他图表 | `Claude` / `Gemini` / `GPT` / `GLM` | [`routes/svg.md`](routes/svg.md) | -| 其他图表 | `Doubao` / `Seed` / `Other` | [`routes/dsl.md`](routes/dsl.md) | +| 图表类型 | 身份 | 路径 | +|------------------------|-------------------------------------|------------------------------------------| +| 思维导图、流程图、时序图、类图、饼图、甘特图 | 任何身份 | [`routes/mermaid.md`](routes/mermaid.md) | +| 其他图表 | `Claude` / `Gemini` / `GPT` / `GLM` | [`routes/svg.md`](routes/svg.md) | +| 其他图表 | `Doubao` / `Seed` / `Other` | [`routes/dsl.md`](routes/dsl.md) | > **⚠️ SVG 路径失败回退**:走 `routes/svg.md` 时,碰到以下情况之一 → **丢弃当前 SVG,改读 `routes/dsl.md` 从零重画,不要逐行修补**: > - 渲染命令直接报错(语法级崩溃,不是 `--check` 的 warn/error) @@ -118,26 +114,18 @@ diagram.png ← 渲染结果 ### 写入画板 -> [!CAUTION] -> **写入前强制 dry-run**:向已有内容的画板写入时,必须先加 `--overwrite --dry-run` 探测。 -> 输出含 `XX whiteboard nodes will be deleted` → 必须向用户确认后才能执行。 +> 关于 --overwrite +> 画板更新命令中,若不携带 --overwrite flag,则是增量更新画板内容,若画板内已有内容的话,新增内容可能会和已有内容重叠,导致问题。 +> 因此,若需要整体更新画板内容,需携带 --overwrite flag 覆盖式更新。 ```bash -# 第一步:dry-run 探测 npx -y @larksuite/whiteboard-cli@^0.2.11 -i <产物文件> --to openapi --format json \ | lark-cli whiteboard +update \ --whiteboard-token \ --source - --input_format raw \ --idempotent-token <10+字符唯一串> \ - --overwrite --dry-run --as user - -# 第二步:确认后执行 -npx -y @larksuite/whiteboard-cli@^0.2.11 -i <产物文件> --to openapi --format json \ - | lark-cli whiteboard +update \ - --whiteboard-token \ - --source - --input_format raw \ - --idempotent-token <10+字符唯一串> \ - --overwrite --as user + --as user \ + --overwrite ``` > `--idempotent-token` 最少 10 字符,建议用时间戳+标识拼接(如 `1744800000-board-1`),避免重试导致重复写入。 diff --git a/skills/lark-whiteboard/references/lark-whiteboard-update.md b/skills/lark-whiteboard/references/lark-whiteboard-update.md index 18c62ad5a..754e3237c 100644 --- a/skills/lark-whiteboard/references/lark-whiteboard-update.md +++ b/skills/lark-whiteboard/references/lark-whiteboard-update.md @@ -54,10 +54,10 @@ cat diagram.puml | lark-cli whiteboard +update \ # 编写 Mermaid 代码 cat > diagram.mmd << 'EOF' graph TD - A[开始] --> B{判断} - B -->|是| C[处理] - B -->|否| D[结束] - C --> D + A[开始] --> B{判断} + B -->|是| C[处理] + B -->|否| D[结束] + C --> D EOF # 从文件读取并更新