关于 sonar-fix-issue
该技能指导编码 Agent 修复 SonarQube 标记的代码质量或安全问题,尽量减少改动并保持原有行为。它可在修改代码前查询 SonarQube 规则详情。
主要功能
- 01解析规则、文件和行号输入
- 02查询 SonarQube 规则说明
- 03阅读完整文件上下文
- 04以最小改动保持原有行为
- 05说明改动并建议后续检查
适用场景
- 01按规则键修复问题
- 02修复指定文件中的问题
- 03处理自然语言描述的问题
MCP 相关
若工具可用,它会调用 SonarQube MCP 工具 `mcp__sonarqube__show_rule` 获取规则说明。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sonarsource/ sonarqube-agent-plugins --skill sonar-fix-issue安装后在 Claude Code 中输入/sonar-fix-issue确认已加载。
详细介绍
SonarQube — 修复问题
修复 SonarQube 识别出的代码质量或安全问题。
用法
sonar-fix-issue java:S1481 src/main/java/MyClass.java:42
sonar-fix-issue python:S2077 src/auth/login.py
sonar-fix-issue Remove unused variable in MyClass.java
说明
步骤 1:识别问题
解析用户提供的参数,查找以下内容:
- 规则键(例如
java:S1481、python:S2077) - 文件路径和可选的行号(例如
src/auth/login.py:34) - 如果未提供规则键,则查找自然语言描述
如果既无法确定规则键,也无法确定文件路径,请询问:“应该修复哪个规则和文件?”
步骤 2:查询规则(如果提供了规则键)
调用 mcp__sonarqube__show_rule,根据规则键检索完整的规则说明、原因和修复指南,然后再修改任何代码。不要添加额外参数(例如 projectKey),除非工具架构要求提供这些参数——集成后,查询规则通常只需要规则键。
如果 MCP 工具不可用,则改用 sonar api get "/api/rules/show?key=<rule-key>"。如果 sonar 也不可用或未通过身份验证,则依靠对 SonarQube 规则的内置知识。
步骤 3:读取文件
读取完整的文件内容。如果提供了行号,则重点分析该行附近的内容,但仍要读取整个文件以了解上下文。
步骤 4:应用修复
- 进行能够解决规则违规的最小改动
- 不要重构周边代码,也不要修复无关问题
- 保留现有行为——修复不得改变代码的功能
步骤 5:说明改动
编辑后,简要说明:
- 违规内容是什么
- 规则为何会标记该问题
- 改动了什么,以及为何能解决问题
步骤 6:建议后续操作
- “调用 sonar-analyze 技能并传入
<file>,以确认没有引入新问题。” - “调用 sonar-list-issues 技能并传入项目键(或
sonar-project.properties中的sonar.projectKey)——CLI 始终使用-p。”
评论
支持 Markdown