返回顶部
c

code-qc代码质量审计

Run a structured quality control audit on any codebase. Use when asked to QC, audit, review, or check code quality for a project. Supports Python, TypeScript, GDScript, and general projects. Produces a standardized report with PASS/WARN/FAIL verdict, covering tests, imports, type checking, static analysis, smoke tests, and documentation. Also use when asked to compare QC results over time.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
689
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

code-qc

技能名称: code-qc
详细描述:

代码质量审计

针对代码库的结构化质量控制审计。将静态分析委托给合适的工具(ruff、eslint、gdlint),并专注于AI的增值领域:语义理解、跨模块一致性以及动态冒烟测试生成。

快速开始

  1. 1. 检测项目类型(读取该语言的配置文件)
  2. 如果存在.qc-config.yaml,则加载它(用于自定义阈值/排除项)
  3. 运行8阶段审计(或使用--quick运行子集)
  4. 生成带有判定结果的报告
  5. 保存基线以便将来比较

配置(.qc-config.yaml)

适用于单体仓库和自定义设置的可选项目级配置:

yaml

.qc-config.yaml


thresholds:
testfailurerate: 0.05 # >5% = 失败, 0-5% = 警告, 0% = 通过
linterrorsmax: 0 # 超过此数量的lint错误则失败
lintwarningsmax: 50 # 超过此数量的警告则发出警告
typeerrorsmax: 0 # 超过此数量的类型错误则失败(默认严格)

exclude:
dirs: [vendor, third_party, generated]
files: [_generated.py, .pb.go]

changed_only: false # 仅检查git变更的文件(CI模式)
fail_fast: false # 遇到第一个失败即停止
quick_mode: false # 仅运行阶段1、3、3.5、6

languages:
python:
min_coverage: 80
ignore_rules: [T201] # 在此项目中允许使用print
typescript:
strict_mode: true # 要求tsconfig strict: true
ignore_rules: [] # 要忽略的eslint规则
gdscript:
godot_version: 4.2

执行模式

模式运行的阶段使用场景
完整(默认)全部8个阶段全面审计
--quick
1、3、3.5、6 | 快速健康检查 | | --changed-only | 全部,已过滤 | 拉取请求上的CI | | --fail-fast | 全部,提前停止 | 快速找到第一个问题 | | --fix | 阶段3带自动修复 | 应用自动修复 |

阶段概览

#阶段内容工具
1测试套件运行现有测试 + 覆盖率pytest --cov / jest --coverage
2
导入完整性 | 验证所有模块可加载 | scripts/import_check.py | | 3 | 静态分析 | 使用合适的工具进行lint检查 | ruff / eslint / gdlint | | 3.5 | 类型检查 | 静态类型验证 | mypy / tsc --noEmit / (GDScript不适用) | | 4 | 冒烟测试 | 验证业务逻辑是否正常 | 按项目由AI生成 | | 5 | UI/前端 | 验证UI组件可加载 | 框架特定 | | 6 | 文件一致性 | 语法 + git状态 | scripts/syntax_check.py + git | | 7 | 文档 | 文档字符串 + 文档准确性 | scripts/docstring_check.py |

阶段详情

阶段1:测试套件

运行项目的测试套件并收集覆盖率。自动检测测试运行器:

pytest.ini / pyproject.toml [tool.pytest] → pytest --cov
package.json scripts.test → npm test (或 npx vitest --coverage)
Cargo.toml → cargo test
project.godot → (如果存在GUT则使用,否则手动)

记录: 总数、通过、失败、错误、跳过、持续时间、覆盖率百分比。

判定贡献:

  • - 未找到测试 → 跳过(不是失败;项目可能仅为配置项目)
  • 失败率 = 0% → 通过
  • 失败率 ≤ 阈值(默认5%) → 警告
  • 失败率 > 阈值 → 失败

覆盖率报告(Python):
bash
pytest --cov=<包名> --cov-report=term-missing --cov-report=json

