Skip to content
Report library
Purpose / Documents

Lark Markdown Skill Security Audit

What the author says it does (original text)

飞书 Markdown:查看、创建、上传、编辑和比较飞书中的原生 Markdown 文件。当用户要操作飞书 Markdown 文件,或比较其远端版本及本地草稿时使用。纯本地 Markdown 文件操作不触发本 skill。不负责将 Markdown 导入为飞书在线文档,也不负责文件搜索、权限、评论、移动、删除等云空间管理操作。

Independent security check

Do not install or run it yet

Files checked
147
Risks found
13
Could it run dangerous commands?Looks for programs run straight after downloading, remote control of your computer, and hidden commands.Risks found: 2
High risk

Whiteboard paths automatically download and execute an npm package with a floating version range

Source references: 4
What we found

The skill requires running `npx -y` without asking. `-y` accepts installation automatically, while `@^0.2.13` may resolve to later compatible releases. The package then reads artifacts, renders them, and pipes output into `lark-cli`.

Why this matters

If the npm package, publisher account, or dependency chain is compromised, downloaded code could read or alter workspace files, access credentials available to the process, and make network requests.

The skill explicitly requires running `npx -y @larksuite/whiteboard-cli@^0.2.13` without asking. `-y` accepts installation non-interactively and the caret range is not an exact pin. The package then reads local SVG, renders/checks/converts it, and its output is piped into a command with board write access. This creates supply-chain and local-file-processing risk. Users can require an exact verified version and restricted filesystem/network access.

