关于 minimalist-surgical-development
minimalist-surgical-development 是面向修改现有代码的开发技能,强调以最小改动解决明确问题并保留原有结构。它还提供使用 Serena MCP 按符号查找和编辑代码的指导。
主要功能
- 01以最少代码解决问题
- 02保留现有代码结构与风格
- 03避免未经要求的重构
- 04优先使用标准库和常见模式
- 05通过 Serena MCP 按符号导航和编辑
适用场景
- 01为现有代码实施小范围修复
- 02按要求修改功能且避免无关改动
- 03使用 Serena MCP 定位代码符号及引用
MCP 相关
该技能建议在探索和编辑代码时使用 Serena MCP 的符号工具,例如查找符号、引用及按符号编辑。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ faulkdev/ github-copilot-superpowers --skill minimalist-surgical-development安装后在 Claude Code 中输入/minimalist-surgical-development确认已加载。
详细介绍
极简且精准的开发
概述
像 Kent Beck 一样编写代码。 这项技能让改动保持精简且符合惯例:用尽可能少的代码、尽可能少地扰动现有结构,解决明确提出的问题。
适用场景……
- 请求强调“最小改动”“精准修复”“保留结构”“不要重构”
- 任务是修改现有代码,而不是从头开始构建
- 有引入新抽象、框架或大规模重写的冲动
症状 / 关键词
- “最小化”“精准”“小 diff”“不要动无关部分”“保持风格”“不重构”“优先使用标准库”“YAGNI”“KISS”
极简且符合标准的代码生成
- 简单性原则:始终提供尽可能直接、精简的解决方案。目标是用尽可能少的代码和复杂度解决问题。避免过早优化或过度设计。
- 标准优先:优先使用标准库函数和广受认可的常见编程模式。只有在第三方库是该任务的行业标准或绝对必要时,才引入它们。
- 避免繁复的解决方案:不要提出复杂、“巧妙”或晦涩的方案。相比错综复杂的模式,优先考虑可读性、可维护性,以及用最短路径得到可用结果。
- 聚焦核心请求:生成能直接满足用户请求的代码,不要添加额外功能,也不要处理未提及的边缘情况。
精准修改代码
- 保留现有代码:当前代码库是事实依据,必须予以尊重。首要目标是在可能的情况下保留其结构、风格和逻辑。
- 只做必要的最小改动:添加新功能或进行修改时,只改动成功实现变更所绝对必要的现有代码。
- 仅遵循明确指示:只修改、重构或删除用户请求中明确指定的代码。不要擅自重构、清理或调整未涉及部分的风格。
- 整合而非替换:只要可行,就将新逻辑整合进现有结构,而不是替换整个函数或代码块。
符号优先导航(Serena MCP)
在修改代码前探索代码结构时,优先使用 Serena MCP 符号工具,而不是读取整个文件:
get_symbols_overview- 快速概览文件结构(类、函数、方法)find_symbol- 按名称定位特定代码,无需读取整个文件find_referencing_symbols- 查找所有调用位置,了解变更影响
符号优先为何更精简:
- 减少上下文污染:只查看所需代码
- 编辑前确定准确目标:无需猜测要修改什么
- 发现现有模式:查找相似代码以保持一致性
- 快速检查重构:确认变更不会破坏现有用法
编辑时,优先使用符号编辑工具,而不是基于文件的替换:
- 使用
insert_before_symbol/insert_after_symbol添加代码 - 使用
replace_symbol_body重写函数实现 - 只有在编辑函数内部的小段内容时,才使用
replace_content(基于文件)
请参阅 serena-mcp-integration-guide.md,了解详细场景和示例。
智能工具使用
- 必要时使用工具(通过子代理):当请求需要外部信息或直接与环境交互时,派遣合适的子代理使用必要工具,并返回附有引用的上下文包。编排者不得直接执行调查或数据获取类 I/O。
- 按要求直接编辑代码(通过子代理):如果明确要求修改、重构或添加代码,派遣实现子代理直接在代码库中应用更改。除非用户要求,否则避免复制粘贴代码片段;默认由子代理实施小幅、精准的差异。
- 有目的地聚焦行动:工具的使用必须与用户请求直接相关。不要进行无关的搜索或修改。工具执行的每项操作都必须是完成特定明确目标所必需的步骤。
- 使用工具前声明意图:执行任何工具前,必须先说明即将采取的操作及其直接目的。声明应简洁,并紧接在工具调用之前。
快速检查清单
- 确保研究子代理在进行任何更改前,已阅读相关文件并提供引用
- 以满足要求为准,尽可能缩小差异
- 优先使用现有工具或抽象,而不是新增实现
- 除非理由充分,否则避免引入新依赖
评论
支持 Markdown