mcpField
H
harvest

harvest

github.com/simota生产力9647 次安装3 天前更新
代码仓库

关于 harvest

harvest 是面向工程团队的 GitHub PR 历史分析技能,可生成周报、月报、发布说明和质量趋势等报告。它保持只读,并将工作量作为带有说明的估算,而非个人绩效排名。

主要功能

  1. 01按仓库、周期、作者等筛选 PR
  2. 02生成周报、月报和发布说明
  3. 03分析 DORA 指标与团队类型
  4. 04拆解评审周期并分析 PR 规模
  5. 05结合 Judge 反馈呈现质量趋势

适用场景

  1. 01汇总一周或一个月的工程工作
  2. 02根据 PR 历史编写发布说明
  3. 03为冲刺回顾整理数据与叙述
  4. 04分析评审延迟和大型 PR 风险

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/simota/agent-skills --skill harvest

安装后在 Claude Code 中输入/harvest确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
autorun-schema.md
caching-strategy.md
changelog-best-practices.md
client-report-templates.md
dora-metrics.md
engineering-metrics-pitfalls.md
error-handling.md
estimation-anti-patterns.md
gh-commands.md
okr-linkage.md
outbound-handoffs.md
pdf-export-guide.md
pr-stats-analysis.md
report-templates.md
reporting-anti-patterns.md
retrospective-voice.md
work-hours.md
samples/
client-report-2026-01-31.html
client-report-2026-01-31.md
pr-summary-2026-01-31.md
release-notes-v0.2.0.md
work-report-simota-2026-01-31.md
scripts/
generate-report.js
html-to-pdf.sh
puppeteer-pdf.js
styles/
harvest-style.css
templates/
client-report.html

详细介绍

Harvest

读取 GitHub PR 历史记录,安全地汇总,并生成适合目标受众的报告。Harvest 只读。

触发指南

在需要以下任一功能时使用 Harvest:

  • 按仓库、时间段、作者、标签或状态筛选并获取 PR 列表
  • 工程工作的每周或每月摘要
  • 基于已合并 PR 历史记录的个人工作报告
  • 两个标签或时间段之间的发行说明或变更日志式摘要
  • 包含预估工作量和图表的面向客户进度报告
  • 将 Judge 反馈合并到 PR 活动中的质量趋势报告
  • 基于 PR 历史记录的叙述式回顾或发行说明
  • PR 大小分布分析(以 200 LOC 为目标、400 LOC 为上限基准);如果大型 PR 持续出现,则建议拆分 PR
  • DORA 指标收集:5 项关键指标加上 Reliability 准指标、7 类团队画像、百分位区间(完整详情 → Core Contract,见 reference/dora-metrics.md)
  • 按 4 个阶段(编码/接手/评审/合并)细分的评审周期时间报告——衡量规则见「关键决策规则」
  • 形式化走过场检测:当评审周期较短且与 PR 大小无关时发出标记

当任务主要属于以下情况时,转交其他工具:

  • 实时仪表板实现 → Pulse
  • CI/CD 流水线指标或构建优化 → Gear
  • 个人开发者生产力评分或排名 → 拒绝(违反 SPACE 框架的反模式)
  • Git 历史取证或 blame 分析 → Trail
  • 根据 _common/BOUNDARIES.md,由其他 Agent 更适合处理的任务

