# pre-commit > 在代码提交前自动执行多维度质量检查,确保提交代码符合项目标准。**核心原则**:检查不通过则阻断提交,避免问题代码进入版本控制。 - Author: Kirky-X - Repository: Kirky-X/DevCraft-AI - Version: 20260115150227 - Stars: 0 - Forks: 0 - Last Updated: 2026-02-07 - Source: https://github.com/Kirky-X/DevCraft-AI - Web: https://mule.run/skillshub/@@Kirky-X/DevCraft-AI~pre-commit:20260115150227 --- # Pre-Commit 代码质量检查 在代码提交前自动执行多维度质量检查,确保提交代码符合项目标准。**核心原则**:检查不通过则阻断提交,避免问题代码进入版本控制。 ## Use When - 提交代码前("提交前运行 pre-commit 检查") - 设置 CI 质量门禁("添加 pre-commit hooks 到 CI 流水线") - 确保代码质量("检查我的代码是否符合所有质量标准") - 运行安全扫描("扫描提交中的漏洞") ## Quick Start ### 自动检测并运行 ```bash # 自动检测项目语言并运行相应检查 .claude/skills/pre-commit/scripts/detect_and_run.sh ``` ### 手动指定语言 ```bash .claude/skills/pre-commit/scripts/check_python.sh # Python 项目 .claude/skills/pre-commit/scripts/check_rust.sh # Rust 项目 .claude/skills/pre-commit/scripts/check_typescript.sh # TypeScript 项目 .claude/skills/pre-commit/scripts/check_java.sh # Java 项目 ``` ### 作为 Git Hook 使用 ```bash # 安装 pre-commit hook pre-commit install # 手动运行所有 hook pre-commit run --all-files # 运行特定 hook pre-commit run ruff ``` ## 语言支持矩阵 | 语言 | 配置文件 | 检查命令 | 退出码 | |------|----------|----------|--------| | Python | `pyproject.toml` / `setup.cfg` | `check_python.sh` | 0/1 | | Rust | `Cargo.toml` | `check_rust.sh` | 0/1 | | TypeScript | `package.json` / `tsconfig.json` | `check_typescript.sh` | 0/1 | | Java | `pom.xml` / `build.gradle` | `check_java.sh` | 0/1 | ## 决策流程 ``` 收到代码变更 → 确认变更类型? │ ├─→ 语法/格式问题 ──→ 运行语法检查 ──→ 失败 ──→ 修复后重新提交 │ ├─→ 测试相关 ──→ 运行测试套件 ──→ 失败 ──→ 修复测试后重新提交 │ ├─→ 安全相关 ──→ 运行安全扫描 ──→ 失败 ──→ 修复漏洞后重新提交 │ └─→ 全部通过 ──→ 允许提交 ``` ## 参考文档 - [语言检查详情](references/language-checks.md) - 各语言检查项和命令 - [故障排除](references/troubleshooting.md) - 常见问题和解决方案 - [CI/CD 集成](references/integration.md) - GitHub Actions 和 Claude Hooks ## 相关技能 | 技能 | 协作方式 | |------|----------| | git-helper | 先检查后提交 | | codereview | 检查后进行代码审查 |