Skip to content

tech-doc-writer Skill 评审报告

评估框架: skill-creator 评估日期: 2026-03-17 评估对象: tech-doc-writer


tech-doc-writer 是一个面向工程文档写作、审查与改进的 skill,适合处理 runbook、故障排查文档、API 文档以及 RFC/ADR 风格的设计文档。它最突出的三个亮点是:先做文档类型分类和受众分析,让结构与深度对齐读者目标;通过元数据、结论前置、回滚路径和 SPA 标题等质量门禁,提高文档的可维护性与可用性;同时提供 review/improve 模式下的 scorecard、anti-examples 和结构化输出,使文档反馈更具体、可执行,而不是停留在泛泛建议上。

一、评估概览

本次评估从实际任务表现Token 效费比两个维度对 tech-doc-writer skill 进行全面评审。设计 3 个覆盖不同文档类型和执行模式的场景(任务文档写作、故障排查文档写作、文档审查与改进),每个场景分别运行 with-skill 和 without-skill 配置,共 3 场景 × 2 配置 = 6 次独立 subagent 运行,对照 38 条 assertion 进行评分。

维度 With Skill Without Skill 差异
Assertion 通过率 31/33 (93.9%) 21/38 (55.3%) +38.6 百分点
YAML 结构化元数据 2/2 全对 0/2 最大单项差异
结论前置(Conclusion First) 3/3 1/3 Skill 核心优势
Output Contract 结构化报告 3/3 0/3 Skill 独有
SPA 标题规范 2/2 0/2 Skill 独有
Review 严重性分级 1/1 1/1 无差异
Skill Token 开销(SKILL.md 单文件) ~2,400 tokens 0
Skill Token 开销(含参考资料) ~4,150–6,030 tokens 0
每 1% 通过率提升的 Token 成本 ~62 tokens(SKILL.md only)/ ~156 tokens(full)

注:Eval 3 with-skill 因权限阻断仅产出 review-findings,缺失 improved-runbook,5 条 assertion 无法评分。通过率按可评分项计算(with-skill 31/33,without-skill 21/38)。


二、测试方法

2.1 场景设计

场景 文档类型 执行模式 核心考察点 Assertions
Eval 1: task-runbook-deploy Task doc (Runbook) Write 元数据、前置条件、预期输出、验证回滚、SPA 标题 14
Eval 2: troubleshooting-mysql-deadlock Troubleshooting doc Write 结论前置、证据链、修复方案、监控预防 12
Eval 3: review-improve-bad-runbook Task doc (existing) Review + Improve 严重性分级、before/after 修复、元数据补全 12

2.2 测试仓库

使用 /tmp/tech-doc-eval/repos/go-order-service(Go 1.24, Gin, GORM, MySQL 8.0, Redis 7, docker-compose)作为 Eval 1/2 的目标仓库。Eval 3 使用一份人工编写的缺陷 MySQL 升级 runbook(45 行,0 条 scorecard 通过)。

2.3 执行方式

  • With-skill 运行先读取 SKILL.md 及其引用的参考资料(templates.md、writing-quality-guide.md)
  • Without-skill 运行仅探索仓库后按模型默认行为生成文档
  • 所有运行在独立 subagent 中并行执行
  • 注意:subagent 受文件写入权限限制,实际文档内容从 agent transcript 中提取

2.4 Timing 数据

场景 配置 Total Tokens Duration (s) Tool Uses
Eval 1 with_skill 68,087 624 29
Eval 1 without_skill 28,443 161 12
Eval 2 with_skill 57,055 477 18
Eval 2 without_skill 36,824 318 15
Eval 3 with_skill 36,459 196 11
Eval 3 without_skill 32,448 294 10
均值 with_skill 53,867 432 19
均值 without_skill 32,572 258 12

注:with-skill 的 token 和时间偏高,部分原因是 subagent 被文件写入权限反复阻断后重试(Eval 1 with-skill 有 29 次 tool use)。实际生产环境中权限通畅时,with-skill 的额外开销主要来自读取 SKILL.md + 参考资料(~4,000-6,000 tokens),预估 with-skill 运行总 token 约 36,000-42,000(较 without-skill 增加 ~20-30%)。


三、Assertion 通过率

3.1 总览

