/SKILL.md
管理钉钉云文档中的文档、文件夹和内容。当用户想要创建文档、创建表格/脑图/白板/演示/多维表等文件、搜索文档、读取或写入文档内容、创建文件夹整理文档、遍历文件夹结构、精确编辑文档块元素时使用。也适用于用户提到云文档、在线文档、钉钉文档、钉文档等关键词的场景。不要在用户需要管理日程、发消息或处理审批流时触发。
npx skillsauth add aliramw/dingtalk-docs dingtalk-docsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
本 Skill v1.0 需要新版钉钉文档 MCP URL(mcpId=9629)。
如果你看到的工具名是 list_accessible_documents、write_content_to_document 等旧名称,说明配置的是旧版 MCP URL,需要重新获取:
mcporter config add dingtalk-docs --url "<新版URL>"update_document(mode="overwrite") 会清空全部内容,不确定时先问用户delete_document_block 不可恢复,必须先用 list_document_blocks 确认get_document_content 和 update_documentget_document_content 需要下载权限 — 仅有查看权限时无法获取内容,且不支持跨组织文档heading.level 必须传整数 — insert_document_block 插入标题时,level 必须传 1 而非 "1",传字符串会导致后端报错| 工具 | 用途 | 必填参数 |
|------|------|---------|
| search_documents | 搜索有权限的文档 | 无(keyword 选填) |
| create_document | 创建在线文档(可含初始 Markdown 内容) | name |
| create_file | 创建文件(在线文档/表格/演示/白板/脑图/多维表/文件夹) | name, type |
| get_document_content | 获取文档 Markdown 内容 | nodeId |
| update_document | 更新文档内容(覆盖或追加) | nodeId, markdown |
| get_document_info | 获取文档元信息 | nodeId |
| create_folder | 创建文件夹 | name |
| list_nodes | 遍历文件夹/知识库子节点 | 无(folderId 选填) |
| 工具 | 用途 | 必填参数 |
|------|------|---------|
| list_document_blocks | 查询块列表(获取 blockId) | nodeId |
| insert_document_block | 在指定位置插入块元素 | nodeId, element |
| update_document_block | 更新块元素(仅支持 paragraph) | nodeId, blockId, element |
| delete_document_block | 删除块元素(不可恢复) | nodeId, blockId |
创建在线文档("新建文档/帮我建个文档/写个文档"):
create_document(name, markdown?) — 不传 folderId 默认到根目录create_document(name, folderId=<文件夹nodeId>)创建其他类型文件("新建表格/脑图/白板/演示/多维表/文件夹"):
create_file(name, type) — type 枚举:adoc/axls/appt/adraw/amind/able/foldercreate_file(name, type, folderId=<文件夹nodeId>)create_file(name, type, workspaceId=<知识库ID>)(folderId 优先级高于 workspaceId)create_document vs create_file:前者专为在线文档设计且支持写入初始 Markdown,后者支持 7 种文件类型但不支持初始内容搜索文档("找文档/查一下/有没有某个文档"):
search_documents(keyword=关键词)读取文档内容("读文档/看看内容/这个文档写了什么"):
get_document_content(nodeId) — nodeId 支持 URL 或 ID 自动识别更新文档内容("写入/更新/编辑/往文档里加点东西"):
update_document(nodeId, markdown, mode="overwrite")(⚠️ 会清空,先确认)update_document(nodeId, markdown, mode="append")创建文件夹("建文件夹/新建目录"):
create_folder(name, folderId?) — 不传 folderId 默认到根目录遍历文件夹("列出文件夹/看看里面有什么"):
list_nodes(folderId?) — 支持分页(pageSize, nextPageToken)精细编辑块元素("修改第几段/在某段后面插入/删除某个块/在标题后加内容"):
第一步:必须先 list_document_blocks(nodeId) 获取 blockId、index 和 blockType,禁止猜测或编造。
第二步,根据意图选择操作:
insert_document_block(nodeId, element, referenceBlockId?, where?)
where="after" / where="before" 配合 referenceBlockId 控制插入位置update_document_block(nodeId, blockId, element)(⚠️ 仅支持 paragraph 类型)delete_document_block(nodeId, blockId)(不可恢复,操作前务必向用户确认)
⚠️ 高频易错点:
paragraph 属性对象不可省略,内容为空时须传 "paragraph": {}heading.level 必须传整数(1 而非 "1"),传字符串会导致后端报错list 字段必填,不可省略listId,否则展示错误element 常用类型速查(完整结构见 dingtalk_document_struct.md):
// 段落(paragraph)— paragraph 对象不可省略,空段落传 {}
{ "blockType": "paragraph", "paragraph": {}, "children": [{ "text": "普通文字" }] }
// 标题(heading)— level 传整数 1~6
{ "blockType": "heading", "heading": { "level": 1 }, "children": [{ "text": "一级标题" }] }
// 引用(blockquote)
{ "blockType": "blockquote", "blockquote": {}, "children": [{ "text": "引用内容" }] }
// 无序列表(unorderedList)— list 字段必填
{
"blockType": "unorderedList",
"unorderedList": {
"list": { "level": 0, "listStyleType": "disc", "listStyle": { "format": "disc", "text": "%1", "align": "left" } }
},
"children": [{ "text": "列表项" }]
}
// 有序列表(orderedList)— list 字段必填,同组多级列表须保持相同 listId
{
"blockType": "orderedList",
"orderedList": {
"list": { "listId": "list-001", "level": 0, "listStyleType": "decimal", "listStyle": { "format": "decimal", "text": "%1.", "align": "left" } }
},
"children": [{ "text": "列表项" }]
}
// 表格(table)— cells 为二维字符串数组
{ "blockType": "table", "table": { "rolSize": 2, "colSize": 3, "cells": [["A", "B", "C"], ["1", "2", "3"]] } }
children 行内元素(InlineElement)常用写法:
{ "text": "普通文字" }
{ "text": "加粗", "bold": true }
{ "text": "斜体", "italic": true }
{ "text": "代码", "fonts": "monospace" }
{ "elementType": "link", "properties": { "href": "https://..." }, "children": [{ "text": "链接文字" }] }
{ "elementType": "sticker", "properties": { "code": "灯泡" } }
创建文档并写入内容(一步完成):
create_document(name="标题", markdown="# 标题\n\n内容") → 提取 nodeId
搜索并读取:
search_documents(keyword) → 提取 nodeId
get_document_content(nodeId) → 获取 markdown 内容
遍历文件夹并操作文档:
list_nodes(folderId?) → 提取 nodes[].nodeId
get_document_info(nodeId) → 确认 contentType=ALIDOC
get_document_content(nodeId) → 读取内容
Block 精细编辑:
list_document_blocks(nodeId) → 提取 blockId
insert_document_block(nodeId, referenceBlockId, where, element)
list_document_blocks 重新获取update_document_block 当前仅支持 paragraph 类型遇到错误时展示 logId 给用户,便于向钉钉官方反馈排查。
documentation
Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
documentation
Maintain the OpenClaw memory wiki vault with deterministic pages, managed blocks, and source-backed updates.
documentation
Feishu knowledge base navigation. Activate when user mentions knowledge base, wiki, or wiki links.
documentation
Feishu permission management for documents and files. Activate when user mentions sharing, permissions, collaborators.