Pmp Java Review

对指定的 PMP Java/Spring 差异或文件范围进行只读审查,识别具体的正确性、安全性和接口契约风险。不适用于实施修复、开放式诊断、代码风格整理或生成测试。

JunXian12366 Updated

File contents

PMP Java 代码审查

如果可以访问 ..\..\copilot-instructions.md,请遵循其中的共享约束;此处引用不会自动激活这些约束。

操作步骤

  1. 明确用户指定的差异/比较基准或文件范围。若未指定,则审查已跟踪文件中已暂存和未暂存的改动;不要擅自假定分支比较基准,也不要纳入无关的未跟踪文件。
  2. 阅读变更代码,以及理解影响所必需的最少相关契约、调用方和测试。
  3. 检查 API 大小写、载荷和状态码兼容性,service 到 Feign 的传递逻辑、异常行为、敏感信息日志,以及变更行为的测试覆盖情况。
  4. 仅报告有具体失败场景支持、可采取行动的问题。区分已确认的缺陷、测试缺口和待确认问题;避免无证据的性能或可靠性断言。
  5. 若差异涉及 pmp-data-lease 仓储层,核查是否引入了 @Query 的 HQL/JPQL/原生 SQL 字符串(含 join fetch);该仓库要求一律通过 XxxRepositoryCustom/XxxRepositoryImpl + CriteriaBuilder 实现,出现 @Query 应作为可采取行动的问题报告。
  6. 核查常见可预测的 SonarQube 告警:变量/参数名是否使用了 record 等受限标识符(S6213);日期字面量是否应改用 java.time.Month 等枚举常量(S8694);数值断言是否应改用 isZero() 等语义化断言(S5838);单个测试方法断言数量是否超过 25 个而需要拆分(S5961);lambda(如 assertThrows/assertThatThrownBy)内是否有多个可能抛异常的调用需要拆出局部变量(S5778);对同一断言主体的多个连续 assertThat(x)... 是否应合并为一条链式断言(S5853)。发现即作为可采取行动的问题报告。例外:java:S2143("Use the java.time API for date and time",即禁止 new Date())不需要修复,用户已明确要求跳过此规则。

任务边界

  • 只读:不得编辑文件、应用修复、修改配置、提交或运行应用。
  • 除非用户明确要求验证,否则不得运行构建或测试;执行前先检查拟运行的检查是否会产生外部影响。
  • 不要报告无关的既有问题、推测性的架构建议或纯格式问题。

证据与完成标准

按严重程度排列问题。每项问题需包含文件及行号、触发条件、影响和有针对性的建议。最后说明审查范围,以及已执行和未执行的检查。若未发现可采取行动的问题,应如实说明,但不要宣称代码不存在缺陷;同时指出重要的覆盖局限。

JunXian12366/agent-skill/tree/main/skills/pmp-java-review commit d5c6a17956

Frequently asked questions

npx skillmds@latest add junxian12366/pmp-java-review