with one click
code-part-modification
局部代码修改技能:最小化修改完成功能,确保无蝴蝶效应,支持独立测试验证和全量关联检查
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
局部代码修改技能:最小化修改完成功能,确保无蝴蝶效应,支持独立测试验证和全量关联检查
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
AI记忆持久化系统。使用memrec存储、检索、管理跨会话记忆。支持项目隔离、混合检索(KNN+BM25)、MMR重排、中文搜索。触发场景:(1)重要决策需记录,(2)关键知识需保存,(3)项目上下文需跨会话保持,(4)用户偏好需记忆,(5)检索历史知识辅助当前任务。
Rust 性能分析技能:通过 cargo flamegraph 生成火焰图(SVG),定位 CPU 热点函数并量化占比。适用于 Rust 项目性能瓶颈定位、热点分析、优化验证。触发场景:(1)分析 Rust 代码性能瓶颈,(2)定位 CPU 热点函数,(3)量化函数调用占比,(4)优化前后对比验证,(5)bench/unittest 性能不达预期时根因分析。
读取所有源代码,解构为设计图、设计文档、数据库设计; 没有执行文件,请按流程执行
项目问题侦测技能:综合分析设计、性能、安全问题,评分并提出重构或重建方案
该skill没有执行文件,为操作指引:如何重构
代码审查框架:通用审查流程 + 语言特定规则引用,支持多语言代码审查
| name | code-part-modification |
| description | 局部代码修改技能:最小化修改完成功能,确保无蝴蝶效应,支持独立测试验证和全量关联检查 |
| 场景 | 说明 |
|---|---|
| Bug修复 | 修复特定缺陷,确保不影响其他功能 |
| 功能增加 | 添加新功能,最小化对现有代码的影响 |
| 功能修改 | 修改现有功能,保持向后兼容 |
| 功能封闭 | 废弃或关闭功能,清理相关代码 |
digraph code_part {
rankdir=TB;
"理解需求" -> "定位修改点";
"定位修改点" -> "影响范围分析";
"影响范围分析" -> "分解子任务";
"分解子任务" -> "有可测试环境?";
"有可测试环境?" -> "编写单元测试" [label="是"];
"有可测试环境?" -> "提取代码到测试" [label="否"];
"编写单元测试" -> "实现最小修改";
"提取代码到测试" -> "实现最小修改";
"实现最小修改" -> "验证修改";
"验证修改" -> "验证通过?";
"验证通过?" -> "全量关联检查" [label="是"];
"验证通过?" -> "自愈修复" [label="否"];
"自愈修复" -> "验证修改";
"全量关联检查" -> "关联检查通过?";
"关联检查通过?" -> "修改完成" [label="是"];
"关联检查通过?" -> "关联细节修复" [label="否"];
"关联细节修复" -> "全量关联检查";
}
明确修改目标:
输出:templates/requirement.md
| 方法 | 工具 | 适用场景 |
|---|---|---|
| 关键字搜索 | grep/rg | 根据错误信息定位 |
| 调用链追踪 | IDE/代码分析 | 理解数据流 |
| 日志追踪 | 日志文件 | 定位运行时位置 |
| 堆栈分析 | 异常堆栈 | Bug修复定位 |
输出:修改点清单(文件、行号、修改类型、说明)
| 检查维度 | 检查项 | 方法 |
|---|---|---|
| 内部调用 | 谁调用了这个方法/函数? | grep 调用点 |
| 上游系统 | 哪些外部系统调用此接口? | 接口文档、日志 |
| 下游系统 | 此代码调用了哪些外部系统? | 代码分析 |
| 数据库 | 涉及哪些表、字段? | SQL 分析 |
| UI界面 | 界面显示哪些字段? | 前端代码分析 |
| 配置 | 依赖哪些配置项? | 配置文件分析 |
输出:templates/impact-analysis.md
将修改任务分解到可独立验证的粒度:
| 粒度 | 标准 | 示例 |
|---|---|---|
| 太大 | 无法独立验证 | "重构订单模块" |
| 合适 | 有明确的验证器 | "修改订单状态字段校验逻辑" |
| 太小 | 验证成本高于修改成本 | "修改变量名" |
输出:templates/tasks.md
digraph test_strategy {
rankdir=LR;
"开始" -> "可直接测试?";
"可直接测试?" -> "编写单元测试" [label="是"];
"可直接测试?" -> "可隔离?" [label="否"];
"可隔离?" -> "提取代码到测试" [label="是"];
"可隔离?" -> "Mock外部依赖" [label="需Mock"];
"可隔离?" -> "集成测试" [label="集成环境"];
"可隔离?" -> "手动验证" [label="无法自动化"];
"提取代码到测试" -> "编写单元测试";
"Mock外部依赖" -> "编写单元测试";
}
| 策略 | 适用场景 | 方法 |
|---|---|---|
| 提取方法 | 逻辑可独立但嵌入大方法 | 将目标逻辑提取为独立方法 |
| 提取类 | 依赖复杂无法直接测试 | 提取纯逻辑类,无外部依赖 |
| 复制修改 | 无法隔离的代码 | 复制一份修改,原代码保持不变 |
输出:templates/test-cases.md
| 原则 | 说明 | 反例 |
|---|---|---|
| 单一职责 | 每次修改只做一件事 | 同时修Bug和重构 |
| 最小范围 | 只修改必要的代码 | "顺手"修改其他代码 |
| 保持兼容 | 不破坏现有接口 | 修改返回值结构 |
| 可回滚 | 修改可独立回滚 | 多功能耦合修改 |
输出:templates/changes.md
| 验证类型 | 验证器 | 命令 |
|---|---|---|
| 单元测试 | JUnit/pytest/go test | mvn test -Dtest=XxxTest |
| 代码规范 | lint/checkstyle | mvn checkstyle:check |
| 类型检查 | TypeScript/mypy | tsc --noEmit |
| 静态分析 | SonarQube/spotbugs | mvn spotbugs:check |
| 集成测试 | 测试套件 | mvn verify |
| 循环次数 | 处理策略 |
|---|---|
| 1-3次 | 自动修复,继续循环 |
| 4-5次 | 重新评估方案,可能需要人工介入 |
| >5次 | 停止,记录问题,请求人工帮助 |
输出:templates/verification.log.md
| 修改点 | UI | 数据库 | 上游系统 | 下游系统 | 内部模块 |
|---|---|---|---|---|---|
| 参数校验 | ✗ | ✗ | ✗ | ✗ | 需检查 |
| 返回值 | 需检查 | ✗ | ✗ | 需检查 | 需检查 |
| 数据库字段 | ✗ | 需检查 | ✗ | ✗ | 需检查 |
| 接口契约 | 需检查 | ✗ | 需通知 | 需通知 | 需检查 |
输出:templates/association-checklist.md、templates/butterfly-check.md
输出:templates/report.md
docs/code-part-modification/
└── task-{yyyymmdd}-{seq}/
├── requirement.md
├── impact-analysis.md
├── tasks.md
├── test-cases.md
├── changes.md
├── verification.log
├── butterfly-check.md
└── report.md
| 主题 | 要点 |
|---|---|
| 修改粒度 | 单Bug=1修改点;功能增强=1功能点;重构=1类/模块 |
| 测试优先级 | 必须:修改点单元测试+直接调用方集成;建议:影响范围回归;可选:全量回归 |
| 回滚策略 | 每次修改可独立回滚,记录回滚命令和影响 |
| 文档同步 | API文档、README、CHANGELOG、内部文档 |
| 技能 | 用途 |
|---|---|
code-review | 修改完成后审查代码 |
code-detect-dup | 检查是否引入重复代码 |
java-gen-unittest | 自动生成单元测试 |
| 问题 | 方案 |
|---|---|
| 修改点无法测试 | 提取方法/类 → Mock隔离 → 复制到测试环境 → 集成测试 |
| 如何确保不影响其他功能 | 全量关联检查 → 回归测试 → 检查调用点 → 验证接口兼容性 |
| 多个修改点如何处理 | 识别依赖 → 按序逐一修改 → 独立验证 → 集成验证 |
| 验证一直失败 | 记录次数(>5停止) → 重新评估方案 → 人工介入 → 替代方案 |
开始前:需求已明确 / 修改点已定位 / 影响范围已分析
修改中:修改遵循最小化原则 / 测试已覆盖修改点 / 自愈循环验证通过
完成后:全量关联检查完成 / 蝴蝶效应检查通过 / 文档已更新 / 任务报告已输出