关于 PreCommit
用于管理 pre-commit 钩子的技能,面向需要自动化代码质量、格式化、Lint 和安全扫描的多语言项目。它提供配置生成与验证、钩子管理以及设置和故障排查工作流。
主要功能
- 01生成 pre-commit 配置模板
- 02验证钩子配置
- 03管理多语言钩子
- 04设置与排查工作流
- 05涵盖格式化、Lint 和安全扫描
适用场景
- 01为新项目设置 Git 钩子
- 02为 Terraform 添加验证钩子
- 03加入密钥检测扫描
- 04排查失败的代码检查钩子
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ julianobarbosa/ claude-code-skills --skill precommit安装后在 Claude Code 中输入/precommit确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
ConfigurationGuide.mdHooksReference.mdQuickStartGuide.mdSecurityHooks.mdTools/HookGenerator.tsHookValidator.tsPreCommitManager.tspackage.jsonWorkflows/AddHooks.mdCIIntegration.mdCustomHook.mdSetup.mdTroubleshoot.md详细介绍
PreCommit
用于管理 pre-commit 钩子的综合技能——这是一个用于管理多语言提交前钩子的框架,可自动执行代码质量检查、格式化、代码检查和安全扫描。
快速参考
| 命令 | 描述 |
|---|---|
pre-commit install | 安装 git 钩子 |
pre-commit run --all-files | 对所有文件运行所有钩子 |
pre-commit autoupdate | 将钩子更新到最新版本 |
pre-commit run <hook-id> | 运行指定钩子 |
工作流路由
| 工作流 | 触发条件 | 文件 |
|---|---|---|
| Setup | “设置 pre-commit”、“初始化钩子”、“创建配置” | Workflows/Setup.md |
| AddHooks | “添加钩子”、“添加代码检查”、“添加格式化工具”、“添加安全检查” | Workflows/AddHooks.md |
| Troubleshoot | “修复 pre-commit”、“钩子运行失败”、“调试钩子” | Workflows/Troubleshoot.md |
| CIIntegration | “CI 流水线”、“GitHub Actions”、“GitLab CI” | Workflows/CIIntegration.md |
| CustomHook | “创建自定义钩子”、“本地钩子”、“编写钩子” | Workflows/CustomHook.md |
文档
| 文档 | 用途 |
|---|---|
QuickStartGuide.md | 安装和首次设置 |
HooksReference.md | 按语言/用途分类的完整钩子目录 |
ConfigurationGuide.md | 高级配置选项 |
SecurityHooks.md | 密钥检测和安全扫描 |
工具
| 工具 | 用途 |
|---|---|
Tools/PreCommitManager.ts | 用于管理 pre-commit 配置的命令行工具 |
Tools/HookGenerator.ts | 生成 .pre-commit-config.yaml 模板 |
Tools/HookValidator.ts | 验证钩子配置 |
示例
示例 1:为新项目设置 pre-commit
User: "Setup pre-commit for my Python project"
→ Invokes Setup workflow
→ Creates .pre-commit-config.yaml with Python hooks (black, isort, flake8)
→ Runs pre-commit install
示例 2:添加 Terraform 钩子
User: "Add Terraform validation hooks"
→ Invokes AddHooks workflow
→ Adds terraform_fmt, terraform_validate, terraform_docs hooks
→ Configures tflint and checkov integration
示例 3:添加安全扫描
User: "Add secret detection to pre-commit"
→ Invokes AddHooks workflow
→ Adds gitleaks, detect-secrets, trufflehog hooks
→ Configures appropriate exclusion patterns
示例 4:调试运行失败的钩子
User: "My eslint pre-commit hook is failing"
→ Invokes Troubleshoot workflow
→ Checks hook configuration and dependencies
→ Provides fix recommendations
支持的钩子类别
- Python:black、isort、flake8、mypy、bandit、pyupgrade
- JavaScript/TypeScript:prettier、eslint、biome
- 基础设施:terraform、terragrunt、helm、kustomize
- Kubernetes:kubeconform、kubeval、checkov
- 安全:gitleaks、detect-secrets、trufflehog、trivy
- 通用:yamllint、jsonlint、shellcheck、markdownlint
评论
支持 Markdown