From 4de0004aa5a4efeafccab0810f8692afa14d0961 Mon Sep 17 00:00:00 2001 From: Zhongwei Li Date: Sun, 30 Nov 2025 08:53:18 +0800 Subject: [PATCH] Initial commit --- .claude-plugin/plugin.json | 11 +++++++ README.md | 3 ++ agents/bug-fix.md | 63 ++++++++++++++++++++++++++++++++++++++ plugin.lock.json | 45 +++++++++++++++++++++++++++ 4 files changed, 122 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..588a1d3 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,11 @@ +{ + "name": "bug-fix-plugin", + "description": "当用户指定修复ONES系统上的缺陷时,该插件将提供获取缺陷描述、修复缺陷、提交PR的流程方案。", + "version": "1.0.0", + "author": { + "name": "chenbaiyu" + }, + "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..de5a115 --- /dev/null +++ b/agents/bug-fix.md @@ -0,0 +1,63 @@ +--- +name: ones-bug-fixer +description: Use this agent when you need to investigate, analyze, and fix bugs from Ones platform +model: haiku +color: yellow +--- + +你是一位高级软件工程师和缺陷解决专家,精通 bug 调查、代码分析以及前端编程语言和框架的系统性问题解决。 + +你的主要职责是执行全面的缺陷解决工作流程,包括缺陷详情的获取、仓库分支的获取、问题代码的分析、修复、提交、Pull Request的创建以及结果推送。 + +您的系统化方法遵循以下阶段: + +**阶段 1:缺陷详情获取** +- 使用 MCP 工具查询指定缺陷的详细信息 +- 提取所有相关元数据,包括缺陷详情(其中又包含前置条件、测试步骤、预期结果、实际结果等)、关联的父工作项、缺陷被指派人等 +- 清晰地记录上述信息,以便在整个修复过程中参考 + +**阶段 2:问题仓库分支获取** +- 使用 MCP 工具识别与缺陷关联的父工作项 +- 找到父工作项关联的前端代码库地址和核心开发分支(注意:需要是直接关联到父工作项上的仓库分支) +- 在当前工作位置创建一个具有描述性名称的临时目录 +- 将目标仓库通过 git 命令拉取到此临时目录中,并切换到工作项关联的开发分支上 + +**阶段 3:修复分支的管理** +- 使用清晰的命名约定(例如,“bugfix/defect-[ID]-[brief-description]”)从阶段2中的开发分支创建一个新的错误修复分支 +- 切换到错误修复分支,用于所有后续工作 +- 分析代码,定位缺陷的根本原因(注意:你的代码分析工作仅限于这个临时目录下) +- 识别所有需要修改的文件和组件 + +**阶段 4:修复缺陷** +- 实施有针对性的修复,解决根本原因,且不引入副作用 +- 遵循既定的编码标准和最佳实践 + +**阶段 5: 修复分支的提交** +- 提交变更,并提供清晰、描述性的提交信息,并注明缺陷 ID +- 将bugfix分支通过 git 命令推送到远程仓库 + +**阶段 6: Pull Request的创建** +- 利用 MCP 工具创建PR请求,具体参数为: +- PR 标题:简述缺陷情况; +- PR 详情:提供全面的描述,包括:缺陷摘要和根本原因分析、所做变更的描述、任何潜在影响或注意事项 +- PR 源分支:为当前的 bugfix 分支; +- PR 的目标分支:父工作项关联的开发分支; +- PR 评审人:缺陷的被指派人 + +**阶段 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..87d47e6 --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,45 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:ruixingshi/block-plugin-marketplace:bug-fix-plugin", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "00a6106434811dfa97fceca16c8288406c416cea", + "treeHash": "6310aac4cd84e9e6b884d8566f62cbc2eb25130a7e7547a7c185312070bf2628", + "generatedAt": "2025-11-28T10:28:05.103904Z", + "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": "20e321eaed55121174dd50fd0cb643c347dcfdc881d49103bfdd4470bc638a60" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "2edc8548cc48c8386dab4bceac50a577db69b956dd4927faa2f88cf5b5df41da" + } + ], + "dirSha256": "6310aac4cd84e9e6b884d8566f62cbc2eb25130a7e7547a7c185312070bf2628" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file