mirror of
https://github.com/pbakaus/impeccable.git
synced 2026-09-12 06:06:37 +03:00
site + build: bump rule count to 29, strip changelog from detector check
Two changes:
- site/pages/index.astro: three live mentions of "28 rules / checks"
bumped to 29 after the body-text-viewport-edge rule landed in
b9bf496.
- scripts/build.js: the detection-count validator was reading the
unstripped content, so historical counts inside changelog entries
(e.g. "28 rules" from an older release note) were flagging against
the current detector total. The command-count check already strips
the changelog ul; the detection check now does the same.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
a31f11e700
commit
f36d1ac2d9
+4
-2
@@ -95,9 +95,11 @@ function generateCounts(rootDir, skills, buildDir) {
|
||||
}
|
||||
}
|
||||
|
||||
// Check for stale detection counts
|
||||
// Check for stale detection counts. Use the changelog-stripped content
|
||||
// so historical counts in changelog entries (e.g. "28 rules" from an
|
||||
// older release) don't flag against the current detector total.
|
||||
const detectPattern = /\b(\d+)\s+(deterministic\s+)?(checks|patterns|rules|detections)/gi;
|
||||
for (const match of content.matchAll(detectPattern)) {
|
||||
for (const match of strippedContent.matchAll(detectPattern)) {
|
||||
const num = parseInt(match[1]);
|
||||
if (num !== detectionCount && num > 10) { // ignore small numbers like "3 patterns"
|
||||
console.error(` ❌ ${relPath}: found "${match[0]}" but detection count is ${detectionCount}`);
|
||||
|
||||
@@ -491,7 +491,7 @@ import '../styles/sub-pages.css';
|
||||
|
||||
<article class="why-panel" id="why-panel-6" role="tabpanel" data-index="6" hidden>
|
||||
<h3 class="why-panel-title">Block AI slop before it ships.</h3>
|
||||
<p class="why-panel-body">Run <code>npx impeccable detect src/</code> on a PR branch and get JSON output with every purple gradient, nested card, low-contrast label, and gradient-text heading caught. Fail the build on severity. 28 deterministic checks, no LLM required, no API key, no flaky scoring. Gate your PRs the same way you gate lint and types.</p>
|
||||
<p class="why-panel-body">Run <code>npx impeccable detect src/</code> on a PR branch and get JSON output with every purple gradient, nested card, low-contrast label, and gradient-text heading caught. Fail the build on severity. 29 deterministic checks, no LLM required, no API key, no flaky scoring. Gate your PRs the same way you gate lint and types.</p>
|
||||
<div class="why-visual why-visual--ci">
|
||||
<div class="why-ci-window">
|
||||
<div class="why-ci-header">
|
||||
@@ -507,7 +507,7 @@ import '../styles/sub-pages.css';
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p class="why-panel-meta">28 rules · <code>--json</code> · <code>--fast</code> · exit codes for CI.</p>
|
||||
<p class="why-panel-meta">29 rules · <code>--json</code> · <code>--fast</code> · exit codes for CI.</p>
|
||||
</article>
|
||||
|
||||
<article class="why-panel" id="why-panel-7" role="tabpanel" data-index="7" hidden>
|
||||
@@ -834,7 +834,7 @@ import '../styles/sub-pages.css';
|
||||
<svg class="install-step-arrow" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" aria-hidden="true"><path d="M9 6l6 6-6 6"/></svg>
|
||||
</summary>
|
||||
<div class="install-step-body">
|
||||
<p class="install-path-desc">Run anti-pattern scans outside the skill: in CI, in a PR check, or against a whole directory. 28 deterministic rules, no LLM required, JSON output ready for build gates.</p>
|
||||
<p class="install-path-desc">Run anti-pattern scans outside the skill: in CI, in a PR check, or against a whole directory. 29 deterministic rules, no LLM required, JSON output ready for build gates.</p>
|
||||
|
||||
<div class="install-cmd-block">
|
||||
<div class="install-cmd-line">
|
||||
|
||||
Reference in New Issue
Block a user