UNPKG

@lark-project/cli

Version:

飞书项目插件开发工具

57 lines (39 loc) 5.1 kB
# 后端交接(B · relay 点 + 收口) > A「后端就绪」(汇总契约 + scope 就绪)已在 [`feature-overview.md`](feature-overview.md) 的「→ 后端那一半(relay)」段做完;**走到产交接包这个 relay 点才 Read 本文件**。本文件只做 B:产交接包+甩出 → 联调收口 → 发布。**唯一跨出会话的是后端代码的编写权**(接手会话取 `meegle-plugin-backend` skill);本 skill 不 Read 后端实现、不复述「怎么写」、不接收回贴的后端代码。中断只在代码编写权交出这一点,交出后本会话立即继续联调收口+发布。 ## B1:产出交接包 + 甩出(跨仓、另起会话 · 这就是 relay 交接点) 照下面模板把带源契约 + 能调清单填成一整块可复制文本(`< >` 处用上下文里的真值替换,没有的字段整行删掉),**「要调的 OpenAPI」每条用接口中文名,并补上 MCP 查询关键词**(接口中文名 → 关键词 `<中文名> OpenAPI`)让接手会话照着查出入参。然后**照下面 ①② 的样子原样输出给用户**: ① 先对用户说这句交接说明: > 把下面这一整块复制到你自己的后端仓、在那里另起一个会话执行(你常用的 AI 编码 agent 都行,不限定某一家)。后端代码在那边写——**本插件会话不写后端代码、不 Read 后端实现、也不接收回贴的后端代码**,只在后端联调出真 URL 后回来替换占位地址。 ② 紧接着打印这一整块可复制文本(用户要整块复制走的就是它): ````text /meegle-plugin-backend 实现下面这个 Meegle 插件的后端那一半,并按结尾「执行约束」落地。 === 插件身份 === 插件 ID:<MII_...> 站点:<site-domain,如 https://meego.feishu.cn> 应用类型:<app_type,如 ai_node / ai_field / normal> 原始需求:<originalRequirement 原话> === webhook 端点 === 点位:<pointType[pointKey]> URL:<占位 URL,联调出公网真地址后替换> Token:<token,CLI 生成的 36 位 UUID> === 要调的 OpenAPI(lpm perm list 的 granted / perm check satisfied)=== 1. <接口中文名> —— <这次用它做什么>|MCP 关键词:`<接口中文名> OpenAPI` 2. <接口中文名> —— <这次用它做什么>|MCP 关键词:`<接口中文名> OpenAPI` === 前端占位(后端就绪后要对接的点)=== - <占位点,如「重试按钮」当前 alert 占位,需对接 <接口中文名> 触发节点重试> - <占位点,如「结果展示」当前 TODO,AI 结果落地后替换 fieldKey 并读取展示> === 执行约束 === - 先召回 meegle-plugin-backend skill 取知识索引 - 每个 OpenAPI 调用照上面「要调的 OpenAPI」的 MCP 关键词查出入参 / 鉴权;webhook 验签照该 skill「webhook」段的源查 - 验签 / token / 出入参 / 写回每一处平台事实都带源(MCP doc);查不到就停下问,不猜签名、不编造协议 - Go / Java 用官方服务端 SDK,TS / Node 逐接口查文档手写 - 联调通过(验签过 / OpenAPI 返预期 / 写回生效)后,把后端部署出的公网 webhook URL 回贴给插件会话(或自己去插件开发者后台改) ```` ## B2:联调收口(拿到后端真 URL 后,回插件会话做这 4 步) 1. 后端部署出平台可达的公网 webhook URL(`lpm` 造不出,由用户 / 后端会话给); 2. 用真 url/token 做**第 2`local-config set`** 替换占位地址(走 feature 的 `stage=config`,入口 [`feature-overview.md`](feature-overview.md) 的 Stage Config——config.plan 拉远端基线建全量 draft、patch url/token → config.apply 删除闸口 + 用户明示确认;`ai_node`/`ai_field` 的 url/token 在 `diff` 里恒显 `[MODIFIED]` 是已知非阻断现象)——**或**让用户直接去插件开发者后台改 webhook URL; 3. 产品里触发该场景,看**后端日志**确认收到回调 + 写回生效; 4. 收口 → 发布。 > 这一步插件会话**只替换 webhook url/token + 看日志确认**,用不到后端代码、不 Read 后端实现。后端会话坐在自己仓里、没有 `plugin.config.json` 想自己跑 `local-config` 时:先建 config-only 工作区当身份锚 —— `lpm init <name> <pluginId> <pluginSecret> --config-only --site-domain <url>``<name>` 任意,固定建在 `meegle-plugin-config/`;**secret 必传**——从开发者后台拿到 secret 显式传入;前提先 `lpm login --site-domain <url>`)→ `cd meegle-plugin-config`,再用 meegle-plugin skill 走 feature 的 `stage=config` 改配置(入口 [`feature-overview.md`](feature-overview.md) 的 Stage Config,按序跑 config.plan 拉远端基线建全量 draft → config.apply 删除闸口 + 用户明示确认,全套护栏自带)。换插件同目录换 pluginId 重跑 init 自动清旧锚重建;完事删掉 `meegle-plugin-config/`(gitignored 的临时锚)。 ## B3:发布 被 workflow 编排时交还 Phase 3(polish + publish);本 skill 单独跑时引导 `lpm publish`(不可逆、需用户确认)。