Bug Fix Lifecycle 用于把缺陷从受理推进到已验证的解决,同时不跳过让修复值得信任所需的证据。其职责包括:以仓库为依据报告新发现的缺陷;在条件允许时,于实现之前先编写失败的确认测试来修复已批准的缺陷;用平实的工程语言解释需求缺口、测试缺口与根本原因;在产品行为、开发者指引或运维指引发生变化时更新受影响的文档;交付结构化报告,使其他工程师能够快速审计。
【边界】该技能不用于全新功能开发、与缺陷无关的大规模重构,或仅做事故复盘的场景。不要假定仓库使用 docs/functional analysis/、docs/technical/、frontend-tests/ 或任何固定目录结构,应先发现实际约定。除非用户明确要求修复,或问题被清晰标记为已批准,否则不要开始修复跟踪系统中的缺陷。在复现失败或精确说明为何当前无法确定性复现之前,不要修补代码。不要仅以全局行覆盖率作为回归安全充分的证据。不要在本技能内部创建持久共享记忆行为;共享记忆应位于外部集成边界之后,例如专门的共享记忆技能。
【调度集成】当本技能需要其他技能帮助时,使用 skill-dispatcher 作为主要集成层。优先按意图调度,而不是直接命名同类技能。优先使用仓库原生测试栈,而非组织范围内的默认方案。共享记忆仅用于稳定的跨项目路由策略,不用于任务本地路由。仅当调度器没有有效注册匹配时,才将直接技能路径作为回退。常见下游意图包括:design_confirmation_tests、render_test_artifact、implement_ui_confirmation_test、generate_test_data、review_automation_quality。
【需确认或推断的输入】在进行大量编辑前,应确认或推断:执行模式(仅报告或已批准修复);缺陷来源(用户描述、跟踪工单、失败测试、日志、截图或监控告警);受影响面(UI 流程、服务、API、任务、组件或集成点);仓库在需求、文档、图表、帮助内容和变更日志更新方面的约定;现有测试栈、覆盖率工具,以及是否有 JSON 覆盖率摘要;任务是仅生成 Markdown,还是也要生成供自动化使用的机器可读制品;输出是否还应导出为 Jira 就绪或 Linear 就绪的跟踪草稿。默认值:当用户说要记录或文档化缺陷时,假定为仅报告;当用户说直接修复已识别缺陷时,假定为已批准修复;存在仓库现有测试与文档栈时复用;运行期笔记保持临时性,除非用户要求持久化本地项目制品。
【工作流程】1. 确立范围与批准状态:将请求归类为缺陷发现、已批准缺陷修复或受阻的分诊;识别是否存在真源制品(问题 ID、失败测试、支持工单、堆栈跟踪或用户报告);若工作以修复为导向但批准状态不明确,只在继续会有风险时暂停询问。2. 发现仓库约定:在假定路径或工具前检查目标仓库,查找 package.json、pyproject.toml、pom.xml、go.mod、Cargo.toml、playwright.config.、cypress.config.、jest.config.、vitest.config. 或 CI 工作流等清单与工具配置;定位仓库存放产品需求、ADR、图表、运行手册、帮助内容或变更日志历史的位置;识别现有测试层及其归属(单元、集成、API、组件、浏览器或端到端);当布局不明显或不一致时阅读 references/repository-discovery.md。3. 选择执行路径。仅发现路径:当用户希望缺陷被报告、分诊或撰写但不修复时使用;在可行时复现问题,或记录复现受阻的原因;对照最佳可用真源检查预期行为;阅读 assets/bug-discovery-template.md;使用模板要求的标题生成缺陷报告;除非用户扩大范围,否则在报告后停止。已批准修复路径:当缺陷已可修复时使用;用证据复现或以其他方式验证失败;识别导致缺陷的需求缺口、文档缺口或假设缺口;在可行时创建一个针对当前缺陷失败的聚焦确认测试(若需专家帮助,先调度 design_confirmation_tests,仅在确实需要渲染制品时调度 render_test_artifact);解释既有测试或监控为何未能捕获该问题;实现最小可信修复;重新运行确认测试与适度规模的回归集(需要浏览器自动化时调度 implement_ui_confirmation_test 并优先使用仓库原生栈);当有 JSON 摘要时用 node scripts/verify-coverage.js 验证覆盖率;仅在缺陷改变了用户可见行为、开发者契约或运维预期时更新文档;阅读 assets/bug-fix-report-template.md 与 references/response-contracts.md;交付结构化解决报告。4. 覆盖率与回归纪律:使用仓库原生测试命令,不要自造测试栈;优先使用能证明缺陷的最窄验证,然后扩展到邻近回归风险;存在 JSON 覆盖率数据时运行 node scripts/verify-coverage.js --coverage <path>;当改动限定于特定文件时,优先用 --files 或 --manifest 做文件范围验证;在降低或更改阈值前阅读 references/coverage-policy.md。5. 文档与制品更新:只更新真正变化的制品——当缺陷暴露缺失或含糊规则时更新需求或验收标准;当实现行为或运维指引变化时更新技术文档;当数据流、状态流或架构发生实质变化时更新图表;当用户指引错误或不完整时更新帮助内容;当仓库已有变更日志时更新变更日志;仅当搭建、使用或开发工作流变化时更新 README。
【响应契约】仅发现工作使用 assets/bug-discovery-template.md 的标题;已批准修复工作使用 assets/bug-fix-report-template.md 的标题,报告须明确:什么失败了、影响了谁;预期行为如何被验证;缺陷为何漏过;确认测试如何在修复前证明缺陷;代码、测试与文档中改动了什么;修复后验证了什么;剩余风险或范围外的后续项。当调用方需要机器可读或跟踪就绪输出时:输出符合 schemas/bug-discovery-report.schema.json 或 schemas/bug-fix-report.schema.json 的规范 JSON;使用 node scripts/export-tracker-artifact.js --tracker jira|linear --input <report.json> 生成跟踪草稿制品;在声称跟踪导出就绪前阅读 references/tracker-exports.md。
【记忆模型】运行期记忆:仅用于当前任务的实时笔记、复现数据、堆栈跟踪、差异与活动验证计划。项目本地记忆:问题撰写、Markdown 报告、本地文档或有意保存在目标项目中的其他仓库制品。共享记忆:不在本技能范围内,如需跨项目复用应集成独立的共享记忆技能。不要自动将运行期发现提升为持久存储,只持久化能改善当前项目可追溯性的内容。
【失败处理】若缺陷无法复现,说明存在哪些证据、已尝试什么、什么阻碍了确认。若不存在需求来源,说明该限制并使用最强可用信号,如观察到的 UX、API 契约或邻近代码注释。若不存在自动化测试,明确记录该缺口,并在用户要求修复时添加最小有用的回归保护。若覆盖率 JSON 不可用,如实说明,而不是假装验证器已运行。若仓库中没有文档或图表,不要自创文档架构,除非用户要求。若缺陷意味着更广的产品决策而非简单缺陷,暴露该歧义,而不是强行做狭窄的技术修复。
【注意事项】确定性复现:并非所有缺陷都能在受限环境中复现(如竞态条件、外部 API 依赖),若无法创建确认测试须始终记录受阻原因。脚本依赖:本技能依赖 scripts/verify-coverage.js 与 scripts/export-tracker-artifact.js,若缺失或返回非零退出码,自动验证与导出步骤将失败。批准歧义:仅当用户意图明确时才走已批准修复路径,为未确认的跟踪问题自动修复可能导致意外副作用。测试层缺口:本技能优先使用仓库原生测试栈,若仓库没有测试,代理会尝试添加最小安全保护,但可能遗漏更广的回归风险。
【资源映射】assets/bug-discovery-template.md:仅发现报告所需的 Markdown 模板;assets/bug-fix-report-template.md:解决报告所需的 Markdown 模板;scripts/verify-coverage.js:用于总量或文件范围检查的确定性覆盖率验证器;scripts/validate-skill.js:技能打包与必需制品的冒烟验证器;references/repository-discovery.md:仓库检查与约定映射指南;references/response-contracts.md:确切的报告要求与扩展指引;references/coverage-policy.md:阈值策略与覆盖率验证用法;references/evaluation.md:本技能的维护与评估策略;examples/example-prompts.md:代表性触发提示与预期路由;examples/coverage-manifest.example.json:范围覆盖率验证的示例清单;examples/sample-bug-discovery.json:规范机器可读发现报告示例;examples/sample-bug-fix-report.json:规范机器可读修复报告示例;schemas/bug-discovery-report.schema.json:机器可读发现报告的 schema;schemas/bug-fix-report.schema.json:机器可读修复报告的 schema;scripts/export-tracker-artifact.js:将规范报告导出为 Jira 就绪或 Linear 就绪草稿;references/tracker-exports.md:跟踪制品映射与用法指引。
【何时阅读额外参考】当仓库文档或测试布局不清楚时阅读 references/repository-discovery.md;在撰写重要缺陷报告或修复报告前阅读 references/response-contracts.md;当默认阈值、指标或范围规则存疑时阅读 references/coverage-policy.md;当用户需要 Jira 或 Linear 就绪制品时阅读 references/tracker-exports.md;在扩展、验证或对本技能自身做回归测试时阅读 references/evaluation.md。