mcpField
P
piv-implement-issue

piv-implement-issue

github.com/coleam00开发722221 次安装3 周前更新
代码仓库

关于 piv-implement-issue

piv-implement-issue 是根据 RCA 文档修复 GitHub Issue 的编码技能,面向在本地 Git 仓库中处理问题的开发者。它先检查代码是否偏离 RCA,再按方案实现、测试和验证并生成报告。

主要功能

  1. 01检查 RCA 与当前代码是否偏离
  2. 02按 RCA 方案实现修复
  3. 03添加测试并运行验证
  4. 04汇总变更与验证结果

适用场景

  1. 01落实 GitHub Issue 的既定修复方案
  2. 02确认 RCA 仍符合当前代码
  3. 03为评审整理实现报告

安装

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

$npx skills add https://github.com/coleam00/skills --skill piv-implement-issue

安装后在 Claude Code 中输入/piv-implement-issue确认已加载。

详细介绍

实施问题修复:GitHub Issue #$ARGUMENTS

前提条件

此技能基于 RCA 文档修复 GitHub 问题:

  • 在本地 Git 仓库中工作,且仓库配置了 GitHub origin
  • RCA 文档位于 docs/issues/issue-$ARGUMENTS.md
  • 已安装并通过身份验证的 GitHub CLI(可选,用于更新状态)

参考 RCA 文档

读取 RCA:docs/issues/issue-$ARGUMENTS.md

可选——查看 GitHub issue 以了解背景:

gh issue view $ARGUMENTS

实施说明

1. 阅读并理解 RCA
  • 通读整个 RCA 文档
  • 查看 GitHub issue 的详情(issue #$ARGUMENTS)
  • 理解根本原因
  • 查看建议的修复策略
  • 记录所有需要修改的文件
  • 查看测试要求
2. 验证当前状态,并检查是否存在偏差

更改前:

  • 确认该 issue 仍然存在。
  • 偏差检查:读取 RCA 指定的每个文件,并与 RCA 中的“当前代码”片段/行号引用进行比较。 如果代码自 RCA 编写后发生了实质性变化,则停止——指出偏差,并建议重新运行 piv-investigate-issue 调查 issue #$ARGUMENTS,而不是实施已过时的方案。
  • 确认建议的修复仍能解决根本原因——不要悄然偏离方案。
2b. 切换到正确的分支
  • **在 worktree 中?**使用当前 worktree(它是为此工作创建的)。
  • **位于基准分支且工作树干净?**创建修复分支——git checkout -b fix/issue-$ARGUMENTS-<slug>(通过 git symbolic-ref refs/remotes/origin/HEAD 检测基准分支;不要硬编码 main)。
  • **已位于功能/修复分支?**使用当前分支(如果分支名未包含 #$ARGUMENTS,则发出警告)。
  • **位于基准分支且工作树有未提交更改?**停止——请用户先提交或暂存更改。
3. 实施修复

按照 RCA 的“建议修复”部分进行:

对于每个需要修改的文件:

a. 阅读现有文件
  • 理解当前实现
  • 找到 RCA 中提到的特定代码
b. 进行修复
  • 按照 RCA 中的说明实施更改
  • 严格遵循修复策略
  • 保持代码风格和惯例
  • 如果修复不易理解,则添加注释
c. 处理相关更改
  • 更新修复影响到的相关代码
  • 确保整个代码库保持一致
  • 按需更新导入

**遵循计划:**按 RCA 的说明实施——不要重构无关代码,也不要擅自添加计划外的“改进”。如果必须偏离计划,请注明更改内容及原因,并在报告(和 PR)中说明。

4. 添加/更新测试

按照 RCA 中的“测试要求”进行:

创建测试用例以:

  1. 验证修复能解决问题
  2. 测试与该 bug 相关的边缘情况
  3. 确保相关功能没有回归
  4. 测试引入的所有新代码路径

测试文件位置:

  • 遵循项目的测试结构
  • 与源文件位置对应
  • 使用描述性测试名称

测试实施:

def test_issue_$ARGUMENTS_fix():
    """Test that issue #$ARGUMENTS is fixed."""
    # Arrange - set up the scenario that caused the bug
    # Act - execute the code that previously failed
    # Assert - verify it now works correctly
5. 运行验证

执行 RCA 中的验证命令:

# Run linters
[from RCA validation commands]

# Run type checking
[from RCA validation commands]

# Run tests
[from RCA validation commands]

如果验证失败:

  • 修复问题
  • 重新运行验证
  • 全部通过后再继续
6. 验证修复

手动验证:

  • 按照 RCA 中的复现步骤操作
  • 确认问题不再出现
  • 测试边缘情况
  • 检查是否产生意外副作用
7. 更新文档

如有需要:

  • 更新代码注释
  • 更新 API 文档
  • 如果 README 面向用户,则更新 README
  • 添加有关此修复的说明

输出报告

修复实施摘要

GitHub Issue #$ARGUMENTS:[简短标题]

Issue URL:[GitHub issue URL]

根本原因(来自 RCA): [用一行概述根本原因]

所做更改

修改的文件:

  1. [file-path]

    • 更改:[更改内容]
    • 行号:[行号]
  2. [file-path]

    • 更改:[更改内容]
    • 行号:[行号]
添加的测试

创建/修改的测试文件:

  1. [test-file-path]
    • 测试用例:[列出添加的测试函数]

测试覆盖范围:

  • ✅ 修复验证测试
  • ✅ 边缘情况测试
  • ✅ 防止回归测试
验证结果
# Linter output
[Show lint results]

# Type check output
[Show type check results]

# Test output
[Show test results - all passing]
验证

手动测试:

  • ✅ 按照复现步骤操作——问题已解决
  • ✅ 测试边缘情况——全部通过
  • ✅ 未引入新问题
  • ✅ 保留原有功能
与 RCA 的偏差

[无——按规范实现 | 列出与 RCA 的每项偏差及原因]

文件摘要

更改总计:

  • 修改了 X 个文件
  • 新建了 Y 个文件(测试)
  • 新增了 Z 行
  • 删除了 W 行
已准备好提交

所有更改均已完成并通过验证。已准备好使用 piv-commit 技能。

建议的提交信息:

fix(scope): resolve GitHub issue #$ARGUMENTS - [brief description]

[Summary of what was fixed and how]

Fixes #$ARGUMENTS

注意: 在提交信息中使用 Fixes #$ARGUMENTS,在合并到默认分支后会自动关闭对应的 GitHub 问题。

可选:更新 GitHub 问题

向问题添加实现说明:

gh issue comment $ARGUMENTS --body "Fix implemented in commit [commit-hash]. Ready for review."

更新问题标签(如有需要):

gh issue edit $ARGUMENTS --add-label "fixed" --remove-label "bug"

关闭问题(如果未通过提交信息自动关闭):

gh issue close $ARGUMENTS --comment "Fixed and merged."

注意事项

  • 如果 RCA 文档缺失或不完整,请先使用 piv-investigate-issue 技能为问题 #$ARGUMENTS 创建该文档
  • 如果发现 RCA 分析有误,请记录调查结果并更新 RCA
  • 如果在实现过程中发现其他问题,请记录下来,并为其单独创建 GitHub 问题和 RCA
  • 严格遵循项目编码规范
  • 确保所有验证均通过后再宣布完成
  • 提交信息 Fixes #$ARGUMENTS 会将提交与 GitHub 问题关联

评论

支持 Markdown