--- source_keys: - context7-pre-commit-com - pre-commit-com --- # Creating a `.pre-commit-config.yaml` Reached from `SKILL.md`'s Route table when the repo has no config yet. Self-contained — the modify flow's file is not needed here. `SKILL.md`'s three common gates still apply. ## Steps 1. Detect what languages are actually in the repo with a shallow extension scan, rather than inferring them from the project's name or README: ```bash git ls-files | grep -oE '\.[a-z]+$' | sort | uniq -c | sort -rn ``` 2. Read `references/hooks-by-language.md` and map the detected extensions to recommended hooks. Take the repo URL, `rev` and args from that file rather than from memory — a `rev` that does not exist is the most common way a fresh config fails on its first run. For a deliberately minimal starting point instead of a full recommendation set, `pre-commit sample-config > .pre-commit-config.yaml` prints a small starter config to build on. 3. State the proposed config in full and wait for the user's confirmation. 4. Write `.pre-commit-config.yaml`, then run `pre-commit validate-config`. If it exits non-zero, show the error, fix it in place, and re-validate.