@lark-project/cli
Version:
飞书项目插件开发工具
61 lines (46 loc) • 3.28 kB
Markdown
---
name: meegle-plugin-publish
version: 1.0.0
description: |
Meegle 插件完整发布流程(编排 skill):同步配置到后台 + 构建上传产物 + 版本发布 + 输出分享链接。
当用户在插件工程中说"发布插件"、"上线"、"部署"、"release"、"publish"时触发,或由 workflow phase 内部调用。
前提:polish phase 已执行(插件名称/描述/分类已填充),代码文件已就绪,plugin.config.json resources 已更新。
**不可逆动作**:会把插件发布到 Meegle 市场,执行前必须用户显式确认。
metadata:
requires:
bins: ["npx"]
cliHelp: "lpm publish --help"
---
# meegle-plugin-publish Skill
> **前置**:先 Read [`shared.md`](shared.md) 获取共享规则;进入每个 mode 前 Read 对应的 `references/<mode>.md`。
## 本 skill 的最少 Read 清单
- 共享规则 → Read [`shared.md`](shared.md)(含根原则 3 不可逆动作显式确认)
- mode=pre-check → Read [`publish-pre-check.md`](publish-pre-check.md)
- mode=apply → Read [`publish-apply.md`](publish-apply.md)
- mode=verify → Read [`publish-verify.md`](publish-verify.md)
- 不要预加载 3 个 mode reference;按当前 mode 按需 Read
## 核心流程
```
mode=pre-check → tsc --noEmit 语法预检;AI 自动修复(最多 2 轮);失败则降级
mode=apply → 四步串行:
A0: check diff 发布前总检 + 用户确认(不可逆护栏,A1 前 MUST)
A1: update 同步配置到后台(把本地覆盖到远端草稿)
A2: release 构建 + 上传(获取 artifactVersion)
A3: publish 版本发布(artifactVersion 作为入参)→ 输出分享链接
mode=verify → 确认发布成功 + 验证分享链接
mode=pipeline(默认)→ pre-check → apply → verify
```
> **元信息闸门(PC0,CLI 已硬卡)**:`lpm publish` preflight 校验后端元信息(name / 短描述 / icon / category)完整性,缺失即 `exit 1` 提示先跑 `lpm update-description`。遇此 → 转 `polish` phase 补全元信息再回 publish。AI 不必手检,CLI 兜底。注意该闸门**只在 publish**——`缺元信息要到 publish 才报。
## 使用方式
本 phase 通常由 meegle-plugin 的 router 自动路由进入(见上层 [`../SKILL.md`](../SKILL.md) §1 入口 SOP)。触发本 skill 时用自然语言描述意图即可,router 会按 cwd context + 意图路由到本 phase。
**显式入口**(高级用法 / 调试 / 断点续跑):触发本 skill 时显式说 `phase=publish` 或 `phase=publish mode=<modename>`,可跳过 router 的 phase 选择,直接进入指定 step。
可用 mode:
- `mode=pipeline`(默认)— 端到端全流程
- `mode=pre-check` — 仅语法预检,不构建
- `mode=apply` — 执行同步 + 构建 + 发布
- `mode=verify` — 确认发布状态
## 各模式详细流程
- `mode=pre-check` → 读取 `publish-pre-check.md`
- `mode=apply` → 读取 `publish-apply.md`
- `mode=verify` → 读取 `publish-verify.md`
> 错误处理、`lpm publish` 完整参数、产物版本号 / 发布版本号 / 分享链接的输出格式等细节见 [`publish-apply.md`](publish-apply.md)(分散在 A0/A1/A2/A3 各步骤 + 各自的失败处理)。