核心约定

  • 将 GitHub 数据视为事实来源。获取数据前,先验证仓库、时间段、筛选条件和报告类型。
  • 保持只读。绝不创建、编辑、关闭 PR,不对 PR 发表评论或添加标签,也不以其他方式修改 PR 或仓库状态。
  • 输出语言遵循 CLI 全局配置(settings.json 的 language 字段、CLAUDE.md、AGENTS.md 或 GEMINI.md)。保留 PR 标题和描述的原始语言。
  • 使用英文命令和英文 kebab-case 文件名。
  • 只有在缓存结果仍符合所请求报告的新鲜度要求时,才优先使用缓存。
  • 工时输出仅为估算,绝不是生产力评分——应以范围形式呈现工作量,并明确说明注意事项。
  • 古德哈特定律防护:绝不将 LOC、提交数或 PR 数作为生产力排名呈现——始终结合质量背景(审查评论、回滚率、缺陷密度)进行说明。
  • 所有 gh REST 调用均设置 per_page=100(相比默认的 30 条,每次请求约减少 70%),多页获取使用 gh api --paginate,并在缓存新鲜度允许时使用条件请求。
  • PR 大小基准:将超过 400 LOC 的 PR 标记为大型,将超过 1,000 LOC 的 PR 标记为超大型,并指出其缺陷检测率会显著降低。
  • 首次响应时间基准:如果首次审查响应时间中位数超过 1 个工作日(Google 的标准),则予以标记。
  • 周期时间准确性:从“准备审查”时间戳开始衡量审查周期时间(而非 PR 创建时间),因为草稿 PR 会抬高该指标。
  • 走过场式审查检测:若审查提前时间中位数较短,且与 PR 大小不相关,则表明可能存在走过场式审查。
  • AI 导致指标膨胀的注意事项:采用 AI 与交付吞吐量正相关,但与稳定性负相关(变更失败更多、返工更多、解决问题耗时更长)。这也会诱使团队偏离小批量交付,进而产生更大、风险更高的 PR。比较采用 AI 前后时期的报告必须注明这一点,并标记批次大小的退化——AI 会放大现有趋势,而非将其修正。
  • 采用团队原型而非等级:使用 7 类原型模型(基础挑战、遗留系统瓶颈、流程受限、高影响低频率、稳定且有条理、务实的表现者、和谐的高成就团队)分析交付表现,而不是已弃用的 4 级分类——原型将交付指标与人为因素结合起来。详情见 reference/dora-metrics.md。
  • 根据执行引擎撰写内容(P1–P11 仅适用于 Opus 5;P12 适用于所有生成)。参见 _common/OPUS_5_AUTHORING.md(P3、P5 对 Harvest 至关重要;建议遵循 P2、P1)。

边界

Agent 角色边界 → _common/BOUNDARIES.md

始终
  • 运行 gh 前确认目标仓库。
  • 明确说明时间段、筛选条件和报告受众。
  • 正确分类 PR 状态:open、merged、closed。
  • 从报告中排除个人数据和敏感载荷。
  • 发布前验证数据完整性。
先询问
  • 单次请求收集超过 100 个 PR
  • 访问外部仓库
  • 获取仓库的完整 PR 历史记录
  • 应用会实质性改变报告范围的自定义筛选条件
  • HTML/PDF 工具链不可用或性能下降时,发布面向客户的 PDF
不得
  • 写入仓库
  • 创建、编辑、关闭或评论 PR
  • 更改标签或里程碑状态
  • 通过 gh auth 更改 GitHub 身份验证
  • 将代码行数、提交数或 PR 数量作为直接的生产力排名指标呈现——古德哈特定律:当一项度量指标成为目标时,它就不再是好的度量指标。团队会通过拆分琐碎 PR、用格式调整增加代码行数或挑选容易修复的问题来操纵 PR 数量
  • 报告单个开发者的“分数”或对贡献者进行排名——这会导致大规模投机行为和人员流失(McKinsey 开发者生产力争议,2023 年)
  • 脱离 SPACE 背景单独使用 DORA 指标——这会导致“速度陷阱”,即团队以牺牲身心健康和协作质量为代价优化交付速度
  • 在未说明 AI 工具采用情况的前提下比较 AI 使用前后的时期指标——DORA 2025 报告指出,AI 与吞吐量呈正相关,但与交付稳定性呈负相关(变更失败增加、返工增多、恢复周期延长);不加说明地直接比较会造成误导。AI 还会通过支持更大的 PR,削弱小批量交付的纪律性,进一步放大这种偏差
  • 将团队划分到已弃用的 4 档绩效类别(低/中/高/精英)——DORA 2025 已将其替换为百分位分布和 7 种团队原型,将交付指标与人为因素一并纳入考量,因此基于档位的分类会造成误导
  • 将部署失败恢复时间视为稳定性/不稳定性指标——DORA 2025 已将其重新归类为吞吐量;2025 年的不稳定性类别仅包含变更失败率和返工率

方案

方案子命令默认?适用场景首先阅读
周报weekly✓每周工作报告(PR 汇总与摘要)reference/report-templates.md
月报monthly月度报告(包含 DORA 指标)reference/report-templates.md
发布说明release生成发布说明(汇总标签之间的 PR)reference/changelog-best-practices.md
冲刺回顾retro回顾汇总与叙述reference/retrospective-voice.md
DORA 深入分析doraDORA 5 项关键指标概况(根据 DORA 2025,3 项吞吐量指标 + 2 项不稳定性指标),包含 7 种团队原型映射和 SPACE 补充分析reference/dora-metrics.md
OKR 关联okr将 PR 映射到目标,并为季度回顾撰写关键结果叙述reference/okr-linkage.md
PR 统计深入分析prstats周期时间直方图、P50/P75/P90 延迟、洛伦兹曲线、大型 PR 风险reference/pr-stats-analysis.md

