From 3f9e70cf5381fabb8dc6be2baa3f9f840a0fbf98 Mon Sep 17 00:00:00 2001 From: ZxR <3193291180@qq.com> Date: Fri, 3 Jul 2026 09:52:55 +0800 Subject: [PATCH] =?UTF-8?q?gate=E4=B8=8Ebootstrap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../skills/gitlink-project-bootstrap/SKILL.md | 78 +++++++++++ .../skills/gitlink-quality-gate/SKILL.md | 122 ++++++++++++++++++ 2 files changed, 200 insertions(+) create mode 100644 examples/workflows/gitlink-ops-platform/skills/gitlink-project-bootstrap/SKILL.md create mode 100644 examples/workflows/gitlink-ops-platform/skills/gitlink-quality-gate/SKILL.md diff --git a/examples/workflows/gitlink-ops-platform/skills/gitlink-project-bootstrap/SKILL.md b/examples/workflows/gitlink-ops-platform/skills/gitlink-project-bootstrap/SKILL.md new file mode 100644 index 0000000..d9d02ef --- /dev/null +++ b/examples/workflows/gitlink-ops-platform/skills/gitlink-project-bootstrap/SKILL.md @@ -0,0 +1,78 @@ +--- +name: gitlink-project-bootstrap +version: 3.0.0 +description: "项目初始化编排:依次调度 gitlink-repo → gitlink-issue → gitlink-milestone 三个子 Skill。当用户需要快速初始化一个新项目时触发。" +metadata: + requires: + bins: ["gitlink-cli"] + cliHelp: "gitlink-cli repo --help" +--- + +# gitlink-project-bootstrap(项目初始化 · 编排 Skill) + +> **你是编排者(Orchestrator),不是执行者。每一步都通过 Skill 工具调用对应的子 Skill 来完成。不要自己直接跑命令。** + +--- + +## 编排架构 + +``` +gitlink-project-bootstrap + ├── Step 1 → Skill("gitlink-repo") 建仓库 + 生成标配文件 + ├── Step 2 → Skill("gitlink-issue") 创建初始 Issue + └── Step 3 → Skill("gitlink-milestone") 创建里程碑 +``` + +## 子 Skill 依赖 + +| 子 Skill | 用途 | 写入 | +|----------|------|:----:| +| gitlink-repo | 创建仓库 + README/LICENSE/.gitignore/CI 配置 | 是 | +| gitlink-issue | 创建初始开发 Issue | 是 | +| gitlink-milestone | 设定版本里程碑 | 是 | + +--- + +## 前置:收集参数 + +开始前确认以下信息(未提供则询问用户): + +| 参数 | 说明 | 示例 | +|------|------|------| +| 项目名称 | kebab-case | `hello-demo` | +| 项目描述 | 一句话 | `Python 演示项目` | +| owner | 归属用户/组织 | `ZxR123-Z` | +| 项目类型 | 决定 .gitignore 和 CI 模板 | `Python` | +| 可见性 | 公开/私有 | 公开 | + +--- + +## 工作流 + +### Step 1:建仓库 + 生成文件 + +**→ 调用 Skill 工具:`Skill("gitlink-repo", args="在 下创建仓库 ,描述:<描述>。然后生成 README.md、LICENSE(MIT)、.gitignore(<项目类型>)、.gitlink-ci.yml 文件。注意 create_file 需要 base64 编码 content,Windows 下需要 MSYS_NO_PATHCONV=1。")`** + +调用后记录 owner/repo 名称,传递给后续步骤。 + +### Step 2:创建初始 Issue + +**→ 调用 Skill 工具:`Skill("gitlink-issue", args="在 / 下创建 3 个初始 Issue:(1) 项目初始化:搭建基础架构,(2) feat: 实现核心功能 MVP,(3) test: 补充单元测试和集成测试。每个 Issue 的 body 包含目标描述和任务清单。")`** + +### Step 3:创建里程碑 + +**→ 调用 Skill 工具:`Skill("gitlink-milestone", args="在 / 下创建两个里程碑:v0.1.0 MVP(截止 2 周后)和 v1.0.0 正式版(截止 2 个月后)。")`** + +--- + +## 最终输出 + +三个子 Skill 执行完毕后,汇总输出: + +```markdown +## 🚀 项目初始化报告 — / +- URL: https://www.gitlink.org.cn// +- 生成文件:README.md / LICENSE / .gitignore / .gitlink-ci.yml +- 初始 Issue:#1 基础架构 / #2 MVP / #3 测试 +- 里程碑:v0.1.0 MVP / v1.0.0 正式版 +``` diff --git a/examples/workflows/gitlink-ops-platform/skills/gitlink-quality-gate/SKILL.md b/examples/workflows/gitlink-ops-platform/skills/gitlink-quality-gate/SKILL.md new file mode 100644 index 0000000..4145755 --- /dev/null +++ b/examples/workflows/gitlink-ops-platform/skills/gitlink-quality-gate/SKILL.md @@ -0,0 +1,122 @@ +--- +name: gitlink-quality-gate +version: 3.0.0 +description: "质量看门编排:依次调度 gitlink-pr → gitlink-code-review → gitlink-ci → gitlink-pr 四个子 Skill。当用户需要对 PR 做质量门禁检查时触发。" +metadata: + requires: + bins: ["gitlink-cli"] + cliHelp: "gitlink-cli pr --help" +--- + +# gitlink-quality-gate(质量看门 · 编排 Skill) + +> **你是编排者(Orchestrator),不是执行者。每一步都通过 Skill 工具调用对应的子 Skill 来完成。不要自己直接跑命令。** + +--- + +## 编排架构 + +``` +gitlink-quality-gate + ├── Step 1 → Skill("gitlink-pr") 列出 PR,确定审查目标 + ├── Step 2 → Skill("gitlink-code-review") 代码审查,生成分级报告 + ├── Step 3 → Skill("gitlink-ci") 检查 CI 构建状态 + └── Step 4 → Skill("gitlink-pr") 汇总判定:合并 or 驳回 +``` + +## 子 Skill 依赖 + +| 顺序 | 子 Skill | 用途 | 写入 | +|:----:|----------|------|:----:| +| 1 | gitlink-pr | 列出开放 PR,获取 PR 详情 | 否 | +| 2 | gitlink-code-review | 获取变更 → 逐文件分析 → 分级报告 → 提交 Review | 是 | +| 3 | gitlink-ci | 查看构建列表和日志,判定 CI 状态 | 否 | +| 4 | gitlink-pr | 门禁判定:达标合并,不达标评论驳回 | 是 | + +--- + +## 前置:收集参数 + +| 参数 | 说明 | 示例 | +|------|------|------| +| owner | 仓库所有者 | `ylly` | +| repo | 仓库名称 | `gitlink-cli` | +| PR 编号(可选) | 指定审查哪个 PR | 如果不提供,自动列出开放 PR | + +--- + +## 工作流 + +### Step 1:找 PR + +**→ 调用 Skill 工具:`Skill("gitlink-pr", args="列出 / 的所有开放 PR(state=open),确认待审查的 PR 编号。如果没有开放 PR,按 Fork 流程自己提一个测试 PR。")`** + +调用后记录 PR 编号、标题、分支信息,传递给 Step 2。 + +### Step 2:代码审查 + +**→ 调用 Skill 工具:`Skill("gitlink-code-review", args="对 / 的 PR # 执行完整代码审查:获取变更文件 → 逐文件分析(按语言检查清单)→ 按 Critical/Warning/Suggestion/Positive 分级 → 生成审查报告。")`** + +调用后记录审查结果(Critical/Warning/Suggestion 数量),传递给 Step 4。 + +**⚠️ 审查报告的提交方式(关键)**: + +审查结束后,必须用以下方式**各提交一次**,确保报告同时出现在审查记录和 PR 讨论流中: + +**提交 1:审查记录(必须用 common,禁止用 approved)** +```bash +gitlink-cli pr +review --owner --repo --id \ + --status common \ + --content "<审查报告 Markdown>" +``` +> `--status common` = API 的 `event: "COMMENT"`,报告会出现在 PR 的 Review 记录中。 +> **绝对不要用 `--status approved`**,那只是点了个「通过」按钮,审查报告正文不显眼。 + +**提交 2:PR 评论(可选,让报告更显眼)** +```bash +gitlink-cli pr +comment --owner --repo --id \ + --body "<审查报告 Markdown>" +``` + +**⚠️ Windows 避免 emoji 乱码**:审查报告中的 🔴🟡🔵✅⚠️ 等 emoji 在 Windows Git Bash 下会变成 `?`。审查报告中使用纯文本标记替代: +- `[Critical]` 替代 🔴 +- `[Warning]` 替代 🟡 +- `[Suggestion]` 替代 🔵 +- `[Positive]` 替代 ✅ +- `[Skip]` 替代 ⚠️ + +### Step 3:CI 检查 + +**→ 调用 Skill 工具:`Skill("gitlink-ci", args="查看 / 的 CI 构建列表和日志,判定构建状态(通过/失败/运行中/无配置)。")`** + +调用后记录 CI 状态(通过/失败/无配置),传递给 Step 4。 + +### Step 4:门禁判定 + +**→ 调用 Skill 工具:`Skill("gitlink-pr", args="汇总 PR # 的审查结果(Critical=N, Warning=N)和 CI 状态(<状态>)。判定规则:Critical=0 且 CI 通过 → 合并(pr +merge);否则 → 评论驳回(pr +comment)。合并前确认用户意图。")`** + +--- + +## 门禁判定矩阵 + +| Critical | CI 状态 | 判定 | 动作 | +|:--------:|:------:|:----:|------| +| 0 | ✅ 通过 | ✅ 合并 | `pr +merge` | +| 0 | ⚠️ 无 CI | ✅ 合并(弱) | 标注"无 CI"后合并 | +| > 0 | 任意 | ❌ 驳回 | 评论修改建议 | +| 任意 | ❌ 失败 | ❌ 驳回 | 评论 + CI 日志 | + +--- + +## 最终输出 + +四个子 Skill 执行完毕后,汇总输出: + +```markdown +## 📋 质量门禁报告 — PR # +| 门禁项 | 状态 | 详情 | +|--------|:----:|------| +| 🔍 代码审查 | ✅/❌ | Critical: N, Warning: N | +| 🔧 CI 构建 | ✅/❌/⚠️ | <摘要> | +| 📋 最终判定 | 通过/驳回 | <理由> | +```