Quality 验证
- 作者仓库星标 5,436
- 许可证 MIT
- 作者仓库 ccg-workflow
⚖ 校验关卡 · 代码质量
核心原则
代码质量 = 可读性 + 可维护性 + 可测试性
劣质代码是技术债,技术债是道基裂痕
复杂度是 bug 的温床
自动检查
运行质量检查脚本(跨平台):
# 在 skill 目录下运行
node scripts/quality_checker.js <扫描路径>
node scripts/quality_checker.js <扫描路径> -v # 详细模式
node scripts/quality_checker.js <扫描路径> --json # JSON 输出
检测指标
复杂度指标
| 指标 | 阈值 | 超标后果 |
|---|---|---|
| 圈复杂度 | ≤ 10 | 🟠 警告,建议拆分 |
| 函数长度 | ≤ 50 行 | 🟠 警告,建议拆分 |
| 文件长度 | ≤ 500 行 | 🟡 提示,考虑拆分 |
| 参数数量 | ≤ 5 | 🟠 警告,考虑封装 |
| 嵌套深度 | ≤ 4 | 🟠 警告,建议重构 |
| 行长度 | ≤ 120 | 🔵 提示 |
命名规范
| 类型 | 规范 | 示例 |
|---|---|---|
| 类名 | PascalCase | UserService, HttpClient |
| 函数名 | snake_case | get_user, process_data |
| 常量 | UPPER_SNAKE | MAX_RETRY, DEFAULT_TIMEOUT |
| 变量 | snake_case | user_id, total_count |
代码异味
| 异味 | 说明 | 严重度 |
|---|---|---|
| 重复代码 | 相似代码块 > 10 行 | 🟠 High |
| 过长参数列表 | 参数 > 5 个 | 🟡 Medium |
| 魔法数字 | 未命名的常量 | 🟡 Medium |
| 死代码 | 未使用的函数/变量 | 🔵 Low |
| 注释代码 | 被注释的代码块 | 🔵 Low |
自动触发时机
| 场景 | 触发条件 |
|---|---|
| 复杂模块 | 代码行数 > 200 |
| 重构完成 | 重构任务完成时 |
| 代码审查 | PR/MR 审查时 |
| 提交前 | 代码提交前检查 |
校验流程
1. 扫描代码文件
2. 计算复杂度指标
3. 检测代码异味
4. 验证命名规范
5. 输出质量校验报告
校验报告格式
## 代码质量校验报告
✓ 通过 | ✗ 未通过
### 复杂度指标
- 平均函数复杂度: N
- 超标函数数: N
- 最大文件行数: N
### 代码异味
- 🟠 High: N
- 🟡 Medium: N
- 🔵 Low: N
### 问题清单
| 文件 | 行号 | 类型 | 严重度 | 描述 |
|------|------|------|--------|------|
| ... | ... | ... | ... | ... |
### 结论
可交付 / 需重构后交付
重构建议
降低复杂度
# 🔴 高复杂度 - 道基不稳
def process(data):
if condition1:
if condition2:
if condition3:
# 深层嵌套
pass
# ✅ 低复杂度 - 道基稳固
def process(data):
if not condition1:
return
if not condition2:
return
if not condition3:
return
# 主逻辑
消除重复
# 🔴 重复代码 - 异端
def func1():
# 10行相同逻辑
pass
def func2():
# 10行相同逻辑
pass
# ✅ 提取公共函数 - 正道
def common_logic():
# 公共逻辑
pass
def func1():
common_logic()
def func2():
common_logic()
- 流狐分类
- 通用
- 作者声明 Agent
- 未找到明确声明;不据此推断已兼容或已测试
- 静态检查
- 94 / 100 · 启发式扫描,不代表运行安全
- 作者 / 版本 / 许可
- @fengshao1227 · MIT
- 流狐 Token 估算
- 低消耗
- 流狐接入估算
- 需简单配置
- 是否需要外部 API Key
- 未发现要求
- 检测到的系统要求
- macOS · Linux · Windows
- 底层运行要求
- Node.js · Python
- 检测到的文件与系统行为
-
- 只读
- 检测到的网络行为
- 仅限本地
- 安装命令数
- 无(仅作为资料)
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
作者没有在当前 SKILL.md 中定义固定输出样例。 核心原则
核心原则
自动检查
运行质量检查脚本(跨平台):
检测指标
检测指标
复杂度指标
指标 · 阈值 · 超标后果 圈复杂度 · ≤ 10 · 🟠 警告,建议拆分 函数长度 · ≤ 50 行 · 🟠 警告,建议拆分
命名规范
类型 · 规范 · 示例 类名 · PascalCase · UserService, HttpClient 函数名 · snakecase · getuser, processdata
代码异味
异味 · 说明 · 严重度 重复代码 · 相似代码块 > 10 行 · 🟠 High 过长参数列表 · 参数 > 5 个 · 🟡 Medium
# ⚖ 校验关卡 · 代码质量
## 核心原则
```
代码质量 = 可读性 + 可维护性 + 可测试性
劣质代码是技术债,技术债是道基裂痕
复杂度是 bug 的温床
```
## 自动检查
运行质量检查脚本(跨平台):
```bash
# 在 skill 目录下运行
node scripts/quality_checker.js <扫描路径>
node scripts/quality_checker.js <扫描路径> -v # 详细模式
node scripts/quality_checker.js <扫描路径> --json # JSON 输出
```
## 检测指标
### 复杂度指标
| 指标 | 阈值 | 超标后果 |
|------|------|----------|
| **圈复杂度** | ≤ 10 | 🟠 警告,建议拆分 |
| **函数长度** | ≤ 50 行 | 🟠 警告,建议拆分 |
| **文件长度** | ≤ 500 行 | 🟡 提示,考虑拆分 |
| **参数数量** | ≤ 5 | 🟠 警告,考虑封装 |
| **嵌套深度** | ≤ 4 | 🟠 警告,建议重构 |
| **行长度** | ≤ 120 | 🔵 提示 |
### 命名规范
| 类型 | 规范 | 示例 |
|------|------|------|
| **类名** | PascalCase | `UserService`, `HttpClient` |
| **函数名** | snake_case | `get_user`, `process_data` |
| **常量** | UPPER_SNAKE | `MAX_RETRY`, `DEFAULT_TIMEOUT` |
| **变量** | snake_case | `user_id`, `total_count` |
### 代码异味
| 异味 | 说明 | 严重度 |
|------|------|--------|
| 重复代码 | 相似代码块 > 10 行 | 🟠 High |
| 过长参数列表 | 参数 > 5 个 | 🟡 Medium |
| 魔法数字 | 未命名的常量 | 🟡 Medium |
| 死代码 | 未使用的函数/变量 | 🔵 Low |
| 注释代码 | 被注释的代码块 | 🔵 Low |
## 自动触发时机
| 场景 | 触发条件 |
|------|----------|
| 复杂模块 | 代码行数 > 200 |
| 重构完成 | 重构任务完成时 |
| 代码审查 | PR/MR 审查时 |
| 提交前 | 代码提交前检查 |
## 校验流程
```
1. 扫描代码文件
2. 计算复杂度指标
3. 检测代码异味
4. 验证命名规范
5. 输出质量校验报告
```
## 校验报告格式
```
## 代码质量校验报告
✓ 通过 | ✗ 未通过
### 复杂度指标
- 平均函数复杂度: N
- 超标函数数: N
- 最大文件行数: N
### 代码异味
- 🟠 High: N
- 🟡 Medium: N
- 🔵 Low: N
### 问题清单
| 文件 | 行号 | 类型 | 严重度 | 描述 |
|------|------|------|--------|------|
| ... | ... | ... | ... | ... |
### 结论
可交付 / 需重构后交付
```
## 重构建议
### 降低复杂度
```python
# 🔴 高复杂度 - 道基不稳
def process(data):
if condition1:
if condition2:
if condition3:
# 深层嵌套
pass
# ✅ 低复杂度 - 道基稳固
def process(data):
if not condition1:
return
if not condition2:
return
… 证据边界与执行链路
作者原文负责流程事实;流狐只索引当前章节、要点、文件与命令。
章节 -> 核心原则 → 自动检查 → 检测指标 → 复杂度指标 → 命名规范 → 代码异味
要点 -> 圈复杂度 · 函数长度 · 文件长度 · 参数数量 · 嵌套深度 · 行长度 · 类名 · 函数名
文件/命令 -> UserService · HttpClient · getuser · processdata · MAXRETRY · DEFAULTTIMEOUT · userid · totalcount
内容 SHA-256 -> 957a302e0bb0
原文结构
适用与边界
原文中的明确线索
UserService、HttpClient、getuser、processdata、MAXRETRY、DEFAULTTIMEOUT、userid、totalcount