pbakaus/impeccable · error · Error
overused-font is value-specific by default. Use ${IMPECCABLE
Error message
overused-font is value-specific by default. Use ${IMPECCABLE_COMMAND} hooks ignore-value overused-font <font> for a confirmed font, or ${IMPECCABLE_COMMAND} hooks ignore-rule overused-font --all-values only when the user asked to ignore overused fonts generally. What it means
Thrown by addIgnoreRule as a safety guard when the user tries to ignore the `overused-font` rule without --all-values. overused-font is value-specific by default: the intent is to ignore a *confirmed specific font*, not to disable the whole rule. The error points to the correct command for each intent. This prevents the common footgun of silencing all overused-font findings when only one font was meant to be excepted.
Source
Thrown at skill/scripts/hook-admin.mjs:581
} else if (arg.startsWith('--')) {
throw new Error(`Unknown ignore-rule flag: ${arg}`);
} else {
positionals.push(arg);
}
}
return {
rule: normalizeRuleId(positionals[0]),
allValues,
};
}
function addIgnoreRule(cwd, args) {
const parsed = parseIgnoreRuleArgs(args);
const rule = parsed.rule;
if (!rule) throw new Error(`Pass a rule id, e.g. ${IMPECCABLE_COMMAND} hooks ignore-rule side-tab`);
if (rule === 'overused-font' && !parsed.allValues) {
throw new Error(`overused-font is value-specific by default. Use ${IMPECCABLE_COMMAND} hooks ignore-value overused-font <font> for a confirmed font, or ${IMPECCABLE_COMMAND} hooks ignore-rule overused-font --all-values only when the user asked to ignore overused fonts generally.`);
}
const config = mergeDetectorConfig(readRawDetectorConfig(cwd));
if (!config.ignoreRules.includes(rule)) config.ignoreRules.push(rule);
writeDetectorConfig(cwd, config);
return `Added "${rule}" to detector.ignoreRules. Current: ${config.ignoreRules.join(', ')}`;
}
function parseIgnoreFileArgs(args) {
const positionals = [];
let shared = false;
let local = false;
for (const raw of args) {
const arg = String(raw || '');
if (arg === '--shared') {
shared = true;
} else if (arg === '--local') {
local = true;View on GitHub (pinned to d14711ae3d)
Solutions
- If you want to allow a specific confirmed font: `impeccable hooks ignore-value overused-font <font-name>`.
- Only if you explicitly want to disable overused-font detection entirely: `impeccable hooks ignore-rule overused-font --all-values`.
- Confirm the font name before ignoring (use the exact family name the detector reported).
Example fix
# before (too broad — disables the whole rule) impeccable hooks ignore-rule overused-font # after (allow one specific font) impeccable hooks ignore-value overused-font Inter # or, only if you really mean all fonts: impeccable hooks ignore-rule overused-font --all-values
Defensive patterns
Strategy: validation
Validate before calling
// Route overused-font to the value-specific command unless --all-values is explicit.
function routeOverusedFont({ rule, allValues, value }) {
if (rule !== 'overused-font') return null;
if (allValues) return ['ignore-rule', rule, '--all-values'];
if (value) return ['ignore-value', rule, value];
throw new Error('overused-font needs a value (ignore-value) or --all-values (ignore-rule)');
} Prevention
- Default to ignore-value overused-font <font> for a specific font.
- Reserve ignore-rule overused-font --all-values for the rare case of disabling the rule entirely.
- Confirm the exact font family name before ignoring.
When it happens
Trigger: Running `impeccable hooks ignore-rule overused-font` (no --all-values); a user who actually wanted to allow one font but reached for the rule-level command.
Common situations: A user seeing repeated overused-font findings for a single font and trying to mute the rule wholesale; copy-pasting a generic ignore-rule invocation.
Related errors
- --reason is not supported for ignore-file because detector.i
- Unknown ignore-rule flag: ${arg}
- Pass a rule id, e.g. ${IMPECCABLE_COMMAND} hooks ignore-rule
- Unknown ignore-file flag: ${arg}
- Pass only one scope flag: --shared or --local
AI-assisted analysis of pbakaus/impeccable@d14711ae3d (2026-08-13).
Data as JSON: /api/errors/184db5bb5c93a7e8.
Report an issue: GitHub.