mcpField
C
code-quality

code-quality

github.com/s-hiraoku测试与质量1892 次安装3 周前更新
代码仓库

关于 code-quality

面向 Python 项目的代码质量技能,可运行 Ruff 和 Mypy 检查,并按需执行 pytest、自动修复和代码简化。默认检查近期修改的文件,也可检查 synapse/ 中的全部文件。

主要功能

  1. 01Ruff 代码检查
  2. 02Mypy 类型检查
  3. 03可选运行 pytest
  4. 04Ruff 自动修复
  5. 05可选代码简化

适用场景

  1. 01检查近期修改的 Python 文件
  2. 02检查 synapse/ 中的全部文件
  3. 03自动修复 Ruff 问题
  4. 04通过检查后运行测试

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/s-hiraoku/synapse-a2a --skill code-quality

安装后在 Claude Code 中输入/code-quality确认已加载。

详细介绍

代码质量检查

此技能会运行代码质量工具(ruff、mypy、pytest),并可选择简化代码。

用法

/code-quality [options]
选项
  • --all 或 -a:检查 synapse/ 中的所有文件(默认:仅检查最近修改的文件)
  • --no-simplify:跳过 code-simplifier Agent(默认情况下,检查通过后会运行 code-simplifier)
  • --fix 或 -f:使用 --fix 标志自动修复 ruff 问题
  • --test 或 -t:lint 检查通过后运行 pytest
  • --full:运行所有检查,包括测试(等同于 --fix --test)

工作流

第 1 步:确定目标文件

如果提供了 --all 标志:

  • 目标为 synapse/ 目录中的所有文件

否则:

  • 运行 git diff --name-only HEAD~1 获取最近修改的文件
  • 筛选出 synapse/ 或 tests/ 中的 .py 文件
第 2 步:运行 Ruff Linter
ruff check [files]

如果提供了 --fix 标志:

ruff check --fix [files]

报告发现的任何错误。如果修复后仍有错误,则停止并报告。

第 3 步:运行 Mypy 类型检查器
uv run mypy [files]

报告发现的任何类型错误。如果存在错误,则停止并报告。

第 4 步:运行测试(如果使用 --test 或 --full)

如果提供了 --test 或 --full 标志,且 ruff/mypy 检查通过:

pytest

要运行与修改文件相关的特定测试:

pytest tests/ -v

报告任何测试失败。

第 5 步:运行 Code Simplifier(默认)

默认情况下,所有检查通过后运行 code-simplifier。使用 --no-simplify 标志跳过。

使用 code-simplifier:code-simplifier Agent 简化最近修改的代码:

Task tool with subagent_type: code-simplifier:code-simplifier
Prompt: Simplify and refine the recently modified code in [files].
Look for opportunities to reduce duplication, simplify conditionals,
and improve readability while maintaining all functionality.
第 6 步:报告结果

总结:

  • 检查的文件数量
  • Ruff 状态(通过/失败;如果使用 --fix,报告修复的错误)
  • Mypy 状态(通过/失败)
  • Pytest 状态(通过/失败;如果未运行则注明跳过)
  • Code simplifier 状态(默认运行;如果使用 --no-simplify 则注明跳过)

错误处理

发现错误时:

  1. Ruff 错误:如果提供了 --fix,先尝试自动修复。按 file:line 格式报告剩余错误。
  2. Mypy 错误:按 file:line 格式报告类型错误,并根据错误消息提出修复建议。
  3. 测试失败:报告失败的测试名称和断言错误。如果测试失败,切勿继续进行代码简化。

示例

检查最近修改的内容
/code-quality
自动修复并检查所有文件
/code-quality --all --fix
执行包含测试的完整质量检查
/code-quality --full
仅运行测试
/code-quality --test
跳过代码简化
/code-quality --no-simplify
简写
/lint          # Same as /code-quality (includes simplification)
/check         # Same as /code-quality
/lint -a -f    # All files with auto-fix
/lint -t       # With tests
/lint --full   # Full check (--fix --test)
/lint --no-simplify  # Skip simplification

工具配置

此项目使用以下配置(来自 pyproject.toml):

Ruff
  • 目标版本:Python 3.10
  • 行长度:88
  • 规则:E、F、I、UP、B、SIM
  • 忽略:E501、B008
  • 排除:synapse/proto/a2a_pb2*.py
Mypy
  • 严格模式,启用 disallow_untyped_defs
  • 测试使用宽松规则(ignore_errors)
  • 排除 Proto 文件
Pytest
  • asyncio_mode:auto
  • 运行方式:pytest 或 pytest tests/ -v

评论

支持 Markdown