lark-whiteboard/SKILL.md:13In the instructionsOpen original file
> [!IMPORTANT]> - 运行 `lark-cli --version`,确认可用,无需询问用户。> - 运行 `npx -y @larksuite/whiteboard-cli@^0.2.13 -v`,确认可用,无需询问用户。
Show 3 other places
lark-whiteboard/routes/dsl.md:26In the instructionsOpen original file
Step 3: 渲染 & 审查 → 交付  - 渲染前自查(见下方检查清单)  - 渲染 PNG(仅用于预览验证,不是最终产物):npx -y @larksuite/whiteboard-cli@^0.2.13 -i diagram.json -o diagram.png  - 检查:信息完整?布局合理?配色协调?文字无截断?连线无交叉?  - 有问题 → 按症状表修复 → 重新渲染(最多 2 轮)  - 2 轮后仍有严重问题 → 考虑走 Mermaid 路径兜底  - 写入画板:用 whiteboard-cli 将 diagram.json 转换为 OpenAPI 格式并 pipe 给 +update:      npx -y @larksuite/whiteboard-cli@^0.2.13 -i diagram.json --to openapi --format json \        | lark-cli whiteboard +update --whiteboard-token <board_token> \            --source - --input_format raw --idempotent-token <时间戳+标识> --as user      → 完整 dry-run / 确认流程见 [§ 写入画板](../references/lark-whiteboard-workflow.md#写入画板)
lark-whiteboard/routes/svg.md:32In the instructionsOpen original file
```建目录   ./diagrams/YYYY-MM-DDTHHMMSS/         (例:./diagrams/2026-04-15T143022/)写文件   <dir>/diagram.svg渲染     npx -y @larksuite/whiteboard-cli@^0.2.13 -i <dir>/diagram.svg -o <dir>/diagram.png -f svg检查     npx -y @larksuite/whiteboard-cli@^0.2.13 -i <dir>/diagram.svg -f svg --check导出     npx -y @larksuite/whiteboard-cli@^0.2.13 -i <dir>/diagram.svg -f svg --to openapi --format json > <dir>/diagram.json```
lark-whiteboard/routes/dsl.md:32In the instructionsOpen original file
  - 2 轮后仍有严重问题 → 考虑走 Mermaid 路径兜底  - 写入画板:用 whiteboard-cli 将 diagram.json 转换为 OpenAPI 格式并 pipe 给 +update:      npx -y @larksuite/whiteboard-cli@^0.2.13 -i diagram.json --to openapi --format json \        | lark-cli whiteboard +update --whiteboard-token <board_token> \            --source - --input_format raw --idempotent-token <时间戳+标识> --as user      → 完整 dry-run / 确认流程见 [§ 写入画板](../references/lark-whiteboard-workflow.md#写入画板)
Medium risk

The whiteboard conversion flow downloads and executes a non-exact package via npx -y

Source references: 3
What we found

The referenced flow invokes `npx -y @larksuite/whiteboard-cli@^0.2.13`. The `-y` option accepts installation automatically, while the caret range permits later compatible releases, so the executed code is not fixed to the audited version.

Why this matters

If the registry package, publisher account, or a later compatible release is compromised, downloaded code runs with the agent process's local privileges and may access writable workspace files or available credentials.

When the whiteboard uses DSL or explicitly needs native OpenAPI nodes, the workflow runs `@larksuite/whiteboard-cli@^0.2.13` through `npx -y`. The install is accepted non-interactively and the caret range is not an exact pin, so code resolved at install time is executed. This applies only to that conversion branch. Users can require an exact version and provenance checks, and restrict installation-time network and credential access.

lark-whiteboard/references/lark-whiteboard-workflow.md:84In the instructionsOpen original file
写入画板时按最终产物类型选择 `+update --input_format`:- Mermaid / PlantUML / SVG 产物直接写入时,`--input_format` 取单值 `mermaid` / `plantuml` / `svg`;写入非空已有画板并需要 overwrite 时,先确认会整板重建;SVG 修改已有画板时先走 [`../routes/svg-edit.md`](../routes/svg-edit.md) 的确认 workflow。- 只有 DSL 产物或已明确需要 OpenAPI 原生节点格式时,才先用 `npx -y @larksuite/whiteboard-cli@^0.2.13 --to openapi --format json` 转换,再用 `raw` 写入。具体命令示例、`--overwrite`、`--idempotent-token` 和 `--as user/bot` 的使用方式,统一参考 [`whiteboard +update`](./lark-whiteboard-update.md)。
Show 2 other places
lark-whiteboard/references/lark-whiteboard-update.md:90In the instructionsOpen original file
```bash# 生成 OpenAPI 格式到文件npx -y @larksuite/whiteboard-cli@^0.2.13 -i <DSL 文件> --to openapi --format json -o ./temp.json# 从文件读取并更新lark-cli whiteboard +update \  --whiteboard-token <画板Token> \  --idempotent-token <10+字符唯一串> \  --input_format raw \  --source @./temp.json \  --overwrite --as user```
lark-whiteboard/references/lark-whiteboard-workflow.md:82In the instructionsOpen original file
### 写入画板写入画板时按最终产物类型选择 `+update --input_format`:- Mermaid / PlantUML / SVG 产物直接写入时,`--input_format` 取单值 `mermaid` / `plantuml` / `svg`;写入非空已有画板并需要 overwrite 时,先确认会整板重建;SVG 修改已有画板时先走 [`../routes/svg-edit.md`](../routes/svg-edit.md) 的确认 workflow。- 只有 DSL 产物或已明确需要 OpenAPI 原生节点格式时,才先用 `npx -y @larksuite/whiteboard-cli@^0.2.13 --to openapi --format json` 转换,再用 `raw` 写入。具体命令示例、`--overwrite`、`--idempotent-token` 和 `--as user/bot` 的使用方式,统一参考 [`whiteboard +update`](./lark-whiteboard-update.md)。
Could it expose your files or keys?Looks for uploads of files containing passwords or keys, and keys written directly in the code.Risks found: 2
Medium risk

Document authoring may require disclosing the topic to an external image search

Source references: 2
What we found

The from-scratch workflow requires scanning for missing resources and says that when imagery is needed but none was supplied, image search is mandatory. Search terms would normally be derived from the document’s topic or content.

Why this matters

Confidential project names, product plans, client topics, or unpublished subjects may be sent to an external search or stock-image service. Selected network images may then be fetched and uploaded into the Lark document.

What this evidence establishes

The workflow does require image search when images are deemed necessary and the user supplied none. However, the provided lines do not identify the search service, actual query, transmitted document content, or whether consent is obtained first. Thus a conditional external-search instruction is shown, but disclosure of the topic or sensitive material is not established. Users can request provider disclosure, query minimization, and an opt-out.

This assessment concerns the code and conditions shown, not proof that harm has occurred.
lark-doc/references/lark-doc-create-workflow.md:46In the instructionsOpen original file
### Step 3:收集资料并扫描表达机会。1. 强制扫描事实、数据、案例、引用和图片等资源缺口;内容需要而现有材料不足时必须检索或生成,判断需要图片且用户未提供素材时必须搜索图片。2. 根据用户要求、contract / adapter 限制和内容需要确定 `presentation_mode`,再识别真实信息关系并选择候选表达;不因命中关系就机械使用组件。
Show 1 other places
lark-doc/references/lark-doc-xml.md:14In the instructionsOpen original file
- `<pre lang="go" caption="示例"><code>fmt.Println(&quot;hello&quot;)</code></pre>`:代码必须放在 `<code>` 内,禁止直接放在 `<pre>` 下;`caption` 可省略。- `<img path="@./photo.png"/>`:上传当前工作目录内的本地图片。也可用 `<img href="URL"/>` 上传公开 HTTP(S) 网络图片,或用 `<img src="token"/>` 复制原始图片;三者任选一个,可选 `width`、`height`、`caption`、`name`。使用 `href` 时,CLI 会将远程图片转为本地资源并完成上传;响应须为 PNG、JPEG、GIF 或 WebP,单图不超过 20MiB。内部网络图片须先下载到本地再使用 `path`。- `<source path="@./report.pdf" name="报告.pdf"/>`:上传本地附件;也可使用 `<source token="token" name="xx"/>` 复制已有附件。可独立使用、放入 `<p>` 作为行内附件,或写成 `<figure view-type="Card|Preview"><source/></figure>`;
Medium risk

Remote images in document Markdown trigger external HTTP/HTTPS downloads

Source references: 2
What we found

When Markdown is used for an online Lark document, image URLs are fetched automatically, including unencrypted HTTP URLs. The request reveals timing and network metadata to the image host, and an HTTP response can be replaced in transit.

Why this matters

An external host can observe when document processing occurs and log the request source. Images fetched over HTTP may be altered before being inserted, so the resulting document may differ from what the user reviewed.

Markdown image syntax for online documents causes the supplied URL to be downloaded automatically and explicitly permits HTTP. It triggers only when such a network image is present and processed through this document workflow. This is normal image insertion behavior, but it exposes request metadata to the image host, and HTTP lacks transport integrity. Users can require trusted HTTPS-only hosts or locally stage and upload the image.

lark-doc/references/lark-doc-md.md:61In the instructionsOpen original file
Markdown 格式支持通过 URL 插入网络图片,图片将自动从 HTTP 下载:```markdown![alt text](https://example.com/photo.png)```- `alt text` 为图片描述(可选,可留空)- URL 支持 `http://` 和 `https://` 协议- 对应的 XML 格式为:`<img href="https://example.com/photo.png"/>`
Show 1 other places
lark-doc/references/lark-doc-md.md:69In the instructionsOpen original file
本地图片使用 `![alt](@./images/photo.png)`(路径含空格时写作 `![alt](<@./images/product shot.png>)`);路径必须位于当前工作目录内,`alt` 会作为 caption。附件使用 `<source path="@./files/report.pdf"/>`目前不支持将 Base64 Data URI(如 `data:image/png;base64,...`)直接作为 Markdown 图片地址传入;如仅有 Base64 数据,请先解码为本地图片文件,再使用上述 `@./...` 路径上传。
Could it delete files or keep running?Looks for broad file deletion, disk overwrites, and programs set to start automatically.Risks found: 4
Medium risk

Non-atomic patch can overwrite another person’s concurrent changes

Source references: 1
What we found

The patch is not atomic between download and re-upload; the documentation explicitly says an intervening update can still be overwritten.

Why this matters

A colleague’s recent edits may be lost without warning, leaving a new version based on the patch’s stale snapshot.

This risk is explicit: patch downloads the whole file, replaces locally, and uploads a full overwrite rather than performing an atomic server-side patch. Another person's edit between download and upload may be overwritten. A user can ask for revision preconditions or a latest-version comparison immediately before and after writing.

references/lark-markdown-patch.md:96In the instructionsOpen original file
- 该命令的内部语义是:**download -> local replace -> overwrite upload**- 它不是服务端原子 patch;如果有人在你下载后、上传前更新了同一文件,本次 patch 仍可能覆盖那次中间修改- 它不会返回详细匹配位置,只返回命中数量- `--dry-run` 会同时展示两种可能的上传路径:`upload_all`(小文件)和 `upload_prepare/upload_part/upload_finish`(大文件分片上传)
Medium risk

Whole-file overwrite may also rename the remote file to the local filename

Source references: 3
What we found

`+overwrite` replaces the complete content. With `--file` and no `--name`, the remote filename defaults to the local filename.

Why this matters

A wrong token can replace the wrong file; even with the right target, a draft filename may unexpectedly change the shared file’s name and displayed links.

`+overwrite` intentionally replaces the remote Markdown, and when `--file` is used without `--name`, the remote name defaults to the local filename. These documented combined side effects can replace content and unexpectedly rename the file. A user can require confirmation of the target token, final name, and diff first.

references/lark-markdown-overwrite.md:53In the instructionsOpen original file
## 关键约束- `--content` 与 `--file` 必须二选一- 如果传了 `--name`,直接使用它作为覆盖后的文件名- 如果没传 `--name` 且使用 `--content`,默认保留远端原文件名- 如果没传 `--name` 且使用 `--file`,默认使用本地文件名- `--file` 指向的本地文件名必须带 `.md` 后缀- 覆盖成功后 **必须** 返回 `version`
Show 2 other places
references/lark-markdown-overwrite.md:5In the instructionsOpen original file
覆盖更新 Drive 中已有的原生 Markdown 文件,并返回覆盖后的新版本号。
references/lark-markdown-overwrite.md:55In the instructionsOpen original file
- `--content` 与 `--file` 必须二选一- 如果传了 `--name`,直接使用它作为覆盖后的文件名- 如果没传 `--name` 且使用 `--content`,默认保留远端原文件名- 如果没传 `--name` 且使用 `--file`,默认使用本地文件名- `--file` 指向的本地文件名必须带 `.md` 后缀- 覆盖成功后 **必须** 返回 `version`
Medium risk

Version rollback can be automated as a bot without a shown mandatory confirmation flag

Source references: 5
What we found

The operation changes the current file back to an older version, and the documentation recommends bot identity for automation. Its examples and parameter table show only the file token and version, with no `--yes`. The higher-level Drive rule calls for human confirmation, but the command lacks an equivalent mechanical gate in the visible documentation.

Why this matters

A mistaken version or token can immediately change the current contents of a shared file. If the higher-level confirmation rule is skipped, the CLI does not provide the same block shown for deletion commands.

Reverting changes the current file to an older historical version, and the reference recommends bot identity for automation. The shown command and parameters include only the file token, version, and identity—no `--yes`. The parent Drive rules do require same-turn confirmation of the exact target and version, which mitigates risk, but no mechanical CLI gate is shown. Users can require a dry run, diff preview, and mandatory confirmation flag.

lark-drive/SKILL.md:26In the instructionsOpen original file
- 用户要**识别飞书 / doubao 云空间 URL 的类型和 token**时,可以先按 URL 路径形态做轻量判断;当路径已明确指向 docx / sheet / bitable / slides / file / folder 等资源时,可直接提取对应 token/type。传入 wiki URL、需要识别标题或 canonical URL、URL/token 有歧义,或后续操作依赖底层真实资源时,再使用 `lark-cli drive +inspect --url '<url>'` 进行识别;具体用法、失败处理和边界见 [`references/lark-drive-inspect.md`](references/lark-drive-inspect.md)。- 高风险写操作(删除、公开权限修改、owner 转移、版本删除/回滚、批量移动/覆盖/同步)必须同时满足三个条件才执行:目标已解析为该操作可直接使用的执行对象,执行细节已明确到可直接调用命令(例如删除的 file-token/type、公开权限修改的共享范围、owner 转移的目标 owner、版本删除/回滚的 version id、移动/覆盖/同步的目标位置和冲突策略),且用户在本轮明确确认执行这些具体目标和执行细节。用户只说“删除没用的文件”“开放/共享给大家”“改成开放”“覆盖/移动这些”只表示目标状态;先只读发现并列出候选、权限档位或执行方案,停止等待用户确认。- 用户要**检查 / 治理文档权限、公开范围、链接分享、外部访问、复制下载权限、密级标签、owner 转移**,或要”权限风险报告、收紧权限、申请查看 / 编辑权限、转移 / 批量转移 owner”,必须先阅读 [`references/lark-drive-workflow.md`](references/lark-drive-workflow.md),再按其中 `Workflow Registry` 进入 [`permission_governance`](references/lark-drive-workflow-permission-governance.md) workflow。
Show 4 other places
lark-drive/references/lark-drive-version-revert.md:5In the instructionsOpen original file
将文件回滚到指定历史版本。该 shortcut 同时支持 `--as user` 和 `--as bot`;自动化场景推荐使用 `--as bot`。## 命令```bashlark-cli drive +version-revert \  --file-token boxcnxxxxxxxx \  --version 7633658129540910621 \  --as botlark-cli drive +version-revert \  --file-token boxcnxxxxxxxx \  --version 7633658129540910621 \  --as user```
lark-drive/references/lark-drive-version-revert.md:21In the instructionsOpen original file
## 参数| 参数 | 必填 | 说明 ||------|------|------|| `--file-token` | 是 | 目标文件 token || `--version` | 是 | `drive +version-history` 返回的长数字 `version` 字段,不是 `tag` |
lark-drive/references/lark-drive-version-revert.md:9In the instructionsOpen original file
```bashlark-cli drive +version-revert \  --file-token boxcnxxxxxxxx \  --version 7633658129540910621 \  --as botlark-cli drive +version-revert \  --file-token boxcnxxxxxxxx \  --version 7633658129540910621 \  --as user```
lark-drive/references/lark-drive-version-revert.md:23In the instructionsOpen original file
| 参数 | 必填 | 说明 ||------|------|------|| `--file-token` | 是 | 目标文件 token || `--version` | 是 | `drive +version-history` 返回的长数字 `version` 字段,不是 `tag` |
Medium risk

A “local” Markdown patch rewrites the whole file and may lose concurrent edits

Source references: 4
What we found

The patch operation downloads the complete file, performs replacement locally, and uploads an overwrite; it is not an atomic server-side patch. Edits made by collaborators after the download may therefore be overwritten. A broad regular expression may also alter multiple unintended locations.

Why this matters

Newer collaborator content or unexpectedly matched text may be permanently replaced, with recovery dependent on available version history.

The risk is directly supported. When `markdown +patch` is used, the CLI downloads the entire remote Markdown file, replaces text locally, then uploads a full-file overwrite; it is not an atomic server-side update. If a collaborator edits the file between download and upload, that intervening edit may be overwritten by the stale copy. With `--regex`, replacement is applied across the whole text, so a broad pattern may alter multiple unintended locations. Users can ask for version preconditions/conflict detection and restrict use to diff or dry-run plus match-count review before writing.

SKILL.md:39In the instructionsOpen original file
  - `-` 从 stdin 读取内容- `markdown +patch` 的内部语义是:**先完整下载 Markdown,再本地替换,再整文件覆盖上传**- `markdown +patch` 不是服务端原子 patch;它是 CLI 侧编排出来的局部更新能力- `markdown +patch` 当前只支持**单组** `--pattern` / `--content`- `markdown +patch` 替换后的最终内容**不能为空**;CLI 会拒绝上传空文件,因为 Drive 不支持零字节 Markdown,且空文件通常是误操作- `--file` 只接受本地 `.md` 文件路径
Show 3 other places
SKILL.md:47In the instructionsOpen original file
```bash# BAD: 未转义正则特殊字符,可能匹配到错误位置lark-cli markdown +patch --file-token boxcnxxxx --regex --pattern "version (1.0)" --content "version (2.0)"# GOOD: 显式转义括号和点号lark-cli markdown +patch --file-token boxcnxxxx --regex --pattern "version \\(1\\.0\\)" --content "version (2.0)"```
references/lark-markdown-patch.md:71In the instructionsOpen original file
- `--content` 必须显式传入,但允许为空字符串- 未加 `--regex` 时,行为等价于对整份 Markdown 文本执行 `strings.ReplaceAll`- 加了 `--regex` 时,行为等价于对整份 Markdown 文本执行 RE2 全量替换;`--content` 里的 `$1`、`${name}` 会按 Go regexp replacement template 解释,字面 `$` 请写成 `$$`- 替换后的最终 Markdown 不能为空;如果 patch 结果是空字符串,CLI 会直接报错,不会上传空文件,因为 Drive 不支持零字节 Markdown,且空文件通常是误操作
references/lark-markdown-patch.md:96In the instructionsOpen original file
- 该命令的内部语义是:**download -> local replace -> overwrite upload**- 它不是服务端原子 patch;如果有人在你下载后、上传前更新了同一文件,本次 patch 仍可能覆盖那次中间修改- 它不会返回详细匹配位置,只返回命中数量
Could it bypass safety checks?Looks for skipped website security checks, excessive file access, or actions that skip your approval.Risks found: 4
High risk

Wiki membership changes can grant administrator rights without a CLI confirmation gate

Source references: 4
What we found

Member addition can grant `admin`, and member removal can revoke an existing role. Both references explicitly state that these dangerous operations have no `--yes` gate.

Why this matters

A wrong ID, role, or space can give full Wiki administration to the wrong party or remove a legitimate administrator/member and interrupt access. Recovery still depends on retaining the original tuple and having permission to add it again.

Member addition can grant `admin` (full space administration), while removal can revoke the matching role. Both references explicitly say the underlying operations are marked dangerous but have no `--yes` gate. Although an inverse operation may restore access, a mistaken grant or removal immediately changes account access and administrative power. Users can require explicit confirmation of space, member ID, current role, and target role.

lark-wiki/references/lark-wiki-member-add.md:3In the instructionsOpen original file
Add a member to a wiki space. OpenAPI: `POST /open-apis/wiki/v2/spaces/:space_id/members`. Shortcut over the raw `wiki members create` — adds enum hints, optional `--need-notification`, `my_library` resolution, and a flattened single-member output envelope.> The underlying `members.create` API is flagged `danger: true` in the schema browser, but adding a member is **not** confirmation-gated (no `--yes`). To revert, call [`+member-remove`](lark-wiki-member-remove.md) with the same `(member_id, member_type, member_role)` tuple.
Show 3 other places
lark-wiki/references/lark-wiki-member-add.md:35In the instructionsOpen original file
|------|------|----------|---------|-------------|| `--space-id` | string | **Yes** | — | Wiki space ID; use `my_library` for the personal document library (user only) || `--member-id` | string | **Yes** | — | Member ID; interpretation is decided by `--member-type` || `--member-type` | enum | **Yes** | — | `openchat` / `userid` / `email` / `opendepartmentid` / `openid` / `unionid` / `appid` || `--member-role` | enum | **Yes** | — | `admin` (full space administration) / `member` (collaborator) || `--need-notification` | bool | No | unset | Send an in-app notification after the grant. **Omitting the flag sends no `need_notification` query at all** — passing `--need-notification=false` is the explicit opt-out || `--as` | enum | No | `auto` | Identity `user`/`bot`; wiki is user-centric → pass `--as user` |
lark-wiki/references/lark-wiki-member-remove.md:3In the instructionsOpen original file
Remove a member from a wiki space. OpenAPI: `DELETE /open-apis/wiki/v2/spaces/:space_id/members/:member_id`. Unlike most DELETEs, this endpoint **requires a body** carrying `member_type` and `member_role` — the `:member_id` path segment alone is ambiguous without both.> The underlying `members.delete` API is flagged `danger: true` in the schema browser, but the operation is recoverable — call [`+member-add`](lark-wiki-member-add.md) with the same `(member_id, member_type, member_role)` to restore. No `--yes` gate.
lark-wiki/references/lark-wiki-member-remove.md:54In the instructionsOpen original file
- **`--member-type` and `--member-role` must match the original grant.** Revoking a non-existent `(member_id, type, role)` tuple is a no-op error from the API. If you do not know the current role, run [`+member-list`](lark-wiki-member-list.md) first.- **Role switch is not a single update.** To move someone between `admin` and `member`, call `+member-remove` with the old role first, then [`+member-add`](lark-wiki-member-add.md) with the new one.- **Bot + `my_library` is rejected upfront.** Pass an explicit `--space-id` when `--as bot`.
Medium risk

Bot-created Markdown automatically attempts to give the current CLI user management access

Source references: 2
What we found

After bot creation, the CLI attempts to grant `full_access` to the locally identified current user. This permission change is not required merely to create content.

Why this matters

That user can manage file permissions. If the machine’s current logged-in user is not the intended recipient, control can be expanded to the wrong account.

When Markdown is created as a bot, the CLI additionally attempts to grant `full_access` to the locally identified current CLI user. This is a permission change beyond content creation, conditioned on bot identity and an available user open_id. Owner transfer is separately prohibited, but no separate confirmation gate for this automatic grant is shown. Users can restrict execution to `--as user` or request an opt-out.

references/lark-markdown-create.md:91In the instructionsOpen original file
> [!IMPORTANT]> 如果 Markdown 文件是**以应用身份(bot)创建**的,如 `lark-cli markdown +create --as bot`,在创建成功后,CLI 会**尝试为当前 CLI 用户自动授予该文件的 `full_access`(可管理权限)**。>> 以应用身份创建时,结果里会额外返回 `permission_grant` 字段,明确说明授权结果:> - `status = granted`:当前 CLI 用户已获得该文件的可管理权限> - `status = skipped`:本地没有可用的当前用户 `open_id`,因此不会自动授权;可提示用户先完成 `lark-cli auth login`,再让 AI / agent 继续使用应用身份(bot)授予当前用户权限> - `status = failed`:Markdown 文件已创建成功,但自动授权用户失败;会带上失败原因,并提示稍后重试或继续使用 bot 身份处理该文件>> `permission_grant.perm = full_access` 表示该资源已授予“可管理权限”。>
Show 1 other places
references/lark-markdown-create.md:101In the instructionsOpen original file
>> **不要擅自执行 owner 转移。** 如果用户需要把 owner 转给自己,必须单独确认。
Medium risk

Bot-based imports automatically grant full access to the current CLI user

Source references: 4
What we found

As a side effect of a bot import, the CLI attempts to add the current CLI user with management-level access once the imported result is ready. Requesting a file import does not necessarily authorize a collaborator-permission change. A later asynchronous status query can trigger the grant when it first receives the final target.

Why this matters

The logged-in CLI user gains the ability to manage the document and its permissions. On a shared machine or under an unexpected login, access may be granted to the wrong account.

After a bot import produces its final document, the CLI also attempts to grant the current CLI user full_access; a later asynchronous result query can trigger it too. Consent to import may not clearly cover adding a full-access collaborator, which can broaden control of the document. Users can ask that this behavior be opt-in and that the recipient and permission be shown separately before execution.

lark-drive/SKILL.md:39In the instructionsOpen original file
- 用户要把本地 `.xlsx` / `.csv` / `.base` 导入成 Base / 多维表格 / bitable,第一步必须使用 `lark-cli drive +import --type bitable`。- 用户要把本地 `.md` / `.docx` / `.doc` / `.txt` / `.html` 导入成在线文档,使用 `lark-cli drive +import --type docx`。- 用户要把本地 `.pptx` 导入成飞书幻灯片,使用 `lark-cli drive +import --type slides`;当前 PPTX 导入上限是 500MB。
Show 3 other places
lark-drive/references/lark-drive-import.md:117In the instructionsOpen original file
> [!IMPORTANT]> 如果在线文档是**以应用身份(bot)导入创建**的,如 `lark-cli drive +import --as bot`,当某次结果**已经返回最终在线文档目标**后,CLI 会**尝试为当前 CLI 用户自动授予该资源的 `full_access`(可管理权限)**。>> 这个自动授权有两种触发时机:> - `drive +import` 的内置轮询窗口内已经完成,直接在 `+import` 中进行自动授权> - `drive +import` 先返回 `ready=false` / `timed_out=true`,之后你再执行 `lark-cli drive +task_result --scenario import --ticket <TICKET>`,当该查询第一次拿到最终在线文档目标时会自动授权>
lark-drive/references/lark-drive-import.md:123In the instructionsOpen original file
>> 只有在已经拿到最终在线文档目标的那次结果里,才会返回 `permission_grant` 字段,明确说明授权结果:> - `status = granted`:当前 CLI 用户已获得该导入结果的可管理权限> - `status = skipped`:本地没有可用的当前用户 `open_id`,或当前结果还没有可授权目标,因此不会自动授权;可提示用户先完成 `lark-cli auth login`,再让 AI / agent 继续使用应用身份(bot)授予当前用户权限> - `status = failed`:导入已成功返回最终在线文档,但自动授权用户失败;会带上失败原因,并提示稍后重试或继续使用 bot 身份处理该文档>> `permission_grant.perm = full_access` 表示该资源已授予“可管理权限”。>> **不要擅自执行 owner 转移。** 如果用户需要把 owner 转给自己,必须单独确认。
lark-drive/references/lark-drive-import.md:116In the instructionsOpen original file
> [!IMPORTANT]> 如果在线文档是**以应用身份(bot)导入创建**的,如 `lark-cli drive +import --as bot`,当某次结果**已经返回最终在线文档目标**后,CLI 会**尝试为当前 CLI 用户自动授予该资源的 `full_access`(可管理权限)**。>> 这个自动授权有两种触发时机:> - `drive +import` 的内置轮询窗口内已经完成,直接在 `+import` 中进行自动授权> - `drive +import` 先返回 `ready=false` / `timed_out=true`,之后你再执行 `lark-cli drive +task_result --scenario import --ticket <TICKET>`,当该查询第一次拿到最终在线文档目标时会自动授权>
Medium risk

Low-confidence resources are still moved after full-plan confirmation, potentially changing inherited access

Source references: 4
What we found

The organization workflow does not leave uncertain resources in place by default; it plans to move them into a manual-review location. It also acknowledges that visibility or collaboration permissions may change with the destination. A user who confirms only the plan overview may move these uncertain items as part of the full plan.

Why this matters

Resources that have not been reliably classified change location, and different destination inheritance may alter who can view or collaborate on them.

Resources with insufficient classification evidence are not left in place by default; they are planned with `action=move` into the manual-confirmation target, and full-plan approval can include them. The workflow does disclose the review count and warns that visibility or collaboration permissions may change, so this is not hidden, but a user approving only the overview could still approve all such moves. Users can select high-confidence items only or require review items to remain in place pending item-by-item approval.

lark-drive/references/lark-drive-workflow-knowledge-organize-planning.md:142In the instructionsOpen original file
### Manual Confirmation TargetResources with insufficient classification evidence MUST be moved to the manual confirmation target after the user confirms execution.Rules:1. The target tree MUST include `待人工确认` or an equivalent user-specified manual confirmation path.2. For Drive scopes, the manual confirmation target is a Drive folder.3. For Wiki scopes, the manual confirmation target is a Wiki node.4. Plan items for these resources MUST set `needs_review=true`, preserve `needs_review_reason`, set `target_path` to the manual confirmation target, and set `action=move`.5. Do not leave these items in their original location by default.
Show 3 other places
lark-drive/references/lark-drive-workflow-knowledge-organize-planning.md:295In the instructionsOpen original file
### Permission Inheritance NoticeBefore execution confirmation, MUST show this notice:```text权限提示:移动资源后,资源权限可能随目标位置变化,可见范围或协作权限可能变化。本 workflow 不会自动修改权限。```
lark-drive/references/lark-drive-workflow-knowledge-organize-planning.md:322In the instructionsOpen original file
If no plan detail page is currently active:```text请确认执行范围:1. 执行完整计划:<total_count> 项2. 只执行高置信度项:<high_confidence_count> 项3. 暂不执行,只保留方案如需只执行某一页,请先查看计划明细页。本 workflow 只执行已确认范围内的创建、移动和必要的单资源权限申请;不会重命名任何资源。```
lark-drive/references/lark-drive-workflow-knowledge-organize-planning.md:283In the instructionsOpen original file
1. Show write-operation summary:   - 将创建哪些目录 / 节点   - 将移动哪些资源   - 将移动哪些来源目录本体(如有)   - 哪些资源仍需人工确认   - 预计影响范围2. Use `active_plan_items` from the latest complete plan.3. Show `Permission Inheritance Notice`.4. Ask for execution scope using `Execution Confirmation`.5. Reference `Non-goals` for operations excluded from this workflow.6. Wait for explicit confirmation.
Could it mislead the AI or hide text?Checks the skill instructions for requests to ignore you, influence the report, or hide text in invisible characters.Risks found: 1
High risk

Requires a helper to run automatically and out of sight

Source references: 2
What we found

The skill combines automatic execution with instructions not to ask or tell the user.

Why this matters

If the AI follows this text, it may stop following your instructions or skip actions that normally need your approval.

Legitimate use of this code

The source does not require concealed or automatic extra actions. The cited area requires recording checks that cannot be performed, then explicitly requires user confirmation of the exact scope and command family for every write, followed by fresh-read verification. This is an audit and confirmation gate, not covert execution.

This assessment concerns the code and conditions shown, not proof that harm has occurred.
lark-drive/references/lark-drive-workflow.md:36In the instructionsOpen original file
3. 事实必须来自可执行 CLI 命令或被引用 skill;不要只凭目录结构推断治理结论。4. 无法执行的检查必须记录到 `unsupported_checks`,不能静默省略。5. 写入前必须产出计划。每一次写入都需要用户对准确范围和 command family 显式确认。
Show 1 other places
lark-drive/references/lark-drive-workflow.md:35In the instructionsOpen original file
2. 在昂贵读取或写入规划前,先解析并确认 `target_scope`。3. 事实必须来自可执行 CLI 命令或被引用 skill;不要只凭目录结构推断治理结论。4. 无法执行的检查必须记录到 `unsupported_checks`,不能静默省略。5. 写入前必须产出计划。每一次写入都需要用户对准确范围和 command family 显式确认。6. CLI/API 支持验证时,写入后必须用 fresh read 验证。7. 结束时进入 `done`,返回已完成事项、验证结果和剩余限制。不要把尚未完成的外部审批描述成已完成。
Could it change links or payment recipients without asking?Looks for forced referral or payment changes combined with instructions to hide the change.No risks found

Inside this skill

4 instruction sections

The main entry uses an installed `lark-cli` and generally recommends acting as the user on native Markdown files in Lark Drive. It supports creation, fetching, comparison, replacement, and whole-file overwrite.

View source
SKILL.md:6In the instructionsOpen original file
metadata:  requires:    bins: ["lark-cli"]  cliHelp: "lark-cli markdown --help"---
SKILL.md:17In the instructionsOpen original file
- 身份:Markdown 文件通常属于用户云空间资源,优先使用 `--as user`。如为自动化场景,或应用已创建并持有目标文件权限,可按场景使用 `--as bot`。首次以 `user` 身份访问前执行 `lark-cli auth login`- `markdown +create` / `+overwrite` 失败时,先判断是不是身份和权限问题:`bot` 更常见的是 app scope 或目标目录 ACL,`user` 更常见的是用户授权或用户 ACL;不要不加判断地来回切身份重试。- 用户要**上传、创建一个原生 `.md` 文件**,使用 `lark-cli markdown +create`- 用户要**比较原生 `.md` 文件的历史版本差异**,或比较远端 Markdown 与本地草稿,使用 `lark-cli markdown +diff`- 用户要**读取 Drive 里某个 `.md` 文件内容**,使用 `lark-cli markdown +fetch`- 用户要对 Markdown 文件做**局部文本替换 / 正则替换**,优先使用 `lark-cli markdown +patch`- 用户要**覆盖更新 Drive 里某个 `.md` 文件内容**,使用 `lark-cli markdown +overwrite`- 用户要先拿 Markdown 文件的历史版本号,再做比较/下载/回滚,先用 [`lark-drive`](../lark-drive/SKILL.md) 的 `lark-cli drive +version-history`

The apparent partial patch actually downloads the whole file, performs a global literal or regular-expression replacement locally, and uploads the entire result. It is not an atomic server-side patch.

View source
references/lark-markdown-patch.md:71In the instructionsOpen original file
- `--content` 必须显式传入,但允许为空字符串- 未加 `--regex` 时,行为等价于对整份 Markdown 文本执行 `strings.ReplaceAll`- 加了 `--regex` 时,行为等价于对整份 Markdown 文本执行 RE2 全量替换;`--content` 里的 `$1`、`${name}` 会按 Go regexp replacement template 解释,字面 `$` 请写成 `$$`- 替换后的最终 Markdown 不能为空;如果 patch 结果是空字符串,CLI 会直接报错,不会上传空文件,因为 Drive 不支持零字节 Markdown,且空文件通常是误操作- `0` 命中时命令仍然成功返回,但不会上传新版本
references/lark-markdown-patch.md:94In the instructionsOpen original file
## 实现边界- 该命令的内部语义是:**download -> local replace -> overwrite upload**- 它不是服务端原子 patch;如果有人在你下载后、上传前更新了同一文件,本次 patch 仍可能覆盖那次中间修改- 它不会返回详细匹配位置,只返回命中数量- `--dry-run` 会同时展示两种可能的上传路径:`upload_all`(小文件)和 `upload_prepare/upload_part/upload_finish`(大文件分片上传)

The shared rules require confirming user intent before writes. Operations marked high risk by the CLI additionally require showing the action and key parameters and adding the confirmation flag only after explicit user consent.

View source
lark-shared/SKILL.md:25In the instructionsOpen original file
## 安全规则1. **禁止输出密钥**(appSecret、accessToken等)到终端明文。2. **写入/删除操作前必须确认用户意图**。3. 目标命令支持 `--dry-run` 时,用 `--dry-run` 预览危险请求。4. **退出码 10 是高风险确认门禁(`risk: "high-risk-write"`),不是错误**:停下 → **向用户确认**(展示 `action`、`risk` 和关键参数)→ 取得**用户显式同意**后,将 `hint` 指出的确认 flag **追加到你原始 argv 的末尾**后重试;**绝不**静默加确认 flag 绕过 → [`lark-shared-high-risk-approval.md`](references/lark-shared-high-risk-approval.md)。5. **文件路径只接受相对路径**:`--file`、`--output`、`--output-dir`、`@file` 等路径参数只接受 cwd 下的相对路径,传绝对路径会报 `unsafe file path`。数据输入(`@file`、大 JSON)优先用 stdin 传入,避免路径和转义问题。

The supplied package describes more than Markdown: it also contains document, Drive, Wiki, contacts, and whiteboard operations. Some paths can alter permissions, move or delete resources, and install and run an additional npm tool.

View source
lark-drive/SKILL.md:2In the instructionsOpen original file
---name: lark-driveversion: 1.0.0description: "飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。"metadata:  requires:    bins: ["lark-cli"]  cliHelp: "lark-cli drive --help"---
lark-whiteboard/SKILL.md:13In the instructionsOpen original file
> [!IMPORTANT]> - 运行 `lark-cli --version`,确认可用,无需询问用户。> - 运行 `npx -y @larksuite/whiteboard-cli@^0.2.13 -v`,确认可用,无需询问用户。**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理**

This Skill directly handles native Markdown stored as ordinary files in Lark Drive. It routes creation, reading, comparison, local replacement, and overwrite operations to lark-cli markdown shortcuts, while redirecting docx imports and Drive management to lark-drive.

View source
SKILL.md:20In the instructionsOpen original file
- 用户要**上传、创建一个原生 `.md` 文件**,使用 `lark-cli markdown +create`- 用户要**比较原生 `.md` 文件的历史版本差异**,或比较远端 Markdown 与本地草稿,使用 `lark-cli markdown +diff`- 用户要**读取 Drive 里某个 `.md` 文件内容**,使用 `lark-cli markdown +fetch`- 用户要对 Markdown 文件做**局部文本替换 / 正则替换**,优先使用 `lark-cli markdown +patch`- 用户要**覆盖更新 Drive 里某个 `.md` 文件内容**,使用 `lark-cli markdown +overwrite`- 用户要先拿 Markdown 文件的历史版本号,再做比较/下载/回滚,先用 [`lark-drive`](../lark-drive/SKILL.md) 的 `lark-cli drive +version-history`
SKILL.md:26In the instructionsOpen original file
- 用户要先拿 Markdown 文件的历史版本号,再做比较/下载/回滚,先用 [`lark-drive`](../lark-drive/SKILL.md) 的 `lark-cli drive +version-history`- 用户要把本地 Markdown **导入成在线新版文档(docx)**,不要用本 skill,改用 [`lark-drive`](../lark-drive/SKILL.md) 的 `lark-cli drive +import --type docx`- 用户要对 Markdown 文件做**rename / move / delete / 搜索 / 权限 / 评论**等云空间(云盘/云存储)操作,不要留在本 skill,切到 [`lark-drive`](../lark-drive/SKILL.md)- `markdown +create` / `+overwrite` 命中 `missing scope`、`permission denied`、`not found`、`quota_exceeded`、`version limit` 时,默认停止重试并按报错 hint 处理;只有 `rate_limit`、`server_error` 或临时网络错误才做有限退避重试。

The instructions prefer the user's identity for Markdown access and require lark-cli login before first use, while allowing bot identity for automation or when the app already has access.

View source
SKILL.md:17In the instructionsOpen original file
- 身份:Markdown 文件通常属于用户云空间资源,优先使用 `--as user`。如为自动化场景,或应用已创建并持有目标文件权限,可按场景使用 `--as bot`。首次以 `user` 身份访问前执行 `lark-cli auth login`- `markdown +create` / `+overwrite` 失败时,先判断是不是身份和权限问题:`bot` 更常见的是 app scope 或目标目录 ACL,`user` 更常见的是用户授权或用户 ACL;不要不加判断地来回切身份重试。

The synchronization and organization workflows include safeguards: destructive mirror deletion requires an additional --yes flag, and organization writes require explicit confirmation followed by a rescan and verification.

View source
lark-drive/references/lark-drive-push.md:94In the instructionsOpen original file
`--delete-remote` 是命令里**唯一的破坏性 flag**,会按"远端有但本地没有"逐个 `DELETE /open-apis/drive/v1/files/<token>?type=file` 清理云端副本。设计上把它跟 `--yes` 强绑定:- `--delete-remote`(无 `--yes`)→ Validate 直接报错:`--delete-remote requires --yes`,不会发起任何列表 / 上传 / 删除请求。- `--delete-remote --yes` → Validate 阶段还会**动态做一次** `space:document:delete` 的 scope 预检:缺这条 scope 时整次运行立刻失败、不发任何上传请求,避免出现"上传都成功了,但删除阶段才报 missing_scope"的半同步状态。- `--delete-remote --yes`(且 scope 已授权)→ 正常执行:先把本地文件 push 上去,再扫一遍远端 `type=file` 列表,把不在本地清单里的逐个删除。**任何上传 / 覆盖 / 建目录失败时,整段 `--delete-remote` 阶段会被跳过**(stderr 上有提示),命令以非零状态退出,远端不会被破坏。- 删除阶段如果服务端返回 `1061007 file has been delete`,说明目标远端文件在本次 DELETE 前已经不存在;这已经满足 `--delete-remote` 的目标状态,输出会记为 `action: "already_deleted"`,不计入 `summary.failed`,也不计入 `summary.deleted_remote`。
lark-drive/references/lark-drive-workflow-knowledge-organize.md:131In the instructionsOpen original file
| `PLAN_GENERATION` | `assess` / `plan` | Target tree ready | Load planning phase; generate complete internal `plan_items`; show target tree plus plan overview or page | Target tree and plan overview / paginated plan page | `true` | `EXEC_CONFIRM` || `EXEC_CONFIRM` | `confirm` | User wants execution | Load planning phase; ask user to choose execution scope | Execution options and write-operation summary | `true` | `EXECUTE` or `DONE` || `EXECUTE` | `execute` | User explicitly confirmed execution scope | Load execution phase; execute only whitelisted write operations for confirmed scope while maintaining internal recovery state | Progress reports for large or long-running execution; if blocked after successful moves, ask whether to try restoring to `整理前的位置` | `false` unless blocked / recovery offered | `VERIFY`, `ROLLBACK_CONFIRM`, or `DONE` || `VERIFY` | `verify` | Execution finished | Load execution phase; rescan target scope and compare actual path/token against plan | Verification table and final summary; if serious mismatches exist, ask whether to try restoring to `整理前的位置` | `false` unless recovery offered | `DONE` or `ROLLBACK_CONFIRM` || `ROLLBACK_CONFIRM` | `recovery confirm` | User asks to restore after execution failure / verification mismatch / explicit rollback request | Load rollback phase; generate internal `rollback_plan`; ask whether to execute recovery | Recoverable scope and restore confirmation | `true` | `ROLLBACK` or `DONE` |
Start here · InstructionsSKILL.md
lark-markdown
Lines connect the instruction file to its sections, not an observed execution order. Select a section to read the source.

File reference map

References: 40
Files making referencesReferenced content
Lines show actual file references, not execution order. Select a node to highlight its connections and inspect the files and source locations. Dashed lines include files that still need locating.
Files and check records147 files

Coverage and gaps

Content covered in each file

These are the source ranges included in this check, not a guarantee that every issue has been resolved.

  • SKILL.mdFull text included
  • references/lark-markdown-create.mdFull text included
  • references/lark-markdown-diff.mdFull text included
  • references/lark-markdown-fetch.mdFull text included
  • references/lark-markdown-overwrite.mdFull text included
  • references/lark-markdown-patch.mdFull text included
  • lark-contact/references/lark-contact-get-user.mdFull text included
  • lark-contact/references/lark-contact-search-bot.mdFull text included
  • lark-contact/references/lark-contact-search-user.mdFull text included
  • lark-doc/references/genres/business-analysis.mdFull text included
  • lark-doc/references/genres/data-report.mdFull text included
  • lark-doc/references/genres/email.mdFull text included
  • lark-doc/references/genres/execution-plan.mdFull text included
  • lark-doc/references/genres/formal-doc.mdFull text included
  • lark-doc/references/genres/meeting-minutes.mdFull text included
  • lark-doc/references/genres/memo-brief.mdFull text included
  • lark-doc/references/genres/official-redhead.mdFull text included
  • lark-doc/references/genres/prd.mdFull text included
  • lark-doc/references/genres/proposal.mdFull text included
  • lark-doc/references/genres/research-report.mdFull text included
  • lark-doc/references/genres/retrospective.mdFull text included
  • lark-doc/references/genres/route-consumer.mdFull text included
  • lark-doc/references/genres/route-creative.mdFull text included
  • lark-doc/references/genres/route-knowledge.mdFull text included
  • lark-doc/references/genres/route-marketing.mdFull text included
  • lark-doc/references/genres/route-media.mdFull text included
  • lark-doc/references/genres/route-opinion.mdFull text included
  • lark-doc/references/genres/route-personal-brand.mdFull text included
  • lark-doc/references/genres/route-platform.mdFull text included
  • lark-doc/references/genres/route-report.mdFull text included
  • lark-doc/references/genres/route-workplace.mdFull text included
  • lark-doc/references/genres/sop-tutorial.mdFull text included
  • lark-doc/references/genres/technical-doc.mdFull text included
  • lark-doc/references/genres/wechat.mdFull text included
  • lark-doc/references/genres/weekly-report.mdFull text included
  • lark-doc/references/genres/white-paper.mdFull text included
  • lark-doc/references/genres/xiaohongshu.mdFull text included
  • lark-doc/references/lark-doc-create-workflow.mdFull text included
  • lark-doc/references/lark-doc-create.mdFull text included
  • lark-doc/references/lark-doc-fetch.mdFull text included
  • lark-doc/references/lark-doc-history.mdFull text included
  • lark-doc/references/lark-doc-md.mdFull text included
  • lark-doc/references/lark-doc-media-download.mdFull text included
  • lark-doc/references/lark-doc-media-insert.mdFull text included
  • lark-doc/references/lark-doc-media-preview.mdFull text included
  • lark-doc/references/lark-doc-mindnote.mdFull text included
  • lark-doc/references/lark-doc-resource-cover.mdFull text included
  • lark-doc/references/lark-doc-script.mdFull text included
  • lark-doc/references/lark-doc-update.mdFull text included
  • lark-doc/references/lark-doc-whiteboard.mdFull text included
  • lark-doc/references/lark-doc-xml-extended-blocks.mdFull text included
  • lark-doc/references/lark-doc-xml.mdFull text included
  • lark-doc/SKILL.mdFull text included
  • lark-drive/references/lark-drive-add-comment.mdFull text included
  • lark-drive/references/lark-drive-add-reply.mdFull text included
  • lark-drive/references/lark-drive-apply-permission.mdFull text included
  • lark-drive/references/lark-drive-batch-query-comments.mdFull text included
  • lark-drive/references/lark-drive-comment-content.mdFull text included
  • lark-drive/references/lark-drive-comment-location.mdFull text included
  • lark-drive/references/lark-drive-copy.mdFull text included
  • lark-drive/references/lark-drive-cover.mdFull text included
  • lark-drive/references/lark-drive-create-folder.mdFull text included
  • lark-drive/references/lark-drive-create-shortcut.mdFull text included
  • lark-drive/references/lark-drive-delete-reply.mdFull text included
  • lark-drive/references/lark-drive-delete.mdFull text included
  • lark-drive/references/lark-drive-download.mdFull text included
  • lark-drive/references/lark-drive-export-download.mdFull text included
  • lark-drive/references/lark-drive-export.mdFull text included
  • lark-drive/references/lark-drive-files-list.mdFull text included
  • lark-drive/references/lark-drive-import.mdFull text included
  • lark-drive/references/lark-drive-inspect.mdFull text included
  • lark-drive/references/lark-drive-list-comments.mdFull text included
  • lark-drive/references/lark-drive-list-replies.mdFull text included
  • lark-drive/references/lark-drive-member-add.mdFull text included
  • lark-drive/references/lark-drive-member-list.mdFull text included
  • lark-drive/references/lark-drive-member-remove.mdFull text included
  • lark-drive/references/lark-drive-move.mdFull text included
  • lark-drive/references/lark-drive-permission-get-setting.mdFull text included
  • lark-drive/references/lark-drive-permission-guide.mdFull text included
  • lark-drive/references/lark-drive-preview.mdFull text included
  • lark-drive/references/lark-drive-pull.mdFull text included
  • lark-drive/references/lark-drive-push.mdFull text included
  • lark-drive/references/lark-drive-react-reply.mdFull text included
  • lark-drive/references/lark-drive-reactions.mdFull text included
  • lark-drive/references/lark-drive-resolve-comment.mdFull text included
  • lark-drive/references/lark-drive-restore-comment.mdFull text included
  • lark-drive/references/lark-drive-search.mdFull text included
  • lark-drive/references/lark-drive-secure-label.mdFull text included
  • lark-drive/references/lark-drive-status.mdFull text included
  • lark-drive/references/lark-drive-task-result.mdFull text included
  • lark-drive/references/lark-drive-update-reply.mdFull text included
  • lark-drive/references/lark-drive-update-title.mdFull text included
  • lark-drive/references/lark-drive-upload.mdFull text included
  • lark-drive/references/lark-drive-version-delete.mdFull text included
  • lark-drive/references/lark-drive-version-get.mdFull text included
  • lark-drive/references/lark-drive-version-history.mdFull text included
  • lark-drive/references/lark-drive-version-revert.mdFull text included
  • lark-drive/references/lark-drive-workflow-knowledge-organize-analysis.mdFull text included
  • lark-drive/references/lark-drive-workflow-knowledge-organize-discovery.mdFull text included
  • lark-drive/references/lark-drive-workflow-knowledge-organize-execution.mdFull text included
  • lark-drive/references/lark-drive-workflow-knowledge-organize-planning.mdFull text included
  • lark-drive/references/lark-drive-workflow-knowledge-organize-rollback.mdFull text included
  • lark-drive/references/lark-drive-workflow-knowledge-organize.mdFull text included
  • lark-drive/references/lark-drive-workflow-permission-governance-commands.mdFull text included
  • lark-drive/references/lark-drive-workflow-permission-governance-outputs.mdFull text included
  • lark-drive/references/lark-drive-workflow-permission-governance.mdFull text included
  • lark-drive/references/lark-drive-workflow-topic-move-collector-execute.mdFull text included
  • lark-drive/references/lark-drive-workflow-topic-move-collector-recall.mdFull text included
  • lark-drive/references/lark-drive-workflow-topic-move-collector-resolve-verify.mdFull text included
  • lark-drive/references/lark-drive-workflow-topic-move-collector-review-plan.mdFull text included
  • lark-drive/references/lark-drive-workflow-topic-move-collector-setup.mdFull text included
  • lark-drive/references/lark-drive-workflow-topic-move-collector.mdFull text included
  • lark-drive/references/lark-drive-workflow.mdFull text included
  • lark-drive/SKILL.mdFull text included
  • lark-shared/references/lark-shared-config-init.mdFull text included
  • lark-shared/references/lark-shared-high-risk-approval.mdFull text included
  • lark-shared/references/lark-shared-identity-and-permissions.mdFull text included
  • lark-shared/references/lark-shared-output-contract.mdFull text included
  • lark-shared/references/lark-shared-update-notice.mdFull text included
  • lark-shared/references/lark-wiki-token-routing.mdFull text included
  • lark-shared/SKILL.mdFull text included
  • lark-whiteboard/elements/image.mdFull text included
  • lark-whiteboard/references/lark-whiteboard-export.mdFull text included
  • lark-whiteboard/references/lark-whiteboard-update.mdFull text included
  • lark-whiteboard/references/lark-whiteboard-workflow.mdFull text included
  • lark-whiteboard/routes/dsl.mdFull text included
  • lark-whiteboard/routes/mermaid.mdFull text included
  • lark-whiteboard/routes/svg-edit.mdFull text included
  • lark-whiteboard/routes/svg.mdFull text included
  • lark-whiteboard/scenes/mention.mdFull text included
  • lark-whiteboard/scenes/photo-showcase.mdFull text included
  • lark-whiteboard/SKILL.mdFull text included
  • lark-wiki/references/lark-wiki-delete-space.mdFull text included
  • lark-wiki/references/lark-wiki-member-add.mdFull text included
  • lark-wiki/references/lark-wiki-member-list.mdFull text included
  • lark-wiki/references/lark-wiki-member-remove.mdFull text included
  • lark-wiki/references/lark-wiki-move-to-drive.mdFull text included
  • lark-wiki/references/lark-wiki-move.mdFull text included
  • lark-wiki/references/lark-wiki-node-copy.mdFull text included
  • lark-wiki/references/lark-wiki-node-create.mdFull text included
  • lark-wiki/references/lark-wiki-node-delete.mdFull text included
  • lark-wiki/references/lark-wiki-node-get.mdFull text included
  • lark-wiki/references/lark-wiki-node-list.mdFull text included
  • lark-wiki/references/lark-wiki-space-create.mdFull text included
  • lark-wiki/references/lark-wiki-space-list.mdFull text included
  • lark-wiki/SKILL.mdFull text included
  • lark-contact/SKILL.mdFull text included

This report is for the version above. We read the available code and instructions without running the skill or checking extra packages it installs. This is not a promise of safety: a different version or setup may behave differently.

  • SKILL.mdInstructions
  • references/lark-markdown-create.mdSupporting file
  • references/lark-markdown-diff.mdSupporting file
  • references/lark-markdown-fetch.mdSupporting file
  • references/lark-markdown-overwrite.mdSupporting file
  • references/lark-markdown-patch.mdSupporting file
  • lark-drive/SKILL.mdSupporting file
  • lark-drive/references/lark-drive-copy.mdSupporting file
  • lark-drive/references/lark-drive-search.mdSupporting file
  • lark-drive/references/lark-drive-inspect.mdSupporting file
  • lark-drive/references/lark-drive-workflow.mdSupporting file
  • lark-drive/references/lark-drive-workflow-permission-governance.mdSupporting file
  • lark-drive/references/lark-drive-member-remove.mdSupporting file
  • lark-drive/references/lark-drive-secure-label.mdSupporting file
  • lark-drive/references/lark-drive-workflow-topic-move-collector.mdSupporting file
  • lark-drive/references/lark-drive-workflow-knowledge-organize.mdSupporting file
  • lark-drive/references/lark-drive-comment-location.mdSupporting file
  • lark-drive/references/lark-drive-export.mdSupporting file
  • lark-drive/references/lark-drive-update-title.mdSupporting file
  • lark-drive/references/lark-drive-permission-guide.mdSupporting file
  • lark-drive/references/lark-drive-permission-get-setting.mdSupporting file
  • lark-drive/references/lark-drive-apply-permission.mdSupporting file
  • lark-drive/references/lark-drive-upload.mdSupporting file
  • lark-drive/references/lark-drive-create-folder.mdSupporting file
  • lark-drive/references/lark-drive-download.mdSupporting file
  • lark-drive/references/lark-drive-preview.mdSupporting file
  • lark-drive/references/lark-drive-cover.mdSupporting file
  • lark-drive/references/lark-drive-status.mdSupporting file
  • lark-drive/references/lark-drive-pull.mdSupporting file
  • lark-drive/references/lark-drive-push.mdSupporting file
  • lark-drive/references/lark-drive-create-shortcut.mdSupporting file
  • lark-drive/references/lark-drive-add-comment.mdSupporting file
  • lark-drive/references/lark-drive-list-comments.mdSupporting file
  • lark-drive/references/lark-drive-batch-query-comments.mdSupporting file
  • lark-drive/references/lark-drive-resolve-comment.mdSupporting file
  • lark-drive/references/lark-drive-restore-comment.mdSupporting file
  • lark-drive/references/lark-drive-add-reply.mdSupporting file
  • lark-drive/references/lark-drive-list-replies.mdSupporting file
  • lark-drive/references/lark-drive-update-reply.mdSupporting file
  • lark-drive/references/lark-drive-delete-reply.mdSupporting file
  • lark-drive/references/lark-drive-react-reply.mdSupporting file
  • lark-drive/references/lark-drive-export-download.mdSupporting file
  • lark-drive/references/lark-drive-import.mdSupporting file
  • lark-drive/references/lark-drive-version-history.mdSupporting file
  • lark-drive/references/lark-drive-version-get.mdSupporting file
  • lark-drive/references/lark-drive-version-revert.mdSupporting file
  • lark-drive/references/lark-drive-version-delete.mdSupporting file
  • lark-drive/references/lark-drive-move.mdSupporting file
  • lark-drive/references/lark-drive-delete.mdSupporting file
  • lark-drive/references/lark-drive-task-result.mdSupporting file
  • lark-drive/references/lark-drive-member-add.mdSupporting file
  • lark-drive/references/lark-drive-member-list.mdSupporting file
  • lark-drive/references/lark-drive-files-list.mdSupporting file
  • lark-wiki/SKILL.mdSupporting file
  • lark-shared/SKILL.mdSupporting file
  • lark-doc/SKILL.mdSupporting file
  • lark-wiki/references/lark-wiki-node-copy.mdSupporting file
  • lark-shared/references/lark-wiki-token-routing.mdSupporting file
  • lark-drive/references/lark-drive-workflow-permission-governance-commands.mdSupporting file
  • lark-wiki/references/lark-wiki-node-list.mdSupporting file
  • lark-drive/references/lark-drive-workflow-permission-governance-outputs.mdSupporting file
  • lark-doc/references/lark-doc-fetch.mdSupporting file
  • lark-drive/references/lark-drive-workflow-topic-move-collector-setup.mdSupporting file
  • lark-drive/references/lark-drive-workflow-topic-move-collector-recall.mdSupporting file
  • lark-drive/references/lark-drive-workflow-topic-move-collector-resolve-verify.mdSupporting file
  • lark-drive/references/lark-drive-workflow-topic-move-collector-review-plan.mdSupporting file
  • lark-drive/references/lark-drive-workflow-topic-move-collector-execute.mdSupporting file
  • lark-wiki/references/lark-wiki-move.mdSupporting file
  • lark-wiki/references/lark-wiki-move-to-drive.mdSupporting file
  • lark-wiki/references/lark-wiki-node-create.mdSupporting file
  • lark-wiki/references/lark-wiki-node-delete.mdSupporting file
  • lark-drive/references/lark-drive-workflow-knowledge-organize-discovery.mdSupporting file
  • lark-drive/references/lark-drive-workflow-knowledge-organize-analysis.mdSupporting file
  • lark-drive/references/lark-drive-workflow-knowledge-organize-planning.mdSupporting file
  • lark-drive/references/lark-drive-workflow-knowledge-organize-execution.mdSupporting file
  • lark-drive/references/lark-drive-workflow-knowledge-organize-rollback.mdSupporting file
  • lark-wiki/references/lark-wiki-node-get.mdSupporting file
  • lark-drive/references/lark-drive-comment-content.mdSupporting file
  • lark-drive/references/lark-drive-reactions.mdSupporting file
  • lark-wiki/references/lark-wiki-delete-space.mdSupporting file
  • lark-wiki/references/lark-wiki-space-list.mdSupporting file
  • lark-wiki/references/lark-wiki-space-create.mdSupporting file
  • lark-wiki/references/lark-wiki-member-add.mdSupporting file
  • lark-wiki/references/lark-wiki-member-remove.mdSupporting file
  • lark-wiki/references/lark-wiki-member-list.mdSupporting file
  • lark-shared/references/lark-shared-identity-and-permissions.mdSupporting file
  • lark-shared/references/lark-shared-output-contract.mdSupporting file
  • lark-shared/references/lark-shared-high-risk-approval.mdSupporting file
  • lark-shared/references/lark-shared-config-init.mdSupporting file
  • lark-shared/references/lark-shared-update-notice.mdSupporting file
  • lark-doc/references/lark-doc-create-workflow.mdSupporting file
  • lark-doc/references/lark-doc-create.mdSupporting file
  • lark-doc/references/lark-doc-update.mdSupporting file
  • lark-doc/references/lark-doc-script.mdSupporting file
  • lark-doc/references/lark-doc-history.mdSupporting file
  • lark-doc/references/lark-doc-media-insert.mdSupporting file
  • lark-doc/references/lark-doc-media-preview.mdSupporting file
  • lark-doc/references/lark-doc-media-download.mdSupporting file
  • lark-doc/references/lark-doc-resource-cover.mdSupporting file
  • lark-doc/references/lark-doc-whiteboard.mdSupporting file
  • lark-doc/references/lark-doc-mindnote.mdSupporting file
  • lark-whiteboard/SKILL.mdSupporting file
  • lark-whiteboard/references/lark-whiteboard-update.mdSupporting file
  • lark-doc/references/genres/route-workplace.mdSupporting file
  • lark-doc/references/genres/route-report.mdSupporting file
  • lark-doc/references/genres/route-knowledge.mdSupporting file
  • lark-doc/references/genres/route-media.mdSupporting file
  • lark-doc/references/genres/route-opinion.mdSupporting file
  • lark-doc/references/genres/route-consumer.mdSupporting file
  • lark-doc/references/genres/route-marketing.mdSupporting file
  • lark-doc/references/genres/route-personal-brand.mdSupporting file
  • lark-doc/references/genres/route-creative.mdSupporting file
  • lark-doc/references/genres/route-platform.mdSupporting file
  • lark-doc/references/lark-doc-xml.mdSupporting file
  • lark-doc/references/lark-doc-xml-extended-blocks.mdSupporting file
  • lark-doc/references/lark-doc-md.mdSupporting file
  • lark-whiteboard/references/lark-whiteboard-export.mdSupporting file
  • lark-whiteboard/routes/svg-edit.mdSupporting file
  • lark-whiteboard/references/lark-whiteboard-workflow.mdSupporting file
  • lark-doc/references/genres/memo-brief.mdSupporting file
  • lark-doc/references/genres/weekly-report.mdSupporting file
  • lark-doc/references/genres/proposal.mdSupporting file
  • lark-doc/references/genres/execution-plan.mdSupporting file
  • lark-doc/references/genres/formal-doc.mdSupporting file
  • lark-doc/references/genres/official-redhead.mdSupporting file
  • lark-doc/references/genres/meeting-minutes.mdSupporting file
  • lark-doc/references/genres/retrospective.mdSupporting file
  • lark-doc/references/genres/prd.mdSupporting file
  • lark-doc/references/genres/technical-doc.mdSupporting file
  • lark-doc/references/genres/sop-tutorial.mdSupporting file
  • lark-doc/references/genres/research-report.mdSupporting file
  • lark-doc/references/genres/data-report.mdSupporting file
  • lark-doc/references/genres/white-paper.mdSupporting file
  • lark-doc/references/genres/business-analysis.mdSupporting file
  • lark-doc/references/genres/xiaohongshu.mdSupporting file
  • lark-doc/references/genres/wechat.mdSupporting file
  • lark-doc/references/genres/email.mdSupporting file
  • lark-whiteboard/routes/svg.mdSupporting file
  • lark-whiteboard/routes/dsl.mdSupporting file
  • lark-whiteboard/routes/mermaid.mdSupporting file
  • lark-whiteboard/scenes/mention.mdSupporting file
  • lark-whiteboard/scenes/photo-showcase.mdSupporting file
  • lark-contact/SKILL.mdSupporting file
  • lark-whiteboard/elements/image.mdSupporting file
  • lark-contact/references/lark-contact-search-user.mdSupporting file
  • lark-contact/references/lark-contact-search-bot.mdSupporting file
  • lark-contact/references/lark-contact-get-user.mdSupporting file

Operations mentioned in code and instructions

Run commands
SKILL.md:47In the instructionsOpen original file
```bash# BAD: 未转义正则特殊字符,可能匹配到错误位置
references/lark-markdown-create.md:9In the instructionsOpen original file
```bash# 直接用行内内容创建
references/lark-markdown-diff.md:9In the instructionsOpen original file
```bash# 比较两个远端版本
Connect to websites
references/lark-markdown-create.md:37In the instructionsOpen original file
lark-cli markdown +create \  --folder-token "https://feishu.cn/drive/folder/fldcn_xxx" \  --file ./README.md
references/lark-markdown-create.md:47In the instructionsOpen original file
lark-cli markdown +create \  --wiki-token "https://feishu.cn/wiki/wikcn_xxx" \  --file ./README.md
lark-drive/SKILL.md:68In the instructionsOpen original file
|----------|---------------------------------------------------------|-----------|----------|| `/docx/` | `https://example.larksuite.com/docx/doxcnxxxxxxxxx`    | `file_token` | URL 路径中的 token 直接作为 `file_token` 使用 || `/doc/` | `https://example.larksuite.com/doc/doccnxxxxxxxxx`     | `file_token` | URL 路径中的 token 直接作为 `file_token` 使用 |
Change files
lark-drive/SKILL.md:122In the instructionsOpen original file
| [`+search`](references/lark-drive-search.md) | 搜索文档、Wiki、表格、文件夹等云空间对象;支持 `--edited-since`、`--created-by-me`、`--mine`、`--doc-types` 等扁平 flag;区分 original creator 与 owner 语义。 || [`+upload`](references/lark-drive-upload.md) | 上传本地文件到 Drive 文件夹或 wiki 节点;修改/重写/更新已有文件时优先覆盖上传,而不是直接上传一个新文件。 || [`+create-folder`](references/lark-drive-create-folder.md) | 新建 Drive 文件夹,支持父文件夹与 bot 创建后自动授权。 |
lark-drive/SKILL.md:180In the instructionsOpen original file
  - `list` — 获取文件夹下的清单;使用前阅读 [`references/lark-drive-files-list.md`](references/lark-drive-files-list.md)  - `patch` — 修改文件标题;优先使用 [`drive +update-title`](references/lark-drive-update-title.md) shortcut
lark-drive/references/lark-drive-upload.md:50In the instructionsOpen original file
>> 如果这次调用传了 `--file-token`,表示是在**覆盖已有文件**,CLI **不会**额外修改该文件权限。>
Read files
lark-drive/SKILL.md:159In the instructionsOpen original file
| [`+member-remove`](references/lark-drive-member-remove.md) | 移除一个 Drive 文档、文件、文件夹或 wiki 节点协作者;封装 Drive permission member delete,真实写入需要 `--yes`。 || [`+permission-get-setting`](references/lark-drive-permission-get-setting.md) | 查询文件、文件夹或云文档自身的公开访问、分享、协作者管理、安全与评论权限设置;支持 URL 或裸 token + `--type`;不递归读取文件夹子文档权限。 || [`+secure-label-list`](references/lark-drive-secure-label.md) | 列出当前用户可用的密级标签。 |
lark-drive/SKILL.md:173In the instructionsOpen original file
>> **高频原生命令:** 读取 Drive 文件夹清单时使用 `drive files list`,使用前先读 [`references/lark-drive-files-list.md`](references/lark-drive-files-list.md),按模板通过 `--params` 传参并手动处理分页;不要把 `--page-all` 输出直接交给 JSON 解析脚本。
lark-drive/references/lark-drive-workflow.md:121In the instructionsOpen original file
1. 先读取本总框架文件。2. 只读取 `Workflow Registry` 中命中的 entry file。
Install extra software packages
lark-whiteboard/SKILL.md:15In the instructionsOpen original file
> - 运行 `lark-cli --version`,确认可用,无需询问用户。> - 运行 `npx -y @larksuite/whiteboard-cli@^0.2.13 -v`,确认可用,无需询问用户。
lark-whiteboard/references/lark-whiteboard-update.md:78In the instructionsOpen original file
# 使用 whiteboard-cli 生成 OpenAPI 格式并通过管道传递npx -y @larksuite/whiteboard-cli@^0.2.13 -i <产物文件> --to openapi --format json \  | lark-cli whiteboard +update \
lark-whiteboard/references/lark-whiteboard-update.md:92In the instructionsOpen original file
# 生成 OpenAPI 格式到文件npx -y @larksuite/whiteboard-cli@^0.2.13 -i <DSL 文件> --to openapi --format json -o ./temp.json
Lines read
14,394
File checksum (to compare versions)
75fb13560b7a47de71b781c721447b622b4e58352757920c42a55a8a26234998