Skip to content

Commit 417e22b

Browse files
committed
refactor(skills): introduce lark-doc-whiteboard.md and streamline whiteboard workflow
- add lark-doc/references/lark-doc-whiteboard.md: defines role boundaries between lark-doc and lark-whiteboard, step-by-step doc↔whiteboard coordination flow, and semantic-to-chart-type mapping table - lark-doc-create.md: tighten post-create whiteboard flow (step 2 now directly references the "渲染 & 写入画板" section); strengthen 主动画板 guideline with explicit placeholder syntax, prohibition on PNG/SVG substitution, and concrete routing examples - lark-whiteboard/SKILL.md: upgrade to v0.2, rewrite with structured quick-decision table, creation/modification workflows, render routing table, and dry-run write guard - extract rendering routes into routes/{dsl,mermaid,svg}.md; add per-chart scene guides under scenes/ - remove lark-whiteboard-cli/SKILL.md (absorbed into lark-whiteboard)
1 parent 94bba91 commit 417e22b

31 files changed

Lines changed: 453 additions & 457 deletions

skills/lark-doc/SKILL.md

Lines changed: 14 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -97,31 +97,19 @@ Drive Folder (云空间文件夹)
9797
└── file_token (直接使用)
9898
```
9999

100-
## 重要说明:画板编辑
101-
> **⚠️ lark-doc skill 不能直接编辑已有画板内容,但 `docs +update` 可以新建空白画板**
102-
### 场景 1:已通过 docs +fetch 获取到文档内容和画板 token
103-
如果用户已经通过 `docs +fetch` 拉取了文档内容,并且文档中已有画板(返回的 markdown 中包含 `<whiteboard token="xxx"/>` 标签),请引导用户:
104-
1. 记录画板的 token
105-
2. 查看 [`../lark-whiteboard/SKILL.md`](../lark-whiteboard/SKILL.md) 了解如何编辑画板内容
106-
### 场景 2:刚创建画板,需要编辑
107-
如果用户刚通过 `docs +update` 创建了空白画板,需要编辑时:
108-
**步骤 1:按空白画板语法创建**
109-
-`--markdown` 中直接传 `<whiteboard type="blank"></whiteboard>`
110-
- 需要多个空白画板时,在同一个 `--markdown` 里重复多个 whiteboard 标签
111-
**步骤 2:从响应中记录 token**
112-
- `docs +update` 成功后,读取响应字段 `data.board_tokens`
113-
- `data.board_tokens` 是新建画板的 token 列表,后续编辑直接使用这里的 token
114-
**步骤 3:引导编辑**
115-
- 记录需要编辑的画板 token
116-
- 查看 [`../lark-whiteboard/SKILL.md`](../lark-whiteboard/SKILL.md) 了解如何编辑画板内容
117-
### 注意事项
118-
- 已有画板内容无法通过 lark-doc 的 `docs +update` 直接编辑
119-
- 编辑画板需要使用专门的 [`../lark-whiteboard/SKILL.md`](../lark-whiteboard/SKILL.md)
120-
121-
## 文档可视化建议
122-
> **💡 在撰写文档时,当需要表达较为复杂的时序、架构层次、逻辑关系、数据流程等内容时,建议使用画板绘制可视化图表以显著提升文档的可阅读性。**
123-
>
124-
> 请参考 [`../lark-whiteboard/SKILL.md`](../lark-whiteboard/SKILL.md) 了解如何绘制画板内容。
100+
## 绘图需求识别与挖掘
101+
102+
用户很少主动提"画板"——**默认**使用飞书画板承载图表,命中以下任一信号即触发:
103+
- 用户提到图表类型:架构图、流程图、时序图、组织图、路线图、对比图、鱼骨图、飞轮图、思维导图等
104+
- 用户表达可视化意图:画一下、梳理关系、画个流程、给我一个图、方便汇报等
105+
- 文档主题涉及结构关系、流程走向、时间线、数据对比
106+
107+
以下场景不加图:用户明确拒绝、合同/法律条款/合规声明等严谨连续文本、原样转录任务。
108+
109+
> [!CAUTION]
110+
> 命中后,**MUST** 先读取 [`references/lark-doc-whiteboard.md`](references/lark-doc-whiteboard.md)**严格按其流程执行**
111+
>
112+
> **绝对禁止**`whiteboard-cli` 渲染 PNG 后通过 `docs +media-insert` 插入文档——图表必须通过 `lark-cli whiteboard +update` 写入画板 block,这是唯一合法路径。
125113
126114
## 快速决策
127115
- 用户说“看一下文档里的图片/附件/素材”“预览素材”,优先用 `lark-cli docs +media-preview`
@@ -132,45 +120,6 @@ Drive Folder (云空间文件夹)
132120
- 拿到 spreadsheet URL / token 后,再切到 `lark-sheets` 做对象内部读取、筛选、写入等操作。
133121
- 用户说“给文档加评论”“查看评论”“回复评论”“给评论加表情 / reaction”“删除评论表情 / reaction”,**不要留在 `lark-doc`**,直接切到 `lark-drive` 处理。
134122

135-
## 画板需求挖掘(主动识别)
136-
137-
> **用户很少主动提"画板"。创建文档时应主动识别适合可视化的内容,用画板呈现。**
138-
139-
### 🔴 关键要求(必须遵守)
140-
141-
**创建空白画板 ≠ 完成任务**。创建空白画板后,**必须继续使用 lark-whiteboard 技能填充实际内容**
142-
143-
### 语义与画板类型映射
144-
145-
创建/编辑文档时,文档主题涉及以下语义,应**主动**创建画板,无需用户指定:
146-
147-
| 语义 | 画板类型 | 参考指南 |
148-
|---------------|-------|---------------------------------------------------------------------------------------------|
149-
| 架构/分层/技术方案 | 架构图 | [lark-whiteboard-cli/scenes/architecture.md](../lark-whiteboard-cli/scenes/architecture.md) |
150-
| 流程/审批/部署/业务流转 | 流程图 | [lark-whiteboard-cli/scenes/flowchart.md](../lark-whiteboard-cli/scenes/flowchart.md) |
151-
| 组织/层级/汇报关系 | 组织架构图 | [lark-whiteboard-cli/scenes/organization.md](../lark-whiteboard-cli/scenes/organization.md) |
152-
| 时间线/里程碑/版本规划 | 里程碑图 | [lark-whiteboard-cli/scenes/milestone.md](../lark-whiteboard-cli/scenes/milestone.md) |
153-
| 因果/复盘/根因分析 | 鱼骨图 | [lark-whiteboard-cli/scenes/fishbone.md](../lark-whiteboard-cli/scenes/fishbone.md) |
154-
| 方案对比/技术选型 | 对比图 | [lark-whiteboard-cli/scenes/comparison.md](../lark-whiteboard-cli/scenes/comparison.md) |
155-
| 循环/飞轮/闭环 | 飞轮图 | [lark-whiteboard-cli/scenes/flywheel.md](../lark-whiteboard-cli/scenes/flywheel.md) |
156-
| 层级占比/能力模型 | 金字塔图 | [lark-whiteboard-cli/scenes/pyramid.md](../lark-whiteboard-cli/scenes/pyramid.md) |
157-
| 模块依赖/调用关系 | 架构图 | [lark-whiteboard-cli/scenes/architecture.md](../lark-whiteboard-cli/scenes/architecture.md) |
158-
| 分类梳理/知识体系 | 思维导图 | [lark-whiteboard-cli/scenes/mermaid.md](../lark-whiteboard-cli/scenes/mermaid.md) |
159-
| 数据分布/占比 | 饼图 | [lark-whiteboard-cli/scenes/mermaid.md](../lark-whiteboard-cli/scenes/mermaid.md) |
160-
161-
创建画板前,务必先阅读 [`lark-whiteboard-cli`](../lark-whiteboard-cli/SKILL.md)[`lark-whiteboard`](../lark-whiteboard/SKILL.md) 这两个 Skill,了解画板的创建流程。
162-
163-
### 完整执行流程(必须完整执行)
164-
165-
1. **创建空白画板占位**:创建场景用 `docs +create`、编辑场景用 `docs +update` 插入空白画板
166-
2. **获取画板 token**:从 `docs +update` 响应的 `data.board_tokens` 获取画板 token 列表
167-
3. **填充画板内容**:切换到 [`lark-whiteboard-cli`](../lark-whiteboard-cli/SKILL.md) 创建画板内容,并填入画板
168-
4. **验证完成**:确认所有画板都有实际内容,不是空白
169-
170-
**不适用**:纯文字记录(日志/备忘)、数据密集型内容(用表格)、用户明确只要文字。
171-
172-
> ⚠️ **警告**:如果只创建空白画板而不填充内容,任务将被视为未完成!
173-
174123
## 补充说明
175124
`docs +search` 除了搜索文档 / Wiki,也承担“先定位云空间对象,再切回对应业务 skill 操作”的资源发现入口角色;当用户口头说“表格 / 报表”时,也优先从这里开始。
176125

@@ -186,4 +135,4 @@ Shortcut 是对常用操作的高级封装(`lark-cli docs +<verb> [flags]`)
186135
| [`+update`](references/lark-doc-update.md) | Update a Lark document |
187136
| [`+media-insert`](references/lark-doc-media-insert.md) | Insert a local image or file at the end of a Lark document (4-step orchestration + auto-rollback) |
188137
| [`+media-download`](references/lark-doc-media-download.md) | Download document media or whiteboard thumbnail (auto-detects extension) |
189-
| [`+whiteboard-update`](references/lark-doc-whiteboard-update.md) | Update an existing whiteboard in lark document with whiteboard dsl. Such DSL input from stdin. refer to lark-whiteboard skill for more details. |
138+
| [`+whiteboard-update`](../lark-whiteboard/references/lark-whiteboard-update.md) | Alias of `whiteboard +update`. Update an existing whiteboard with DSL, Mermaid or PlantUML. Prefer `whiteboard +update`; refer to lark-whiteboard skill for details. |

skills/lark-doc/references/lark-doc-create.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,8 @@ lark-cli docs +create --title "学习笔记" --wiki-space my_library --markdown
5757
如果文档中包含空白画板(`<whiteboard type="blank"></whiteboard>`),**必须继续以下步骤**
5858

5959
1. 从返回值的 `data.board_tokens` 字段记录所有新建画板的 token
60-
2. 立即切换到 [`lark-whiteboard`](../lark-whiteboard/SKILL.md) 技能
61-
3. 使用 `whiteboard +update` 命令为每个画板填充实际内容(Mermaid/PlantUML/DSL)
62-
4. 确认所有画板都有实际内容后,任务才算完成
60+
2. 读取 `../../lark-whiteboard/SKILL.md`,跳至"渲染 & 写入画板"章节,为每个 board_token 生成并写入实际内容
61+
3. 确认所有画板都有实际内容后,任务才算完成
6362

6463
**仅创建空白画板是不够的!** 如果只创建空白画板而不填充内容,任务将被视为未完成。
6564

@@ -85,7 +84,7 @@ lark-cli docs +create --title "学习笔记" --wiki-space my_library --markdown
8584
- **视觉节奏**:用分割线、分栏、表格打破大段纯文字
8685
- **图文交融**:流程、架构或草图需要可视化时,优先使用图片、表格或空白画板
8786
- **克制留白**:Callout 不过度、加粗只强调核心词
88-
- **主动画板**:文档涉及架构、流程、组织、时间线、因果等逻辑关系时,主动插入空白画板,后续用 lark-whiteboard 填充;但若用户明确要求仅文本或内容更适合表格,则不插入。详见 [画板需求挖掘](../SKILL.md#画板需求挖掘主动识别)
87+
- **主动画板**:文档涉及架构、流程、组织、时间线、因果等逻辑关系时,**必须**在 markdown 对应章节的文字内容之后插入 `<whiteboard type="blank"></whiteboard>` 占位,每个图表对应一个标签。**禁止**`whiteboard-cli` 渲染的 PNG/SVG 图片替代画板。创建完成后从返回值 `data.board_tokens` 取 token,读取 `../../lark-whiteboard/SKILL.md` 的"渲染 & 写入画板"章节为每个 token 写入图表内容。例:文档含"系统整体架构""分层架构""部署架构"各需插入一个画板,"类图"也需插入一个画板(走 Mermaid 路由)。若用户明确要求仅文本或内容更适合表格,则不插入。
8988

9089
当用户有明确的样式、风格需求时,应当以用户的需求为准!
9190

skills/lark-doc/references/lark-doc-whiteboard-update.md

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# lark-doc 画板处理指南
2+
3+
> **前置条件:** 先阅读 [`../../lark-shared/SKILL.md`](../../lark-shared/SKILL.md) 了解认证、全局参数和安全规则。
4+
5+
## 两个 Skill 的职责边界
6+
7+
| Skill | 核心职责 | 约束 |
8+
|------|------|------|
9+
| `lark-doc` | 文档内容读取/更新、插入空白画板占位、获取 board_token | 不能直接编辑画板内容;`docs +update` 的画板能力仅限插入空白占位 |
10+
| `lark-whiteboard` | 查询/导出画板(+query);图表内容生成(Mermaid/DSL/SVG 路由、场景选型、渲染验证);写入画板(+update) | 图表内容生成由此 skill 完整执行,不依赖外部调度 |
11+
12+
## 文档与画板协同流程
13+
14+
### 步骤 1:判断场景
15+
16+
| 场景 | 入口 |
17+
|------|------|
18+
| 文档中需要插入新画板 | 继续步骤 2 |
19+
| 已有画板需要更新内容 |`docs +fetch` 获取 `board_token`,跳至步骤 3 |
20+
| 只查看 / 下载已有画板 | 切换至 `lark-whiteboard`,不走本流程 |
21+
22+
### 步骤 2:在文档中创建空白画板
23+
24+
- 创建场景:`docs +create`;编辑场景:`docs +update`
25+
- markdown 中使用 `<whiteboard type="blank"></whiteboard>`(不要转义)
26+
- 多个画板时,在同一段 markdown 中重复多个 whiteboard 标签
27+
- 从响应的 `data.board_tokens` 中读取 token 列表
28+
29+
### 步骤 3:生成并写入画板内容
30+
31+
读取 [`../../lark-whiteboard/SKILL.md`](../../lark-whiteboard/SKILL.md),跳至"渲染 & 写入画板"章节,按其完整流程为每个 board_token 生成并写入图表内容。
32+
33+
多个画板时依次处理,每个画板完成后再处理下一个。
34+
35+
### 步骤 4:完成校验
36+
37+
- 确认每个 token 对应的画板都已填充真实内容
38+
- 不保留空白占位画板;只有空白画板而无内容视为任务未完成
39+
40+
---
41+
42+
## 语义与画板类型映射
43+
44+
| 语义 | 画板类型 |
45+
|------|------|
46+
| 架构/分层/技术方案/模块依赖/调用关系 | 架构图 |
47+
| 流程/审批/部署/业务流转/状态机 | 流程图 |
48+
| 跨角色流程/跨系统交互/端到端链路 | 泳道图 |
49+
| 组织/层级/汇报关系 | 组织架构图 |
50+
| 时间线/里程碑/版本规划 | 里程碑图 |
51+
| 因果/复盘/根因分析 | 鱼骨图 |
52+
| 方案对比/技术选型/功能矩阵 | 对比图 |
53+
| 循环/飞轮/闭环/增长链路 | 飞轮图 |
54+
| 层级占比/能力模型/需求层次 | 金字塔图 |
55+
| 矩形树图/层级面积占比 | 树状图 |
56+
| 转化漏斗/销售漏斗 | 漏斗图 |
57+
| 分类梳理/知识体系/思维导图/时序图/类图 | Mermaid |
58+
| 数据分布/占比/饼图 | Mermaid |
59+
| 柱状图/条形图/数据对比 | 柱状图 |
60+
| 折线图/趋势图/时序数据 | 折线图 |
61+
62+
---
63+
64+
## 关联参考
65+
66+
- 画板查询/创作/修改/渲染写入:[`../../lark-whiteboard/SKILL.md`](../../lark-whiteboard/SKILL.md)

0 commit comments

Comments
 (0)