Lark SheetsSAFE
The official Lark/飞书 CLI tool, maintained by the larksuite team — built for humans and AI Agents. Covers core business domains including Messenger, Docs, Base, Sheets, Calendar, Mail, Tasks, Meetings, and more, with 200+ commands and 20+ AI Agent Skills.
Overview
The official Lark/飞书 CLI tool, maintained by the larksuite team — built for humans and AI Agents. Covers core business domains including Messenger, Docs, Base, Sheets, Calendar, Mail, Tasks, Meetings, and more, with 200+ commands and 20+ AI Agent Skills.
91a26abd3925OBSERVED · 2026-10-07What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
---
name: lark-sheets
version: 3.5.2
description: "飞书电子表格:创建和操作电子表格。支持工作表与行列结构(增删/合并/尺寸/隐藏/冻结/分组)、单元格读写(值/公式/样式/批注/单元格图片)、区域复制移动排序填充、查找替换、批量更新,图表、透视表、条件格式、筛选器与筛选视图、下拉列表、迷你图、浮动图片等对象的创建与维护,以及公式校验、历史版本回滚、本地 Excel/CSV 与飞书表格的导入导出。当用户需要创建或编辑表格、统计汇总与可视化、表格美化、公式计算(含 Excel 公式迁移)、金融/财务建模(DCF、三张表、预算、Sensitivity 等)时使用。多维表格(Base/bitable)请改用 lark-base;若用户是想按名称或关键词搜索云空间(云盘/云存储)里的表格文件,请改用 lark-drive 的 drive +search 先定位资源。当用户给出 doubao.com 的 /sheets/ URL/token 时,也应直接使用本 skill,不要因为域名不是飞书而回退到 WebFetch;路由依据是 URL 路径模式和 token,而不是域名。"
metadata:
requires:
bins: ["lark-cli"]
siblings: ["lark-shared"]
cliHelp: "lark-cli sheets --help"
---
# sheets
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理。**
## 场景 → 命令速查
> 按当前动作选行;下一步必须 Read 该行 reference,读取完成前不得执行命令。只读命中的文档;含公式 / 样式等横切动作时再读对应规范,禁止用目录枚举代替 Read。
| 你要做的事 | ✅ 正确写法 | 动手前读(先 Read 再动手) |
| --- | --- | --- |
| 读数据 | `+csv-get`(纯值/CSV)、`+cells-get`(公式/样式/批注) | 读 `references/lark-sheets-read-data.md` |
| 写入数据 | `+csv-put`(无类型歧义纯文本)、`+table-put`(typed;量值/真日期;标签/编号/前导零/文本数字用 object,禁裸 csv-put)、`+cells-set`(公式/富写入)、`+cells-set-style`(样式)、`+cells-set-image`(单元格图片) | 读 `references/lark-sheets-write-cells.md` |
| 格式继承(新列/新行) | 物理插行 / 插列用 `+dim-insert --inherit-style before\|after`;往已有空白区域扩写用 `+range-copy --paste-type formats` 先铺样式再写值 | 读 `references/lark-sheets-range-operations.md`;插行插列再读 `references/lark-sheets-sheet-structure.md` |
| 工作簿操作 | `+workbook-create`、`+workbook-info`、`+workbook-import`、`+sheet-copy`、`+revision-get`、`+workbook-export` | 读 `references/lark-sheets-workbook.md` |
| 行列操作 | 排序用 `+range-sort` 原子移动整行;合并 / 取消合并用 `+cells-merge` / `+cells-unmerge`;清空内容才用 `+cells-clear`;尺寸用 `+cols-resize` / `+rows-resize` | 读 `references/lark-sheets-range-operations.md`;涉结构布局再读 `references/lark-sheets-sheet-structure.md` |
| 美化收尾 | `+styles-put` | 读 `references/lark-sheets-styles-put.md` |
| 子表结构 | `+sheet-info`、`+dim-insert`;删整行 / 列用 `+dim-delete`,不能用 clear 代替 | 读 `references/lark-sheets-sheet-structure.md` |
| 画图表 / 可视化 / 柱状图 / 折线图 / 饼图 / 趋势 / 占比 | 单图用 `+chart-create-basic`,多图用扁平输入的 `+batch-chart-create`;改已有图的数据源用 `+chart-data-update`、配置用 `+chart-config-update`;只有语义 shortcut 表达不了的单系列 / 单数据点 / 高级字段才用 `+chart-create` / `+chart-update`,且只提交必要的局部 properties。动手前先断言每张图的类型、横轴字段、分组字段和目标张数,画完 `+chart-list` 逐项核;图片迁移成真图表后删除并复查原浮动图片 | 读 `references/lark-sheets-chart.md`;含透视 / 分组汇总再读 `references/lark-sheets-pivot-table.md` |
| 分组汇总 / 透视 | `+pivot-create` | 读 `references/lark-sheets-pivot-table.md` |
| 筛选 / 只看符合条件的行 | `+filter-create` | 读 `references/lark-sheets-filter.md` |
| 查找 / 替换文本 | `+cells-search`、`+cells-replace` | 读 `references/lark-sheets-search-replace.md` |
| 条件格式 / 条件高亮 / 数据条 / 色阶 | 随数据变化的标色用 `+cond-format-create`;固定刷色只用于用户点名要静态着色 | 读 `references/lark-sheets-conditional-format.md` |
| 插图:自由摆放的装饰 | `+float-image-create` | 读 `references/lark-sheets-float-image.md` |
| 迷你图 / 单元格内趋势线 | `+sparkline-create` | 读 `references/lark-sheets-sparkline.md` |
| 批量清除多区域 | `+cells-batch-clear` | 读 `references/lark-sheets-batch-update.md`(high-risk) |
| 复核编辑变更 / 取版本间差异 | `+changeset-get` | 读 `references/lark-sheets-changeset.md` |
| 保存多份筛选状态 / 命名筛选视图 | `+filter-view-create`;视图与 `+filter-create` 相互独立、可在同一子表共存 | 读 `references/lark-sheets-filter-view.md` |
| 查编辑历史 / 回滚到历史版本 | `+history-list` 取版本,`+history-revert`(high-risk,异步)回滚后用 `+history-revert-status` 轮询 | 读 `references/lark-sheets-history.md` |
> ⚠️ 金额 / 百分比 / 比率 / 计数及参与运算的真日期写数字(百分比传 `0.4` + `number_format`);日期标签、编号、前导零、身份证 / 单据号写文本。`--range` 只写 `A1:B2`,子表另传 `--sheet-id` / `--sheet-name`。
## 飞书表格编辑准则
1. **最小改动**:用户没点名要删 / 改名 / 隐藏时,已有 Sheet 一张不动;补齐只写空格,未要求调整的值 / 结构 / 格式不动。
2. **目标子表与回读断言**:先确认真实末行与目标区域;未点名子表时只从 `resource_type=sheet && is_hidden=false` 的可见网格候选里选,唯一才自动使用,多张不得按 index 猜。涉及"所有 / 每个 sheet"(跨表汇总、批量清洗、合并多张子表)时先 `+workbook-info` 列全再逐个处理,别只做前几张。写后用 `+csv-get` / `+cells-get` / `+<对象>-list` 验首、中、末及用户点名项——返回 `ok` 只表示请求成功。纯 CSV 回写前去掉 `annotated_csv` 的 `[row=N] ` 前缀,`cells-get` 的样式字段与值分开处理,公式必须回读 `formula`。**样式同样要回读**:写过边框 / 底色 / 字体色 / 数字格式 / 行高列宽 / 冻结的,收尾用 `+cells-get --include style` 或 `+sheet-info` 抽查目标区域首、中、末格确认属性真的在——写入返回 `ok` 不代表样式落上了;缺的整份重发(样式是幂等盖章,重发无副作用)。
3. **公式闭环**:可推导值写落格公式,不用静态值代替——用 Python 算好数值再写进单元格,交付的是改输入不重算的死表;Python 只用于推导和验证,落进单元格的必须是引用其他格的公式。写前确认字段语义、阈值边界(以上/至少=`>=`,超过/大于=`>`)、单位/时区和完整源范围,选首中末、空值、边界及一条可手算记录作哨兵;写后逐段 `+formula-verify --exit-on-error`,各段 `status='success'` 且哨兵值正确才算完成(AI 公式例外:异步计算,改用 `+formula-verify --ai-only` 对整个写入区间做一次异步状态检查,不用 `+cells-get` 轮询结果,`failed` 清零后即使仍有 pending 也可交付并说明);试错 3 次仍失败可降级静态值,交付说明写明「静态值 + 失败原因 + 不随源数据更新」。
4. **完整继承样式**:新增行列时禁止只读值只写值——原表字体、对齐、底色(含奇偶行交替)、四边框都延续到新区域。**物理插入行 / 列**用 `+dim-insert --inherit-style before|after`(原生继承,比补刷可靠);**往已有空白区域扩写**(如在数据右侧加新列)用 `+range-copy --paste-type formats` 先铺样式再写值;两者都表达不了的非规则样式,才用 `+cells-get --include style` 读源区样式随值写回。无论走哪条路径,插入后都另查行高列宽(行高不随样式继承,插行填长文本前补 `+rows-resize`)、合并与跨列标题并补齐。详见 `references/lark-sheets-write-cells.md`。
5. **原子操作**:排序用 `+range-sort`,`--range` 覆盖完整记录宽度,排序列只写进 `--sort-keys`;删除记录用 `+dim-delete`,清空内容 / 格式才用 `+cells-clear`;禁止读值后用 `+csv-put` 覆盖来模拟排序 / 删除。仅跨类型且有顺序依赖时才用 high-risk `+batch-update`。
6. **标色分流**:数据变化后应自动重算的高亮 / 标红用条件格式,已确定结果的固定标注用静态样式,装饰性美化按视觉规范。两条路径取色字段用同一判据:用户中文语境下的"标红 / 染色 / 标记"指**单元格背景色**,"文字红 / 字体红 / 把字变红"才用字体色,默认无说明时选背景色。条件格式建完先 `+cond-format-list` 验规则与范围,再 `+cond-format-result-get` 抽查哨兵格命中样式。
7. **产物可核对**:用户点名的 sheet 名与数量、表头、标题、图例、文件名、口径逐字保留;回复中每项“已完成”都能定位到产物,缺口逐项声明。
8. **替换与新增**:批量替换 / 删除后搜索确认无残留;新增列要有表头,单位 / 口径另置,不占原表头或数据格。
9. **不编造**:表外数据须有可核验来源,不用常识或名称推断伪造公司、标准值、行情或法规参数;**没有来源就留空**——凭记忆填的数值大概率与真实值对不上,比留空更糟。留空的格在交付说明里逐项列出格址与缺的来源,不要只写一句"部分数据缺失"。
> 🤖 **文本类 NLP 任务首选 AI 公式,别默认退回手工 / Python**:只要对文本列做**翻译 / 情感 / 分类打标签 / 信息提取 / 总结 / 润色**等 NLP,飞书在线表格上优先用原生 `=AI(prompt, range)` 逐列铺开(写法与普通公式一致,见 `references/lark-sheets-formula-translation.md`),一次落表随行自动计算,比逐条读 → 手工判断 → 回写 / Python 调模型再写静态值都更省事。**判定标准是「逐行独立」**:每个目标单元格只依赖同一行输入即为逐行独立,**数据量(哪怕 1 万 +)、分批、判断复杂度都不改变该判定**——大数据量下 AI 公式仍是首选,分批只改公式铺设的批次大小(行数很多时按批串行,量级参考每批几百到一千行),不得改为「用 Python 或规则脚本生成语义结果后静态写回」;Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (0)
No findings outside the package's declared scope.
Gates applied: no_behavioural_pass.
91a26abd3925full audit observations/trust-audit/skill/larksuite__lark-sheets.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-07 | 91a26abd3925 | SAFE | B | 89 | first audit |
Questions
What does the Lark Sheets skill do?
The official Lark/飞书 CLI tool, maintained by the larksuite team — built for humans and AI Agents. Covers core business domains including Messenger, Docs, Base, Sheets, Calendar, Mail, Tasks, Meetings, and more, with 200+ commands and 20+ AI Agent Skills.
Is Lark Sheets safe to install?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean skill reads B.
What can Lark Sheets access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (91a26abd3925), read on 2026-10-07. The repository is watched, and a new audit runs when it changes — this is the first audit.