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.
38 lines
1.8 KiB
Markdown
38 lines
1.8 KiB
Markdown
---
|
|
name: pc-author
|
|
description: >
|
|
Use when the user wants to create or edit `.pre-commit-config.yaml` — add,
|
|
remove, or configure hooks — even when they name only the tool ("add
|
|
shellcheck"). Not running, installing, or updating hooks -> `pc-run`.
|
|
allowed-tools: Bash Read Write Edit
|
|
metadata:
|
|
category: devtools
|
|
source_keys:
|
|
- context7-pre-commit-com
|
|
- pre-commit-com
|
|
- context7-pre-commit-hooks
|
|
- pre-commit-hooks-github
|
|
---
|
|
|
|
## Gotchas
|
|
|
|
- `rev` must be an immutable tag or commit SHA, never a branch name. A branch looks like it works and then breaks `pre-commit autoupdate` silently.
|
|
- `pre-commit validate-config` checks YAML structure only — it never confirms a hook `id` exists upstream, so a config it accepts can still fail on first use.
|
|
|
|
## Route
|
|
|
|
| Condition | Flow | Read |
|
|
|---|---|---|
|
|
| No `.pre-commit-config.yaml` in the repo | Create | `references/create-config.md` |
|
|
| `.pre-commit-config.yaml` exists | Modify | `references/modify-config.md` |
|
|
|
|
Read only the file matching the resolved flow — each is self-contained.
|
|
|
|
The target is always `.pre-commit-config.yaml`, the config that consumes hooks. A request to publish hooks for other repos to consume means `.pre-commit-hooks.yaml`, a different file this skill does not author.
|
|
|
|
## Gates common to both flows
|
|
|
|
1. State the proposed config or edit in full and wait for confirmation before writing. Hook choices are opinions imposed on everyone else's commit loop, not defaults to assume.
|
|
2. Run `pre-commit validate-config` after every write. On a non-zero exit, show the error and resolve it before reporting done — never leave a config that cannot be parsed.
|
|
3. Never edit a `rev` value. Report staleness and hand the bump to `pc-run`, which runs `autoupdate` against the hook repos themselves.
|