diff --git a/skills/lark-base/SKILL.md b/skills/lark-base/SKILL.md index 827b30c9d..7ed0c4d87 100644 --- a/skills/lark-base/SKILL.md +++ b/skills/lark-base/SKILL.md @@ -250,11 +250,31 @@ metadata: | `slides` | 转到 Drive 相关 skill | 不继续使用本 skill 的 Base 命令 | | `mindnote` | 转到 Drive 相关 skill | 不继续使用本 skill 的 Base 命令 | -### 3.5 执行身份与人员字段 +### 3.5 身份选择与权限降级策略 + +多维表格通常属于用户的个人或团队资源。**默认应优先使用 `--as user`(用户身份)执行所有 Base 操作**,始终显式指定身份。 + +- **`--as user`(推荐)**:以当前登录用户身份操作其有权访问的 Base。执行前先完成用户授权: + +```bash +lark-cli auth login --domain base +``` + +- **`--as bot`(降级)**:仅当 user 身份权限不足、且 bot 身份确实拥有目标 Base 的访问权限时,才降级使用。bot 看不到用户私有资源,行为以应用身份执行。 + +**执行规则**: + +1. 所有操作默认先用 `--as user`。 +2. 若 user 身份返回权限错误,先判断是否为**不可重试错误码**(如 `91403`)。若是,**立即停止**,不做任何重试或降级,直接按 `lark-shared` 权限不足处理流程引导用户解决。 +3. 非不可重试错误码时,检查错误响应中是否包含 `permission_violations` / `hint` 等提权引导信息: + - **有提权引导**:按 `lark-shared` 权限不足处理流程,先引导用户完成 user 身份提权(`auth login --scope`);确认提权成功后,以 `--as user` 重试。 + - **无提权引导**(如资源级无访问权限、非 scope 不足):切换到 `--as bot` 重试**一次**。 +4. 若 bot 身份仍然返回权限错误,**立即停止重试**,根据错误响应按 `lark-shared` 流程引导用户解决(引导去开发者后台开通 scope 或确认资源访问权限)。 +5. 只有在用户明确要求"用应用身份 / bot 身份操作",才跳过 user 直接使用 `--as bot`。 + +**补充说明**: - 人员字段 / 用户字段:注意 `user_id_type` 与执行身份(user / bot)差异。 -- bot 身份:bot 看不到用户私有资源;行为以应用身份执行。 -- user 身份:依赖用户授权和 scope;更适合操作用户资源。 ## 4. 执行规则 @@ -313,3 +333,4 @@ metadata: | 系统字段 / 公式字段写入失败 | 只读字段被当成可写字段 | 改为写存储字段,计算结果交给 formula / lookup / 系统字段自动产出 | | `1254104` | 批量超 200 条 | 分批调用 | | `1254291` | 并发写冲突 | 串行写入 + 批次间延迟 | +| `91403` | 无权限访问该 Base | **不要重试**。按 `lark-shared` 权限不足处理流程引导用户解决权限问题 |