AI Slop Code RIsk Monitor

cathrynlavery/diagram-design

Editorial diagram design for Claude Code, Codex, GitHub Copilot, Cursor, Factory Droid, and Pi. 44 diagram types. Self-contained HTML + SVG. No shadows. No Mermaid slop.

10.3 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for cathrynlavery/diagram-design, a HTML project with 50,045 GitHub stars. SynthScan examined 102,298 lines of code across 414 source files, recording 531 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 10.3 (Moderate pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

10.3
Adjusted Signal
10.3
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
50.0K
Stars
HTML
Language
102.3K
Lines of Code
414
Files
531
Pattern Hits
2026-10-12
Scan Date
0.21
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 13.7/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 272 finding(s).

Hallucinated Dependency & Supply Chain Risk 10.1/100 · LOW

Are imports declared and package/API names verified? 113 finding(s).

Agent Over-Engineering Ratio 28.2/100 · MEDIUM

Are wrappers, guards, and repeated structures necessary? 285 finding(s).

PR Review Velocity Impact 43.5/100 · MEDIUM

Which changes need focused human review? 531 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 0HIGH 87MEDIUM 101LOW 343

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 531 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Cross-File Repetition56 hits · 280 pts
SeverityFileLineSnippetContext
HIGHscripts/test-verify-ridgeline.py0run one mutation: it must be a real edit, and it must be rejected.STRING
HIGHscripts/test-verify-bump.py0run one mutation: it must be a real edit, and it must be rejected.STRING
HIGHscripts/test-verify-sankey.py0run one mutation: it must be a real edit, and it must be rejected.STRING
HIGHscripts/verify-marimekko.py0one start tag this checker cares about, as the browser tokenized it.STRING
HIGHscripts/verify-ridgeline.py0one start tag this checker cares about, as the browser tokenized it.STRING
HIGHscripts/verify-slopegraph.py0one start tag this checker cares about, as the browser tokenized it.STRING
HIGHscripts/verify-bubble.py0one start tag this checker cares about, as the browser tokenized it.STRING
HIGHscripts/verify-streamgraph.py0one start tag this checker cares about, as the browser tokenized it.STRING
HIGHscripts/verify-marimekko.py0attributes as the browser keeps them: on a repeat, the first wins. html parsing drops a duplicate attribute rather than STRING
HIGHscripts/verify-ridgeline.py0attributes as the browser keeps them: on a repeat, the first wins. html parsing drops a duplicate attribute rather than STRING
HIGHscripts/verify-slopegraph.py0attributes as the browser keeps them: on a repeat, the first wins. html parsing drops a duplicate attribute rather than STRING
HIGHscripts/verify-bubble.py0attributes as the browser keeps them: on a repeat, the first wins. html parsing drops a duplicate attribute rather than STRING
HIGHscripts/verify-marimekko.py0collect paths, texts, title/desc and style elements with ancestry. htmlparser already lowercases tag and attribute namesSTRING
HIGHscripts/verify-ridgeline.py0collect paths, texts, title/desc and style elements with ancestry. htmlparser already lowercases tag and attribute namesSTRING
HIGHscripts/verify-slopegraph.py0collect paths, texts, title/desc and style elements with ancestry. htmlparser already lowercases tag and attribute namesSTRING
HIGHscripts/verify-bubble.py0collect paths, texts, title/desc and style elements with ancestry. htmlparser already lowercases tag and attribute namesSTRING
HIGHscripts/verify-streamgraph.py0collect paths, texts, title/desc and style elements with ancestry. htmlparser already lowercases tag and attribute namesSTRING
HIGHscripts/verify-marimekko.py0how this element carries a transform, phrased for the finding, or none. a transform reaches the renderer by three carrieSTRING
HIGHscripts/verify-ridgeline.py0how this element carries a transform, phrased for the finding, or none. a transform reaches the renderer by three carrieSTRING
HIGHscripts/verify-slopegraph.py0how this element carries a transform, phrased for the finding, or none. a transform reaches the renderer by three carrieSTRING
HIGHscripts/verify-bubble.py0how this element carries a transform, phrased for the finding, or none. a transform reaches the renderer by three carrieSTRING
HIGHscripts/verify-streamgraph.py0how this element carries a transform, phrased for the finding, or none. a transform reaches the renderer by three carrieSTRING
HIGHscripts/verify-marimekko.py0findings for one file on disk, or [] if it is not a beeswarm.STRING
HIGHscripts/verify-slopegraph.py0findings for one file on disk, or [] if it is not a beeswarm.STRING
HIGHscripts/verify-streamgraph.py0findings for one file on disk, or [] if it is not a beeswarm.STRING
HIGHscripts/verify-beeswarm.py0findings for one file on disk, or [] if it is not a beeswarm.STRING
HIGHscripts/test-verify-marimekko.py0a single defect must produce a single finding, not a cascade.STRING
HIGHscripts/test-verify-bubble.py0a single defect must produce a single finding, not a cascade.STRING
HIGHscripts/test-verify-slopegraph.py0a single defect must produce a single finding, not a cascade.STRING
HIGHscripts/test-verify-beeswarm.py0a single defect must produce a single finding, not a cascade.STRING
HIGHscripts/test-verify-streamgraph.py0a single defect must produce a single finding, not a cascade.STRING
HIGHscripts/verify-ridgeline.py0first-wins attributes of one tag's raw attribute text, via the parser.STRING
HIGHscripts/verify-slopegraph.py0first-wins attributes of one tag's raw attribute text, via the parser.STRING
HIGHscripts/verify-bubble.py0first-wins attributes of one tag's raw attribute text, via the parser.STRING
HIGHscripts/verify-streamgraph.py0first-wins attributes of one tag's raw attribute text, via the parser.STRING
HIGHscripts/verify-ridgeline.py0the first mark-moving declaration in css text, read past comments, or none. every carrier goes through here - an inline STRING
HIGHscripts/verify-slopegraph.py0the first mark-moving declaration in css text, read past comments, or none. every carrier goes through here - an inline STRING
HIGHscripts/verify-bubble.py0the first mark-moving declaration in css text, read past comments, or none. every carrier goes through here - an inline STRING
HIGHscripts/verify-ridgeline.py0no transform may move verified geometry or a bound label. all three carriers are held to that rule - the `transform` attSTRING
HIGHscripts/verify-slopegraph.py0no transform may move verified geometry or a bound label. all three carriers are held to that rule - the `transform` attSTRING
HIGHscripts/verify-bubble.py0no transform may move verified geometry or a bound label. all three carriers are held to that rule - the `transform` attSTRING
HIGHscripts/verify-bump.py0(?p<name>[\w:-]+)\s*=\s*(?p<quote>["'])(?p<value>.*?)(?p=quote)STRING
HIGHscripts/verify-skin-polarity.py0(?p<name>[\w:-]+)\s*=\s*(?p<quote>["'])(?p<value>.*?)(?p=quote)STRING
HIGHscripts/verify-beeswarm.py0(?p<name>[\w:-]+)\s*=\s*(?p<quote>["'])(?p<value>.*?)(?p=quote)STRING
HIGHscripts/verify-slopegraph.py0a finite float from a numeric token, or none. `float("nan")` succeeds and then every `abs(x) > tolerance` comparison is STRING
HIGHscripts/verify-bubble.py0a finite float from a numeric token, or none. `float("nan")` succeeds and then every `abs(x) > tolerance` comparison is STRING
HIGHscripts/verify-beeswarm.py0a finite float from a numeric token, or none. `float("nan")` succeeds and then every `abs(x) > tolerance` comparison is STRING
HIGHscripts/verify-slopegraph.py0(value, reason) for a label's visible text. returns a value only when the text carries exactly one complete numeric tokeSTRING
HIGHscripts/verify-bubble.py0(value, reason) for a label's visible text. returns a value only when the text carries exactly one complete numeric tokeSTRING
HIGHscripts/verify-beeswarm.py0(value, reason) for a label's visible text. returns a value only when the text carries exactly one complete numeric tokeSTRING
HIGHscripts/verify-slopegraph.py0the accessible name and description, where a figure says what it is.STRING
HIGHscripts/verify-bubble.py0the accessible name and description, where a figure says what it is.STRING
HIGHscripts/verify-beeswarm.py0the accessible name and description, where a figure says what it is.STRING
HIGHskills/diagram-design/scripts/mermaid_extract.py0emit digests as utf-8 even when windows selects a legacy codepage.STRING
HIGHskills/diagram-design/scripts/drawio_extract.py0emit digests as utf-8 even when windows selects a legacy codepage.STRING
HIGHskills/diagram-design/scripts/excalidraw_extract.py0emit digests as utf-8 even when windows selects a legacy codepage.STRING
Decorative Section Separators72 hits · 218 pts
SeverityFileLineSnippetContext
MEDIUMscripts/test-verify-marimekko.py260 # ── Shipped examples and the honest fixture ───────────────────────────COMMENT
MEDIUMscripts/test-verify-marimekko.py281 # ── The parser reads what the browser reads ───────────────────────────COMMENT
MEDIUMscripts/test-verify-marimekko.py312 # ── Width is category share ───────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-marimekko.py322 # ── Segments tile the column; height is within-column share ──────────COMMENT
MEDIUM⚡scripts/test-verify-marimekko.py336 # ── Area is joint share ───────────────────────────────────────────────COMMENT
MEDIUM⚡scripts/test-verify-marimekko.py344 # ── Columns tile the plot ─────────────────────────────────────────────COMMENT
MEDIUM⚡scripts/test-verify-marimekko.py352 # ── One series order ──────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-marimekko.py363 # ── One accent ────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-marimekko.py374 # ── Unpositioned geometry: three carriers, element and ancestor ──────COMMENT
MEDIUMscripts/test-verify-marimekko.py404 # ── CSS width/height resize a rect behind its attributes (SVG 2) ─────COMMENT
MEDIUMscripts/test-verify-marimekko.py435 # ── A CSS comment is whitespace to the browser, so it is here too ─────COMMENT
MEDIUMscripts/test-verify-marimekko.py453 # ── Labels bound to meaning ───────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-marimekko.py523 # ── Declarations ──────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-marimekko.py548 # ── Fail closed ───────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-marimekko.py561 # ── Scope is read the way the browser reads, not by a tag regex ───────COMMENT
MEDIUMscripts/test-verify-marimekko.py604 # ── Scope treaty with the parent and the siblings ─────────────────────COMMENT
MEDIUMscripts/test-verify-marimekko.py659 # ── The CLI ───────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-marimekko.py676 # ── The fixture-isolation guarantees, held in place ───────────────────COMMENT
MEDIUMscripts/test-verify-heatmap.py131 # ── Positive: shipped examples must pass ──────────────────────────────COMMENT
MEDIUMscripts/test-verify-heatmap.py142 # ── Negative: mutations that must be rejected ─────────────────────────COMMENT
MEDIUMscripts/test-verify-bubble.py231 # ── Positive polarity: honest figures pass ────────────────────────────COMMENT
MEDIUMscripts/test-verify-bubble.py285 # ── Axis scale lies ───────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-bubble.py328 # ── Area lies ─────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-bubble.py359 # ── Focal discipline ──────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-bubble.py375 # ── Label lies ────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-bubble.py405 # ── Tick lies ─────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-bubble.py437 # ── Transforms ────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-bubble.py475 # ── Malformed markup: findings, never tracebacks, never silence ───────COMMENT
MEDIUMscripts/test-verify-bubble.py505 # ── Markup is read as the browser reads it ────────────────────────────COMMENT
MEDIUMscripts/test-verify-bubble.py651 # ── CSS comments are whitespace to the browser ────────────────────────COMMENT
MEDIUMscripts/test-verify-bubble.py734 # ── Fail closed ───────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-bubble.py755 # ── Scope: the neighbours stay unclaimed ──────────────────────────────COMMENT
MEDIUMscripts/test-verify-bubble.py773 # ── The fixture-isolation guarantees, held in place ───────────────────COMMENT
MEDIUMscripts/test-verify-docs-sync.py911 # ── type-ramp contract tests ─────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-docs-sync.py1045 # ── registered legacy sizes ──────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-docs-sync.py1715 # ── gallery guard tests ───────────────────────────────────────────────────STRING
MEDIUMscripts/test-verify-slopegraph.py237 # ── Negative half: honest figures must stay silent ────────────────────COMMENT
MEDIUMscripts/test-verify-slopegraph.py292 # ── Positive half: each lie must be named as itself ───────────────────COMMENT
MEDIUMscripts/test-verify-slopegraph.py647 # ── 7. Markup is read as the browser reads it ─────────────────────────COMMENT
MEDIUMscripts/test-verify-slopegraph.py820 # ── 8. CSS comments are whitespace to the browser ─────────────────────COMMENT
MEDIUMscripts/test-verify-slopegraph.py924 # ── The fixture-isolation fix, held in place ──────────────────────────COMMENT
MEDIUMscripts/test-verify-beeswarm.py241 # ── Positive polarity: honest figures pass ────────────────────────────COMMENT
MEDIUMscripts/test-verify-beeswarm.py274 # ── Value-scale lies ──────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-beeswarm.py292 # ── Overprint ─────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-beeswarm.py303 # ── Radius and ink discipline ─────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-beeswarm.py332 # ── Label lies ────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-beeswarm.py395 # ── Tick lies ─────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-beeswarm.py427 # ── Transforms ────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-beeswarm.py570 # ── Malformed markup: findings, never tracebacks, never silence ───────COMMENT
MEDIUMscripts/test-verify-beeswarm.py593 # ── Budgets, both ends ────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-beeswarm.py605 # ── Fail closed ───────────────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-beeswarm.py625 # ── Scope: the treaty, in both directions ─────────────────────────────COMMENT
MEDIUMscripts/test-verify-beeswarm.py681 # ── The fixture-isolation guarantees, held in place ───────────────────COMMENT
MEDIUMscripts/test-verify-streamgraph.py247 # ── Negative half: honest figures must stay silent ────────────────────COMMENT
MEDIUMscripts/test-verify-streamgraph.py328 # ── Positive half: each lie must be named as itself ───────────────────COMMENT
MEDIUMscripts/test-verify-streamgraph.py932 # ── The fixture-isolation fix, held in place ──────────────────────────COMMENT
MEDIUMskills/diagram-design/scripts/drawio_extract.py38# --------------------------------------------------------------------------COMMENT
MEDIUMskills/diagram-design/scripts/drawio_extract.py40# --------------------------------------------------------------------------COMMENT
MEDIUMskills/diagram-design/scripts/drawio_extract.py193# --------------------------------------------------------------------------COMMENT
MEDIUMskills/diagram-design/scripts/drawio_extract.py195# --------------------------------------------------------------------------COMMENT
12 more matches not shown…
Hyper-Verbose Identifiers136 hits · 135 pts
SeverityFileLineSnippetContext
LOWscripts/verify-polar.py112def _contains_stylesheet_loading(css: str) -> bool:CODE
LOWscripts/verify-polar.py132def _selector_can_target_chart(selector: str) -> bool:CODE
LOWscripts/verify-polar.py145def _stylesheet_can_target_chart(css: str) -> bool:CODE
LOWscripts/verify-polar.py411def _stylesheet_can_hide_ancestors(css: str) -> bool:CODE
LOWscripts/verify-polar.py803def _check_variants_with_paths(paths: Sequence[Path]) -> list[tuple[Path, str]]:CODE
LOWscripts/bump-plugin-version.py79def render_skill_metadata_version(root: Path, version: str) -> tuple[Path, str]:CODE
LOWscripts/verify-mermaid-import.py68def check_legacy_stdout_encoding(tmp: Path) -> None:CODE
LOWscripts/verify-mermaid-import.py205def check_shape_and_edge_vocabulary(tmp: Path) -> None:CODE
LOWscripts/verify-mermaid-import.py541def check_markdown_and_grammars(tmp: Path) -> None:CODE
LOWscripts/verify-mermaid-import.py707def check_named_composite_states(tmp: Path) -> None:CODE
LOWscripts/verify-mermaid-import.py729def check_selection_before_parse(tmp: Path) -> None:CODE
LOWscripts/verify-mermaid-import.py819def check_sequence_grammar_forms(tmp: Path) -> None:CODE
LOWscripts/test-export-wait.py212def require_stalled_font_fallback(snippet: str, tmp: Path) -> None:CODE
LOWscripts/test-export-wait.py305def require_other_errors_propagate(snippet: str, tmp: Path) -> None:CODE
LOWscripts/test-export-wait.py322def require_static_motion_frame(snippet: str, tmp: Path) -> None:CODE
LOWscripts/test-verify-contrast.py78def test_shipped_palette_passes() -> None:CODE
LOWscripts/test-verify-contrast.py84def test_retired_palette_fails_on_each_token() -> None:CODE
LOWscripts/test-verify-contrast.py101def test_alpha_is_composited_over_paper() -> None:CODE
LOWscripts/test-verify-contrast.py113def test_text_use_is_held_to_text_bar() -> None:CODE
LOWscripts/test-verify-contrast.py126def test_ink_strong_is_measured_on_accent_fill() -> None:CODE
LOWscripts/test-verify-docs-sync.py586def check_style_guide_anchors(verify) -> None:CODE
LOWscripts/test-verify-docs-sync.py671def check_size_preset_surfaces(verify) -> None:CODE
LOWscripts/test-verify-docs-sync.py728def check_architecture_delta_discovery(verify) -> None:CODE
LOWscripts/test-verify-dumbbell.py74def test_zero_touching_domains():CODE
LOWscripts/test-verify-dumbbell.py96def test_identical_and_tiny_values():CODE
LOWscripts/test-verify-dumbbell.py104def test_small_domains_round_outward():CODE
LOWscripts/test-verify-dumbbell.py119def test_empty_and_non_finite_rejected():CODE
LOWscripts/test-verify-dumbbell.py132def test_truncated_bounds_are_detected():CODE
LOWscripts/test-verify-dumbbell.py142def test_scaling_preserves_gap_ratios():CODE
LOWscripts/test-verify-dumbbell.py154def test_documented_marks_clear_the_threshold():CODE
LOWscripts/test-verify-dumbbell.py163def test_rejected_treatments_are_caught():CODE
LOWscripts/test-verify-dumbbell.py174def test_checker_fails_closed_on_a_stripped_reference(tmp_path: Path):CODE
LOWscripts/test-verify-dumbbell.py192def test_shipped_reference_passes():CODE
LOWscripts/verify-docs-sync.py141def check_onboarding_trust_boundary(errors: list[str], markdown: str) -> None:CODE
LOWscripts/verify-docs-sync.py348def check_gallery_type_parity(errors: list[str], gallery: Path, references: Path) -> None:CODE
LOWscripts/verify-docs-sync.py437def check_skill_reference_links(CODE
LOWscripts/verify-docs-sync.py456def check_reference_asset_links(CODE
LOWscripts/verify-docs-sync.py478def scanner_visible_support_references(markdown: str) -> list[str]:CODE
LOWscripts/verify-docs-sync.py488def check_packaged_support_references(CODE
LOWscripts/verify-docs-sync.py551def check_size_preset_surfaces(errors: list[str], root: Path) -> None:CODE
LOWscripts/verify-docs-sync.py580def check_factory_install_surface(errors: list[str], root: Path) -> None:CODE
LOWscripts/verify-docs-sync.py710def check_high_level_reference(errors: list[str], markdown: str) -> None:CODE
LOWscripts/verify-docs-sync.py1447def check_manifest_descriptions(errors: list[str], root: Path) -> None:CODE
LOWscripts/verify-docs-sync.py1507def optional_font_link_surfaces(root: Path) -> list[Path]:CODE
LOWscripts/verify-docs-sync.py1636def check_title_fallback_order(errors: list[str], root: Path) -> None:CODE
LOWscripts/verify-doctor.py320def check_common_path_mistakes(root: Path, cwd: Path) -> CheckResult:CODE
LOWscripts/test-plugin-package.py562def test_auto_bump_workflow_allowlists() -> None:CODE
LOWscripts/test-plugin-package.py615def test_pull_request_merge_base() -> None:CODE
LOWscripts/test-plugin-package.py659def test_ci_version_gate_wiring() -> None:CODE
LOWscripts/test-plugin-package.py697def test_ci_version_gate_executes() -> None:CODE
LOWscripts/lint-render.py724def waterfall_mobile_failures(context, waterfall_paths=None):CODE
LOWscripts/lint-render.py783def excalidraw_mobile_failures(context, example_path=None):CODE
LOWscripts/lint-render.py833def marimekko_mobile_failures(context, marimekko_paths=None):CODE
LOWscripts/lint-render.py1003def output_spec_widest_preset():CODE
LOWscripts/lint-render.py631def network_isolation_failures(context):STRING
LOWscripts/verify-plugin-package.py310def valid_double_quoted_yaml_scalar(value: str) -> bool:CODE
LOWscripts/verify-plugin-package.py339def parse_frontmatter_metadata_version(text: str) -> str | None:CODE
LOWscripts/verify-plugin-package.py437def verify_skill_metadata_version(root: Path, manifests: dict[str, dict[str, Any]], errors: list[str]) -> None:CODE
LOWscripts/verify-motion.py211def hidden_unscoped_motion_selectors(source: str) -> list[str]:CODE
LOWscripts/verify-motion.py231def infinite_unscoped_selectors(source: str) -> list[str]:CODE
76 more matches not shown…
Cross-Language Confusion25 hits · 130 pts
SeverityFileLineSnippetContext
HIGHscripts/fix-mojibake.py20 # CP1252 leaves byte 0x90 undefined, so spell the left-arrow corruptionCOMMENT
HIGH⚡scripts/lint-render.py135 let blockedBy = null;CODE
HIGH⚡scripts/lint-render.py139 const scrolls = el.scrollWidth > el.clientWidth + 1 || el.scrollHeight > el.clientHeight + 1;CODE
HIGH⚡scripts/lint-render.py141 chain.push(`${label(el)} (overflow: ${overflow})`);CODE
HIGH⚡scripts/lint-render.py205 for (let el = svg.parentElement; el && taken < depth; el = el.parentElement) {CODE
HIGH⚡scripts/lint-render.py207 targets.push(el);CODE
HIGH⚡scripts/lint-render.py214 rects.push([r.left, r.top, r.right, r.bottom]);CODE
HIGH⚡scripts/lint-render.py243 if (before.width !== after.width || before.height !== after.height) {CODE
HIGH⚡scripts/lint-render.py251 if (x >= interior.left - g && x < interior.right + g &&CODE
HIGH⚡scripts/lint-render.py252 y >= interior.top - g && y < interior.bottom + g) continue;CODE
HIGHscripts/lint-render.py161 const remember = (el) => window.__lintSnapshots.push([el, el.getAttribute('style')]);CODE
HIGHscripts/lint-render.py169 if (style === null) el.removeAttribute('style');CODE
HIGHscripts/lint-render.py1476 " pip install playwright && playwright install chromium",CODE
HIGHscripts/lint-render.py79 pip install playwright && playwright install chromiumSTRING
HIGHscripts/lint-render.py741 while (ancestor && ancestor !== document.body) {STRING
HIGHscripts/lint-render.py797 const overflow = scroller && getComputedStyle(scroller).overflowX;STRING
HIGHscripts/lint-render.py856 while (ancestor && ancestor !== document.body) {STRING
HIGHscripts/lint-render.py931 while (ancestor && ancestor !== document.body) {STRING
HIGHscripts/verify-excalidraw-import.py704 const scroller = svg && svg.parentElement;STRING
HIGHscripts/verify-excalidraw-import.py705 const overflow = scroller && getComputedStyle(scroller).overflowX;STRING
HIGHscripts/test-maintainer-policy.py313 "python3 scripts/build-icons.py && git diff --ignore-space-at-eol --exit-code -- "CODE
HIGHscripts/test-maintainer-policy.py397 if ! git rev-parse -q --verify HEAD^2 >/dev/null; thenCODE
HIGHscripts/test-maintainer-policy.py457 "python scripts/test-lint-a11y.py && make lint": """STRING
HIGHscripts/test-maintainer-policy.py459 run: python scripts/test-lint-a11y.py && make lintCODE
HIGHscripts/test-maintainer-policy.py540 "python3 scripts/build-icons.py && git diff --exit-code",CODE
Unused Imports88 hits · 87 pts
SeverityFileLineSnippetContext
LOWscripts/test-verify-ridgeline.py34CODE
LOWscripts/verify-marimekko.py96CODE
LOWscripts/test-verify-marimekko.py30CODE
LOWscripts/verify-polar.py4CODE
LOWscripts/bump-plugin-version.py4CODE
LOWscripts/verify-ridgeline.py99CODE
LOWscripts/verify-mermaid-import.py9CODE
LOWscripts/test-export-wait.py17CODE
LOWscripts/test-export-wait.py356CODE
LOWscripts/test-verify-heatmap.py33CODE
LOWscripts/test-verify-waterfall.py13CODE
LOWscripts/test-verify-contrast.py26CODE
LOWscripts/axonometry.py10CODE
LOWscripts/test-verify-bubble.py15CODE
LOWscripts/verify-waterfall.py47CODE
LOWscripts/test-self-check.py4CODE
LOWscripts/verify-exploded.py23CODE
LOWscripts/screenshot_catalog.py3CODE
LOWscripts/test-verify-docs-sync.py4CODE
LOWscripts/test-verify-dumbbell.py20CODE
LOWscripts/test-verify-motion.py4CODE
LOWscripts/verify-docs-sync.py50CODE
LOWscripts/verify-doctor.py8CODE
LOWscripts/verify-doctor.py12CODE
LOWscripts/test-plugin-package.py4CODE
LOWscripts/verify-heatmap.py49CODE
LOWscripts/verify-bump.py68CODE
LOWscripts/test-verify-sequence-oauth.py13CODE
LOWscripts/verify-sankey.py108CODE
LOWscripts/verify-skin-polarity.py72CODE
LOWscripts/verify-slopegraph.py89CODE
LOWscripts/test-verify-sankey.py27CODE
LOWscripts/test-verify-treemap.py13CODE
LOWscripts/test-verify-geometry.py4CODE
LOWscripts/verify-plugin-package.py17CODE
LOWscripts/verify-block-registry.py43CODE
LOWscripts/test-verify-drawio-import.py4CODE
LOWscripts/verify-motion.py4CODE
LOWscripts/test-export-svg-standalone.py8CODE
LOWscripts/test-verify-architecture-delta.py9CODE
LOWscripts/test-verify-polar.py2CODE
LOWscripts/test-verify-doctor.py4CODE
LOWscripts/test-verify-axonometric-plan.py13CODE
LOWscripts/test-fix-mojibake.py4CODE
LOWscripts/plugin_version_history.py4CODE
LOWscripts/verify-treemap.py37CODE
LOWscripts/verify-bubble.py102CODE
LOWscripts/build-axonometric-plan-examples.py15CODE
LOWscripts/test-build-openai-plugin-zip.py13CODE
LOWscripts/verify-streamgraph.py95CODE
LOWscripts/test-build-readme-thumbs.py4CODE
LOWscripts/verify-beeswarm.py112CODE
LOWscripts/build-exploded-examples.py15CODE
LOWscripts/test-build-icons-quoted-attributes.py4CODE
LOWscripts/test-verify-screenshot-freshness.py10CODE
LOWscripts/verify-geometry.py56CODE
LOWscripts/build-openai-plugin-zip.py24CODE
LOWscripts/lint-skin.py8CODE
LOWscripts/test-verify-slopegraph.py21CODE
LOWscripts/test-verify-beeswarm.py21CODE
28 more matches not shown…
Deep Nesting77 hits · 76 pts
SeverityFileLineSnippetContext
LOWscripts/test-verify-ridgeline.py165CODE
LOWscripts/verify-marimekko.py794CODE
LOWscripts/verify-marimekko.py825CODE
LOWscripts/verify-marimekko.py318CODE
LOWscripts/verify-polar.py444CODE
LOWscripts/verify-polar.py221CODE
LOWscripts/verify-ridgeline.py451CODE
LOWscripts/verify-ridgeline.py960CODE
LOWscripts/verify-ridgeline.py285CODE
LOWscripts/test-verify-heatmap.py124CODE
LOWscripts/test-verify-waterfall.py66CODE
LOWscripts/verify-waterfall.py135CODE
LOWscripts/verify-exploded.py150CODE
LOWscripts/test-verify-docs-sync.py374CODE
LOWscripts/test-verify-docs-sync.py759CODE
LOWscripts/verify-docs-sync.py681CODE
LOWscripts/verify-docs-sync.py1103CODE
LOWscripts/verify-docs-sync.py1430CODE
LOWscripts/verify-docs-sync.py1447CODE
LOWscripts/verify-heatmap.py242CODE
LOWscripts/verify-bump.py316CODE
LOWscripts/verify-bump.py495CODE
LOWscripts/verify-bump.py569CODE
LOWscripts/verify-sankey.py779CODE
LOWscripts/verify-skin-polarity.py288CODE
LOWscripts/verify-skin-polarity.py405CODE
LOWscripts/verify-skin-polarity.py515CODE
LOWscripts/lint-render.py422CODE
LOWscripts/lint-render.py1469CODE
LOWscripts/verify-slopegraph.py732CODE
LOWscripts/verify-slopegraph.py271CODE
LOWscripts/test-verify-sankey.py117CODE
LOWscripts/test-verify-treemap.py50CODE
LOWscripts/verify-plugin-package.py339CODE
LOWscripts/verify-motion.py147CODE
LOWscripts/verify-motion.py193CODE
LOWscripts/test-export-svg-standalone.py559CODE
LOWscripts/test-verify-polar.py78CODE
LOWscripts/test-verify-axonometric-plan.py57CODE
LOWscripts/verify-treemap.py150CODE
LOWscripts/verify-bubble.py280CODE
LOWscripts/build-axonometric-plan-examples.py301CODE
LOWscripts/verify-streamgraph.py431CODE
LOWscripts/verify-streamgraph.py273CODE
LOWscripts/verify-beeswarm.py355CODE
LOWscripts/build-exploded-examples.py48CODE
LOWscripts/build-exploded-examples.py190CODE
LOWscripts/verify-geometry.py236CODE
LOWscripts/verify-geometry.py323CODE
LOWscripts/verify-geometry.py458CODE
LOWscripts/build-openai-plugin-zip.py202CODE
LOWscripts/lint-skin.py334CODE
LOWscripts/lint-skin.py559CODE
LOWscripts/lint-skin.py734CODE
LOWscripts/lint-skin.py264CODE
LOWscripts/verify-axonometric-plan.py93CODE
LOWscripts/verify-architecture-delta.py259CODE
LOWscripts/verify-contrast.py154CODE
LOWscripts/test-verify-exploded.py66CODE
LOWscripts/test-maintainer-policy.py144CODE
17 more matches not shown…
AI Slop Vocabulary22 hits · 46 pts
SeverityFileLineSnippetContext
MEDIUMskills/diagram-design/assets/example-pyramid.html110 <text x="64" y="474" fill="#4f5d75" font-size="8.5" font-family="'Geist', sans-serif">Apex — rarest, highest levCODE
MEDIUMskills/diagram-design/assets/example-layers.html94 <text x="260" y="182" fill="#2d3142" font-size="16" font-weight="600" font-family="'Geist', sans-serif">Agent haCODE
MEDIUMskills/diagram-design/assets/example-layers.html119 <text x="240" y="456" fill="#4f5d75" font-size="8.5" font-family="'Geist', sans-serif" font-style="italic">The hCODE
MEDIUMskills/diagram-design/assets/example-pyramid-full.html91 <text x="64" y="474" fill="#4f5d75" font-size="8.5" font-family="'Geist', sans-serif">Apex — rarest, highest levCODE
MEDIUM…-design/assets/example-exploded-ai-stack-animated.html220 <g data-part="harness" data-name="Agent harness" data-rect="0 0 160 160 10" data-z="410" data-t="16" data-level=CODE
MEDIUM…-design/assets/example-exploded-ai-stack-animated.html224 <text x="296" y="780" fill="#4f5d75" font-size="8.5" font-family="'Geist', sans-serif" font-style="italic">SkillCODE
MEDIUM…gram-design/assets/example-exploded-ai-stack-dark.html76 <g data-part="harness" data-name="Agent harness" data-rect="0 0 160 160 10" data-z="410" data-t="16" data-level=CODE
MEDIUM…gram-design/assets/example-exploded-ai-stack-dark.html80 <text x="296" y="780" fill="#bfc0c0" font-size="8.5" font-family="'Geist', sans-serif" font-style="italic">SkillCODE
MEDIUM⚡…diagram-design/assets/example-quadrant-consultant.html86 <text x="156" y="248" fill="#4f5d75" font-size="11" font-family="'Geist', sans-serif">workflows, low AI leverageCODE
MEDIUM⚡…diagram-design/assets/example-quadrant-consultant.html94 <text x="576" y="248" fill="#4f5d75" font-size="11" font-family="'Geist', sans-serif">Small, high-leverage teamsCODE
MEDIUM…gram-design/assets/example-exploded-ai-stack-full.html52 <g data-part="harness" data-name="Agent harness" data-rect="0 0 160 160 10" data-z="410" data-t="16" data-level=CODE
MEDIUM…gram-design/assets/example-exploded-ai-stack-full.html56 <text x="296" y="780" fill="#4f5d75" font-size="8.5" font-family="'Geist', sans-serif" font-style="italic">SkillCODE
MEDIUMskills/diagram-design/assets/example-pyramid-dark.html110 <text x="64" y="474" fill="#bfc0c0" font-size="8.5" font-family="'Geist', sans-serif">Apex — rarest, highest levCODE
MEDIUMskills/diagram-design/assets/example-wardley.html121 <text x="220" y="176" fill="#2d3142" font-size="12" font-weight="600" font-family="'Geist', sans-serif" text-anchoCODE
MEDIUMskills/diagram-design/assets/example-layers-full.html75 <text x="260" y="182" fill="#2d3142" font-size="16" font-weight="600" font-family="'Geist', sans-serif">Agent haCODE
MEDIUMskills/diagram-design/assets/example-layers-full.html100 <text x="240" y="456" fill="#4f5d75" font-size="8.5" font-family="'Geist', sans-serif" font-style="italic">The hCODE
MEDIUMskills/diagram-design/assets/example-wardley-full.html95 <text x="220" y="176" fill="#2d3142" font-size="12" font-weight="600" font-family="'Geist', sans-serif" text-ancCODE
MEDIUM…s/diagram-design/assets/example-exploded-ai-stack.html76 <g data-part="harness" data-name="Agent harness" data-rect="0 0 160 160 10" data-z="410" data-t="16" data-level=CODE
MEDIUM…s/diagram-design/assets/example-exploded-ai-stack.html80 <text x="296" y="780" fill="#4f5d75" font-size="8.5" font-family="'Geist', sans-serif" font-style="italic">SkillCODE
MEDIUMskills/diagram-design/assets/example-wardley-dark.html121 <text x="220" y="176" fill="#f5f5f5" font-size="12" font-weight="600" font-family="'Geist', sans-serif" text-anchoCODE
MEDIUMskills/diagram-design/assets/example-layers-dark.html94 <text x="260" y="182" fill="#f5f5f5" font-size="16" font-weight="600" font-family="'Geist', sans-serif">Agent haCODE
MEDIUMskills/diagram-design/assets/example-layers-dark.html119 <text x="240" y="456" fill="#bfc0c0" font-size="8.5" font-family="'Geist', sans-serif" font-style="italic">The hCODE
Empty Error Handlers6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHscripts/test-export-wait.py96except AssertionError:CODE
HIGHscripts/test-plugin-package.py775except VERSION_HISTORY.VersionHistoryError:CODE
HIGHscripts/test-plugin-package.py785except VERSION_HISTORY.VersionHistoryError:CODE
HIGHscripts/test-build-openai-plugin-zip.py492except OSError:CODE
HIGHscripts/lint-skin.py379except ValueError:CODE
HIGHscripts/verify-drawio-import.py517except extractor.PayloadTooLarge:CODE
Over-Commented Block27 hits · 27 pts
SeverityFileLineSnippetContext
LOWdocs/superpowers/plans/2026-08-18-polar-chart.md221- [ ] **Step 2: Write `type-polar.md` from the approved contract**COMMENT
LOWscripts/verify-marimekko.py101import sysCOMMENT
LOWscripts/verify-marimekko.py141# detection reads raw text and must refuse the same way, or a commented-outCOMMENT
LOWscripts/verify-ridgeline.py101import argparseCOMMENT
LOWscripts/verify-ridgeline.py121# replaces the very outline that was verified, and x/y do the same to aCOMMENT
LOWscripts/verify-ridgeline.py141 r"\s*:",COMMENT
LOWscripts/verify-docs-sync.py621 f"README architecture tree must list Factory's native {native_directory} path"COMMENT
LOWscripts/verify-sankey.py121# it - geometry may not carry style/class, containers may not carry the paintCOMMENT
LOWscripts/verify-sankey.py141# and worse, a leading-dot coordinate read by "-?\\d+" silently becomes aCOMMENT
LOWscripts/verify-sankey.py161 re.IGNORECASE,COMMENT
LOWscripts/verify-sankey.py721# about is certified - and SVG has far more ways to render differently than anyCOMMENT
LOWscripts/verify-sankey.py941 # a transform, a clip, a mask, or a hidden element. Each of those lets everyCOMMENT
LOWscripts/verify-sankey.py981 # constructs above so that a transform is reported as a transform, not as anCOMMENT
LOWscripts/verify-slopegraph.py101# Every CSS property that can move or reshape a verified mark WITHOUT touchingCOMMENT
LOWscripts/verify-slopegraph.py121# Anchored to a declaration start, so `text-transform:` (the editorial skinCOMMENT
LOWscripts/verify-slopegraph.py141# is exactly what a broken quote defeats (see declares_series). Scoped to aCOMMENT
LOWscripts/test-verify-sankey.py461 # the seam between Flaked (bottom 140) and Passed (top 148), whereCOMMENT
LOWscripts/test-verify-sankey.py521 case(COMMENT
LOWscripts/test-verify-sankey.py601 # dash at all and is not the form the reference permits.COMMENT
LOWscripts/test-verify-sankey.py801 "may set only", "a comment between a property and its colon"),COMMENT
LOWscripts/test-verify-sankey.py901COMMENT
LOWscripts/verify-bubble.py121# transform / translate / rotate / scale the four transform properties;COMMENT
LOWscripts/verify-bubble.py141 re.IGNORECASE,COMMENT
LOWscripts/verify-streamgraph.py101from html.parser import HTMLParserCOMMENT
LOWscripts/verify-streamgraph.py121# CSS motion path, which places the element somewhere else entirelyCOMMENT
LOWscripts/verify-streamgraph.py141# through the guard. Non-greedy and DOTALL: a comment may span lines andCOMMENT
LOWscripts/verify-beeswarm.py141# cx / cy / r / x / y SVG geometry properties. CSS winsCOMMENT
Modern AI Meta-Vocabulary7 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUMskills/diagram-design/assets/example-layers.html102 <text x="940" y="246" fill="#4f5d75" font-size="10" font-family="'Geist Mono', monospace" text-anchor="end" lettCODE
MEDIUM⚡…diagram-design/assets/example-quadrant-consultant.html92 <text x="576" y="216" fill="#4f5d75" font-size="11" font-family="'Geist', sans-serif">Humans orchestrate; AI</teCODE
MEDIUMskills/diagram-design/assets/example-wardley.html118 <text x="420" y="144" fill="#2d3142" font-size="12" font-weight="600" font-family="'Geist', sans-serif" text-anchoCODE
MEDIUMskills/diagram-design/assets/example-layers-full.html83 <text x="940" y="246" fill="#4f5d75" font-size="10" font-family="'Geist Mono', monospace" text-anchor="end" lettCODE
MEDIUMskills/diagram-design/assets/example-wardley-full.html92 <text x="420" y="144" fill="#2d3142" font-size="12" font-weight="600" font-family="'Geist', sans-serif" text-ancCODE
MEDIUMskills/diagram-design/assets/example-wardley-dark.html118 <text x="420" y="144" fill="#f5f5f5" font-size="12" font-weight="600" font-family="'Geist', sans-serif" text-anchoCODE
MEDIUMskills/diagram-design/assets/example-layers-dark.html102 <text x="940" y="246" fill="#bfc0c0" font-size="10" font-family="'Geist Mono', monospace" text-anchor="end" lettCODE
Excessive Try-Catch Wrapping10 hits · 9 pts
SeverityFileLineSnippetContext
LOWscripts/verify-marimekko.py303 except Exception as exc: # noqa: BLE001 - any parser failure fails closedCODE
LOWscripts/verify-ridgeline.py266 except Exception as exc: # noqa: BLE001 - any parser failure fails closedCODE
LOWscripts/test-export-wait.py310 except Exception as exc:CODE
LOWscripts/lint-render.py1491 except Exception as error:CODE
LOWscripts/lint-render.py1512 except Exception as error:CODE
LOWscripts/verify-slopegraph.py252 except Exception as exc: # noqa: BLE001 - any parser failure fails closedCODE
LOWscripts/verify-bubble.py261 except Exception as exc: # noqa: BLE001 - any parser failure fails closedCODE
LOWscripts/verify-streamgraph.py254 except Exception as exc: # noqa: BLE001 - any parser failure fails closedCODE
LOWskills/diagram-design/scripts/drawio_extract.py100 except Exception:CODE
LOWskills/diagram-design/scripts/drawio_extract.py109 except Exception:CODE
AI Structural Patterns3 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/test-verify-marimekko.py124CODE
LOWscripts/test-build-openai-plugin-zip.py83CODE
LOWscripts/test-verify-beeswarm.py62CODE
Modern Structural Boilerplate2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/test-plugin-package.py159def set_existing_versions(root: Path, version: str) -> None:CODE
LOWscripts/test-build-readme-thumbs.py83def update_thumb_digest(manifest: Path, thumb: Path) -> None:CODE