From 4554895edc4ee24b08f5c47371b4c441d227d898 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 29 Jul 2026 21:56:07 +0000 Subject: [PATCH] Sync generated provider output --- .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .agents/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .agents/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .claude/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .claude/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .cursor/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .cursor/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .gemini/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .gemini/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .github/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .github/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .grok/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .grok/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .kiro/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .kiro/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .opencode/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .opencode/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .pi/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .pi/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .qoder/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .qoder/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .rovodev/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .rovodev/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .trae-cn/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .trae-cn/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .trae/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .trae/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- .vibe/skills/impeccable/scripts/hook-lib.mjs | 3 +++ .vibe/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ .../impeccable/scripts/detector/engines/regex/detect-text.mjs | 3 ++- plugin/skills/impeccable/scripts/hook-lib.mjs | 3 +++ plugin/skills/impeccable/scripts/lib/impeccable-config.mjs | 3 +++ 45 files changed, 120 insertions(+), 15 deletions(-) diff --git a/.agents/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.agents/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.agents/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.agents/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.agents/skills/impeccable/scripts/hook-lib.mjs b/.agents/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.agents/skills/impeccable/scripts/hook-lib.mjs +++ b/.agents/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.agents/skills/impeccable/scripts/lib/impeccable-config.mjs b/.agents/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.agents/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.agents/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.claude/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.claude/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.claude/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.claude/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.claude/skills/impeccable/scripts/hook-lib.mjs b/.claude/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.claude/skills/impeccable/scripts/hook-lib.mjs +++ b/.claude/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.claude/skills/impeccable/scripts/lib/impeccable-config.mjs b/.claude/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.claude/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.claude/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.cursor/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.cursor/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.cursor/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.cursor/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.cursor/skills/impeccable/scripts/hook-lib.mjs b/.cursor/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.cursor/skills/impeccable/scripts/hook-lib.mjs +++ b/.cursor/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.cursor/skills/impeccable/scripts/lib/impeccable-config.mjs b/.cursor/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.cursor/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.cursor/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.gemini/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.gemini/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.gemini/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.gemini/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.gemini/skills/impeccable/scripts/hook-lib.mjs b/.gemini/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.gemini/skills/impeccable/scripts/hook-lib.mjs +++ b/.gemini/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.gemini/skills/impeccable/scripts/lib/impeccable-config.mjs b/.gemini/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.gemini/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.gemini/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.github/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.github/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.github/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.github/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.github/skills/impeccable/scripts/hook-lib.mjs b/.github/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.github/skills/impeccable/scripts/hook-lib.mjs +++ b/.github/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.github/skills/impeccable/scripts/lib/impeccable-config.mjs b/.github/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.github/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.github/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.grok/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.grok/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.grok/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.grok/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.grok/skills/impeccable/scripts/hook-lib.mjs b/.grok/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.grok/skills/impeccable/scripts/hook-lib.mjs +++ b/.grok/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.grok/skills/impeccable/scripts/lib/impeccable-config.mjs b/.grok/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.grok/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.grok/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.kiro/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.kiro/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.kiro/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.kiro/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.kiro/skills/impeccable/scripts/hook-lib.mjs b/.kiro/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.kiro/skills/impeccable/scripts/hook-lib.mjs +++ b/.kiro/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.kiro/skills/impeccable/scripts/lib/impeccable-config.mjs b/.kiro/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.kiro/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.kiro/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.opencode/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.opencode/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.opencode/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.opencode/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.opencode/skills/impeccable/scripts/hook-lib.mjs b/.opencode/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.opencode/skills/impeccable/scripts/hook-lib.mjs +++ b/.opencode/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.opencode/skills/impeccable/scripts/lib/impeccable-config.mjs b/.opencode/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.opencode/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.opencode/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.pi/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.pi/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.pi/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.pi/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.pi/skills/impeccable/scripts/hook-lib.mjs b/.pi/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.pi/skills/impeccable/scripts/hook-lib.mjs +++ b/.pi/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.pi/skills/impeccable/scripts/lib/impeccable-config.mjs b/.pi/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.pi/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.pi/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.qoder/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.qoder/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.qoder/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.qoder/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.qoder/skills/impeccable/scripts/hook-lib.mjs b/.qoder/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.qoder/skills/impeccable/scripts/hook-lib.mjs +++ b/.qoder/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.qoder/skills/impeccable/scripts/lib/impeccable-config.mjs b/.qoder/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.qoder/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.qoder/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.rovodev/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.rovodev/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.rovodev/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.rovodev/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.rovodev/skills/impeccable/scripts/hook-lib.mjs b/.rovodev/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.rovodev/skills/impeccable/scripts/hook-lib.mjs +++ b/.rovodev/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.rovodev/skills/impeccable/scripts/lib/impeccable-config.mjs b/.rovodev/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.rovodev/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.rovodev/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.trae-cn/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.trae-cn/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.trae-cn/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.trae-cn/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.trae-cn/skills/impeccable/scripts/hook-lib.mjs b/.trae-cn/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.trae-cn/skills/impeccable/scripts/hook-lib.mjs +++ b/.trae-cn/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.trae-cn/skills/impeccable/scripts/lib/impeccable-config.mjs b/.trae-cn/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.trae-cn/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.trae-cn/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.trae/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.trae/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.trae/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.trae/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.trae/skills/impeccable/scripts/hook-lib.mjs b/.trae/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.trae/skills/impeccable/scripts/hook-lib.mjs +++ b/.trae/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.trae/skills/impeccable/scripts/lib/impeccable-config.mjs b/.trae/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.trae/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.trae/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.vibe/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/.vibe/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/.vibe/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/.vibe/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/.vibe/skills/impeccable/scripts/hook-lib.mjs b/.vibe/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/.vibe/skills/impeccable/scripts/hook-lib.mjs +++ b/.vibe/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/.vibe/skills/impeccable/scripts/lib/impeccable-config.mjs b/.vibe/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/.vibe/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/.vibe/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/plugin/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs b/plugin/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs index c664f70b6..03cb0d978 100644 --- a/plugin/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +++ b/plugin/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs @@ -12,7 +12,8 @@ import { profileFindings, profileStep } from '../../profile/profiler.mjs'; // Regex fallback (non-HTML files: CSS, JSX, TSX, etc.) // --------------------------------------------------------------------------- -const hasRounded = (line) => /\brounded(?:-\w+)?\b/.test(line); +const hasRounded = (line) => + /\brounded(?:-\w+)?\b/.test(line.replace(/\brounded-none\b/g, '')); const hasBorderRadius = (line) => /border-radius/i.test(line); const isSafeElement = (line) => /<(?:blockquote|nav[\s>]|pre[\s>]|code[\s>]|a\s|input[\s>]|span[\s>])/i.test(line); diff --git a/plugin/skills/impeccable/scripts/hook-lib.mjs b/plugin/skills/impeccable/scripts/hook-lib.mjs index 20059c747..65931f9e6 100644 --- a/plugin/skills/impeccable/scripts/hook-lib.mjs +++ b/plugin/skills/impeccable/scripts/hook-lib.mjs @@ -880,6 +880,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]); diff --git a/plugin/skills/impeccable/scripts/lib/impeccable-config.mjs b/plugin/skills/impeccable/scripts/lib/impeccable-config.mjs index c45f74208..0c052d264 100644 --- a/plugin/skills/impeccable/scripts/lib/impeccable-config.mjs +++ b/plugin/skills/impeccable/scripts/lib/impeccable-config.mjs @@ -529,6 +529,9 @@ function extractFindingIgnoreValueRaw(finding, rule = normalizeIgnoreRule(findin const primary = text.match(/Primary font:\s*([^()\n;]+)/i); if (primary) return cleanIgnoreValueDisplay(primary[1]); + const googleLabel = text.match(/Google Fonts:\s*([^()\n;]+)/i); + if (googleLabel) return cleanIgnoreValueDisplay(googleLabel[1]); + const family = text.match(/font-family\s*:\s*["']?([^'",;\n]+)/i); if (family) return cleanIgnoreValueDisplay(family[1]);