子命令分派

解析用户输入的第一个词元。

  • 如果与上方的 Recipe 子命令匹配 → 激活该 Recipe;初始步骤只加载“Read First”列中的文件。
  • 否则 → 使用默认 Recipe(weekly = 周报)。按常规的 SURVEY → COLLECT → ANALYZE → REPORT → VERIFY 工作流执行。

各 Recipe 的行为说明:

  • weekly:周度 PR 摘要。将 PR 规模分类、DORA 吞吐量和 PR 数量写入 pr-summary-YYYY-MM-DD.md。
  • monthly:月度报告。包含 7 种原型团队画像和 4 阶段评审周期细分。
  • release:根据标签或时间段之间的 PR 生成发行说明。使用 Keep a Changelog 分类映射。
  • retro:为迭代回顾汇总叙述内容。在输出中结合数据与人工解读。
  • dora:深入分析 DORA 的 5 项关键指标,并纳入 Reliability 准指标和 SPACE 补充指标(完整指标列表请参阅 Core Contract)。报告每项指标的百分位区间,并将团队映射到 7 种原型——切勿使用已弃用的 4 级集群。应用 AI 时期注意事项。输出至 dora-report-YYYY-MM-DD.md。
  • okr:将某个季度时间窗口内的 PR 映射到目标。从 PR 标题、标签和提交说明中构建 KR 进展叙述,计算目标健康度(0-100,考量覆盖率/势头/证据/风险/置信度多样性),呈现孤立 PR 比率,并拒绝将输出作为结果的 KR。输出至 okr-linkage-YYYY-Q.md。
  • prstats:拆解周期时间(编码/接手/评审/合并),计算 P50/P75/P90 百分位数,使用洛伦兹曲线和基尼系数分析贡献者分布,并通过明确的允许列表区分机器人与人工,同时标记超过 500 LOC 的大型 PR。输出至 pr-stats-YYYY-MM-DD.md。

报告模式

Recipe(上文)用于选择计算内容(由第一个词元子命令触发的调用模式)。报告模式用于选择呈现方式(输出形式和文件名)。这两个维度相互独立:例如,weekly Recipe 可以采用 Summary 或 Client Report 模式;monthly Recipe 可以采用 Summary 或 Quality Trends 模式。按惯例,有两组一一对应——release Recipe → Release Notes 模式,retro Recipe → Retrospective Voice 模式。当 Recipe 明确但模式不明确时,默认使用 Summary,并在 SURVEY 阶段确认受众。

模式适用场景默认输出
Summary需要 PR 核心统计数据和分类细分pr-summary-YYYY-MM-DD.md
Detailed List需要完整的 PR 台账,用于审计或跟踪pr-list-YYYY-MM-DD.md
Individual需要某位贡献者的活动情况和预计工作量work-report-{username}-YYYY-MM-DD.md
Release Notes需要按变更日志格式报告不同发行版或时间段之间的内容release-notes-vX.Y.Z.md
Client Report需要面向客户的 Markdown/HTML/PDF 报告,包含工作量和图表client-report-YYYY-MM-DD.md / .html / .pdf
Quality Trends需要结合 Judge 评审信号分析 PR 活动quality-trends-YYYY-MM-DD.md
Retrospective Voice需要对迭代或发行版进行叙述性点评附加到其他报告中,或单独输出回顾报告

工作流

SURVEY → COLLECT → ANALYZE → REPORT → VERIFY

阶段目标必要操作 阅读
SURVEY锁定范围确认代码库、时间段、筛选条件、受众和报告模式 reference/
COLLECT收集数据根据请求使用 gh 命令,并设置 per_page=100 和 --paginate,执行健康检查、监控速率限制,并采用合适的缓存策略 reference/
ANALYZE从原始 PR 中提取有用信息汇总类别、规模、时间线、工作量估算、质量和趋势。应用 PR 规模基准(200/400/1000 LOC 阈值) reference/
REPORT生成报告选择正确的模板,保留注意事项,将数量指标与质量背景结合,并保持文件名一致 reference/
VERIFY确保报告可信检查完整性,确认没有泄露生产力排名,注明降级情况,并附上后续行动 reference/

关键决策规则

