feat(drive): document copy workflow guidance - #2184
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThis PR updates the Lark Drive skill documentation. It changes authentication diagnostics, defines title search rules, routes copying through a fixed contract, adds a schema exception for ChangesLark Drive Skill Documentation
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
skills/lark-drive/references/lark-drive-copy.md (1)
17-22: 🗄️ Data Integrity & Integration | 🔵 Trivial | 🏗️ Heavy liftAdd executable coverage for the fixed copy contract.
Lines 17-22 define the exact
drive files copyrequest, buttests/cli_e2e/drive/coverage.mdreports no workflow test for this command. Add a contract test that verifies--file-token,data.folder_token,data.name, anddata.type, including rejection of a missingfolder_token. Otherwise, a CLI change can silently invalidate this reference and the routing inskills/lark-drive/SKILL.md.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@skills/lark-drive/references/lark-drive-copy.md` around lines 17 - 22, Add executable contract coverage for the `drive files copy` request documented in `lark-drive-copy.md`, covering `--file-token`, `data.folder_token`, `data.name`, and `data.type`. Include a negative case that rejects a missing `folder_token`, and register the workflow in `tests/cli_e2e/drive/coverage.md` so changes to the CLI contract or `skills/lark-drive/SKILL.md` routing are detected.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@skills/lark-drive/references/lark-drive-copy.md`:
- Around line 46-50: 在“错误恢复”部分补充 drive files copy 的未知结果处理:对超时、连接重置、5xx
等可能已到达服务端的传输失败不得自动重试;优先使用可用的幂等机制或结果核对,无法核对时先征得用户确认再重试,并保留现有确定性错误的停止规则。
---
Nitpick comments:
In `@skills/lark-drive/references/lark-drive-copy.md`:
- Around line 17-22: Add executable contract coverage for the `drive files copy`
request documented in `lark-drive-copy.md`, covering `--file-token`,
`data.folder_token`, `data.name`, and `data.type`. Include a negative case that
rejects a missing `folder_token`, and register the workflow in
`tests/cli_e2e/drive/coverage.md` so changes to the CLI contract or
`skills/lark-drive/SKILL.md` routing are detected.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 91003c75-5e28-485a-be69-926189f4f313
📒 Files selected for processing (2)
skills/lark-drive/SKILL.mdskills/lark-drive/references/lark-drive-copy.md
🚀 PR Preview Install Guide🧰 CLI updatenpm i -g https://pkg.pr.new/larksuite/cli/@larksuite/cli@8b0422ffab0b4117636275fce00f9d6f451920f1🧩 Skill updatenpx skills add SongHantian/cli#auto-research-sync/01KYVM5CMVBXCSZWETFR6Y4VAQ/mr-1358-5fb17c0d -y -g |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@skills/lark-drive/SKILL.md`:
- Line 13: 更新认证与确认路由规则,将未结构化但明确表示登录态失败的 Drive/API 错误(包括 `1061005 auth failed`
等资源引用中的错误)纳入读取 `../lark-shared/SKILL.md` 的认证诊断路径;保留 `invalid token`、`not
found`、`unsupported type` 及租户安全策略等确定性业务错误不触发诊断。
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: bd261e7f-b4d8-41a7-9b0f-905020f8231e
📒 Files selected for processing (2)
skills/lark-drive/SKILL.mdskills/lark-drive/references/lark-drive-copy.md
🚧 Files skipped from review as they are similar to previous changes (1)
- skills/lark-drive/references/lark-drive-copy.md
|
|
||
| - 用户要把**已有 Wiki 节点移出知识库,放到 Drive 文件夹或“我的空间”根目录**:切到 `lark-wiki`,使用 `lark-cli wiki +move-to-drive`;不要把 Wiki token 直接交给 `drive +move`。这是会改变文档归属和权限继承的写操作,执行前确认源节点与目标位置。 | ||
| - 用户要**复制文档 / 创建副本 / 另存为副本**时,使用 `lark-cli drive files copy`。先用 `lark-cli schema drive.files.copy --format json` 确认参数;如果来源是 wiki URL/token,先用 `lark-cli drive +inspect` 获取底层 `token` 和 `type`,不要把 wiki token 直接当 `file_token`。`params.file_token` 传源文档 token,`data.folder_token` 传目标文件夹 token,`data.name` 传副本名称,`data.type` 传源文件类型(如 `docx` / `sheet` / `bitable` / `slides`)。示例:`lark-cli drive files copy --params '{"file_token":"<DOC_TOKEN>"}' --data '{"folder_token":"<FOLDER_TOKEN>","name":"<COPY_NAME>","type":"docx"}'`。如返回 `confirmation_required`,按 `lark-shared` 高风险审批协议向用户确认后,在原命令末尾追加 `--yes` 重试。 | ||
| - 用户要**复制文档 / 创建副本 / 另存为副本**时,执行前先读取 [`references/lark-drive-copy.md`](references/lark-drive-copy.md),并直接使用其中固定的 `lark-cli drive files copy` 参数契约;首次调用不预查 `--help` 或 schema,仅在返回明确的结构化参数错误后查询 schema。 |
There was a problem hiding this comment.
这个 张超 那边现在在封装成drive +copy
| - 用户要**整理云盘 / 文件夹 / 文档库 / 知识库 / 个人文档库**,或要“盘点目录结构、找出未归档/临时/重复/空目录、生成整理方案”,必须先阅读 [`references/lark-drive-workflow.md`](references/lark-drive-workflow.md),再按其中 `Workflow Registry` 进入 [`knowledge_organize`](references/lark-drive-workflow-knowledge-organize.md) workflow。默认只生成方案;创建目录、移动资源、申请权限都必须单独确认。 | ||
| - 按主题跨范围查找并集中归档,进入 `topic_move_collector`;对已知文件夹、文档库或知识库做目录盘点和结构重组,进入 `knowledge_organize`;只移动一个已明确资源时仍使用原子移动命令。 | ||
| - 用户要**搜文档 / Wiki / 电子表格 / 多维表格 / 云空间(云盘/云存储)对象**,优先使用 `lark-cli drive +search`。自然语言里"最近我编辑过的"、"我创建的"(→ `--created-by-me`,原始创建者语义)、"我负责/owner 的"(→ `--mine`,owner 语义)、"最近一周我打开过的 xxx"、"某人 owner 的 docx" 等直接映射到扁平 flag,避免手写嵌套 JSON。 | ||
| - 用户要**搜文档 / Wiki / 电子表格 / 多维表格 / 云空间(云盘/云存储)对象**,包括按标题判断资源是否存在、是否唯一或是否重复时,优先使用 `lark-cli drive +search --query "<标题或关键词>"`;`drive files list` 只用于用户明确要求枚举文件夹直接子项,不能替代标题搜索。存在多个完整标题严格相等的候选时停止,不要选择第一项或执行写操作。`+search` 不接受位置参数。自然语言里"最近我编辑过的"、"我创建的"(→ `--created-by-me`,原始创建者语义)、"我负责/owner 的"(→ `--mine`,owner 语义)、"最近一周我打开过的 xxx"、"某人 owner 的 docx" 等直接映射到扁平 flag,避免手写嵌套 JSON。 |
There was a problem hiding this comment.
不加这个的话,agent的表现是什么,是否能放到search或者files list的ref skill中,感觉把一个很边界场景放到这里有点不合适
|
|
||
| ```bash | ||
| lark-cli schema drive.<resource>.<method> # 调用 API 前必须先查看参数结构 | ||
| lark-cli schema drive.<resource>.<method> # 原生 API 调用前查看参数结构;普通 files.copy 例外 |
| ``` | ||
|
|
||
| > **重要**:使用原生 API 时,必须先运行 `schema` 查看 `--data` / `--params` 参数结构,不要猜测字段格式。 | ||
| > **重要**:使用原生 API 时,必须先运行 `schema` 查看 `--data` / `--params` 参数结构,不要猜测字段格式。普通 `drive files copy` 是例外:执行前读取 [`references/lark-drive-copy.md`](references/lark-drive-copy.md),直接使用其中的固定参数契约;仅在命令返回结构化参数错误后再查 schema。 |
There was a problem hiding this comment.
这里也是,尽量不要在这种通用描述下,针对单个特殊case做特化说明,这样后面每优化一个场景,就在后面追加一条,很不优雅
|
|
||
| - 用户要把**已有 Wiki 节点移出知识库,放到 Drive 文件夹或“我的空间”根目录**:切到 `lark-wiki`,使用 `lark-cli wiki +move-to-drive`;不要把 Wiki token 直接交给 `drive +move`。这是会改变文档归属和权限继承的写操作,执行前确认源节点与目标位置。 | ||
| - 用户要**复制文档 / 创建副本 / 另存为副本**时,使用 `lark-cli drive files copy`。先用 `lark-cli schema drive.files.copy --format json` 确认参数;如果来源是 wiki URL/token,先用 `lark-cli drive +inspect` 获取底层 `token` 和 `type`,不要把 wiki token 直接当 `file_token`。`params.file_token` 传源文档 token,`data.folder_token` 传目标文件夹 token,`data.name` 传副本名称,`data.type` 传源文件类型(如 `docx` / `sheet` / `bitable` / `slides`)。示例:`lark-cli drive files copy --params '{"file_token":"<DOC_TOKEN>"}' --data '{"folder_token":"<FOLDER_TOKEN>","name":"<COPY_NAME>","type":"docx"}'`。如返回 `confirmation_required`,按 `lark-shared` 高风险审批协议向用户确认后,在原命令末尾追加 `--yes` 重试。 | ||
| - 用户要**复制文档 / 创建副本 / 另存为副本**时,执行前先读取 [`references/lark-drive-copy.md`](references/lark-drive-copy.md),并直接使用其中固定的 `lark-cli drive files copy` 参数契约;首次调用不预查 `--help` 或 schema,仅在返回明确的结构化参数错误后查询 schema。 |
There was a problem hiding this comment.
不要引导“首次调用不预查 --help 或 schema,仅在返回明确的结构化参数错误后查询 schema。”这种,可能会放大错误率
Summary
Document the Drive file copy workflow so agents use the native copy API with stable parameters and avoid unnecessary schema, inspect, or metadata calls.
Changes
drive files copyparameters, wiki/folder URL handling, post-copy editing boundaries, and error recovery.files.copyAPI exception.Test Plan
git diff --checkRelated Issues
Auto research task: 01KYVM5CMVBXCSZWETFR6Y4VAQ
Summary by CodeRabbit
New Features
Bug Fixes