feishu-update-doc

更新飞书云文档。支持 7 种更新模式:追加、覆盖、定位替换、全文替换、前/后插入、删除。

2,280 stars

Best use case

feishu-update-doc is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

更新飞书云文档。支持 7 种更新模式:追加、覆盖、定位替换、全文替换、前/后插入、删除。

Teams using feishu-update-doc should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/feishu-update-doc/SKILL.md --create-dirs "https://raw.githubusercontent.com/nexu-io/nexu/main/nexu-skills/skills/feishu-update-doc/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/feishu-update-doc/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How feishu-update-doc Compares

Feature / Agentfeishu-update-docStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

更新飞书云文档。支持 7 种更新模式:追加、覆盖、定位替换、全文替换、前/后插入、删除。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# feishu__update_doc

更新飞书云文档内容,支持 7 种更新模式。优先使用局部更新(replace_range/append/insert_before/insert_after),慎用 overwrite(会清空文档重写,可能丢失图片、评论等)。

# 定位方式

定位模式(replace_range/replace_all/insert_before/insert_after/delete_range)支持两种定位方式,二选一:

## selection_with_ellipsis - 内容定位

支持两种格式:

1. **范围匹配**:`开头内容...结尾内容`
   - 匹配从开头到结尾的所有内容(包含中间内容)
   - 建议 10-20 字符确保唯一性

2. **精确匹配**:`完整内容`(不含 `...`)
   - 匹配完整的文本内容
   - 适合替换短文本、关键词等

**转义说明**:如果要匹配的内容本身包含 `...`,使用 `\.\.\.` 表示字面量的三个点。

示例:
- `你好...世界` → 匹配从"你好"到"世界"之间的任意内容
- `你好\.\.\.世界` → 匹配字面量 "你好...世界"

**建议**:如果文档中有多个 `...`,建议使用更长的上下文来精确定位,避免歧义。

## selection_by_title - 标题定位