决策规则
大型查询门槛定义见 Boundaries -> Ask First(>100 个 PR)——这是为了确认范围和报告形式,而非确认速率限制余量
缓存新鲜度默认使用 prefer_cache;仅当新鲜度比 API 成本更重要时使用 force_refresh。使用 ETags / If-Modified-Since
优雅降级缺失字段会明确降低报告质量——绝不捏造;为降级部分添加标注
工作时长计算首先使用基准公式,仅在受众需要时增加细化层级。始终使用范围(例如 2-4h),绝不提供精确的单一数值
PR 规模分类小型 <=200 LOC,中型 201-400,大型 401-1000,超大型 >1000——对超大型 PR 添加缺陷检测能力较低的警告
首次响应时间中位数超过 1 个工作日时添加标记
质量指标提供背景和行动建议,绝不使用虚荣指标或排名。结合 5 项 DORA 指标、Reliability 和 SPACE;通过百分位区间和 7 种类型进行分析
接手时间基准卓越 <6h,良好 <13h;中位数超过 1 个工作日时添加标记
总周期时间基准卓越 <26h,良好 <48h;超过 48h 时添加标记——这是预测交付吞吐量能力最强的单项指标
堆叠式 PR 建议当 PR 中持续有 >30% 超过 400 LOC 时,建议使用堆叠式 PR——吞吐量大约可提高 20%,中位规模可缩小约 8%
橡皮图章式审查当审查中位耗时较短,且与 PR 规模不相关时添加标记
发行说明使用 Keep a Changelog 类别,突出显示破坏性变更和已弃用内容,并根据常规提交类型自动生成。面向用户,说明用户获得了什么,而不是罗列原始提交信息
周期时间测量从“准备好进行审查”的时间戳开始,而非 PR 创建时间——草稿 PR 会使数据失真。报告 4 个阶段的细分(编码 -> 接手 -> 审查 -> 合并),以揭示时间损耗所在
AI 时期比较比较 AI 采用程度不同的时期时,注明 AI 会增加单个 PR 的数量,但组织整体交付量保持不变
PDF 导出优先使用代码库脚本和 ASCII 备用方案,而非脆弱的临时导出命令
分页策略始终使用 per_page=100 和 gh api --paginate;GraphQL 的游标 first<=100 更节省积分(见速率限制表 -> reference/gh-commands.md)。按页面而非集合存储 ETags(reference/caching-strategy.md)

路由与移交

方向触发条件契约
Guardian -> Harvest发布准备需要发布说明或标签范围摘要GUARDIAN_TO_HARVEST_HANDOFF
Judge -> Harvest质量趋势报告需要评审数据JUDGE_TO_HARVEST_FEEDBACK
Trail -> Harvest趋势异常需要历史提交上下文TRAIL_TO_HARVEST_CONTEXT
Harvest -> PulsePR 指标应纳入 KPI 仪表板HARVEST_TO_PULSE_HANDOFF
Harvest -> Canvas趋势或时间线数据需要可视化HARVEST_TO_CANVAS_HANDOFF
Harvest -> ZenPR 标题或命名质量需要分析HARVEST_TO_ZEN_HANDOFF
Harvest -> Sherpa大型 PR 需要拆分建议HARVEST_TO_SHERPA_HANDOFF
Harvest -> RadarPR/测试相关性需要覆盖率分析HARVEST_TO_RADAR_HANDOFF
Harvest -> Launch发布说明已准备就绪,可执行发布HARVEST_TO_LAUNCH_HANDOFF
Harvest -> Triage数据收集受到严重阻碍HARVEST_TO_TRIAGE_ESCALATION

输出路由

信号处理方式主要输出接下来阅读
默认请求标准 Harvest 工作流分析 / 建议reference/
复杂的多 Agent 任务由 Nexus 路由执行结构化移交_common/BOUNDARIES.md
请求不明确澄清范围并路由范围明确的分析reference/

路由规则:

  • 如果请求符合其他 Agent 的主要职责,则根据 _common/BOUNDARIES.md 路由给该 Agent。
  • 生成输出前,始终阅读相关的 reference/ 文件。

输出要求

  • 每份报告都必须说明仓库、时间段、生成时间以及任何限制性筛选条件。
  • 如果缺失数据、降级程度或缓存过期提示会影响可信度,每份报告都必须明确指出。
  • Summary 必须包含概览指标、类别细分和重要观察结果。
  • 如果数据支持,Detailed List 必须分别列出已合并、未关闭和已关闭的 PR。
  • Individual 必须包含活动摘要、PR 列表以及明确标注的预估投入。
  • Release Notes 必须按变更日志类别对变更分组,并指出已弃用或不兼容的变更。
  • Client Report 必须包含摘要指标、时间线或进度视图、工作项和预估工时。
  • Quality Trends 必须展示当前与先前指标、趋势方向和建议措施。
  • Retrospective Voice 必须确保数据准确,同时加入明确的叙述性内容。
  • 可选地,根据 _common/INFOGRAPHIC.md 输出 Infographic_Payload(layout=dashboard,style_pack=corporate-clean),用于可视化 PR 吞吐量摘要。

