Pre-Commit Manager Skill
Manage pre-commit hooks with preference memory and template-based configuration.
Operations
- Install
Install pre-commit hooks in current repository.
Usage:
Install pre-commit hooks now
What it does:
-
Checks if .pre-commit-config.yaml exists
-
Verifies pre-commit binary is available
-
Runs pre-commit install
-
Reports success/failure
- Configure
Generate .pre-commit-config.yaml from templates.
Usage:
Configure pre-commit with python template Configure pre-commit with javascript template Configure pre-commit with generic template
Templates:
-
python
-
Python projects (black, ruff, mypy)
-
javascript
-
JS/TS projects (prettier, eslint)
-
typescript
-
TypeScript projects
-
generic
-
Language-agnostic (trailing whitespace, file size, detect-secrets)
- Enable
Set preference to "always" auto-install.
Usage:
Enable pre-commit auto-install
- Disable
Set preference to "never" auto-install.
Usage:
Disable pre-commit auto-install
- Status
Show current pre-commit status.
Usage:
Show pre-commit status Check pre-commit status
Shows:
-
Git repository status
-
Config file existence
-
Hooks installation status
-
Current preference setting
-
Pre-commit binary availability
- Baseline
Generate .secrets.baseline for detect-secrets.
Usage:
Generate secrets baseline Create detect-secrets baseline
Implementation
This skill interfaces with:
-
.claude/tools/amplihack/hooks/precommit_prefs.py
-
Preference management
-
.claude/tools/amplihack/hooks/precommit_installer.py
-
Hook installation
-
Templates in templates/ directory
Security
-
Path traversal prevention
-
Template whitelist validation
-
No shell=True in subprocess calls
-
Subprocess timeouts enforced
Reference