catalog/repos/ajaywadhara--java-doctor.md

6.4 KiB
Raw Permalink Blame History

Java代码健康分析器

Java 代码审查 AI 静态分析 安全检测

Java Doctor

版本 许可证 Stars

AI 驱动的 Java 代码健康分析器,扫描安全、性能、正确性和架构问题。输出 0-100 分的评分及可操作的诊断建议,自动检测涵盖 22 个类别的 280+ 条规则。

概述

Java Doctor 是一个 AI 驱动的代码审查技能,用于分析 Java 项目中的问题。它自动检测项目所用技术Spring Boot、gRPC、JPA、Lombok并按需加载相关规则。

280+ 条规则,覆盖 22 个类别——从安全漏洞到虚拟线程陷阱,再到深度测试检查。

支持主流 AI 编程助手:

助手 支持方式
Claude Code 原生skills
Cursor 原生skills
KiloCode 原生skills
GitHub Copilot 通过自定义指令
Windsurf 原生skills

快速开始

# 通过 skills CLI 安装(推荐)
npx skills add ajaywadhara/java-doctor

# 或手动克隆
git clone https://github.com/ajaywadhara/java-doctor.git

# 复制到 AI 助手的 skills 目录
# Claude Code / Cursor / KiloCode
cp -r java-doctor ~/.claude/skills/
# 或
cp -r java-doctor ~/.cursor/skills/
# 或
cp -r java-doctor ~/.kilocode/skills/

激活技能后说:"运行 Java Doctor"

功能特性

280+ 条规则,覆盖 22 个类别

技术 检测条件 规则数
核心 始终 108 条(安全、空值安全、性能、并发等)
Spring Boot spring-boot-starter-parent +23 条
gRPC grpc-java +26 条
JPA/Hibernate hibernatespring-data-jpa +15 条
Lombok lombok +5 条
构建工具 始终 +20 条
虚拟线程 检测到 Java 21+ +10 条synchronized 钉死、ScopedValue、StructuredTaskScope
测试深度 始终 +10 条JaCoCo、Testcontainers、Awaitility、AssertJ
死代码 始终 +15 条
Effective Java 始终 +37 条版本感知Java 8-25
最佳实践 始终 +15 条
API 设计 始终 +11 条

版本检测

  • Java:从 pom.xml/build.gradle 自动检测 8-25 版本
  • Spring Boot:自动检测 3.x 或 4.x

评分标准

  • 75-100:优秀 - 可投入生产
  • 50-74:需改进 - 处理警告项
  • 0-49:危急 - 必须修复阻塞问题

输出格式

  • Markdown默认
  • JSON
  • HTML
  • SARIFIDE 集成)
  • CSV

使用方式

"运行 Java Doctor"
"检查我的 Java 代码"
"查找代码中的安全问题"
"扫描性能问题"
"分析这个 Java 项目"

触发短语

  • run java doctor
  • scan my java code
  • java code review
  • find bugs in java
  • check for security issues in java
  • find performance problems
  • analyze java code

规则类别280+ 条)

类别 加载时机 描述
安全16条 始终 硬编码密钥、SQL 注入、OWASP Top 10
空值安全8条 始终 Optional.get()、空值返回
异常处理8条 始终 被吞掉的异常
性能12条 始终 N+1 查询、字符串拼接
并发12条 始终 线程安全
资源管理7条 始终 未关闭的流、连接
架构10条 始终 上帝类、过长方法
日志7条 始终 System.out、敏感数据
代码风格35条 始终 格式化、命名规范
Effective Java37条 始终 版本感知Java 8-25
最佳实践15条 始终 魔法数字、命名、复杂度
API 设计11条 始终 REST 规范、分页
测试8条 始终 缺少测试、断言
测试深度10条 始终 JaCoCo、Testcontainers、Awaitility、AssertJ
死代码15条 始终 未使用的方法、字段、导入
虚拟线程10条 Java 21+ synchronized 钉死、ScopedValue、StructuredTaskScope
Spring/Boot23条 检测到时 @Transactional、Boot 4.x
gRPC26条 检测到时 Channel 复用、TLS
JPA15条 检测到时 Hibernate 问题
Lombok5条 检测到时 实体上的 @Data、@Builder 默认值
构建工具20条 始终 依赖、插件

项目结构

java-doctor/
├── SKILL.md              # 主技能定义280+ 条规则)
├── CHANGELOG.md          # 版本历史
├── LICENSE               # MIT 许可证
├── README.md             # 本文件
└── references/           # 详细参考资料
    ├── bug-patterns.md
    ├── security-checklist.md
    ├── performance-antipatterns.md
    ├── spring-best-practices.md
    ├── effective-java-mapping.md
    ├── version-specific-changes.md
    ├── grpc-best-practices.md
    ├── virtual-threads-guide.md
    └── testing-depth-guide.md

面向 AI 助手开发者

工具要求

请根据您的助手适配以下工具:

  • Bash:执行 git 命令、运行分析
  • Read:读取源文件
  • Write:生成报告
  • Glob:查找 Java 文件
  • Grep:搜索模式
  • question:向用户寻求澄清

Token 用量

  • 启动:约 100 tokens元数据
  • 激活:约 4,000 tokens核心规则 + 检测到的技术)
  • 参考资料:约 20,000 tokens按需加载

输出示例

# Java Doctor 报告

## 摘要
| 指标 | 值 |
|--------|-------|
| 评分 | 75/100 |
| 状态 | 需改进 |
| Java 版本 | 17 |
| 分析文件数 | 12 |
| 问题 | 严重: 2, 错误: 3, 警告: 8 |

## 问题
### 安全(严重)
1. AuthService.java:42 - 硬编码密码
   修复:使用 @Value 注入

贡献

  1. Fork 本仓库
  2. 创建功能分支
  3. 提交 PR

Skills 市场

skills.sh

通过 CLI 安装:

npx skills add ajaywadhara/java-doctor

许可证

MIT 许可证 - 详见 LICENSE 文件

作者

Ajay Wadhara