Community生产力与协作github.com

formal-you/agent-skills-suite

在任务达到 QA_PASSED 后将确认的实现偏差写回技术规格,归档任务包并关闭变更提案。请仅在任务包记录了已验证的 QA_PASSED 结果且 02-dev-workspace.md 中的偏差日志已就绪时使用。不要在实现或 QA 仍在运行时使用,也不要用于臆造规格内容。

agent-skills-suite 是什么?

该技能(ConvergeTool 角色)用于在 QA 验证通过后,将实现阶段的偏差回写到技术规格中,并归档任务包。它支持通过 Python 脚本自动执行或手动操作,确保只有稳定的 QA_PASSED 结果才能触发收敛,避免在 QA 未完成或存在返工要求时误操作。技能会检查偏差日志是否为空、规格锚点是否匹配,并在冲突时拒绝执行,从而维护规格的完整性。适用于遵循严格开发流程的仓库,特别是需要将确认后的实现差异原子式地整合到规格主文档的场景。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/formal-you/agent-skills-suite/tree/HEAD/.agents/skills/converge

Installed? Explore more 生产力与协作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

预览

来自技能 README

agent-skills-suite preview

文档

收敛 - QA 后规格回写

关闭执行循环:通过 QA 的任务将成为活动规格的一部分。此技能代表生命周期中的 ConvergeTool 角色。它定义了流程;仓库代理规则仍拥有权限,此技能绝不授予额外访问权限。

流水线位置:dev -> qa -> 收敛 -> 归档包 + 更新规格。

使用时机

  • 任务包的 03-qa-verification.md 记录了已验证的 QA_PASSED 结果。
  • 02-dev-workspace.md 包含冻结的实现偏差表(至少一行或显式的 None 行)。
  • 需要将任务确认的行为回写到 .specs/02-tech-spec.md,归档包并关闭原始变更提案。

不使用时

  • 实现或 QA 仍在运行,交接标记未勾选,或 REWORK_REQUIRED 处于活动状态 — 请等待稳定的 QA_PASSED 结果。
  • 偏差日志为空或缺失 — 将任务退回 Dev,不要猜测。
  • 需要臆造规格内容或重写现有规格正文;这属于规划变更,而非收敛。

输入

  • tasks/<task-id>/01-contract.md - 标题、可追溯锚点、可选的 change_id。
  • tasks/<task-id>/02-dev-workspace.md - 实现偏差表(冻结格式)。
  • tasks/<task-id>/03-qa-verification.md - 已验证的 QA_PASSED 结果和证据。
  • tasks/<task-id>/04-process.md - 派生状态卡和事件日志。
  • .specs/02-tech-spec.md - 活动技术规格。
  • .specs/changes/<change-id>/proposal.md - 原始变更提案(如果存在)。

输出

  • 每个任务在规格的 Converged changes 部分中增加一条带日期和属性说明的条目。
  • 每个任务的收敛标记:<!-- converged: <task-id> sha256:<hash> -->。
  • 04-process.md 中包含 macro_status: "CONVERGED" 和一行 TASK_CONVERGED 事件(执行者为 ConvergeTool)。
  • 任务包移动到 tasks/archive/<task-id>/(绝不删除)。
  • 如果存在提案,则生成 .specs/changes/<change-id>/convergence.md 并将提案状态设置为 archived。

检查 -> 应用 -> 验证

  1. 检查。 在写入任何内容前对包进行分类: python .agents/skills/converge/scripts/converge.py check --tasks-dir ./tasks --json 只有当 QA 通过、无活动返工、偏差表至少有一行或显式的 None 行、且规格尚未携带其标记时,包才准备好收敛。
  2. 应用。 收敛一个包: python .agents/skills/converge/scripts/converge.py apply --task tasks/<task-id> 首先使用 --dry-run 检查计划写入的内容。当包未准备好收敛时,该辅助工具以退出码 1 拒绝;当目标归档位置已存在时,除非指定 --force 否则拒绝。
  3. 验证。 重新运行 check,确认标记存在、04-process.md 显示 CONVERGED、包已归档,且 --spec-sha256 与预期的 CI 值匹配: python .agents/skills/converge/scripts/converge.py --spec .specs/02-tech-spec.md --spec-sha256

手动回退(无 Python)