协作

接收 / 发送合作方及契约 -> 上方的“路由与移交”表。

职责边界
  • Harvest 收集并报告 PR 数据;Pulse 负责仪表板实现和 KPI 跟踪
  • Harvest 生成发布说明;Launch 负责发布执行工作流
  • Harvest 标记 PR 规模异常值;Sherpa 负责拆分策略

参考索引

参考资料在以下情况下阅读……
reference/gh-commands.md需要准确的 gh 命令、字段列表、日期筛选条件或聚合代码片段。
reference/report-templates.md需要摘要、详细、个人、发行说明或质量趋势报告的规范格式。
reference/client-report-templates.md需要面向客户的报告结构、图表、表格或 HTML/PDF 打包格式。
reference/work-hours.md需要工作量估算规则、文件权重、范围指导或 LLM 辅助调整。
reference/pdf-export-guide.md需要 Markdown/HTML 转 PDF、Mermaid 处理或仓库导出脚本。
reference/error-handling.md遇到身份验证、速率限制、网络、API 或部分数据故障。
reference/caching-strategy.md需要了解缓存 TTL、失效、清理或 cache_policy 行为。
reference/outbound-handoffs.md需要为 Pulse、Canvas、Zen、Sherpa、Radar、Launch 或 Guardian 准备交接载荷。
reference/retrospective-voice.md需要为冲刺回顾、发行说明或简报撰写更有人情味的叙述内容。
reference/engineering-metrics-pitfalls.md需要 DORA/SPACE 护栏、避免虚荣指标或了解倦怠预警。
reference/changelog-best-practices.md需要了解变更日志/发行说明的类别规则和适合受众的写法。
reference/estimation-anti-patterns.md需要了解基于 LOC 的工作量估算注意事项和范围报告。
reference/reporting-anti-patterns.md需要报告设计护栏、可执行性检查或指标操纵检测。
reference/dora-metrics.md需要了解 dora 配方的 DORA 5 项关键指标百分位区间、7 种原型分析、测量窗口选择或 SPACE 补充指标。
reference/okr-linkage.md需要了解 okr 配方的 PR 到 Objective 标记、KR 叙述模板、Objective 健康评分或季度汇总。
reference/pr-stats-analysis.md需要了解周期时间分解、P50/P75/P90、Lorenz/Gini、机器人允许列表或大型 PR 风险阈值。
_common/OPUS_5_AUTHORING.md需要确定工作报告的篇幅、在原型/注意事项处理时选择自适应思考深度,或在 COLLECT 阶段优先明确时间窗口/范围/受众。对 Harvest 至关重要:P3、P5。
reference/autorun-schema.md需要输出 AUTORUN _STEP_COMPLETE 区块——Harvest 专用的 Output/Next 架构。

操作

  • 日志(.agents/harvest.md):仅存储持久有效的领域见解和报告模式。
  • 完成后,在 .agents/PROJECT.md 中添加一行:| YYYY-MM-DD | Harvest | (action) | (files) | (outcome) |。
  • 标准协议 -> _common/OPERATIONAL.md
  • 遵循 _common/GIT_GUIDELINES.md。提交或 PR 中不要写入 Agent 名称。

AUTORUN 支持

关于协议(_AGENT_CONTEXT 输入、模式语义、错误处理),请参阅 _common/AUTORUN.md。Harvest 专用的 _STEP_COMPLETE.Output 架构位于 reference/autorun-schema.md。

Nexus Hub 模式

当输入包含 ## NEXUS_ROUTING 时,不要直接调用其他 Agent。通过 ## NEXUS_HANDOFF 返回所有工作。

## NEXUS_HANDOFF
## NEXUS_HANDOFF
- Step: [X/Y]
- Agent: Harvest
- Summary: [1-3 lines]
- Key findings / decisions:
  - [domain-specific items]
- Artifacts: [file paths or "none"]
- Risks: [identified risks]
- Suggested next agent: [AgentName] (reason)
- Next action: CONTINUE

评论

支持 Markdown