This repository has been archived on 2026-03-09. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
2026-01-30 00:42:33 +08:00

322 lines
8.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 代码质量保障系统
一套完整的 Agent + Hook + Skill 组合,让 AI 能够写出更完善的代码。
## 🎯 核心功能
### 1. 自动完成检查 (Auto-Complete Hook)
- 拦截 Agent 任务结束,自动检查代码质量
- 检测未完成的功能、TODO、空函数、占位符
- 最多允许 3 次迭代修复
- 未通过时阻止任务完成,生成修复要求
### 2. 深度质量检查 (Code-Quality Skill)
- 手动触发命令:`/code-quality`
- 全面检查:功能、代码、测试、文档、规范、安全
- 生成详细的质量报告
- 提供修复建议和自动修复选项
### 3. 智能通知系统
- Windows 桌面通知
- 声音提醒(成功/警告/注意)
- 异步发送,不阻塞工作流程
## 📁 文件结构
```
code-quality-system/
├── hooks/ # Hook 脚本
│ ├── auto-complete-check.py # 主检查逻辑
│ ├── requirements-tracker.py # 需求追踪器
│ ├── code-analyzer.py # 代码分析器
│ ├── notification-sender.py # 通知发送器
│ └── requirements.txt # Python 依赖
├── custom-skills/ # 自定义技能
│ └── code-quality/
│ ├── skill.json # 技能定义
│ └── instructions.md # 技能指令
├── config/ # 配置文件
│ └── code-quality-config.json # 系统配置
├── sounds/ # 声音资源
│ ├── README.md # 声音文件说明
│ ├── success.wav # 成功提示音
│ ├── warning.wav # 警告提示音
│ └── attention.wav # 注意提示音
├── deploy.bat # 一键部署脚本
└── README.md # 本文件
```
## 🚀 快速开始
### 方法 1: 使用一键部署脚本(推荐)
1. 双击运行 `deploy.bat`
2. 选择部署模式:
- **全局部署**:所有项目自动启用
- **项目部署**:仅当前项目启用
3. 重启 Claude Code
4. 完成!
### 方法 2: 手动部署
#### 全局部署
```bash
# 1. 复制文件到 Claude Code 配置目录
cp -r hooks/* ~/.claude/hooks/
cp -r custom-skills/* ~/.claude/custom-skills/
cp config/code-quality-config.json ~/.claude/
# 2. 安装 Python 依赖
pip install plyer pygame
# 3. 配置 settings.json
# 添加以下内容到 ~/.claude/settings.json:
{
"hooks": {
"TaskEnd": [
{
"type": "command",
"command": "python ~/.claude/hooks/auto-complete-check.py"
}
]
}
}
```
#### 项目部署
```bash
# 1. 复制文件到项目目录
cp -r hooks/* .claude/hooks/
cp -r custom-skills/* .claude/custom-skills/
cp config/code-quality-config.json .claude/
# 2. 安装 Python 依赖
pip install plyer pygame
```
## 🔧 配置说明
编辑 `code-quality-config.json` 自定义系统行为:
```json
{
"enabled": true, // 是否启用
"checkLevel": "standard", // 检查级别: standard/deep
"maxIterations": 3, // 最大迭代次数
"notification": {
"enabled": true, // 启用通知
"sound": true, // 启用声音
"desktop": true, // 启用桌面通知
"soundVolume": 0.7 // 音量 (0.0-1.0)
},
"thresholds": {
"passingScore": 80, // 通过分数
"warningScore": 60, // 警告分数
"maxTodos": 5, // 最大 TODO 数量
"maxEmptyFunctions": 0, // 最大空函数数量
"maxPlaceholders": 0 // 最大占位符数量
}
}
```
## 📖 使用方法
### 自动检查(默认启用)
系统会在以下情况自动触发检查:
- 主 Agent 完成任务时
- 任何子 Agent 完成任务时
- 不需要手动干预
### 手动检查
使用 `/code-quality` 命令:
```
# 标准检查
/code-quality
# 深度检查
/code-quality --deep
# 聚焦特定方面
/code-quality --focus security
/code-quality --focus documentation
/code-quality --focus code-style
```
### 工作流程
```
┌─────────────────┐
│ AI 开始编码 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ AI 声明完成 │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Hook 拦截 │◄───────────────┐
└────────┬────────┘ │
│ │
▼ │
┌─────────────────┐ │
│ 执行快速检查 │ │
└────────┬────────┘ │
│ │
┌────┴────┐ │
│ │ │
通过❌ 通过✅ │
│ │ │
▼ ▼ │
┌─────────┐ ┌──────────┐ │
│迭代+1 │ │允许结束 │ │
└────┬────┘ └──────────┘ │
│ │
▼ │
┌─────────┐ │
│生成修复 │ │
│要求 │ │
└────┬────┘ │
│ │
▼ │
┌─────────────────┐ │
│ AI 继续修复 │────────────────┘
└─────────────────┘
```
## 🔍 检查维度
### 1. 功能完整性
- 对比需求清单
- 验证所有功能已实现
- 检查缺失的功能
### 2. 代码完整性
- 检测 TODO、FIXME
- 检测空函数、占位符
- 检测被注释的代码
- 检测调试语句
### 3. 代码规范
- 命名规范
- 格式一致性
- 语言特定规范(ESLint、PEP 8、Clippy)
- 项目特定规范
### 4. 测试覆盖
- 测试文件存在性
- 测试用例数量
- 关键功能测试
### 5. 文档完整性
- 函数/类注释
- README 文档
- API 文档
### 6. 安全检查
- SQL 注入风险
- XSS 漏洞
- 硬编码密钥
- 不安全的函数调用
## 📊 检查报告示例
```
## 代码质量检查报告
### 总体评分:85/100
### 完成度分析
✅ 用户登录功能 (100%)
✅ 数据库连接 (100%)
⚠️ API 错误处理 (60%) - 缺少部分错误码
❌ 日志记录 (0%) - 未实现
### 代码质量
- TODO: 3 个
- 空函数: 0 个
- 被注释代码: 2 处
- 占位符: 1 个
### 修复建议(按优先级)
1. [高] 实现日志记录模块
2. [高] 补充 API 错误码
3. [中] 清理被注释的代码
4. [低] 处理 TODO 项
```
## 🛠️ 故障排除
### 通知不工作
1. 检查依赖是否安装:
```bash
pip install plyer pygame
```
2. 测试通知:
```bash
python ~/.claude/hooks/notification-sender.py test
```
3. 检查配置文件中的 `notification.enabled` 是否为 `true`
### Hook 不触发
1. 检查 `settings.json` 配置是否正确
2. 检查 Python 脚本是否有执行权限
3. 查看 Claude Code 日志:`~/.claude/logs/`
### 声音文件缺失
系统会自动使用 Windows 系统 Beep 音效作为回退,不影响功能。
如需自定义声音,参考 `sounds/README.md`。
## 📝 卸载
### 使用部署脚本
1. 运行 `deploy.bat`
2. 选择"卸载"
3. 选择要卸载的组件(全局/项目)
### 手动卸载
```bash
# 全局部署
rm ~/.claude/hooks/auto-complete-check.py
rm ~/.claude/hooks/requirements-tracker.py
rm ~/.claude/hooks/code-analyzer.py
rm ~/.claude/hooks/notification-sender.py
rm -rf ~/.claude/custom-skills/code-quality
rm ~/.claude/code-quality-config.json
# 项目部署
rm -rf .claude
```
## 🤝 贡献
欢迎提交问题和改进建议!
## 📄 许可
MIT License
## 🔗 相关资源
- [Claude Code 官方文档](https://github.com/anthropics/claude-code)
- [Hook 开发指南](./README.md) - 项目根目录的 Hook 使用指南
- [Superpowers 技能集](https://github.com/obra/superpowers-marketplace)
---
**让 AI 写出更完善的代码!** 🚀