---
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 各步骤 + 各自的失败处理）。
