跳转到正文
报告库
用途分类 / 其他用途

Lark Base Skill 安全审计

作者说它能做什么(原文)

飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。

第三方安全检查结论

先别安装或运行

已检查文件
26
发现的风险
5
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。未发现风险
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 4 项风险
高风险

持久化 Workflow 可把记录字段发送到任意外部 HTTP 地址

原文依据:5 处
发现了什么

Workflow 支持 HTTP 请求,其 URL、请求头和请求体都可由文本与前序步骤的字段引用拼接。示例明确把姓名、手机号、公司、负责人和记录 ID 发送到外部 CRM。

为什么需要注意

如果目标域名、字段范围或触发条件选择错误,工作流每次触发都可能持续向外部系统披露客户或业务数据;错误配置在启用后会重复执行。

该能力本身构成合理的数据外发风险,但示例不是自动执行的恶意代码。用户创建并启用含 `HTTPClientAction` 的持久化 Workflow 后,URL、请求头和正文可混入前序记录字段并发送到外部服务;示例确实包含手机号、公司、负责人和记录 ID。用户应在授权前确认目标域名、字段清单、触发条件及 Workflow 是否启用。

SKILL.md:252来自说明文档
Workflow 本身是 Base Block,其内部是一张由 `next` / `children` 连接的 steps 执行图;触发器、动作、条件分支和循环都是 step 类型。它适合定时执行、Record 新增或变更联动、消息通知、记录读写和跨系统调用。Workflow 分为三条操作路径:1. **读取配置:** `+workflow-list` 定位流程,`+workflow-get` 读取 `title`、`status` 和完整 `steps` 执行图。2. **写入配置:** `+workflow-create` 创建完整定义,`+workflow-update` 更新完整定义;构造或修改配置前读取 [Workflow](references/lark-base-workflow.md),由该入口继续路由 step 类型和 schema。3. **运行状态控制:** `+workflow-enable` / `+workflow-disable` 启用或停用已有 Workflow,不修改 steps 执行图。
查看另外 4 个位置
references/lark-base-workflow.md:651来自说明文档
    {      "id": "step_call_crm_api",      "type": "HTTPClientAction",      "title": "调用 CRM 同步接口",      "next": "step_add_sync_log",      "data": {        "method": "POST",        "url": [          { "value_type": "text", "value": "https://api.example-crm.com/v1/leads/sync" }        ],        "headers": [          { "key": "Content-Type", "value": [{ "value_type": "text", "value": "application/json" }] },          { "key": "X-System", "value": [{ "value_type": "text", "value": "lark_base_workflow" }] }        ],        "body_type": "raw",        "raw_body": [          { "value_type": "text", "value": "{\"lead_name\":\"" },          { "value_type": "ref", "value": "$.step_button_trigger.fldLeadName" },          { "value_type": "text", "value": "\",\"mobile\":\"" },          { "value_type": "ref", "value": "$.step_button_trigger.fldMobile" },          { "value_type": "text", "value": "\",\"company\":\"" },          { "value_type": "ref", "value": "$.step_button_trigger.fldCompany" },          { "value_type": "text", "value": "\",\"owner\":\"" },          { "value_type": "ref", "value": "$.step_button_trigger.fldOwner" },          { "value_type": "text", "value": "\",\"source_record_id\":\"" },          { "value_type": "ref", "value": "$.step_button_trigger.recordId" },          { "value_type": "text", "value": "\"}" }        ],        "response_type": "json",        "response_value": "{\"success\":true,\"message\":\"lead synced successfully\"}"      }
SKILL.md:250来自说明文档
## Workflow BlockWorkflow 本身是 Base Block,其内部是一张由 `next` / `children` 连接的 steps 执行图;触发器、动作、条件分支和循环都是 step 类型。它适合定时执行、Record 新增或变更联动、消息通知、记录读写和跨系统调用。Workflow 分为三条操作路径:1. **读取配置:** `+workflow-list` 定位流程,`+workflow-get` 读取 `title`、`status` 和完整 `steps` 执行图。2. **写入配置:** `+workflow-create` 创建完整定义,`+workflow-update` 更新完整定义;构造或修改配置前读取 [Workflow](references/lark-base-workflow.md),由该入口继续路由 step 类型和 schema。3. **运行状态控制:** `+workflow-enable` / `+workflow-disable` 启用或停用已有 Workflow,不修改 steps 执行图。
references/lark-base-workflow-schema.md:396来自说明文档
| 字段 | 必填 | 说明 ||------|-----|------|| `method` | 否 | 请求方法:`GET` / `POST` / `PUT` / `PATCH` / `DELETE`,默认 `POST` || `url` | 是 | ValueInfo[],请求 URL,支持 `text` / `ref` 拼接 || `queries` | 否 | KeyValue[],查询参数 || `headers` | 否 | KeyValue[],请求头 || `body_type` | 否 | 请求体类型:`none` / `raw` / `form-data` / `form-urlencoded`,默认 `raw` || `raw_body` | 否 | ValueInfo[],原始请求体,仅 `body_type=raw` 时使用 || `form_body` | 否 | KeyValue[],表单数据,仅 `body_type=form-data` 或 `body_type=form-urlencoded` 时使用 || `response_type` | 否 | 响应类型:`none` / `text` / `json`,默认 `json` || `response_value` | 否 | string,JSON 字符串形式的响应结果示例;仅当 `response_type=json` 时必填 |
references/lark-base-workflow.md:657来自说明文档
        "method": "POST",        "url": [          { "value_type": "text", "value": "https://api.example-crm.com/v1/leads/sync" }        ],        "headers": [          { "key": "Content-Type", "value": [{ "value_type": "text", "value": "application/json" }] },          { "key": "X-System", "value": [{ "value_type": "text", "value": "lark_base_workflow" }] }        ],        "body_type": "raw",        "raw_body": [          { "value_type": "text", "value": "{\"lead_name\":\"" },          { "value_type": "ref", "value": "$.step_button_trigger.fldLeadName" },          { "value_type": "text", "value": "\",\"mobile\":\"" },          { "value_type": "ref", "value": "$.step_button_trigger.fldMobile" },          { "value_type": "text", "value": "\",\"company\":\"" },          { "value_type": "ref", "value": "$.step_button_trigger.fldCompany" },          { "value_type": "text", "value": "\",\"owner\":\"" },          { "value_type": "ref", "value": "$.step_button_trigger.fldOwner" },          { "value_type": "text", "value": "\",\"source_record_id\":\"" },          { "value_type": "ref", "value": "$.step_button_trigger.recordId" },          { "value_type": "text", "value": "\"}" }        ],
中风险

字段插件会把同表字段内容交给 LLM,并持续自动写回结果

原文依据:6 处
发现了什么

内置插件以 prompt 和 `field_ref` 引用同行字段进行 LLM 推理。配置写入后自动更新会被强制开启,且没有关闭自动更新的参数;整列刷新还可能创建大量生成任务。

为什么需要注意

被引用字段可能包含客户资料、内部备注或其他敏感内容,并被持续用于模型处理;生成结果会写回目标字段,可能覆盖或改变业务数据。

源码支持该风险。该插件会把同一行被引用字段作为 LLM prompt 输入并写回目标字段;安装后自动更新被强制开启且无关闭参数。配置及手动刷新都有 `--yes`,整列刷新也被限制为必须由用户明确要求,但安装后的持续自动处理仍可能扩大敏感字段被模型处理和批量覆写的范围。用户可要求作者披露模型/数据保留方式,并仅允许指定字段和记录。

references/lark-base-field-extension.md:3来自说明文档
字段插件用于扩展基础字段能力,当同行其他单元格更新时,触发 LLM 推理生成新单元格。当前公开支持的插件 ID 只有 `builtin_llm_completion`,已确认可用于文本、单选、数字字段,让目标字段基于 prompt 和字段引用生成内容,并可手动触发该字段的单元格异步更新任务。
查看另外 5 个位置
references/lark-base-field-extension.md:127来自说明文档
`field_ref` 只能引用当前表中的其他字段,不能引用目标字段自身;附件字段和其他不支持字段不要作为引用字段。
references/lark-base-field-extension.md:167来自说明文档
- 目标字段必须是当前字段插件已支持的字段类型;当前已确认支持文本、单选、数字字段。不要把字段插件当成任意字段类型都可用的通用能力。- 写入插件配置后,自动更新会强制开启;当前不提供关闭自动更新的参数。- 读取接口中的 `field_ref.field` 通常返回字段名称;字段名称不可用时可能返回字段 ID。- `+field-extension-update` 不返回 `input_schemas`。- `+field-extension-update-cells --type column` 可能触发大量 AI 生成任务,单元格越多耗时通常越久;除非用户明确要求整列刷新,否则优先按 `--type row` 精确更新目标记录。
references/lark-base-field-extension.md:1来自说明文档
# base field-extension字段插件用于扩展基础字段能力,当同行其他单元格更新时,触发 LLM 推理生成新单元格。当前公开支持的插件 ID 只有 `builtin_llm_completion`,已确认可用于文本、单选、数字字段,让目标字段基于 prompt 和字段引用生成内容,并可手动触发该字段的单元格异步更新任务。
references/lark-base-field-extension.md:69来自说明文档
1. 定位 Base、Table 和目标 Field。目标 Field 是承载插件输出的已有字段,不是 prompt 中被引用的输入字段。2. 用 `+field-extension-get` 读取当前配置。返回 `current_extension=null` 表示未配置、无法识别或存量配置无法转换。3. 构造 `+field-extension-update --json`。安装或更新时传 `extension_id=builtin_llm_completion` 和 `inputs.prompt`;清空时传 `{}`。4. 配置成功后,只有用户明确要立即生成或刷新已有单元格时,才调用 `+field-extension-update-cells` 发起异步生成任务。5. 需要验收结果时,等待任务完成或稍后用记录读取命令抽样查看目标字段单元格;`update_cells` 只返回任务 ID,不直接返回生成结果。
references/lark-base-field-extension.md:157来自说明文档
## 权限和风险- `+field-extension-get` 是只读命令,权限 `base:field:read`。- `+field-extension-update` 是高风险写命令,权限 `base:field:update`,会改变目标字段的自动生成配置,执行时必须带 `--yes`。- `+field-extension-update-cells` 是高风险写命令,权限 `base:record:update`,会触发目标字段单元格异步写回,执行时必须带 `--yes`。- 用户需要具备管理目标表或目标字段插件的权限才能触发更新任务;如果接口返回权限不足,先按 Base 权限或高级权限角色确认用户权限。
中风险

所有记录读取都被要求保存为本地 NDJSON 副本

原文依据:4 处
发现了什么

主指引要求每次读取都把投影后的记录写入指定路径的 NDJSON;分析流程还会生成同名 manifest,其中记录来源、结构和版本信息会一并持久化。

为什么需要注意

Base 数据会从云端权限边界复制到本地磁盘。如果输出目录被共享、同步、备份或提交到版本库,记录内容和元数据可能被其他人读取。

该风险有明确指令支持:主 Skill 对“所有读取”要求写入本地 NDJSON,并为输出生成含来源、范围、版本和字段结构的 manifest。这是分析流程所需的本地处理,不等于外传或恶意行为;但会在磁盘留下可能含业务记录和人员信息的副本,且提供文本未说明保存期限或清理。用户可限制输出目录、字段投影、文件权限和保留时间。

SKILL.md:117来自说明文档
所有读取都重复传 `--field-id` 做最小字段投影,并统一写入 NDJSON artifact:`--format ndjson --output <path>.ndjson`。每行是一条 Record JSON,stdout 摘要包含 `records_count` 和 `has_more` 用于分页判断。
查看另外 3 个位置
references/lark-base-record-query-and-analysis-sop.md:64来自说明文档
`--output ./records.ndjson` 生成记录文件和同名 `.manifest.json`。高频 manifest 字段:| 字段 | 分析用途 || --- | --- || `records_count` / `has_more` / `next_offset` | 判断当前块大小、是否完整以及下一块起点 || `base_token` / `table_id` / `query_context` | 固定来源表和读取范围 || `rev` | 检查多块或复用 artifact 时的数据版本一致性 || `timezone` | 解释 Base 本地日历边界 || `columns.*.field_id/field_type/physical_type` | 确认 NDJSON 实际列类型与稳定字段标识 || `columns.*.stats/example/hint` | 估算空值、数组展开规模和文本体量;只描述本次导出 || `record_file_size_bytes` | 决定一次读取还是分块处理 artifact |NDJSON 每行是一条 Record,以字段 `name` 为 key,并额外包含系统 `record_id`;`field_id` 位于 manifest。字段改名会改变 NDJSON key,跨批次或长期脚本应通过 manifest 复核 `field_id → name`。
references/lark-base-record-query-and-analysis-sop.md:62来自说明文档
## 5. Manifest 与 NDJSON 结构`--output ./records.ndjson` 生成记录文件和同名 `.manifest.json`。高频 manifest 字段:| 字段 | 分析用途 || --- | --- || `records_count` / `has_more` / `next_offset` | 判断当前块大小、是否完整以及下一块起点 || `base_token` / `table_id` / `query_context` | 固定来源表和读取范围 || `rev` | 检查多块或复用 artifact 时的数据版本一致性 || `timezone` | 解释 Base 本地日历边界 || `columns.*.field_id/field_type/physical_type` | 确认 NDJSON 实际列类型与稳定字段标识 || `columns.*.stats/example/hint` | 估算空值、数组展开规模和文本体量;只描述本次导出 || `record_file_size_bytes` | 决定一次读取还是分块处理 artifact |NDJSON 每行是一条 Record,以字段 `name` 为 key,并额外包含系统 `record_id`;`field_id` 位于 manifest。字段改名会改变 NDJSON key,跨批次或长期脚本应通过 manifest 复核 `field_id → name`。
references/lark-base-record-query-and-analysis-sop.md:87来自说明文档
| `location` | `{lng,lat,full_address}|null` | 地理计算用坐标,文本范围分析用地址 || `user`、`group_chat`、`created_by`、`updated_by` | `array<{id,name}>` | 连接与去重使用 `id`,展示使用 `name` || `link` | `array<{id}>` | `id` 是 Field schema 指定目标表中的 `record_id` || `attachment` | `array<{file_token,size,name}>` | 文件 token 是稳定定位信息;数组展开会改变粒度 |
中风险

表单附件提交会读取并上传指定的本地文件

原文依据:5 处
发现了什么

`+form-submit` 接受本地文件路径,CLI 会检查文件后并行上传到 Base Drive Media,再把获得的文件 token 写入表单。`--yes` 确认提交,但所示流程没有说明它会再次展示文件内容。

为什么需要注意

如果路径选择错误,私人文档、图片或其他本地文件可能被上传到目标 Base,并按该 Base 或表单的访问权限对他人可见。

这段代码的正常用途

候选描述的上传行为属实,但在上下文中是用户明确要求通过分享表单提交附件时的核心功能,不是隐藏的任意文件收集。路径必须由 `attachments` 明确列出,CLI 先验证常规文件和大小,再上传到目标 Base;真实提交还要求 `--yes`,并要求先读取表单详情取得正确 Base。仍应只提供预期文件路径,因为文件内容会离开本机。

这项判断针对展示的代码和适用条件,不表示风险已经实际发生。
references/lark-base-form-submit.md:113来自说明文档
**附件字段的填写方式与 `fields` 中的普通单元格完全不同**,不能在 `fields` 里传 `file_token` 或其他附件格式。必须将附件字段单独放在 `--json` 的顶层 `attachments` 对象中,值为**本地文件路径数组**(不是 token):```json{  "attachments": {    "附件字段名": ["./report.pdf", "./photo.png"],    "另一个附件字段": ["./doc.docx"]  }}```CLI 收到路径后会自动完成以下流程:1. 校验所有文件(存在性、大小 ≤2GB、常规文件)2. 并行上传到 Base Drive Media(并发上限 5,跨字段重复路径自动去重)3. 获取 `file_token` 后合并到最终表单提交内容中
查看另外 4 个位置
references/lark-base-form-submit.md:169来自说明文档
- **本命令为高风险写操作(high-risk-write),必须额外传递 `--yes` 确认**,否则返回 `confirmation_required` 并以非零码退出;`--dry-run` 预览除外- 本命令仅支持通过表单分享链接(share_token)提交,不支持通过 base_token + table_id + view_id 方式提交- **当 `--json` 包含 `attachments` 时,必须额外提供 `--base-token`**,因为附件上传到 Base Drive Media 需要指定目标 Base- 附件字段只需在 `--json.attachments` 中提供本地路径即可,CLI 自动完成校验、并行上传、Token 获取和合并写入- 限流:单应用 20 QPS,单用户 5 QPS- 权限要求:`base:form:update`;使用 attachments 时还需 `docs:document.media:upload`
references/lark-base-form-submit.md:5来自说明文档
通过表单分享链接填写并提交多维表格表单。仅支持分享模式(share_token),支持填写普通字段值和上传本地文件作为附件。> **⚠️ 高风险写操作(high-risk-write):** 本命令会向表单写入并提交数据,属于高风险写操作,必须额外传递 `--yes` 进行确认,否则会返回 `confirmation_required` 错误并退出。当用户明确要求提交且目标表单无歧义时,直接附加 `--yes`,无需再次询问。
references/lark-base-form-submit.md:11来自说明文档
**在调用 `+form-submit` 之前,必须先使用 `+form-detail` 获取表单详情。** 原因如下:1. **字段类型匹配**:每个题目的 `type` 决定了值的格式(文本、数字、选项、人员、日期等),需根据类型正确构造 `fields` 中的值2. **必填校验**:通过 `questions[].required` 判断哪些题目为必填项,避免遗漏3. **显示条件过滤**:部分题目带有 `filter`(显示/隐藏逻辑),需根据用户已填的其他题目值判断该题目是否应该出现——**不应填写被 filter 隐藏的题目**4. **获取 base_token(附件场景必用)**:`+form-detail` 返回的 `data.base_token` 是该表单所属的多维表格标识。当表单包含附件字段时,提交时必须通过 `--base-token` 传入此值,因为附件需要上传到该 Base 的 Drive Media 中
references/lark-base-form-submit.md:111来自说明文档
#### attachments(附件上传)**附件字段的填写方式与 `fields` 中的普通单元格完全不同**,不能在 `fields` 里传 `file_token` 或其他附件格式。必须将附件字段单独放在 `--json` 的顶层 `attachments` 对象中,值为**本地文件路径数组**(不是 token):```json{  "attachments": {    "附件字段名": ["./report.pdf", "./photo.png"],    "另一个附件字段": ["./doc.docx"]  }}```CLI 收到路径后会自动完成以下流程:1. 校验所有文件(存在性、大小 ≤2GB、常规文件)2. 并行上传到 Base Drive Media(并发上限 5,跨字段重复路径自动去重)3. 获取 `file_token` 后合并到最终表单提交内容中
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 1 项风险
高风险

“编辑”角色会默认获得删除记录和编辑视图的权限

原文依据:5 处
发现了什么

权限文档规定,只要表权限为 `edit`,即使用户没有明确要求,也默认加入记录删除权限并允许编辑视图。这与同一文档宣称的“未明确提及的权限一律不开放”不一致。

为什么需要注意

被授予普通编辑权限的角色成员可能删除业务记录、创建或修改共享视图,权限范围超过用户对“可编辑”的通常预期。

该风险有源码支持。角色配置虽宣称默认拒绝,但对表级 `edit` 明确默认附加“删除记录”和“编辑视图”,即用户只要求编辑表时也可能得到更强权限。只有用户明确限制时才关闭这些能力。这会扩大误删或修改共享视图的影响;用户可要求作者将删除和视图编辑改为显式授权。

references/lark-base-role-config.md:460来自说明文档
|------|--------|----------|| `record_operations` 中的 `delete` | **包含**(`perm = edit` 时) | 用户明确限制时才排除 || `view_rule.allow_edit` | **`true`**(`perm = edit` 时) | 用户明确限制"不可编辑视图"或 `perm = read_only` 时设为 `false` |
查看另外 4 个位置
references/lark-base-role-config.md:481来自说明文档
**注意**:- 用户未提及时,表权限为 `edit` 时默认同时包含 `add` 和 `delete`,默认不包含 `delete` 的情况仅适用于用户明确限制操作的场景- 阅读范围默认对齐编辑范围:用户仅描述可编辑范围、未说明阅读范围时,可阅读范围与可编辑范围保持一致,不主动扩大- 当可读范围与可编辑范围一致时,**不得**生成 `read_filter_rule_group`;应设置 `other_record_all_read = false` 且 `read_filter_rule_group = null`
references/lark-base-role-config.md:439来自说明文档
## 默认权限策略与风控规则构造角色配置 JSON 时,采用 **默认拒绝与权限最小化** 策略。用户未明确提及的权限一律不开放,不因"合理猜测""常见做法"主动扩展权限范围。
references/lark-base-role-config.md:454来自说明文档
### 默认开启项(条件性)以下能力在特定条件下**默认开启**,用户明确限制时才排除:| 能力 | 默认值 | 排除条件 ||------|--------|----------|| `record_operations` 中的 `delete` | **包含**(`perm = edit` 时) | 用户明确限制时才排除 || `view_rule.allow_edit` | **`true`**(`perm = edit` 时) | 用户明确限制"不可编辑视图"或 `perm = read_only` 时设为 `false` |
references/lark-base-role-config.md:479来自说明文档
### 记录操作默认策略**注意**:- 用户未提及时,表权限为 `edit` 时默认同时包含 `add` 和 `delete`,默认不包含 `delete` 的情况仅适用于用户明确限制操作的场景- 阅读范围默认对齐编辑范围:用户仅描述可编辑范围、未说明阅读范围时,可阅读范围与可编辑范围保持一致,不主动扩大- 当可读范围与可编辑范围一致时,**不得**生成 `read_filter_rule_group`;应设置 `other_record_all_read = false` 且 `read_filter_rule_group = null`
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

8 个说明模块

该 Skill 默认以用户身份操作飞书多维表格;只有用户明确要求时才使用机器人身份,并要求先解析 URL、标题或关键词以定位目标 Base。

查看原文
SKILL.md:17来自说明文档
操作 Base 优先使用 `--as user`;用户明确要求应用身份时使用 `--as bot`。权限失败按 `lark-shared` 以原身份修复 scope 或资源 ACL;只有用户明确同意更换操作者时才切换身份。
SKILL.md:23来自说明文档
1. **URL 或分享链接:** `lark-cli base +url-resolve --url '<url>' --as user`。Base URL 根据返回的 `resource_type` / `block_type` 及 `table_id`、`view_id`、`record_id`、`dashboard_id`、`workflow_id`、`docx_token`、`share_token` 等坐标进入对应模块;BaseApp `/app/` URL 返回 `app_token`,并在链接携带时返回 `workspace_token` 和 `page_id`。实体类型以解析结果为准。2. **Base 标题或关键词:** `lark-cli base +title-resolve --title '<keyword>' --as user`。单一结果直接取得 `base_token`;多个候选结合标题、所有者和更新时间消歧,仍无法唯一确定时请用户选择。随后按下方 Base Block 资源模型定位目标实体。3. **已有 Base 候选列表:** 用户要列出已有 Base 候选,且需要按最近访问、owner、创建人、时间、类型等维度筛选/排序时,转 `lark-cli drive +search --doc-types bitable --as user`。按标题/关键词定位单个 Base 仍用 `+title-resolve`。常见候选列表命令:

该 Skill 不只是读取数据,还可创建、移动、重命名和删除 Base 内资源,并可修改字段、记录、视图、表单、仪表盘、工作流及高级权限。

查看原文
SKILL.md:59来自说明文档
每个 Base Block 都有 `id`、`type`、可修改的 `name`、所在 Folder 的 `parent_id`,并在同级目录中具有顺序。`+base-block-list` 是统一发现入口;`+base-block-create` 创建 Block,`+base-block-rename` 修改名称,`+base-block-move` 通过 `--parent-id` 调整目录并通过 `--before-id` / `--after-id` 调整顺序,`+base-block-delete` 删除 Block。类型专属内容再由对应模块命令处理。创建时已经明确类型专属初始内容,可直接使用对应构造命令一次完成:Table 用 `+table-create --fields`,Dashboard 用 `+dashboard-create` 设置主题,Workflow 用 `+workflow-create --json` 提交完整定义;Folder 和 Docx 使用 `+base-block-create`。
SKILL.md:262来自说明文档
**读取 AdvPerm:** `+base-get` 查看 `is_advanced`,`+role-list` / `+role-get` 查看角色。**写入 AdvPerm:** `+advperm-enable` / `+advperm-disable` 启停高级权限,`+role-create` / `+role-update` / `+role-delete` 管理角色。先读 [权限与角色](references/lark-base-advanced-permission-and-role.md),由该入口继续路由权限 JSON 协议。

通用执行规则要求区分全量替换与增量更新,并在命令存在确认门时确认目标和影响后使用 `--yes`。

查看原文
SKILL.md:276来自说明文档
- Update 先确认命令是完整替换还是 delta:完整替换使用可信当前配置做 read-modify-write,delta 只提交目标变更。- 优先用写入返回确认结果;返回不足以确认或任务明确要求核验时再读回目标。- 命令具有 confirmation gate 时,确认目标和影响后使用 `--yes`。

Skill 声明依赖外部 `lark-cli` 二进制;所提供内容主要规定如何调用该工具,因此这些文档不能证明该二进制本身如何处理凭据、网络请求或数据。

查看原文
SKILL.md:6来自说明文档
metadata:  requires:    bins: ["lark-cli"]  cliHelp: "lark-cli base --help"---
从这里开始 · 工作说明SKILL.md
lark-base
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。 另有 5 个章节,可在原文件中查看。

文件引用关系图

40 处引用
哪些文件发起引用引用了什么
连线表示真实的文件引用,不是运行顺序。点击节点可高亮相关连线,并查看具体文件和原文位置。虚线表示还有文件需要定位。
文件与检查记录26 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文
  • references/lark-base-advanced-permission-and-role.md已纳入全文
  • references/lark-base-app-block-data-config.md已纳入全文
  • references/lark-base-app.md已纳入全文
  • references/lark-base-dashboard.md已纳入全文
  • references/lark-base-field-create.md已纳入全文
  • references/lark-base-field-extension.md已纳入全文
  • references/lark-base-field-update.md已纳入全文
  • references/lark-base-filter-condition.md已纳入全文
  • references/lark-base-form-detail.md已纳入全文
  • references/lark-base-form-questions-create.md已纳入全文
  • references/lark-base-form-questions-update.md已纳入全文
  • references/lark-base-form-submit.md已纳入全文
  • references/lark-base-record-history-list.md已纳入全文
  • references/lark-base-record-query-and-analysis-sop.md已纳入全文
  • references/lark-base-template-center.md已纳入全文
  • references/lark-base-view-set-filter.md已纳入全文
  • references/lark-base-workflow.md已纳入全文
  • references/lark-base-dashboard-block-config.md已纳入全文
  • references/lark-base-dashboard-block-get-data.md已纳入全文
  • references/lark-base-data-query.md已纳入全文
  • references/lark-base-field-formula.md已纳入全文
  • references/lark-base-field-lookup.md已纳入全文
  • references/lark-base-field-schema.md已纳入全文
  • references/lark-base-role-config.md已纳入全文
  • references/lark-base-workflow-schema.md已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明
  • references/lark-base-advanced-permission-and-role.md配套文件
  • references/lark-base-app-block-data-config.md配套文件
  • references/lark-base-app.md配套文件
  • references/lark-base-dashboard-block-config.md配套文件
  • references/lark-base-dashboard-block-get-data.md配套文件
  • references/lark-base-dashboard.md配套文件
  • references/lark-base-data-query.md配套文件
  • references/lark-base-field-create.md配套文件
  • references/lark-base-field-extension.md配套文件
  • references/lark-base-field-formula.md配套文件
  • references/lark-base-field-lookup.md配套文件
  • references/lark-base-field-schema.md配套文件
  • references/lark-base-field-update.md配套文件
  • references/lark-base-filter-condition.md配套文件
  • references/lark-base-form-detail.md配套文件
  • references/lark-base-form-questions-create.md配套文件
  • references/lark-base-form-questions-update.md配套文件
  • references/lark-base-form-submit.md配套文件
  • references/lark-base-record-history-list.md配套文件
  • references/lark-base-record-query-and-analysis-sop.md配套文件
  • references/lark-base-role-config.md配套文件
  • references/lark-base-template-center.md配套文件
  • references/lark-base-view-set-filter.md配套文件
  • references/lark-base-workflow-schema.md配套文件
  • references/lark-base-workflow.md配套文件

代码和说明中提到的操作

运行命令
SKILL.md:119来自说明文档
```bash# Example: 行数较大时先筛选 Status 包含 Doing 的记录,再导出 20 条作为局部预览
SKILL.md:134来自说明文档
```bash# jq:对服务端筛选结果追加名称格式筛选,再投影必要字段
SKILL.md:179来自说明文档
```bash# 新增:成功时返回 record_id_list
读取文件
SKILL.md:142来自说明文档
with open("records-preview.ndjson", encoding="utf-8") as stream:    rows = (json.loads(line) for line in stream if line.strip())
连接外部网站
SKILL.md:157来自说明文档
  "标题": "Created from shortcut", // text: string  "官网": "[官网](https://example.com)", // text(url): 裸 URL 或 Markdown link  "联系电话": "13800000000", // text(phone): 合法电话号码字符串
references/lark-base-data-query.md:83来自说明文档
```texthttps://example.feishu.cn/base/<base_token>?table=<block_id>```
references/lark-base-field-create.md:50来自说明文档
- 每个字段对象最少包含:`name`、`type`。- 所有字段类型都支持可选 `description`;支持纯文本,也支持 Markdown 链接,如 `协作约定可参考[团队字段约定](https://example.com/field-spec)`。- 需要字段默认值时传 `default_value`,直接使用字段对应 CellValue;`datetime` / `user` 的动态填充用 `$slot`。完整规则见 [Field Schema](lark-base-field-schema.md)。
读取了多少行
8,496
文件校验值(用于核对版本)
8d9d1ce419e9228044b85e4add939edc8b9c836521336914b9970b57a5137d48