lark-router
lark-router — Lark Auth Router スキル
3ルール早見表
| ルール | 条件 | 判定 | 代表例 |
|---|---|---|---|
| Rule 1 | User名義必須操作 | user |
Calendar書き込み / 承認インスタンス / 承認タスク承認 |
| Rule 2 | 外部テナントDM | blocked |
error 230038 — 外部ユーザーへのDM |
| Rule 3 | その他全て | bot |
IM通知 / Base読み取り / Wiki参照 |
実行フロー
Step 1: ルーター実行
larc auth router "<task description>"
出力例:
Auth decision: BOT
Rule applied: Rule 3 — Bot default
Reason: IM notification does not require user attribution
Minimum scopes: im:message:send_as_bot
Step 2: 判定に基づいて lark-cli を実行
| 判定 | lark-cli フラグ |
|---|---|
user |
lark-cli --as user <command> |
bot |
lark-cli <command>(デフォルトはbot) |
blocked |
実行しない → ユーザーに報告 |
Step 3: blocked の場合
外部テナントへのDMはLark API で不可 (error 230038)。
対応策:
A) 管理コンソールでゲスト招待 → open_id で直接指定
B) オープンリンク共有 (open_sharing=anyone_readable)
参照: docs/known-issues/lark-external-user-api-gap.md
スコープ認可
# ルーター実行後、スコープが不足している場合
larc auth login --scope "<router output の scopes>"
# または既存プロファイルを使用
larc auth login --profile writer # 一般書き込み操作
larc auth login --profile backoffice_agent # 全スコープ
最小スコープセット早見表
| 操作 | スコープ |
|---|---|
| Bot IM読み取り | im:message:readonly |
| Bot IM送信 | im:message:send_as_bot |
| User IM送信 | im:message |
| Base書き込み | bitable:app |
| Wiki書き込み | wiki:node:create |
| Calendar書き込み | calendar:calendar |
| 承認インスタンス作成 | approval:instance:write |
| 承認タスク承認/却下 | approval:task:write |
テストケース(regression)
larc auth router "send IM notification to team" # → BOT
larc auth router "create calendar event" # → USER
larc auth router "send DM to external user" # → BLOCKED
larc auth router "submit expense approval" # → USER
larc auth router "read wiki page" # → BOT
関連
- 実装:
lib/auth.sh—_auth_router()(GitHub Issue #32) - 設計doc:
docs/permission-model.md - 既知制約:
docs/known-issues/lark-external-user-api-gap.md - Meegle Story: #23312641
More from shunsukehayashi/lark-harness
lark-im
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员时使用。
1lark-approval
飞书审批 API:审批实例、审批任务管理。
1lark-vc
飞书视频会议:查询会议记录、获取会议纪要产物(总结、待办、章节、逐字稿)。1. 查询已经结束的会议数量或详情时使用本技能(如昨天 | 上周 | 今天已经开过的会议等场景),查询未开始的会议日程使用 lark-calendar 技能。2. 支持通过关键词、时间范围、组织者、参与者、会议室等筛选条件搜索会议记录。3. 获取或整理会议纪要时使用本技能。
1lark-doc
飞书云文档:创建和编辑飞书文档。从 Markdown 创建文档、获取文档内容、更新文档(追加/覆盖/替换/插入/删除)、上传和下载文档中的图片和文件、搜索云空间文档。当用户需要创建或编辑飞书文档、读取文档内容、在文档中插入图片、搜索云空间文档时使用;如果用户是想按名称或关键词先定位电子表格、报表等云空间对象,也优先使用本 skill 的 docs +search 做资源发现。
1lark-sheets
飞书电子表格:创建和操作电子表格。创建表格并写入表头和数据、读取和写入单元格、追加行数据、在已知电子表格中查找单元格内容、导出表格文件。当用户需要创建电子表格、批量读写数据、在已知表格中查找内容、导出或下载表格时使用。若用户是想按名称或关键词搜索云空间里的表格文件,请改用 lark-doc 的 docs +search 先定位资源。
1lark-drive
飞书云空间:管理云空间中的文件和文件夹。上传和下载文件、创建文件夹、复制/移动/删除文件、查看文件元数据、管理文档评论、管理文档权限、订阅用户评论变更事件;也负责把本地 Word/Markdown/Excel/CSV 导入为飞书在线云文档(docx、sheet、bitable)。当用户需要上传或下载文件、整理云空间目录、查看文件详情、管理评论、管理文档权限、订阅用户评论变更事件,或要把本地文件导入成新版文档、电子表格、多维表格/Base 时使用。
1