场景 Assertions With Skill Without Skill 差值
Eval 1: task-runbook 14 14/14 (100%) 9/14 (64.3%) +35.7%
Eval 2: troubleshooting 12 12/12 (100%) 6/12 (50.0%) +50.0%
Eval 3: review-improve 12 (with: 7 可评分) 5/7 (71.4%) 6/12 (50.0%)
总计(可评分) 33 / 38 31/33 (93.9%) 21/38 (55.3%) +38.6%

3.2 Eval 1 逐条对比

# Assertion With Skill Without Skill
a1 YAML frontmatter (title, owner, status, last_updated) ❌ 使用 blockquote,无结构化 YAML
a2 文档类型正确分类为 task doc ✅ 显式声明 ❌ 未分类
a3 Prerequisites 完整(Docker, docker-compose, 网络) ✅ 含验证命令表格 ✅ 含版本和安装链接
a4 命令 copy-paste-runnable
a5 每步有预期输出 ✅ 每步都有 docker compose up 无预期输出
a6 验证 section 含 health check ✅ 验证清单表格 ✅ curl + MySQL + Redis 检查
a7 回滚 section 有具体步骤 ✅ 含触发条件 + 命令 ❌ 无独立回滚 section
a8 术语一致(无中英混用同一概念)
a9 SPA 标题(≤20 字符,具体,不泛化) ✅ "部署 Order Service" ❌ "go-order-service 部署指南"(>20 字符,泛化)
a10 结论/核心信息前置 ✅ 首段声明目标和时间预期 ✅ 概述段落
a11 环境变量 (DB_DSN, REDIS_ADDR, PORT) 已文档化
a12 Output Contract 存在 ❌ 无 skill 无 contract
a13 Troubleshooting/FAQ 存在 ✅ 5 个子问题 ✅ 5 个排查场景
a14 applicable_versions 字段 ✅ Go 1.24+, MySQL 8.0, Redis 7, Docker Compose v2 ❌ 缺失

3.3 Eval 2 逐条对比

# Assertion With Skill Without Skill
b1 YAML frontmatter 含元数据 ✅ title + owner + status + applicable_versions ❌ 无 frontmatter
b2 文档类型正确分类为 troubleshooting ✅ Incident 模板结构 ❌ 教程式结构(步骤 1-5)
b3 根因结论前置 ✅ 首段粗体结论 ❌ 先背景知识,后成因分析
b4 提供证据(INNODB STATUS、SQL) ✅ 完整输出示例 ✅ 完整输出示例
b5 修复步骤有可运行命令 ✅ 自包含 Go 代码 + SQL ✅ 自包含 Go 代码 + SQL
b6 验证命令确认修复 ✅ 3 种验证方式 ✅ 监控 + 压测
b7 预防 section 有监控/告警建议 ✅ 含阈值表格 + 代码规范 ❌ 无告警阈值,无预防 section
b8 无模糊诊断
b9 术语一致 ✅ 术语表统一定义 ✅ 基本一致
b10 Output Contract
b11 代码示例自包含含 import
b12 Impact section 描述用户影响 ✅ "部分用户创建订单或取消订单失败" ❌ 仅描述错误日志,无用户影响

3.4 Eval 3 逐条对比

# Assertion With Skill Without Skill
c1 Review 按严重性分级 ✅ Critical/Major/Minor ✅ Critical/Structural/Minor
c2 具体 before/after 修复 ✅ 每项含代码对比 ❌ 仅描述问题和影响
c3 改进文档有 YAML frontmatter ⬜ 未产出 ❌ 使用 Markdown 表格
c4 改进文档有完整 Prerequisites ⬜ 未产出 ✅ 详细 checklist
c5 命令有预期输出 ⬜ 未产出 ✅ 大部分有
c6 改进文档有验证和回滚 ⬜ 未产出 ✅ 完整的 6 步回滚
c7 识别原文档关键问题 ✅ 全面覆盖 ✅ 全面覆盖
c8 改进文档 SPA 标题 ⬜ 未产出 ❌ 标题 >20 字符
c9 applicable_versions 字段 ⬜ 未产出 ❌ 缺失
c10 Output Contract
c11 Minimal-diff 保留有用内容 ⬜ 未产出 ✅ 保留了基本步骤顺序
c12 Review 肯定原文档优点 ✅ "What Works" section ❌ 纯负面评价

