The shared config lives at .impeccable/config.json. A typical file looks like this:
{
"detector": {
"ignoreRules": [],
"ignoreFiles": [],
"ignoreValues": [],
"designSystem": {
"enabled": true
}
},
"hook": {
"enabled": true,
"quiet": false,
"auditLog": ".impeccable/hook.ndjson"
}
}
The detector section is shared by manual scans and hooks. The hook section only controls automatic hook execution and hook output.
Design-aware rules run when DESIGN.md exists. Disable them for the project only when the design file is intentionally not authoritative yet:
{
"detector": {
"designSystem": {
"enabled": false
}
}
}
For one manual run, keep config but skip the design-system rules:
npx impeccable detect --no-design-system src/
Use --no-config only when you want a raw scan with no project ignores and no DESIGN.md context.
Use /impeccable hooks for normal lifecycle changes:
/impeccable hooks status
/impeccable hooks on
/impeccable hooks off
hook.quiet: true suppresses clean and pending acknowledgements while still surfacing new findings.
hook.auditLog writes one NDJSON line per hook invocation for debugging. Leave it off during normal work.
Environment variables still override config for one shell: IMPECCABLE_HOOK_DISABLED, IMPECCABLE_HOOK_QUIET, and IMPECCABLE_HOOK_LOG.