阶段2:导入完整性(Python/GDScript)

Python: 对项目根目录运行 scripts/import_check.py。

GDScript: 验证场景/预加载引用是否有效(参见 gdscript-profile.md)。

关键导入与可选导入分类

使用以下启发式规则对导入失败进行分类:

模式分类理由
init.py、main.py、app.py、cli.py关键核心入口点
src/、lib/或顶级包中的模块
关键 | 核心功能 |
| test.py、test.py、conftest.py | 可选 | 测试基础设施 |
| examples/、scripts/、tools/中的模块 | 可选 | 辅助代码 |
| 导入错误提及cuml、triton、tensorrt | 可选 | 硬件特定 |
| 导入错误提及缺失的系统库 | 可选 | 环境特定 |
| [project.optional-dependencies]中的依赖 | 可选 | 声明为可选 |

阶段3:静态分析

不要使用grep。 使用该语言的标准linter。

标准模式

bash

Python

ruff check --select E722,T201,B006,F401,F841,UP,I --statistics <项目>

TypeScript

npx eslint . --format json

GDScript

gdlint <项目>

修复模式(--fix)

当指定--fix时,应用自动修正:

bash

Python — 安全自动修复


ruff check --fix --select E,F,I,UP <项目>
ruff format <项目>

TypeScript

npx eslint . --fix

GDScript

gdformat <项目>

重要: 在--fix之后,重新运行检查以报告无法自动修复的剩余问题。

阶段3.5:类型检查(新增)

在进行运行时检查之前,运行静态类型分析。

Python:
bash
mypy <包名> --ignore-missing-imports --no-error-summary

或者如果pyproject.toml中有[tool.pyright]:


pyright <包名>

TypeScript:
bash
npx tsc --noEmit

GDScript: Godot 4具有内置静态类型,但没有独立的检查器。手动估算类型覆盖率:

bash

查找未类型化的声明


grep -rn var \w\+ = --include=*.gd . # 未类型化的变量
grep -rn func \w\+( --include=*.gd . | grep -v : # 未类型化的函数

使用gdscript-profile.md中的estimatetypecoverage()函数计算每个文件的覆盖率:
python

来自gdscript-profile.md


def estimatetypecoverage(gd_file: str) -> float:
计算已类型化与未类型化声明的数量。
# 完整实现请参见gdscript-profile.md

同时检查@warning_ignore注解,这些注解可能隐藏类型问题。

记录: 总错误数,按严重性分类。

阶段4:冒烟测试(业务逻辑)

测试后端/核心功能 — 不是UI组件(那是阶段5)。

API发现启发式规则:

  1. 1. 入口点: 查找main()、cli()、app、createapp()、main.py
  2. 服务层: 查找名为Service、Manager、*Handler的类/模块
  3. 公共API: 检查init.py中的all导出
  4. FastAPI/Flask: 查找路由装饰器(@app.get、@router.post)
  5. CLI: 查找typer/click @app.command()装饰器
  6. SDK: 查找客户端类、不带前缀的公共方法

对于每个发现的API,生成一个最小测试:
python
def smoketestuser_service():
测试UserService基本CRUD。
from myproject.services.user import UserService
svc = UserService(db=:memory:)
user = svc.create(name=test)
assert user.id is not None
fetched = svc.get(user.id)
assert fetched.name == test
return 通过

指南

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 code-qc-1776419979 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 code-qc-1776419979 技能

通过命令行安装

skillhub install code-qc-1776419979

下载

⬇ 下载 code-qc v1.0.0(免费)

文件大小: 27.79 KB | 发布时间: 2026-4-17 19:49

v1.0.0 最新 2026-4-17 19:49
Initial release: 8-phase structured code quality audit. Supports Python (ruff, pytest, mypy), TypeScript (eslint, tsc), GDScript (gdlint, gdformat, GUT). Features: AI-generated smoke tests, baseline comparison, auto-fix mode, configurable thresholds, monorepo support.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部