ln-742-precommit-setup — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ln-742-precommit-setup (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Paths: File paths (references/,../ln-*) are relative to this skill directory.
Type: L3 Worker Category: 7XX Project Bootstrap
Sets up Git hooks for automated code quality enforcement before commits.
Does:
Does NOT:
| Technology | Hook Manager | Staged Linting | Commit Validation |
|---|---|---|---|
| Node.js | Husky | lint-staged | commitlint |
| Python | pre-commit | pre-commit hooks | pre-commit hook |
| Mixed | Both (if needed) | Stack-specific | commitlint |
Before installing, check for existing hook configurations.
Files to Check:
| Tool | Indicators |
|---|---|
| Husky | .husky/ directory, husky in package.json |
| pre-commit | .pre-commit-config.yaml |
| lint-staged | lint-staged in package.json or .lintstagedrc* |
| commitlint | commitlint.config.*, .commitlintrc* |
Decision Logic:
npm install -D husky
npx husky initThis creates:
.husky/ directory.husky/pre-commit hook fileprepare script to package.jsonpip install pre-commit
# OR with uv:
uv add --dev pre-commit
pre-commit installThis creates:
.git/hooks/pre-commit (managed by pre-commit).pre-commit-config.yaml for configurationnpm install -D lint-stagedCreate configuration (.lintstagedrc.mjs or in package.json):
Key Rules:
CRITICAL FIX: For .NET files, use correct syntax:"*.cs": "dotnet format --include"is WRONG Use:"*.cs": "dotnet format whitespace --include"or run dotnet format separately
Configuration in .pre-commit-config.yaml:
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.8.0
hooks:
- id: ruff
args: [--fix]
- id: ruff-formatnpm install -D @commitlint/cli @commitlint/config-conventionalCreate commitlint.config.mjs with:
Add commit-msg hook:
echo 'npx --no -- commitlint --edit "$1"' > .husky/commit-msgAdd to .pre-commit-config.yaml:
- repo: https://github.com/compilerla/conventional-pre-commit
rev: v3.4.0
hooks:
- id: conventional-pre-commit
stages: [commit-msg]Verify hooks work correctly.
Test 1: Lint-staged triggers
# Create a file with lint issues
echo "const x=1" > test-file.ts
git add test-file.ts
git commit -m "test: verify hooks"
# Expected: lint-staged runs, either fixes or blocksTest 2: Commit message validation
git commit --allow-empty -m "bad message"
# Expected: commitlint rejects
git commit --allow-empty -m "test: valid message format"
# Expected: commit succeedsCleanup:
rm test-file.ts
git reset HEAD~1 # If test commit was madeRULE 1: Husky requires Git repository (git init first).RULE 2: lint-staged MUST have linters configured first (run ln-741 before ln-742).
RULE 3: Document --no-verify escape hatch for emergency commits.RULE 4: pre-commit hooks should auto-fix when possible (--fix flag).Monitor (2.1.98+): When hook verification invokes lint/test commands expected >30s, use Monitor. Fallback: Bash(run_in_background=true).
git commit --no-verify)| File | Purpose |
|---|---|
| husky_precommit_template.sh | Husky pre-commit hook |
| husky_commitmsg_template.sh | Husky commit-msg hook |
| lintstaged_template.mjs | lint-staged configuration |
| commitlint_template.mjs | commitlint configuration |
| precommit_config_template.yaml | Python pre-commit config |
| hooks_guide.md | Detailed hooks guide |
| Error | Cause | Resolution |
|---|---|---|
| Husky not running | Missing prepare script | Run npx husky init again |
| lint-staged fails | Missing linter | Run ln-741 first |
| pre-commit not found | Not in PATH | pip install pre-commit |
| Hooks not triggering | Git hooks disabled | Check .git/hooks/ permissions |
| Windows path issues | Shell script format | Use cross-platform syntax |
Document for users:
# Skip all hooks (use sparingly!)
git commit --no-verify -m "emergency: bypass hooks"
# Skip only pre-commit (keeps commit-msg)
HUSKY=0 git commit -m "fix: urgent hotfix"Version: 2.0.0 Last Updated: 2026-01-10
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.