格式:`## 章节标题`(可带或不带 # 前缀)

自动定位整个章节(从该标题到下一个同级或更高级标题之前)。

**示例**:
- `## 功能说明` → 定位二级标题"功能说明"及其下所有内容
- `功能说明` → 定位任意级别的"功能说明"标题及其内容

# 可选参数

## new_title

更新文档标题。如果提供此参数,将在更新文档内容后同步更新文档标题。

**特性**:
- 仅支持纯文本,不支持富文本格式
- 长度限制:1-800 字符
- 可以与任何 mode 配合使用
- 标题更新在内容更新之后执行


# 返回值

## 成功

```json
{
  "success": true,
  "doc_id": "文档ID",
  "mode": "使用的模式",
  "message": "文档更新成功(xxx模式)",
  "warnings": ["可选警告列表"],
  "log_id": "请求日志ID"
}
```

## 异步模式(大文档超时)

```json
{
  "task_id": "async_task_xxxx",
  "message": "文档更新已提交异步处理,请使用 task_id 查询状态",
  "log_id": "请求日志ID"
}
```

使用返回的 `task_id` 再次调用 update-doc(仅传 task_id 参数)查询状态。

## 错误

```json
{
  "error": "[错误码] 错误消息\n💡 Suggestion: 修复建议\n📍 Context: 上下文信息",
  "log_id": "请求日志ID"
}
```

---

# 使用示例

## append - 追加到末尾

```json
{
  "doc_id": "文档ID或URL",
  "mode": "append",
  "markdown": "## 新章节\n\n追加的内容..."
}
```

## replace_range - 定位替换

使用 `selection_with_ellipsis`:
```json
{
  "doc_id": "文档ID或URL",
  "mode": "replace_range",
  "selection_with_ellipsis": "## 旧章节标题...旧章节结尾。",
  "markdown": "## 新章节标题\n\n新的内容..."
}
```

使用 `selection_by_title`(替换整个章节):
```json
{
  "doc_id": "文档ID或URL",
  "mode": "replace_range",
  "selection_by_title": "## 功能说明",
  "markdown": "## 功能说明\n\n更新后的功能说明内容..."
}
```

## replace_all - 全文替换

与 replace_range 类似,但支持多处同时替换(replace_range 要求匹配唯一):
```json
{
  "doc_id": "文档ID或URL",
  "mode": "replace_all",
  "selection_with_ellipsis": "张三",
  "markdown": "李四"
}
```

**返回值**包含 `replace_count` 字段,表示替换的次数:
```json
{
  "success": true,
  "replace_count": 4,
  "message": "文档更新成功(replace_all模式,替换4处)"
}
```

**注意**:
- 与 `replace_range` 不同,`replace_all` 允许多个匹配
- 如果没有找到匹配内容,会返回错误
- `markdown` 可以为空字符串,表示删除所有匹配内容

## insert_before - 前插入

```json
{
  "doc_id": "文档ID或URL",
  "mode": "insert_before",
  "selection_with_ellipsis": "## 危险操作...数据丢失风险。",
  "markdown": "> **警告**:以下操作需谨慎!"
}
```

## insert_after - 后插入

```json
{
  "doc_id": "文档ID或URL",
  "mode": "insert_after",
  "selection_with_ellipsis": "```python...```",
  "markdown": "**输出示例**:\n```\nresult = 42\n```"
}
```

## delete_range - 删除内容

使用 `selection_with_ellipsis`:
```json
{
  "doc_id": "文档ID或URL",
  "mode": "delete_range",
  "selection_with_ellipsis": "## 废弃章节...不再需要的内容。"
}
```

使用 `selection_by_title`(删除整个章节):
```json
{
  "doc_id": "文档ID或URL",
  "mode": "delete_range",
  "selection_by_title": "## 废弃章节"
}
```

注意:delete_range 模式不需要 markdown 参数。

## 同时更新标题和内容

可以在任何更新模式中添加 `new_title` 参数来同时更新文档标题:

```json
{
  "doc_id": "文档ID或URL",
  "mode": "overwrite",
  "markdown": "# 项目文档 v2.0\n\n全新的内容...",
  "new_title": "项目文档 v2.0"
}
```

```json
{
  "doc_id": "文档ID或URL",
  "mode": "append",
  "markdown": "## 更新日志\n\n2025-12-18: 新增功能...",
  "new_title": "项目文档(已更新)"
}
```

## overwrite - 完全覆盖

⚠️ 会清空文档后重写,可能丢失图片、评论等,仅在需要完全重建文档时使用。

```json
{
  "doc_id": "文档ID或URL",
  "mode": "overwrite",
  "markdown": "# 新文档\n\n全新的内容..."
}
```

---

# 最佳实践

## 小粒度精确替换

修改文档内容时,**定位范围越小越安全**。尤其是表格、分栏等嵌套块,应精确定位到需要修改的文本,避免影响其他内容。

**示例**:表格单元格中有图片和文字,只需修改文字
- ❌ 替换整个表格或整行 → 可能破坏图片引用
- ✅ 只定位需要修改的文本 → 图片等其他内容不受影响


## 保护不可重建的内容

图片、画板、电子表格、多维表格、任务等内容以 token 形式存储,**无法读出后原样写入**。

**保护策略**:
- 替换时避开包含这些内容的区域
- 精确定位到纯文本部分进行修改

## 分步更新优于整体覆盖

修改多处内容时:
- ✅ 多次小范围替换,逐步修改
- ⚠️ 谨慎使用 `overwrite` 重写整个文档, 除非你认为风险完全可控

**原因**:局部更新保留原有媒体、评论、协作历史,更安全可靠。

## insert 模式扩大定位范围时注意插入位置

使用 `insert_before` 或 `insert_after` 时,如果目标内容重复出现,需要扩大 `selection_with_ellipsis` 范围来唯一定位。

**关键**:插入位置基于匹配范围的**边界**:
- `insert_after` → 插入在匹配范围的**结尾**之后
- `insert_before` → 插入在匹配范围的**开头**之前

扩大范围时,确保边界仍然是期望的插入点。

## 修复画板语法错误

当 create-doc 或 update-doc 返回画板写入失败的 warning 时:
1. warning 中包含 whiteboard 标签(如 `<whiteboard token="xxx"/>`)
2. 分析错误信息,修正 Mermaid/PlantUML 语法
3. 用 `replace_range` 替换:`selection_with_ellipsis` 使用 warning 中的 whiteboard 标签,`markdown` 提供修正后的代码块
4. 重新提交验证

---

# 注意事项

- **Markdown 语法**:支持飞书扩展语法,详见 create-doc 工具文档

Related Skills

feishu-troubleshoot

2280
from nexu-io/nexu

飞书插件问题排查工具。包含常见问题 FAQ 和深度诊断命令(/feishu_doctor)。 常见问题可随时查阅。诊断命令用于排查复杂问题(多次授权仍失败、自动授权无法解决等), 会检查账户配置、API 连通性、应用权限、用户授权状态,并生成详细的诊断报告和解决方案。

feishu-task

2280
from nexu-io/nexu

飞书任务管理工具,用于创建、查询、更新任务和清单。 **当以下情况时使用此 Skill**: (1) 需要创建、查询、更新、删除任务 (2) 需要创建、管理任务清单 (3) 需要查看任务列表或清单内的任务 (4) 用户提到"任务"、"待办"、"to-do"、"清单"、"task" (5) 需要设置任务负责人、关注人、截止时间

feishu-im-read

2280
from nexu-io/nexu

飞书 IM 消息读取工具使用指南,覆盖会话消息获取、话题回复读取、跨会话消息搜索、图片/文件资源下载。 **当以下情况时使用此 Skill**: (1) 需要获取群聊或单聊的历史消息 (2) 需要读取话题(thread)内的回复消息 (3) 需要跨会话搜索消息(按关键词、发送者、时间等条件) (4) 消息中包含图片、文件、音频、视频,需要下载 (5) 用户提到"聊天记录"、"消息"、"群里说了什么"、"话题回复"、"搜索消息"、"图片"、"文件下载" (6) 需要按时间范围过滤消息、分页获取更多消息

feishu-fetch-doc

2280
from nexu-io/nexu

获取飞书云文档内容。返回文档的 Markdown 内容,支持处理文档中的图片、文件和画板(需配合 feishu_doc_media 工具)。

feishu-create-doc

2280
from nexu-io/nexu

创建飞书云文档。从 Lark-flavored Markdown 内容创建新的飞书云文档,支持指定创建位置(文件夹/知识库/知识空间)。

feishu-calendar

2280
from nexu-io/nexu

飞书日历与日程管理工具集。包含日历管理、日程管理、参会人管理、忙闲查询。

feishu-bitable

2280
from nexu-io/nexu

飞书多维表格(Bitable)的创建、查询、编辑和管理工具。包含 27 种字段类型支持、高级筛选、批量操作和视图管理。 **当以下情况时使用此 Skill**: (1) 需要创建或管理飞书多维表格 App (2) 需要在多维表格中新增、查询、修改、删除记录(行数据) (3) 需要管理字段(列)、视图、数据表 (4) 用户提到"多维表格"、"bitable"、"数据表"、"记录"、"字段" (5) 需要批量导入数据或批量更新多维表格

static-deploy

2280
from nexu-io/nexu

Deploy static pages to nexu.space. Use when user says deploy, publish, ship, or go live with a static site/page. Uploads files from workspace to <project-slug>.nexu.space via Wrangler + Cloudflare Pages. Supports first deploy and redeploy.

nano-banana

2280
from nexu-io/nexu

Generate or edit images via Nano Banana image models. Triggers on "generate image", "image generation", "nano banana", "edit image", "nano banana pro", "nano banana 2"

feedback

2280
from nexu-io/nexu

Send feedback to the Nexu team. Use when the user says /feedback followed by their message.

sync-specs

2280
from nexu-io/nexu

Use when code changes may have made documentation outdated, when reviewing docs for consistency, or when the user asks to sync or audit documentation.

nexu-e2e-test

2280
from nexu-io/nexu

Use when verifying OpenClaw gateway fixes end-to-end, testing skill loading after restart, or running integration tests against the local Nexu+OpenClaw stack. Triggers on "e2e test", "verify fix", "test gateway", "test skills loading".