# Pmp Java Review

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

- Skill: `junxian12366/pmp-java-review` (Agent Skill)
- Install (CLI): `npx skillmds@latest add junxian12366/pmp-java-review`
- Raw SKILL.md: https://api.skillmd.com/api/skills/junxian12366/pmp-java-review/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: JunXian12366 (https://skillmd.com/u/junxian12366)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/junxian12366/pmp-java-review

---


# 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()`）不需要修复，用户已明确要求跳过此规则。**

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

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