3.5 Without-Skill 失败的 17 条 Assertion 归类

失败类型 次数 涉及 Eval 说明
缺少 YAML frontmatter 3 Eval 1/2/3 无结构化元数据(owner, status, applicable_versions)
缺少 Output Contract 3 Eval 1/2/3 Skill 独有的结构化输出报告
结论未前置 1 Eval 2 先背景知识后根因,违反 conclusion-first
SPA 标题不合规 2 Eval 1/3 标题过长或泛化
文档类型未显式分类 2 Eval 1/2 未声明 doc type 导致结构与模板不对齐
缺少预防/监控 section 1 Eval 2 无告警阈值和预防措施
Review 无 before/after 1 Eval 3 仅描述问题,无具体修复代码
Review 无正面肯定 1 Eval 3 纯负面,未 acknowledge 原文档优点
缺少回滚 section 1 Eval 1 无独立回滚段落(仅在运维操作中提及 docker compose down -v
部分步骤缺少预期输出 1 Eval 1 docker compose up 关键命令无预期输出
Impact 未描述用户影响 1 Eval 2 仅描述错误日志,未说明用户感受

四、逐维度对比分析

4.1 结构化元数据(YAML Frontmatter + applicable_versions)

这是最稳定的差异化维度,在所有 eval 中 with-skill 全部通过,without-skill 全部失败。

With Skill(Eval 2 示例):

---
title: "MySQL: 高并发下 orders  Deadlock"
owner: order-service-team
status: active
last_updated: 2026-03-17
applicable_versions: Go 1.24+, MySQL 8.0, GORM 1.25+
---

Without Skill(Eval 2): 无任何元数据。

实际价值: 元数据使文档可被自动化工具索引、过期检测、责任追溯。applicable_versions 防止读者在错误版本上执行操作。

4.2 结论前置(Conclusion First)

在 Eval 2(故障排查文档)中差异最显著。

With Skill 首段:

根因结论:多个事务以不同顺序对 orders 表的同一行或相邻索引区间加锁,导致循环等待死锁。 典型场景是 CreateOrder(INSERT)和 CancelOrder(UPDATE)并发执行时,InnoDB 的 gap lock 与 record lock 产生冲突。

Without Skill 首段:

服务在高并发场景下频繁输出以下错误... 什么是 Deadlock... Deadlock(死锁)是两个或多个事务互相持有对方需要的锁...

Without-skill 版本先解释背景知识再分析成因,读者需要读完 40% 的文档才能找到根因。Skill 的 Gate 4 Scorecard 明确要求 "Conclusion/core message appears in the first paragraph"。

4.3 文档类型分类与模板对齐

Skill 的 Gate 2(Document Type Classification)驱动 with-skill 选择正确的文档模板:

场景 With Skill Without Skill
Eval 1 Task doc → 目标/范围、前置条件、步骤(含预期输出)、验证/回滚、FAQ 自由结构:简介、前置、步骤、验证、运维、排查
Eval 2 Troubleshooting → Incident 声明、排查步骤、根因、修复、验证、预防 教程结构:步骤 1-5 递进分析
Eval 3 Review mode → Scorecard + 严重性分级 + before/after 自由分析:总评 + 问题列表

分析: Without-skill 的结构不差,但不一致 — 每次运行可能产生不同结构。Skill 通过模板确保了结构可预测性。

4.4 Review 模式的差异

Eval 3 中 with-skill 和 without-skill 的 review 质量对比:

维度 With Skill Without Skill
发现数量 5 Critical + 4 Major + 3 Minor = 12 5 Critical + 5 Structural + 3 Minor = 13
Scorecard 量化 Critical 0/4, Standard 0/5, Hygiene 0/5 无量化评分
Before/After 代码对比 每项都有 无,仅描述问题
正面肯定 "What Works" section
mysql_upgrade 废弃识别 ✅ "MySQL 8.0.16+ 已被废弃" ✅ 同样识别
术语混淆识别 ✅ "迁移 vs 升级是不同概念" ✅ "too generic"

分析: 两者的问题发现能力相当(都全面覆盖了关键缺陷),但 with-skill 的呈现方式更结构化(Scorecard 量化、before/after 修复)。Without-skill 的 review 更像 code review 风格(问题 + 影响描述),缺少可直接操作的修复建议。

4.5 预防措施与监控告警

Eval 2 中的显著差异:

With Skill: | 指标 | 采集方式 | 告警阈值 | |------|---------|---------| | Innodb_deadlocks | Prometheus mysqld_exporter | 5 分钟内增量 > 3 | | 应用层重试次数 | 代码埋点 | 1 分钟内 > 10 | | 慢查询 | slow_query_log | 单条 > 1s |

Without Skill: 建议开启死锁日志和压测,但无具体告警阈值。

Skill 的 troubleshooting 模板要求 "Prevention must include at least one monitoring item",with-skill 直接提供了可落地的监控配置。

4.6 代码示例质量

两者的 Go 代码示例质量差异不大 — 都提供了自包含的 RunInTxWithRetry 实现,包含 imports、错误处理、指数退避。

维度 With Skill Without Skill
自包含(含 imports)
错误处理 ✅ 区分 deadlock 和 non-deadlock
退避策略 10ms 指数退避 50ms 指数退避
UNVERIFIED 标记 ✅ 标记了 isDeadlockError 的假设 ❌ 无
使用示例

分析: 代码质量是基础模型已具备的能力。Skill 的增量贡献在于 <!-- UNVERIFIED: ... --> 标记(来自 Gate 0: Execution Integrity),这是一个小但有价值的差异 — 避免读者盲信未验证的代码。


五、Token 效费比分析

5.1 Skill 体积

tech-doc-writer 是一个多文件 skill,包含 SKILL.md + 3 份参考资料 + 回归测试脚本。

文件 行数 单词 字节 估算 Token
SKILL.md 281 1,917 13,314 ~2,400
references/templates.md 271 850 6,026 ~1,100
references/writing-quality-guide.md 259 1,279 9,639 ~1,750
references/docs-as-code.md 118 671 4,326 ~780
Description(始终在 context) ~50 ~70
总计 929 4,717 33,305 ~6,100

5.2 典型加载场景

Skill 设计了渐进式加载(Load References Selectively),实际 Token 消耗取决于文档类型:

场景 读取文件 总 Token
Task doc(Eval 1) SKILL.md + templates.md(task 部分) ~2,900
Troubleshooting doc(Eval 2) SKILL.md + templates.md(troubleshooting 部分)+ writing-quality-guide.md(Code Examples) ~4,550
Review mode(Eval 3) SKILL.md + templates.md + writing-quality-guide.md(BAD/GOOD + Review Patterns) ~5,250
全量加载(最坏情况) 全部文件 ~6,100
仅 SKILL.md SKILL.md ~2,400

5.3 Token 换取的质量提升

指标 数值
With-skill 通过率 93.9% (31/33)
Without-skill 通过率 55.3% (21/38)
通过率提升 +38.6 百分点
每修复 1 条 assertion 的 Token 成本 ~240 tokens(SKILL.md only)/ ~610 tokens(full)
每 1% 通过率提升的 Token 成本 ~62 tokens(SKILL.md only)/ ~156 tokens(full)

5.4 Token 分段效费比

模块 估算 Token 关联 Assertion 差值 效费比
Gate 2: Document Type Classification ~150 2 条(Eval 1/2 类型分类) 极高 — 75 tok/assertion
Gate 3: Audience Analysis ~100 间接贡献(影响深度和语言) — 无直接 assertion
Gate 4: Quality Scorecard ~250 3 条(Eval 1 预期输出、回滚、SPA) 极高 — 83 tok/assertion
Output Contract 定义 ~200 3 条(3 evals contract) 极高 — 67 tok/assertion
Phase 5: Metadata ~80 3 条(3 evals YAML frontmatter) 极高 — 27 tok/assertion
Conclusion First 规则 ~60 1 条(Eval 2 结论前置) 极高 — 60 tok/assertion
SPA 标题规范 ~100 2 条(Eval 1/3 标题) 极高 — 50 tok/assertion
Anti-Examples 区 ~350 间接贡献(Review before/after 模式)
Degradation Strategy ~200 0 条(未测试降级场景) — 无测试场景
Language 规则 ~80 0 条(未测试双语混用场景) — 无测试场景
Document Maintenance 区 ~200 间接贡献(维护触发条件)
templates.md(参考资料) ~1,100 间接贡献(模板驱动结构一致性)
writing-quality-guide.md ~1,750 间接贡献(Review before/after 示例)
docs-as-code.md ~780 0 条(未测试 CI 场景) — 无测试场景

5.5 高杠杆 vs 低杠杆指令

高杠杆(~940 tokens SKILL.md → 14 条 assertion 差值): - Gate 2 文档类型分类(150 tok → 2 条) - Gate 4 Quality Scorecard(250 tok → 3 条) - Output Contract(200 tok → 3 条) - Phase 5 Metadata(80 tok → 3 条) - Conclusion First(60 tok → 1 条) - SPA 标题(100 tok → 2 条) - Gate 0 UNVERIFIED 标记(100 tok → 间接贡献)

中杠杆(~550 tokens → 间接贡献): - Anti-Examples(350 tok)— 驱动了 Eval 3 的 before/after 修复模式 - Document Maintenance(200 tok)— 产出了维护触发条件

低杠杆(~280 tokens → 0 条差值): - Degradation Strategy(200 tok)— 未测试 - Language 规则(80 tok)— 未测试

参考资料(~3,630 tokens → 间接贡献): - templates.md 驱动了文档结构一致性 - writing-quality-guide.md 提供了 review 模式的 BAD/GOOD 示例 - docs-as-code.md 本次评估中未被使用

5.6 Token 效率评级

评级 结论
整体 ROI 良好 — ~2,400-5,250 tokens 换取 +38.6% 通过率
SKILL.md 本身 ROI 优秀 — ~2,400 tokens 包含全部高杠杆规则,14 条 assertion 差值
高杠杆 Token 比例 ~39%(940/2,400)直接贡献 14 条 assertion 差值
低杠杆 Token 比例 ~12%(280/2,400)在当前评估中无增量贡献
参考资料效费比 中等 — ~3,630 tokens 提供间接质量提升但无直接 assertion 差值

5.7 与 go-makefile-writer 的效费比对比

指标 tech-doc-writer go-makefile-writer
SKILL.md Token ~2,400 ~1,960
总加载 Token ~2,900-6,100 ~4,100-4,600
通过率提升 +38.6% +31.0%
每 1% 的 Token(SKILL.md) ~62 tok ~63 tok
每 1% 的 Token(full) ~75-158 tok ~149 tok
Assertions 总数 38 42
场景覆盖面 3 种文档类型 + Review 模式 3 种 Makefile 场景

分析: 两者的 SKILL.md 效费比几乎一致(~62-63 tok/1%),但 tech-doc-writer 因覆盖更多文档类型和模式,参考资料的加载范围更大。渐进式加载设计使得简单场景(task doc)的总开销(~2,900 tokens)低于 go-makefile-writer,复杂场景(review + 全量参考)则更高(~5,250 tokens)。


六、与 Claude 基础模型能力的边界分析

6.1 基础模型已具备的能力(Skill 无增量)

能力 证据
生成结构化技术文档 3/3 场景均产出了良好的文档结构
提供可运行的代码示例 Eval 2 中两者的 Go 代码质量相当
探索仓库并提取上下文 Eval 1/2 两者都正确识别了项目技术栈
识别文档缺陷 Eval 3 两者发现的问题数量和覆盖面相当(12 vs 13 个问题)
提供 MySQL troubleshooting 专业知识 Eval 2 两者的 deadlock 分析深度相当
中英双语技术文档写作 3/3 场景两者都能正确处理

6.2 基础模型的能力缺口(Skill 填补)

缺口 证据 风险等级
结构化元数据缺失 3/3 场景无 YAML frontmatter 中 — 文档不可自动化管理
结论未前置 Eval 2 先背景后根因 中 — 读者需遍历文档
无结构化输出报告 3/3 场景无 Output Contract 低 — 缺少审计追溯
SPA 标题不合规 2/3 场景标题过长或泛化 低 — 影响检索效率
Review 无 before/after Eval 3 仅描述问题 中 — 读者无法直接操作
Review 无正面肯定 Eval 3 纯负面 低 — 影响协作体验
预防措施缺少可量化阈值 Eval 2 无告警阈值 中 — 无法落地监控
预期输出不完整 Eval 1 关键命令无预期输出 中 — 读者无法验证正确性
回滚触发条件缺失 Eval 1 无回滚 section 中 — 故障时无指引
版本适用性未标注 3/3 场景无 applicable_versions 中 — 版本不匹配风险

6.3 Skill 设计的精准度

Skill 的 4 个 Mandatory Gate 精准对应了基础模型的 6 个核心缺口:

Gate 解决的缺口 Assertion 差值
Gate 0: Execution Integrity 未验证内容标记 间接(UNVERIFIED 标记)
Gate 1: Repo Context Scan 无(基础模型已具备) 0
Gate 2: Type Classification 文档类型未分类 → 结构不一致 2
Gate 3: Audience Analysis 无(基础模型已具备) 0
Gate 4: Quality Scorecard 元数据、预期输出、回滚、SPA、结论前置 10

关键发现: Gate 1 和 Gate 3 在当前评估中无增量贡献 — 基础模型在 repo 扫描和受众分析上已经做得很好。最大价值来自 Gate 4(Quality Scorecard),它编码了模型不会自发执行的质量检查规则。


七、综合评分

7.1 分维度评分

维度 With Skill Without Skill 差值
文档结构完整度 5.0/5 3.5/5 +1.5
元数据与可追溯性 5.0/5 1.0/5 +4.0
读者体验(结论前置、SPA 标题) 5.0/5 2.5/5 +2.5
可操作性(预期输出、验证、回滚) 5.0/5 3.0/5 +2.0
Review 质量(结构化反馈) 4.5/5 3.0/5 +1.5
代码示例质量 4.5/5 4.0/5 +0.5
综合均值 4.83/5 2.83/5 +2.0

7.2 加权总分

维度 权重 得分 加权
Assertion 通过率(delta) 25% 9.5/10 2.38
文档结构 & 模板一致性 20% 9.0/10 1.80
元数据 & 可追溯性 15% 10/10 1.50
Token 效费比 15% 7.0/10 1.05
读者体验(结论前置、SPA) 15% 9.5/10 1.43
Review 模式质量 10% 8.5/10 0.85
加权总分 9.01/10

八、Skill 设计优点

8.1 渐进式加载设计

"Load References Selectively" section 明确指定了每个参考文件的加载条件,避免不必要的 Token 消耗。Task doc 场景仅需 ~2,900 tokens(SKILL.md + templates 片段),与 go-makefile-writer 的最小加载(~2,490 tokens)在同一量级。

8.2 Gate 机制的串行设计

4 个 Gate 串行执行,每个 Gate 有明确的 STOP 条件(不确定时停下来问用户),避免了在错误假设上累积工作。

8.3 Degradation Strategy

Level 1/2/3 的降级机制优雅处理了信息不完整的场景(虽然本次评估未触发)。

8.4 Anti-Examples 的教学价值

12 条 Anti-Examples 涵盖了常见的技术文档写作错误,与 Quality Scorecard 互补 — Scorecard 告诉模型"检查什么",Anti-Examples 告诉模型"避免什么"。

8.5 Output Contract

结构化的输出报告使文档写作过程可审计,读者可快速了解文档的分类、受众、质量评分和假设。


九、评估材料

材料 路径
Eval 定义 /tmp/tech-doc-eval/workspace/iteration-1/eval-*/eval_metadata.json
Eval 1 with-skill 输出 /tmp/tech-doc-eval/workspace/iteration-1/eval-1-task-runbook/with_skill/outputs/
Eval 1 without-skill 输出 /tmp/tech-doc-eval/workspace/iteration-1/eval-1-task-runbook/without_skill/outputs/
Eval 2 with-skill 输出 /tmp/tech-doc-eval/workspace/iteration-1/eval-2-troubleshooting/with_skill/outputs/
Eval 2 without-skill 输出 /tmp/tech-doc-eval/workspace/iteration-1/eval-2-troubleshooting/without_skill/outputs/
Eval 3 with-skill 输出 /tmp/tech-doc-eval/workspace/iteration-1/eval-3-review-improve/with_skill/outputs/
Eval 3 without-skill 输出 /tmp/tech-doc-eval/workspace/iteration-1/eval-3-review-improve/without_skill/outputs/
测试仓库 /tmp/tech-doc-eval/repos/go-order-service/
缺陷文档 /tmp/tech-doc-eval/repos/bad-runbook.md