--- 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.