当辅助工具不可用时,手动执行相同步骤并保持标记精确:

  1. 确认 03 中的 QA_PASSED 已勾选且 REWORK_REQUIRED 未激活。
  2. 从 02 读取偏差行;拒绝空白日志。
  3. 在规格的 Converged changes 部分追加(而非编辑)一条条目:一个 ### <task-id> 标题、偏差表以及 <!-- converged: <task-id> sha256:<hash> --> 标记。使用任何 SHA-256 工具在规范化的任务 ID 和行上计算哈希。
  4. 将 04 中的 macro_status 设置为 CONVERGED,并追加 TASK_CONVERGED / ConvergeTool 行。
  5. 将包移动到 tasks/archive/<task-id>/(绝不删除);如果存在变更提案,则归档提案并写入 convergence.md。
  6. 重新运行验证步骤并记录证据。

拒绝条件

当以下任一条件成立时,停止并报告,不要收敛:

  • QA 未通过 - 03 中没有已验证的 QA_PASSED,或 REWORK_REQUIRED 仍处于活动状态。
  • 未解决的返工 - 重试证据显示任务处于返工中;等待新结果。
  • 空白偏差日志 - 实现偏差表缺失,或没有 DEV 行且没有显式的 None 行。
  • 规格漂移 - modify/remove 偏差指向规格中不存在的 #sec-* 锚点;规格与偏差日志不一致。在 CI 中使用 --strict 运行 check/apply 可将此警告转为拒绝。
  • 归档冲突 - tasks/archive/<task-id>/ 已存在且未指定 --force。

结构性偏差(新模块、边界变更、新的 ADR 级别决策)必须升级到 spec-generator,绝不被静默收敛。

历史记录与归属

收敛绝不重写历史:它追加带日期和属性说明的章节,而不是编辑现有规格正文。现有条目保持字节级稳定,每个条目都标注源任务、QA 结果和 ConvergeTool 执行者。绝不编辑旧的收敛条目来适配新任务;应添加新条目并记录冲突。

参考

  • references/convergence-protocol.md - 状态机、谁写什么、归档布局、幂等标记、冲突规则和结构性升级。
  • 角色边界:references/role-boundaries.md — 写入范围、不变量和诚实执行模型(捆绑;无需外部文件)。
  • 任务包格式和角色生命周期:task-decomposition 技能(如果已安装)。
  • 交接输入:dev 技能;结果输入:qa 技能。
  • 仓库规则:如果采用项目定义了 AGENTS.md 或任何角色规则文件,请阅读它们;它们可能增加要求,但此技能不强制需要。

诚实限制

此技能不授予写入权限,也无法强制角色隔离。如果仓库具有 CI(例如基于 git 的角色审计)或分支保护,则那是权威层。捆绑的辅助工具是一个可选的确定性助手;标记和书面证据是契约。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

formal-you/agent-skills-suite

Run a bounded brownfield change (bugfix, small feature, behavior tweak) against an existing spec or codebase: proposal -> one task bundle -> dev/QA -> converge -> archive. Use when an existing spec or codebase needs an incremental change (bugfix, small feature, behavior tweak) and a full PRD is overkill. Do not use for greenfield requirements (use prd-generator), architecture decisions (use spec-generator), or pure task slicing (use task-decomposition).

formal-you/agent-skills-suite

Implement one planned task bundle as the Dev role: read the contract, change only touch_files, run the machine-checkable DoD, fill 02-dev-workspace.md and hand off to QA. Use when a task contract exists and you are assigned implementation. Do not use for planning, task slicing, architecture, or QA verification.

formal-you/agent-skills-suite

Use on Windows for unexpected DSH sandbox access denials: workspace writes or listing fail, or an ordinarily readable path cannot be read. One bundled command inspects the path and every ancestor and repairs the ACL problems it proves in that same run. Expected confinement denials need no ACL repair.

formal-you/agent-skills-suite

Run the Gate 1 deterministic static check on task bundles before development starts and follow the Gate 2 review checklist. Use when task contracts exist under tasks/ and you need to verify blast radius, diff budget, declared-file topology, traceability anchors, spec anchor coverage, inherited ADRs, machine-checkable acceptance criteria, and DAG acyclicity. Do not use for code execution, CI pipeline construction, AST/complexity checks, or test audits (owned by quality-engineering).

相关技能