Skip to content

go-ci-workflow Skill 评估报告

评估日期: 2026-03-12 评估对象: go-ci-workflow 评估方法: skill-creator 框架 (3 场景 × 2 配置 = 6 次运行)

参考基准: issue2md 项目(https://github.com/johnqtcg/issue2md) 真实 CI 工作流 (.github/workflows/ci.yml)


go-ci-workflow 是一个面向 Go 仓库的 GitHub Actions CI 设计与重构 skill,用于根据仓库结构、Makefile 入口和测试类型生成诚实、可维护、与本地执行方式一致的 CI 工作流。它最突出的三个亮点是:先做 repository shape 检测,再决定 workflow 架构,避免把不适合的 CI 模板硬套到仓库上;强强调 Make-driven delegation,并在缺少稳定入口时提供显式 fallback,保证“本地怎么跑,CI 就尽量怎么跑”;同时对工具版本锁定、输出合约和本地等价标记有统一规范,便于长期维护和排障。

一、评估概览

本次评估从实际任务表现Token 效费比两个维度对 go-ci-workflow skill 进行全面评审。利用 issue2md 项目的真实 Makefile 和 CI 工作流作为参考基准,设计 3 个递进场景,共 35 条 assertion 进行评分。

维度 With Skill Without Skill 差异
Assertion 通过率 35/35 (100%) 23.5/35 (67%) +33 百分点
Make-driven 委托 3/3 场景完全 2/3(场景 3 无 Makefile 不适用,场景 1 baseline docker 用 inline) Skill 确保一致委托
Output Contract 3/3 0/3 Skill 独有
本地等价标记 3/3 0/3 Skill 独有
工具版本锁定 3/3 2/3(场景 3 baseline 用 @latest) Skill 一致
Skill Token 开销 (SKILL.md) ~1,500 tokens 0
Skill Token 开销(典型加载) ~4,500 tokens 0
每 1% 通过率提升的 Token 成本 ~45 (SKILL.md) / ~136 (typical)

二、测试方法

2.1 场景设计

场景 仓库 核心考察点 Assertions
Eval 1: 从零创建 CI issue2md 完整仓库(删除 ci.yml) 仓库形状检测、Make 委托、Job 分离、触发策略、输出合约 15
Eval 2: 重构劣质 CI issue2md + 10 处反模式的 ci.yml 反模式识别与修复、Make 委托、条件化昂贵 Job 12
Eval 3: 无 Makefile 库 极简 Go 库(无 cmd/、无 Makefile) 降级输出、Inline Fallback 标记、本地等价标记 8

2.2 参考基准

issue2md 项目真实 CI 工作流特征: - 6 个独立 Job: ci, docker-build, api-integration, e2e-web, govulncheck, fieldalignment - 核心 Gate 通过 make ci COVER_MIN=80 委托 - E2E 仅在 push/schedule 触发 - 工具版本与 Makefile 精确对齐 - 无 concurrency(可改进点)


三、Assertion 通过率

3.1 场景 1:从零创建 CI (15 项)

ID 断言 With-Skill Without-Skill
A1 检测仓库形状为 single-module service PASS FAIL
A2 核心 Gate 使用 make ci COVER_MIN=80 PASS PASS
A3 Docker 使用 make docker-build PASS FAIL
A4 Integration 使用 make ci-api-integration PASS PASS
A5 E2E 条件化 (push/schedule) PASS PASS
A6 go-version-file: go.mod PASS PASS
A7 cache: true PASS PASS
A8 工具版本精确锁定 PASS PASS
A9 Job 分离(非单一 Job) PASS PASS
A10 Concurrency 控制 PASS PASS
A11 触发策略完整 (push main + PR + schedule) PASS PASS
A12 permissions: contents: read PASS PASS
A13 E2E 不在 PR 触发 PASS PASS
A14 Output Contract 完整 PASS FAIL
A15 工具版本与 Makefile 对齐 PASS PASS
合计 15/15 (100%) 12/15 (80%)

3.2 场景 2:重构劣质 CI (12 项)

ID 断言 With-Skill Without-Skill
B1 Inline go testmake ci PASS PASS
B2 硬编码 go-version: '1.22'go-version-file: go.mod PASS PASS
B3 @latest → 锁定版本 PASS PASS
B4 单 Job → 多 Job 分离 PASS PASS
B5 添加 Concurrency PASS PASS
B6 添加 permissions: contents: read PASS PASS
B7 E2E 条件化 (push/schedule) PASS PASS
B8 Docker Build Job 使用 make target PASS PASS
B9 cache: true PASS PASS
B10 timeout-minutes PASS PASS
B11 核心 Gate 使用 Make target PASS PASS
B12 Output Contract 完整 PASS FAIL
合计 12/12 (100%) 11/12 (92%)

3.3 场景 3:无 Makefile Go 库 (8 项)

ID 断言 With-Skill Without-Skill
C1 检测为 library(非 application) PASS PARTIAL
C2 使用 inline fallback 并明确标记 PASS FAIL
C3 标记 local parity 为 PARTIAL PASS FAIL
C4 推荐添加 Makefile PASS FAIL
C5 工具版本锁定(非 @latest) PASS FAIL
C6 Concurrency 控制 PASS FAIL
C7 go-version-file: go.mod PASS FAIL
C8 Output Contract 完整 PASS FAIL
合计 8/8 (100%) 0.5/8 (6%)

3.4 总览

场景 Assertions With Skill Without Skill 差值
Eval 1: 从零创建 15 15/15 (100%) 12/15 (80%) +20pp
Eval 2: 重构劣质 CI 12 12/12 (100%) 11/12 (92%) +8pp
Eval 3: 无 Makefile 库 8 8/8 (100%) 0.5/8 (6%) +94pp
总计 35 35/35 (100%) 23.5/35 (67%) +33pp

3.5 趋势分析:Skill 优势随提示信息量反向变化

场景 提示中的结构信息量 Without-Skill 通过率 Delta
Eval 2(重构) 高 — 明确列出 10 处问题 92% +8pp
Eval 1(创建) 中 — 列出 Makefile targets 80% +20pp
Eval 3(降级) 低 — 仅描述结构 6% +94pp

结论: 当提示本身包含足够多的结构信息时,Baseline 能达到接近 Skill 的水平。但当提示信息量低(如场景 3),Baseline 完全缺乏 Skill 提供的降级处理、等价标记等概念。Skill 的核心价值在于结构化的知识补全,尤其是提示中未提及的最佳实践。


四、与真实 CI 的对比分析

issue2md 项目有一个人工编写的高质量 CI 工作流。将 With-Skill 输出与真实 CI 对比:

特征 真实 CI With-Skill Without-Skill
Job 数量 6 5 4
核心 Gate make ci COVER_MIN=80 make ci COVER_MIN=80 make ci(无 COVER_MIN)
Docker make docker-build make docker-build docker build -f ...(inline)
API Integration make ci-api-integration make ci-api-integration make ci-api-integration
E2E make ci-e2e-web (push/schedule) make ci-e2e-web (push/schedule) ✅ make ci-e2e-web + 多余的 server startup
govulncheck 独立 Job 独立 Job ✅
fieldalignment 独立 Job
Concurrency 有 ✅(改进了真实 CI)
Permissions permissions: {} + job-level ✅ contents: read
timeout-minutes 无(场景 1)

关键发现: - With-Skill 输出在 Job 架构和 Make 委托上与真实 CI 高度一致 - With-Skill 甚至改进了真实 CI(添加了 concurrency 和 permissions,真实 CI 缺少这两项) - Without-Skill 的 Docker 构建使用 inline 命令而非 make docker-build,违反本地等价原则 - Without-Skill 的 E2E Job 添加了不必要的 server startup 逻辑(curl 轮询等),增加了复杂性


五、逐维度对比分析

5.1 Make-driven 委托(核心差异)

维度 With Skill Without Skill
场景 1 Core Gate make ci COVER_MIN=80 make ci(缺少 COVER_MIN)
场景 1 Docker make docker-build docker build -f Dockerfile ...(inline)
场景 1 E2E make ci-e2e-web make ci-e2e-web + 冗余 server startup
场景 2 Core Gate make ci COVER_MIN=80 make ci COVER_MIN=80
场景 2 Docker make docker-build make docker-build

Skill 的 "Execution Priority" 规则确保了一致的 Make 委托。Baseline 在场景 2(有明确提示)中做到了一致委托,但在场景 1(无提示)中 Docker 构建回退为 inline。

5.2 Output Contract(Skill 独有)

With-Skill 在每个场景均产出结构化报告:

报告项 场景 1 场景 2 场景 3
仓库形状分类 single-module service single-module service single-module library
Job 列表 + 执行路径 5 jobs, all paths 4 jobs, before/after 2 jobs, all inline
触发策略 PR/push/schedule PR/push/schedule PR/push
Permissions permissions: {} + job-level contents: read contents: read
工具版本对齐 ✅ 与 Makefile 匹配 ✅ 与 Makefile 匹配 ✅ pinned
缺失 targets install-tools, govulncheck 全部 — Makefile 不存在
验证结果 YAML + make dry-run YAML + make verify YAML syntax
后续建议 3 项 3 项 4 项

Without-Skill 均无此类结构化输出。

5.3 降级处理(场景 3 关键差异)

维度 With-Skill Without-Skill
Inline 标记 每步标记 (inline fallback) 无标记,直接使用 inline
Local Parity 标记 文件头注释 + Output Contract 均标注 PARTIAL 无提及
推荐后续 "Add Makefile with go-makefile-writer skill"
工具版本 golangci-lint v1.62.2 pinned version: latest
Go 版本 go-version-file: go.mod 硬编码 "1.23" + matrix ["1.23","1.24"]
Concurrency
Format check gofmt -l . + error annotation
Coverage check 有(含阈值检查) go tool cover -func 仅打印(无阈值)

场景 3 暴露了 Baseline 在 无结构化指导 下的最大弱点: - 使用 @latest(非确定性构建) - 硬编码 Go 版本 - 无 concurrency - 无降级意识(不知道自己缺少 Makefile 应该标注)

5.4 安全与权限

维度 With-Skill Without-Skill
场景 1 权限 permissions: {} workflow + job-level contents: read contents: read workflow-level
场景 2 权限 contents: read contents: read
场景 3 权限 contents: read contents: read
Fork PR 安全 明确分析无 secret 暴露 无提及

两者都设置了 permissions,但 With-Skill 在场景 1 使用了更严格的 deny-all default (permissions: {}) + job-level escalation 模式,并在 Output Contract 中显式分析了 Fork PR 安全性。


六、Token 效费比分析

6.1 Skill 体积

文件 行数 估算 Token 加载时机
SKILL.md 236 ~1,500 始终加载
references/workflow-quality-guide.md 445 ~3,000 标准场景加载
references/golden-examples.md 385 ~2,600 需要 YAML 模板时加载
references/repository-shapes.md 199 ~1,300 monorepo/复杂场景加载
references/github-actions-advanced-patterns.md 307 ~2,000 安全/高级功能时加载
references/fallback-and-scaffolding.md 49 ~300 无 Makefile 时加载
references/pr-checklist.md 66 ~400 PR review 时加载
scripts/discover_ci_needs.sh 77 ~500 仓库检测时加载
全部参考资料 1,528 ~10,100

6.2 典型加载场景

场景 读取文件 总 Token
标准服务仓库(Eval 1) SKILL.md + quality-guide + golden-examples ~7,100
重构工作流(Eval 2) SKILL.md + quality-guide ~4,500
无 Makefile 降级(Eval 3) SKILL.md + fallback ~1,800
仅 SKILL.md(最小加载) SKILL.md ~1,500
全量加载 全部 ~11,600

6.3 效费比计算

指标 数值
With-skill 通过率 100% (35/35)
Without-skill 通过率 67% (23.5/35)
通过率提升 +33 百分点
每 1% 提升的 Token 成本(SKILL.md only) ~45 tok
每 1% 提升的 Token 成本(典型加载 ~4,500) ~136 tok
每 1% 提升的 Token 成本(全量加载 ~11,600) ~352 tok

6.4 与其他 Skill 效费比对比

Skill SKILL.md Token 通过率 delta Tokens/1% (SKILL.md) Tokens/1% (typical)
create-pr ~2,500 +71pp ~35 ~48
git-commit ~1,150 +22pp ~51 ~51
go-makefile-writer ~1,960 +31pp ~63 ~149
go-ci-workflow ~1,500 +33pp ~45 ~136

go-ci-workflowSKILL.md 效费比最优(~45 tok/1%),但参考资料体量大(~10,100 tokens),导致典型加载的效费比较差(~136 tok/1%)。这与 go-makefile-writer 的模式类似。

6.5 Token 分段效费比

模块 Token 估算 关联差异 效费比
Execution Priority(Make 委托规则) ~80 2 条(场景 1 docker, COVER_MIN) 极高
Output Contract 定义 ~150 3 条(3 场景结构化报告) 极高
Mandatory Gates(含 Local Parity) ~300 3 条(场景 3 parity + fallback)
Job Architecture Rules ~100 间接(Job 分离一致性)
Degraded Output Gate ~80 3 条(场景 3 全部降级行为) 极高
Go Setup/Tooling Rules ~80 1 条(场景 3 go-version-file)
Trigger Rules ~60 间接(E2E 条件化)
workflow-quality-guide.md ~3,000 间接(Job 设计质量) — 最大单文件
golden-examples.md ~2,600 间接(YAML 结构模板)
repository-shapes.md ~1,300 0 条直接(未测试 monorepo) — 未测试场景
advanced-patterns.md ~2,000 0 条直接(未测试安全场景) — 未测试场景

高杠杆指令(~610 tokens SKILL.md → 11.5 条 assertion 差值)占 SKILL.md 的 ~41%,贡献了全部直接差异。


七、综合评分

7.1 分维度评分

维度 With Skill Without Skill 差值
Make-driven 委托一致性 5.0/5 3.5/5 +1.5
Job 架构与触发策略 5.0/5 4.0/5 +1.0
工具版本锁定与对齐 5.0/5 3.5/5 +1.5
降级处理与等价标记 5.0/5 0.5/5 +4.5
结构化报告(Output Contract) 5.0/5 1.0/5 +4.0
安全与权限 4.5/5 3.5/5 +1.0
综合均值 4.92/5 2.67/5 +2.25

7.2 加权总分

维度 权重 得分 理由 加权
Assertion 通过率 delta 25% 9.0/10 +33pp,受场景 2 高 baseline 拉低整体 delta 2.25
Make-driven 委托一致性 20% 9.5/10 3/3 场景全 Make 委托;场景 1 COVER_MIN 对齐 1.90
降级处理(Local Parity + Fallback 标记) 15% 10.0/10 场景 3 完美降级:inline 标记 + parity PARTIAL + 推荐 Makefile 1.50
结构化报告(Output Contract) 15% 10.0/10 3/3 场景完整合约 1.50
Token 效费比 15% 5.5/10 SKILL.md 高效 (~45),但参考资料体量大 (~10,100 tok 全量) 0.83
安全与权限 10% 8.5/10 deny-all default + job-level 提升优秀;fork PR 分析 0.85
加权总分 100% 8.83/10

7.3 与其他 Skill 综合评分对比

Skill 加权总分 通过率 delta Tokens/1% (typical) 最大优势维度
create-pr 9.55/10 +71pp ~48 Gate 流程 (+3.5)、Output Contract (+4.0)
go-makefile-writer 9.16/10 +31pp ~149 CI 可复现性 (+3.0)、Output Contract (+4.0)
go-ci-workflow 8.83/10 +33pp ~136 降级处理 (+4.5)、Output Contract (+4.0)

go-ci-workflow 综合评分略低于前两个 skill,主要受限于 Token 效费比维度(5.5/10)。参考资料总量 ~10,100 tokens 是所有已评估 skill 中最大的,而典型加载 ~4,500 tokens 的效费比(~136 tok/1%)也偏高。

失分分析: - Token 效费比 (5.5/10): 参考资料过于庞大。workflow-quality-guide.md(445 行)和 golden-examples.md(385 行)合计占 ~5,600 tokens,但在评估中只提供间接贡献 - Assertion delta (9.0/10): 场景 2 的 delta 仅 +8pp(baseline 已达 92%),拉低了整体 delta

亮点: - 降级处理 (10.0/10): 场景 3 的 +94pp delta 是所有已评估 skill 中单场景最大差异,证明了 Degraded Output Gate 的独特价值 - SKILL.md 效费比: ~45 tok/1% 是所有 skill 中最优的,说明核心规则本身非常紧凑高效


八、结论

go-ci-workflow skill 在三个核心领域提供了显著价值:

  1. 降级处理(+94pp 单场景 delta): 这是所有已评估 skill 中单场景最大差异,证明了 Degraded Output Gate 和 Local Parity 标记的独特价值。Baseline 模型在无 Makefile 环境下完全缺乏降级意识。

  2. Make-driven 委托一致性: 确保所有 Job 通过 Makefile targets 执行,与本地开发行为一致。Baseline 在无明确提示时会退化为 inline 命令(如场景 1 的 Docker 构建)。

  3. Output Contract: 结构化报告使 CI 工作流变更可审计、可追溯,包括仓库形状、执行路径分类、缺失 targets 等关键信息。

主要风险: 参考资料总量 ~10,100 tokens 是所有已评估 skill 中最大的,典型加载 ~4,500 tokens。通过精简 workflow-quality-guide.mdgolden-examples.md,可减少 ~24% 的 token 开销,将 tokens/1% 从 ~136 降至 ~103。

与真实 CI 的对比验证了 skill 的实用性: With-Skill 输出不仅匹配了 issue2md 项目手工编写的 CI 质量,还在 concurrency 和 permissions 两个维度上改进了真实 CI。