lark-apps

软件研发 Agent 与技能管理 56 文件 中英 1 脚本

妙搭(Spark/Miaoda)应用开发与托管:应用创建、本地全栈开发、云端生成迭代、创意设计(

妙搭(Spark/Miaoda)应用开发与托管:应用创建、本地全栈开发、云端生成迭代、创意设计(UI mockup / 可交互原型 / 线框图 / 落地页 / 仪表盘 / 幻灯片 deck / 视觉探索)、AI相关能力和飞书平台能力或者其他外部能力集成、日志/Trace/监控指标/PV/UV 查询、环境变量管理、应用协作者与协作权限设置、应用角色与成员管理、自动化触发器(定时/记录变更/Webhook/飞书审批)。当用户要开发/新建一个系统·工具·平台·应用,或要本地开发 / 云端开发 / 修改 / 部署 / 发布 / 上线 / 拿可分享链接,或用 HTML 做页面·网站·部署到妙搭,或要设计 / design / mockup / prototype / wireframe / 做 PPT / deck / 视觉探索,或提到妙搭/Spark/Miaoda 应用(链接形如 `/app/app_xxx` 或 `/page/<token>`,运行时域名形如 *.aiforce.cloud)、应用数据库、应用文件存储、开放 API Key、可见范围、应用协作者/开发权限、应用角色/角色成员、线上日志、接口请求量、错误量、延迟、访问量、环境变量、给妙搭应用配自动化任务/定时触发/审批通过后自动触发时使用。不负责普通云盘文件上传(lark-drive)、飞书文档编辑(lark-doc)、原生幻灯片创建(lark-slides)。

说明语言:中英混合

来源larksuitecli ↗ 查看原文件 ↗版权归原作者,请遵循原仓库许可
安装
npx skills add https://github.com/larksuite/cli --skill lark-apps

需要已安装 skills CLI。也可以直接从源仓库 clone。

在星云中查看 ↗
SKILL.md 原文

name: lark-apps version: 1.0.0 description: "妙搭(Spark/Miaoda)应用开发与托管:应用创建、本地全栈开发、云端生成迭代、创意设计(UI mockup / 可交互原型 / 线框图 / 落地页 / 仪表盘 / 幻灯片 deck / 视觉探索)、AI相关能力和飞书平台能力或者其他外部能力集成、日志/Trace/监控指标/PV/UV 查询、环境变量管理、应用协作者与协作权限设置、应用角色与成员管理、自动化触发器(定时/记录变更/Webhook/飞书审批)。当用户要开发/新建一个系统·工具·平台·应用,或要本地开发 / 云端开发 / 修改 / 部署 / 发布 / 上线 / 拿可分享链接,或用 HTML 做页面·网站·部署到妙搭,或要设计 / design / mockup / prototype / wireframe / 做 PPT / deck / 视觉探索,或提到妙搭/Spark/Miaoda 应用(链接形如 /app/app_xxx 或 /page/<token>,运行时域名形如 *.aiforce.cloud)、应用数据库、应用文件存储、开放 API Key、可见范围、应用协作者/开发权限、应用角色/角色成员、线上日志、接口请求量、错误量、延迟、访问量、环境变量、给妙搭应用配自动化任务/定时触发/审批通过后自动触发时使用。不负责普通云盘文件上传(lark-drive)、飞书文档编辑(lark-doc)、原生幻灯片创建(lark-slides)。" metadata: requires: bins: ["lark-cli"] cliHelp: "lark-cli apps --help; lark-cli apps +<cmd> --help" ---

apps (v1)

妙搭应用属于用户资产。默认用 --as user;认证、scope、exit-10、高风险确认、_notice 等通用处理只读 ../lark-shared/SKILL.md,不要在本 skill 里复制。妙搭应用有两条开发路径:本地开发(拉源码本地写)/ 云端会话(妙搭 AI 生成)。

身份与授权

妙搭应用是用户的个人资产,统一 --as user(见开头)。已有用户身份可用时直接执行业务命令,不要为了预防权限问题主动重新登录,否则可能中断原任务并触发不必要的设备授权。仅当 CLI 明确返回未登录或缺少本域 scope 时,一次性执行:

lark-cli auth login --domain apps

因缺权限失败(error.subtype == "missing_scope")时的通用处理见 ../lark-shared/SKILL.md,同样按 --domain apps 授权;授权成功后只恢复原业务操作,不扩展任务范围。

意图路由

按具体操作查命令(开发路径先用下方「选择开发路径」判定表定好再进来取命令):

用户意图先用按需读取
创建新应用资产、拿 app_id+createlark-apps-create.md
找已有 app_id、按名字过滤应用+list --keyword <name>lark-apps-list.md
查单个应用详情(类型、名称、发布状态等)+get --app-id <app_id>lark-apps-get.md
改应用名或描述+updatelark-apps-update.md
HTML 应用 / 创意模式 — 写 HTML 页面/网站、静态页、PPT/deck、落地页、仪表盘、UI mockup、原型、线框图、视觉探索加载 creative-design/creative-design.md(含完整开发与发布流程)creative-design/creative-design.md
旧版存量 HTML 应用(无 Git 管理)继续上传已有静态产物+html-publish(仅兼容旧链路;新建 html / 创意模式 / creative-design 产物不得使用)lark-apps-html-publish.md
开发已有应用 / 初始化本地仓库(开发方式已定为本地后;先解析 app_id,勿 +create 新建)+init(或手动 +git-credential-init + 原生 git)。执行前必读 lark-apps-local-dev.md,含端到端流程和领域规则lark-apps-init.md, lark-apps-git-credential.md
阅读 / 分析 / 总结一个妙搭应用的内容(任意应用模式,含创意模式应用的 /page/<token> 链接);只要一份源码快照、不做本地开发;或要取别人分享给你的应用源码(你对其仓库无权限)+export(下载 zip 后解压读源码;不配 git 凭证、不建工作区)。创意模式应用的 /page/ 链接直接传 --meta-token <token>,不必先 +get 换 app_id。要继续开发用 +init 而非本命令lark-apps-export.md
本地开发时 .env.local 损坏/丢失,重新拉取启动期环境变量+env-pulllark-apps-env-pull.md
管理应用环境变量(查看/设置/删除)+env-list, +env-set, +env-deletelark-apps-env.md
查线上日志、Trace、请求数、错误率、延迟、CPU、memory、PV/UV/访问量+log-list, +log-get, +trace-list, +trace-get, +metric-list, +analytics-listlark-apps-observability.md
看表 / 看结构 / 初始化多环境 / 导入导出数据 / 变更追溯 / 行级审计 / dev→online 发布 / 时间点恢复 / 查 DB 用量+db-table-list、+db-table-get、+db-env-create、+db-data-export/+db-data-import、+db-changelog-list、+db-audit-status/+db-audit-enable/+db-audit-disable/+db-audit-list、+db-env-diff/+db-env-migrate、+db-recovery-diff/+db-recovery-apply、+db-quota-getlark-apps-db.md
逐条执行 SQL(SELECT / DML / DDL);建表 / 改表 / 写 SQL 的平台规范+db-executelark-apps-db-execute.md(含「平台 SQL 规范」:审计列 / RLS / user_profile / 禁用 SQL / PG 陷阱)
管理应用文件存储:上传/下载本地文件、列出/查看/删除已存文件、生成临时分享链接、查存储用量+file-upload/+file-download/+file-list/+file-get/+file-sign/+file-delete/+file-quota-getlark-apps-file.md
调试应用运行时缓存:查看/删除单个业务 key、清空指定环境缓存+cache-get/+cache-delete/+cache-clearlark-apps-cache.md
部署/上线应用("部署""上线""推上去并部署""发布到云端");查发布状态/历史本地开发链路先按 lark-apps-local-dev.md 确认本次改动已 git commit + git push,再用 +release-create / +release-get;查历史用 +release-listlark-apps-local-dev.md, lark-apps-release-create.md, lark-apps-release-get.md, lark-apps-release-list.md
设置或查看运行时可见范围+access-scope-set, +access-scope-get对应 access-scope reference
管理应用协作者(列出/添加/改权限/移除)或协作权限设置+member-list, +member-add, +member-update, +member-remove, +member-settings-get, +member-settings-set本文「应用协作者与协作权限设置」
创意模式(html)应用的评论相关操作创意模式应用评论走 lark-drive 文档评论体系,读取 ../lark-drive/SKILL.md 了解评论能力../lark-drive/SKILL.md
管理 app_... 应用内角色、角色成员,或查询用户匹配角色+role-list/get/create/update/delete, +role-member-list/add/remove, +role-match-listlark-apps-role.md
云端 Agent 生成/迭代应用(开发方式已定为云端后)+session-create -> +chat -> +session-getlark-apps-cloud-dev.md
管理妙搭应用开放 API Key(创建/查看/启停/重置/删除凭证;密钥仅 create/reset 一次性返回)+openapi-key-list/get/create/update/enable/disable/delete/resetlark-apps-openapi-key.md
管理妙搭应用自动化触发器(定时/记录变更/Webhook/飞书审批四类触发器的查询/创建/更新/启停;Webhook URL·Token 一次性回显、不落盘)+automation-list/get/create/update/enable/disablelark-apps-automation.md
查看某次会话某一轮(turn)的回复消息(含仍在生成中的本轮)/ 导出上一轮模型回复("这一轮回复了什么""上一轮的回复""导出某轮消息")先 +session-get(取 latest_turn.turn_id)-> +session-messages-list --turn-id <id>(仅 user 身份;分页用 --page-token)lark-apps-session-messages-list.md
外部能力(AI模型能力和飞书平台能力)集成/插件/Plugin/Capability+plugin-install, +plugin-list, +plugin-uninstalllark-apps-plugin-install.md, lark-apps-plugin-uninstall.md, lark-apps-plugin-list.md
把一批 ID 在妙搭 user_id ↔ 飞书 open_id / union_id / 飞书 user_id 之间互转(例如拿到 open_id 但下游要 user_id)+user-id-convert --convert-type <方向> --ids <id1,id2,...>lark-apps-user-id-convert.md

高频路径

应用协作者与协作权限设置

这组命令管理妙搭应用的开发协作者和协作策略,不等同于 +access-scope- 的运行时访问范围,也不等同于 +role- 的应用内业务角色。所有命令使用 app_... 应用 ID 和 --as user。不要读取或判断 app_type 来预判支持范围,直接调用对应的协作者命令。

# 读取协作者和当前协作策略
lark-cli apps +member-list --app-id <app_id> --as user
lark-cli apps +member-settings-get --app-id <app_id> --as user

# 写操作先预览精确的 typed-ID 字段;确认后把 --dry-run 换成 --yes
lark-cli apps +member-add --app-id <app_id> --member-type openid --member-id ou_xxx --perm view --dry-run --as user
lark-cli apps +member-update --app-id <app_id> --member-type openchat --member-id oc_xxx --perm edit --dry-run --as user
lark-cli apps +member-remove --app-id <app_id> --member-type opendepartmentid --member-id od-xxx --dry-run --as user
lark-cli apps +member-settings-set --app-id <app_id> --external-access disabled --comment-by viewer --dry-run --as user

选择开发路径(进意图路由前先判这步)

新建必先定 app_type 和开发方式两件正交的事;修改已有先按「app_id 获取」指认到 app,指认不到就问用户,不擅自 +create。开发方式(本地 vs 云端)只看用户对"谁来写代码"的偏好,与应用复杂度、要不要数据库无关。

app_type 三类边界(先判"要不要把数据存到服务端",再判"纯展示还是有交互"):

信号判定
含数据库 / 后端持久化:登录 / 增删改查 / 报名·投票·站会存记录 / 多人协作 / 泛称"系统·工具"且明确要存数据app_type=full_stack
纯静态展示(给人"看"的物料,无 JS 交互):PPT/deck / demo / 落地页 / 海报 / UI mockup / 线框图 / 静态仪表盘 / 视觉探索app_type=html,加载 creative-design/creative-design.md(含完整开发与发布流程)
有 JS 交互但无数据库(给人"用"的前端应用):可交互原型 / SPA / 表单校验 / 动态计算 / 调用外部 API / 泛称"工具·系统"但未明确要存数据app_type=frontend(默认倾向:用户未明确提出数据库需求时默认引导 frontend,不默认 full_stack)
类型模糊(尤其"要不要存数据"不清)追问,话术偏向 frontend,例:"看起来是个前端应用,需要保存数据吗?";确认要存数据再转 full_stack,确认纯展示再转 html
用户要自己写 / 本地 IDE·code agent / 拉源码到本地 / 交研发本地开发,读 lark-apps-local-dev.md
让妙搭 AI 云端生成 / 对话式 / 自己不碰代码云端会话,读 lark-apps-cloud-dev.md
未表达"谁来写"偏好必须先问(本地代码开发 vs 云端 AI 生成);选定前不擅自选边、不暗示默认,不得以"需求不模糊"为由跳过提问直接 +init / git clone / +session-create / 首轮 +chat
修改已有 + 当前目录是 .spark/meta.json 项目直接继续本地按意图路由,不必问也不必判云端
修改已有 + 有云端偏好云端会话;未表达偏好且非本地项目 → 默认本地;判不准先问

类型升级:frontend 应用后续需要数据库/后端能力时,本地 CLI 不提供类型升级;引导用户到云端会话(打开 https://miaoda.feishu.cn/app/{app_id}),用自然语言描述后端需求(如"给这个应用加登录和数据存储")即可触发升级,无需特殊指令。

发布态护栏

平台资源与应用源码边界

app_id 获取

app_id 必须是妙搭应用 ID(app_ 开头)。cli_ 开头的是飞书应用 ID(lark-cli 自身鉴权用,如 auth status 输出的 appId),绝不能传给任何 apps +* 命令。

如果你拿到的是 https://{租户域名}/page/<meta_token> 这类链接里的 meta_token — 这是创意模式应用的 meta_token(链接形似飞书文档)。只为阅读 / 导出源码时不需要 app_id,直接 +export --meta-token <meta_token>;其余命令需要 app_id 时,先用 +get 解析出 app_id。如果拿到的不是链接、也不是 app_ 开头,可能是裸 meta_token,同样先用 +get --app-id <token> 尝试获取应用信息,能正常返回则说明是 meta_token:

lark-cli apps +get --app-id <meta_token> -q '.data.app.app_id'

按顺序尝试,不要一上来要求用户手填:

  1. 用户给出 app_xxx 或妙搭链接(如 /app/app_xxx)时直接提取。
  2. 当前目录是已初始化项目时读取 .spark/meta.json 的 app_id。
  3. 用户只给应用名/描述时用 lark-cli apps +list --keyword "<关键词>" 定位;多候选再让用户确认。

失败处理(error.hint)

高影响动作:确认与预授权

同类技能
agent-browseragentcoreask-mattbrowser-actbrowser-act-skill-forgebrowser-usechief-of-staffclaude-handoff
本页内容来自开源项目 larksuite, 版权归原作者所有。
本站仅作技能索引与分享,所有 Skill 版权归其原作者所有。