RoboZephyr/open source/04 · lark-skills

LARK·SKILLS

把多步 lark-cli 调用打包成 Claude Code 和 Codex 可以直接 /run 的 Skill。一次 git clone,四个 slash command,任何项目目录都能用。

$git clone https://github.com/RoboZephyr/lark-skills ~/workspace/lark-skills # 然后 cd 进去跑 ./install.sh — 自动检测 Claude Code / Codex 并写入 /commands
MIT Claude Code Codex 飞书 · Lark
signal · flow
┌─────────────────┐      ┌──────────────────┐
  飞书 / Lark            SKILL.md        
   open API              + config.yaml   
└────────┬────────┘      └────────┬─────────┘
                                 
                                 
   ┌─────────────────────────────────────┐
              lark-cli                       oauth, http,
        (npm i -g @larksuite/cli)            retries
   └───────────────────┬─────────────────┘
                       
                       
   ┌─────────────────────────────────────┐
       /lark-doc-personal               
       /lark-doc-deliver                     your agent
       /doc-summary                           just runs
       /weekly-report                         these
   └─────────────────────────────────────┘
              Claude Code  ·  Codex

不是一个调用,是一组工作流 — 都装好了。

SK · 01/lark-doc-personal

飞书个人版 · 一步落盘

--as user 把 markdown 直接创建到你的个人云空间根目录。OAuth 一次,之后所有 agent 复用。飞书个人版用户从这里起步。

oauth·markdown → docx·personal cloud
SK · 02/lark-doc-deliver

企业版 · 协作分发链路

Bot 创建 docx → transfer_owner 给指定员工 → 发消息到群聊。所有协作步骤一次跑完,不会丢在 bot 的私人云空间。

bot·transfer_owner·group message
SK · 03/doc-summary

扫描 → 汇总 → 投递

按场景配置搜飞书文档(关键词 + 团队成员可见范围),筛选后生成结构化汇总,调用 lark-doc-deliver 创建文档并发群。技术设计文档扫描只是预设场景之一。

search·filter·summarize·deliver
SK · 04/weekly-report

周报 · 从 commit 到文档

从 GitHub(可选 GitLab)拉 commit 数据,subagent 并行生成每人摘要,主 agent 合并为周报,自动创建飞书文档并发群通知 —— 避免长上下文溢出。

git data·parallel subagent·auto deliver

一份说明书,一份配置 —— 没有 wrapper。

skills/
└── weekly-report/
    ├── SKILL.md          ← Agent 读这个,知道何时触发、调谁
    ├── config.yaml       ← 你填的真实值(open_id / chat_id / repos)
    ├── config.example.yaml
    └── helpers/
        ├── pull-commits.py  ← shell-callable,subagent 并行调
        └── summarize.py

每个 Skill = 一份 SKILL.md + 一份 config.yaml。前者是给 Agent 看的执行说明(什么时候触发、按什么顺序调 lark-cli、出什么);后者放你自己的飞书 open_id、群 chat_id、关键词清单。

Agent 拿到任务 → 读 SKILL.md → 按步骤调 lark-cli → 把 config.yaml 的值塞进去 → 出文档。没有 SaaS,没有要传到第三方服务器的密钥,没有 wrapper 层。

./install.sh 把每个 Skill 的入口写到 ~/.claude/commands/~/.codex/instructions/,之后 /weekly-report 在任何项目目录都能跑 —— 因为它本来就不依赖项目,它依赖你的飞书账号。

让 Agent 调原始 lark-cli 容易在第三步走偏。

飞书 API 不是单次调用 —— 是一组工作流:auth status → 准备 markdown → 创建 docx → transfer_owner → 发群聊。每步都有它自己的 token / 错误码 / 边界(个人版没有"员工"概念、bot 创建的文档默认落在 app 云空间用户看不见、跨空间 move API 会报 1061002)。

最干净的方案是把"我已经踩过的坑"编码成 Agent 能稳定执行的一份说明书 —— 不是教 Agent 现学。

这就是 Skill 的形态:一份 Agent-readable 的步骤 + 一份你的真实配置。装好之后,/weekly-report 在你机器上任何项目目录都能直接跑。