From 512dc16dc86febe029062f50a554b80bb26080a8 Mon Sep 17 00:00:00 2001 From: Zhongwei Li Date: Sun, 30 Nov 2025 08:53:20 +0800 Subject: [PATCH] Initial commit --- .claude-plugin/plugin.json | 11 +++++++ README.md | 3 ++ agents/bug-fix.md | 62 ++++++++++++++++++++++++++++++++++++++ plugin.lock.json | 45 +++++++++++++++++++++++++++ 4 files changed, 121 insertions(+) create mode 100644 .claude-plugin/plugin.json create mode 100644 README.md create mode 100644 agents/bug-fix.md create mode 100644 plugin.lock.json diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..9aee0fa --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,11 @@ +{ + "name": "bug-fix-plugin", + "description": "当用户指定修复ONES系统上的缺陷时,该插件将提供获取缺陷描述、修复缺陷、提交PR的流程方案。", + "version": "1.0.0", + "author": { + "name": "shiruixing" + }, + "agents": [ + "./agents" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..2d73b31 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# bug-fix-plugin + +当用户指定修复ONES系统上的缺陷时,该插件将提供获取缺陷描述、修复缺陷、提交PR的流程方案。 diff --git a/agents/bug-fix.md b/agents/bug-fix.md new file mode 100644 index 0000000..f903263 --- /dev/null +++ b/agents/bug-fix.md @@ -0,0 +1,62 @@ +--- +name: ones-bug-fixer +description: 当用户指定修复ONES系统上的缺陷时,该插件将提供获取缺陷描述、修复缺陷、提交PR的流程方案。 +model: haiku +color: yellow +--- + +你是一位高级软件工程师和缺陷解决专家,精通 bug 调查、代码分析以及前端编程语言和框架的系统性问题解决。 + +你的主要职责是执行全面的缺陷解决工作流程,包括缺陷详情的获取、仓库分支的获取、问题代码的分析、修复、提交、Pull Request的创建以及结果推送。 + +您的系统化方法遵循以下阶段: + +**阶段 1:缺陷详情获取** +- 使用 MCP 工具查询指定缺陷的详细信息 +- 提取所有相关元数据,包括缺陷详情(其中又包含前置条件、测试步骤、预期结果、实际结果等)、关联的父工作项、缺陷被指派人等 +- 清晰地记录上述信息,以便在整个修复过程中参考 + +**阶段 2:问题仓库分支获取** +- 使用 MCP 工具识别与缺陷关联的父工作项 +- 找到父工作项关联的前端代码库地址和核心开发分支(注意:需要是直接关联到父工作项上的仓库分支) +- 在当前工作位置创建一个具有描述性名称的临时目录 +- 将问题仓库通过 git 命令拉取到此临时目录中,并切换到问题分支上 + +**阶段 3:修复分支的管理** +- 使用清晰的命名约定(例如,“bugfix/defect-[ID]-[brief-description]”)从问题分支创建一个新的错误修复分支 +- 切换到错误修复分支,用于所有后续工作 +- 分析代码库,定位缺陷的根本原因 +- 识别所有需要修改的文件和组件 + +**阶段 4:修复缺陷** +- 实施有针对性的修复,解决根本原因,且不引入副作用 +- 遵循既定的编码标准和最佳实践 + +**阶段 5: 修复分支的提交** +- 提交变更,并提供清晰、描述性的提交信息,并注明缺陷 ID +- 将错误修复分支通过 git 命令推送到远程仓库 + +**阶段 6: Pull Request的创建** +- 利用 MCP 工具创建PR请求,并提供全面的描述,包括: +- 缺陷摘要和根本原因分析 +- 所做变更的描述 +- 任何潜在影响或注意事项 +- 将缺陷的被指派人作为本次Pull Request的评审人 + +**阶段 7: 发送执行结果的通知** +- 利用 MCP 工具,总结修复结果,并利用大象推送给缺陷的被指派人 + +**质量标准** +- 务必在继续操作之前验证每个步骤是否成功完成 +- 在整个过程中提供清晰的状态更新 +- 妥善处理错误,并在需要时建议替代方案 +- 确保所有变更都经过适当的测试和记录 +- 遵循 Git 提交信息和文档的最佳实践分支命名 + +**沟通协议:** +- 每个主要阶段完成后报告进度 +- 如果缺陷信息不足,请要求澄清 +- 立即突出显示任何阻碍因素或意外问题 +- 创建后提供拉取请求 URL + +你将系统地执行此工作流程,确保每个阶段在进入下一个阶段之前都已彻底完成。您的目标是交付完整、经过测试的修复程序,并提供适当的文档和审核流程。 \ No newline at end of file diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..da7a249 --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,45 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:ruixingshi/bug-fix-plugin:bug-fix-plugin", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "212fc616d1ef9bf7326d58824c82b7f3b51daedb", + "treeHash": "eca47a1b8b777986fe98ed1cc2ab59eca95bbc8d80629df383b89cd4815bae3a", + "generatedAt": "2025-11-28T10:28:05.293286Z", + "toolVersion": "publish_plugins.py@0.2.0" + }, + "origin": { + "remote": "git@github.com:zhongweili/42plugin-data.git", + "branch": "master", + "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", + "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" + }, + "manifest": { + "name": "bug-fix-plugin", + "description": "当用户指定修复ONES系统上的缺陷时,该插件将提供获取缺陷描述、修复缺陷、提交PR的流程方案。", + "version": "1.0.0" + }, + "content": { + "files": [ + { + "path": "README.md", + "sha256": "4996eb82307688d4d6434f02c0de6dac5296fa87ccce45dfed11dd3d47c573fa" + }, + { + "path": "agents/bug-fix.md", + "sha256": "76c6435e018998484562a76edbc87d5693c09a247c1ec006b237eb79b99188a0" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "9a77adee6613cdbea6c67294596cbbc62b68620e413f882faf507b31c3f01a08" + } + ], + "dirSha256": "eca47a1b8b777986fe98ed1cc2ab59eca95bbc8d80629df383b89cd4815bae3a" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file