diff --git a/README.md b/README.md index 33f94ce5a..ba3de66c0 100644 --- a/README.md +++ b/README.md @@ -258,6 +258,46 @@ If you reach for one command often, pin it with `/impeccable pin audit` to get ` **Note:** Codex uses skills here, not `/prompts:` commands. Open `/skills` or type `$impeccable`. Repo-local installs live in `.agents/skills/`; user-wide installs live in `~/.agents/skills/`. GitHub Copilot uses `.github/skills/`. Restart the tool if a newly installed skill does not appear. +## Keeping `.impeccable` out of git + +As you run commands, Impeccable writes working files under `.impeccable/`: critique and polish screenshots, live-mode session and preview state, runtime caches, and per-developer config. Most of it is ephemeral and should not be committed, while a few files are shared project artifacts that belong in the repo. Add this block to your project's `.gitignore`: + +```gitignore +# impeccable-ignore-start +# Ephemeral output, runtime state, and per-dev overrides. +# Unanchored: .impeccable may sit at the repo root or under a nested +# workspace (apps/web/.impeccable/...); anchored patterns would miss it. +# Shared artifacts stay tracked: config.json, live/config.json, +# design.json, critique/*.md. +.impeccable/config.local.json +.impeccable/hook.cache.json +.impeccable/hook.pending.json +.impeccable/*.png +.impeccable/live/server.json +.impeccable/live/sessions/ +.impeccable/live/previews/ +.impeccable/live/annotations/ +.impeccable/live/cache/ +.impeccable/live/manual-edit-apply-transaction.json +.impeccable/live/manual-edit-events.jsonl +.impeccable/live/manual-edit-evidence/ +.impeccable/live/pending-manual-edits.json +.impeccable/live/deferred-svelte-component-accepts.json +.impeccable/live/*.png +# impeccable-ignore-end +``` + +The block is wrapped in `# impeccable-ignore-start` / `# impeccable-ignore-end` markers so you can recognize and refresh it later. Patterns are unanchored on purpose: in a monorepo the active project (and its `.impeccable/` directory) often lives under a nested workspace path like `apps/web/`, and a root-anchored pattern would miss it. + +**Keep these tracked** (they are shared project artifacts, do not add them to `.gitignore`): + +- `.impeccable/config.json` (unified shared config) +- `.impeccable/live/config.json` (live-mode framework wiring) +- `.impeccable/design.json` (shared design spec) +- `.impeccable/critique/*.md` (review reports) + +If an ephemeral file (a screenshot, `config.local.json`) was committed before you added the block, `.gitignore` will not untrack it automatically. Run `git rm --cached ` to stop tracking it without deleting your local copy. + ## Design hook On Claude Code, GitHub Copilot, Codex, and Cursor, `npx impeccable install` and `npx impeccable update` install a provider-native hook manifest along with the skill payload. The hook runs the Impeccable design detector on direct UI file edits and surfaces findings back into the agent flow. Claude Code, GitHub Copilot, and Codex surface findings after the edit. Cursor blocks bad proposed writes before they land.