Description 475 -> 213 chars, body 680 -> 212 words. Create and modify become self-contained flow files behind a dispatch table, since the two are mutually exclusive on whether the config already exists. Passed its clean-context audit with no must-fix findings.
32 lines
1.2 KiB
Markdown
32 lines
1.2 KiB
Markdown
---
|
|
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.
|