AI Slop Code Risk Monitor

cathrynlavery/diagram-design

SlopCodeMonitor badge for cathrynlavery/diagram-design Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

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

10.8 Moderate pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for cathrynlavery/diagram-design, a HTML project with 63,564 GitHub stars. SynthScan examined 116,596 lines of code across 445 source files, recording 769 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 10.8 (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.8
Adjusted Signal
10.8
Raw Pattern Score
100%
Time Factor
2026-10-27
Last Push
63.6K
Stars
HTML
Language
116.6K
Lines of Code
445
Files
769
Pattern Hits
2026-10-31
Scan Date
0.20
HC Hit Rate

Risk Review · Payload v1

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

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 18.6/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 9.1/100 · LOW

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

Agent Over-Engineering Ratio 29.9/100 · MEDIUM

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

PR Review Velocity Impact 45.7/100 · MEDIUM

Which changes need focused human review? 769 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 90MEDIUM 102LOW 577

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 769 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 Repetition59 hits · 295 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-heatmap.py0(?p<name>[\w:-]+)\s*=\s*(?p<quote>["'])(?p<value>.*?)(?p=quote)STRING
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-treemap.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-box-plot.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
Hyper-Verbose Identifiers303 hits · 263 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.py80def render_skill_metadata_version(root: Path, version: str) -> tuple[Path, str]:CODE
LOW⚡scripts/test-verify-architecture-containment.py137 def test_managed_must_not_sit_inside_traffic(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py140 def test_managed_must_parent_to_admin(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py145 def test_endpoint_must_parent_to_traffic_and_target_managed(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py152 def test_peering_must_join_traffic_scopes(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py158 def test_sibling_axis_and_overlap(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py207 def test_transform_attribute_on_node_group(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py211 def test_inline_style_transform_on_node_group(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py215 def test_ancestor_group_transform(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py220 def test_transform_attribute_on_scope_bounds(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py225 def test_positional_inline_css_on_bounds(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py232 def test_nested_svg_viewport_ancestor(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py237 def test_stylesheet_rule_transforming_checked_element(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py322 def test_missing_parent_on_enclosed_scope(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py325 def test_parent_must_be_innermost_enclosing_scope(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py333 def test_shipped_missing_parent_cannot_hide_misaligned_sibling(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py515 def test_nested_siblings_take_perpendicular_axis(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py519 def test_nested_siblings_on_parent_axis_rejected(self):CODE
LOW⚡scripts/test-verify-architecture-containment.py522 def test_all_shipped_variants(self):CODE
LOWscripts/test-verify-architecture-containment.py81 def test_files_without_grammar_are_skipped(self):CODE
LOWscripts/test-verify-architecture-containment.py86 def test_comments_entities_and_unquoted_attributes(self):CODE
LOWscripts/test-verify-architecture-containment.py98 def test_scope_and_node_share_one_namespace(self):CODE
LOWscripts/test-verify-architecture-containment.py104 def test_blank_parent_on_nested_scope(self):CODE
LOWscripts/test-verify-architecture-containment.py115 def test_child_outside_parent(self):CODE
LOWscripts/test-verify-architecture-containment.py175 def test_unknown_kinds_and_duplicate_attributes(self):CODE
LOWscripts/test-verify-architecture-containment.py181 def test_empty_and_invalid_ids(self):CODE
LOWscripts/test-verify-architecture-containment.py249 def test_harmless_page_css_is_clean(self):CODE
LOWscripts/test-verify-architecture-containment.py253 def test_page_only_style_rules_are_clean(self):CODE
LOWscripts/test-verify-architecture-containment.py267 def test_style_rule_through_page_ancestor(self):CODE
LOWscripts/test-verify-architecture-containment.py292 def test_omitted_html_and_body_still_anchor_style_rules(self):CODE
LOWscripts/test-verify-architecture-containment.py304 def test_omitted_tag_pages_keep_page_only_rules_clean(self):CODE
LOWscripts/test-verify-architecture-containment.py311 def test_child_combinator_outside_svg_survives_implied_end_tags(self):CODE
LOWscripts/test-verify-architecture-containment.py346 def test_dasharray_none_is_solid(self):CODE
LOWscripts/test-verify-architecture-containment.py359 def test_important_dasharray_wins_over_later_normal_declaration(self):CODE
LOWscripts/test-verify-architecture-containment.py376 def test_equal_dasharray_priority_keeps_later_declaration(self):CODE
LOWscripts/test-verify-architecture-containment.py393 def test_invalid_literal_values_do_not_acquire_declaration_priority(self):CODE
LOWscripts/test-verify-architecture-containment.py410 def test_unresolved_dash_values_fail_closed_only_when_they_win(self):CODE
LOWscripts/test-verify-architecture-containment.py422 def test_css_wide_dash_keywords_are_retained_in_priority_resolution(self):CODE
LOWscripts/test-verify-architecture-containment.py429 def test_css_wide_dash_priority_matches_attribute_and_parent_inheritance(self):CODE
LOWscripts/test-verify-architecture-containment.py451 def test_comments_do_not_fabricate_dash_keywords_units_or_priority(self):CODE
LOWscripts/test-verify-architecture-containment.py478 def test_comment_scanning_preserves_quoted_strings_escapes_and_rule_bodies(self):CODE
LOWscripts/test-verify-architecture-containment.py488 def test_dasharray_resolves_style_and_inheritance(self):CODE
LOWscripts/test-verify-architecture-containment.py500 def test_scope_bounds_must_be_rect(self):CODE
LOWscripts/test-verify-architecture-containment.py504 def test_node_bounds_must_be_rect(self):CODE
LOWscripts/test-verify-architecture-containment.py534 def test_shipped_boundary_labels_use_soft(self):CODE
LOWscripts/test-verify-architecture-containment.py547 def test_cli_discovery_and_failures(self):CODE
LOWscripts/verify-mermaid-import.py68def check_legacy_stdout_encoding(tmp: Path) -> None:CODE
LOWscripts/verify-mermaid-import.py220def check_flowchart_header_statements(tmp: Path) -> None:CODE
LOWscripts/verify-mermaid-import.py265def check_shape_and_edge_vocabulary(tmp: Path) -> None:CODE
LOWscripts/verify-mermaid-import.py612def check_outer_markdown_fences(tmp: Path) -> None:CODE
LOWscripts/verify-mermaid-import.py662def check_markdown_and_grammars(tmp: Path) -> None:CODE
LOWscripts/verify-mermaid-import.py828def check_named_composite_states(tmp: Path) -> None:CODE
LOWscripts/verify-mermaid-import.py850def check_selection_before_parse(tmp: Path) -> None:CODE
LOWscripts/verify-mermaid-import.py940def check_sequence_highlight_nesting_regression(tmp: Path) -> None:CODE
LOWscripts/verify-mermaid-import.py994def check_sequence_digest_regions(tmp: Path) -> None:CODE
243 more matches not shown…
Decorative Section Separators73 hits · 222 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.py203 # ── 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.py1117 # ── Loop station origin (#443) ───────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-docs-sync.py1186 # ── type-ramp contract tests ─────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-docs-sync.py1320 # ── registered legacy sizes ──────────────────────────────────────────────COMMENT
MEDIUMscripts/test-verify-docs-sync.py1990 # ── 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.py356 # ── Positive half: each lie must be named as itself ───────────────────COMMENT
MEDIUMscripts/test-verify-streamgraph.py960 # ── 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
13 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.py134 let blockedBy = null;CODE
HIGH⚡scripts/lint-render.py138 const scrolls = el.scrollWidth > el.clientWidth + 1 || el.scrollHeight > el.clientHeight + 1;CODE
HIGH⚡scripts/lint-render.py140 chain.push(`${label(el)} (overflow: ${overflow})`);CODE
HIGH⚡scripts/lint-render.py204 for (let el = svg.parentElement; el && taken < depth; el = el.parentElement) {CODE
HIGH⚡scripts/lint-render.py206 targets.push(el);CODE
HIGH⚡scripts/lint-render.py213 rects.push([r.left, r.top, r.right, r.bottom]);CODE
HIGH⚡scripts/lint-render.py242 if (before.width !== after.width || before.height !== after.height) {CODE
HIGH⚡scripts/lint-render.py250 if (x >= interior.left - g && x < interior.right + g &&CODE
HIGH⚡scripts/lint-render.py251 y >= interior.top - g && y < interior.bottom + g) continue;CODE
HIGHscripts/lint-render.py160 const remember = (el) => window.__lintSnapshots.push([el, el.getAttribute('style')]);CODE
HIGHscripts/lint-render.py168 if (style === null) el.removeAttribute('style');CODE
HIGHscripts/lint-render.py1594 " pip install playwright && playwright install chromium",CODE
HIGHscripts/lint-render.py78 pip install playwright && playwright install chromiumSTRING
HIGHscripts/lint-render.py871 while (ancestor && ancestor !== document.body) {STRING
HIGHscripts/lint-render.py927 const overflow = scroller && getComputedStyle(scroller).overflowX;STRING
HIGHscripts/lint-render.py986 while (ancestor && ancestor !== document.body) {STRING
HIGHscripts/lint-render.py1061 while (ancestor && ancestor !== document.body) {STRING
HIGHscripts/verify-excalidraw-import.py754 const scroller = svg && svg.parentElement;STRING
HIGHscripts/verify-excalidraw-import.py755 const overflow = scroller && getComputedStyle(scroller).overflowX;STRING
HIGHscripts/test-maintainer-policy.py363 "python3 scripts/build-icons.py && git diff --ignore-space-at-eol --exit-code -- "CODE
HIGHscripts/test-maintainer-policy.py447 if ! git rev-parse -q --verify HEAD^2 >/dev/null; thenCODE
HIGHscripts/test-maintainer-policy.py519 "python scripts/test-lint-a11y.py && make lint": """STRING
HIGHscripts/test-maintainer-policy.py521 run: python scripts/test-lint-a11y.py && make lintCODE
HIGHscripts/test-maintainer-policy.py602 "python3 scripts/build-icons.py && git diff --exit-code",CODE
Deep Nesting132 hits · 124 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/verify-mermaid-import.py1354CODE
LOWscripts/test-verify-heatmap.py124CODE
LOWscripts/test-verify-waterfall.py67CODE
LOWscripts/verify-waterfall.py135CODE
LOWscripts/verify-exploded.py53CODE
LOWscripts/verify-exploded.py224CODE
LOWscripts/test-verify-docs-sync.py385CODE
LOWscripts/test-verify-docs-sync.py915CODE
LOWscripts/verify-docs-sync.py227CODE
LOWscripts/verify-docs-sync.py765CODE
LOWscripts/verify-docs-sync.py1187CODE
LOWscripts/verify-docs-sync.py1514CODE
LOWscripts/verify-docs-sync.py1531CODE
LOWscripts/verify-doctor.py70CODE
LOWscripts/verify-heatmap.py259CODE
LOWscripts/verify-bump.py316CODE
LOWscripts/verify-bump.py495CODE
LOWscripts/verify-bump.py569CODE
LOWscripts/verify-sankey.py790CODE
LOWscripts/verify-skin-polarity.py288CODE
LOWscripts/verify-skin-polarity.py405CODE
LOWscripts/verify-skin-polarity.py515CODE
LOWscripts/lint-render.py421CODE
LOWscripts/lint-render.py723CODE
LOWscripts/lint-render.py1587CODE
LOWscripts/verify-slopegraph.py732CODE
LOWscripts/verify-slopegraph.py271CODE
LOWscripts/test-verify-sankey.py117CODE
LOWscripts/test-verify-treemap.py50CODE
LOWscripts/verify-plugin-package.py366CODE
LOWscripts/verify-motion.py147CODE
LOWscripts/verify-motion.py193CODE
LOWscripts/test-export-svg-standalone.py151CODE
LOWscripts/test-export-svg-standalone.py165CODE
LOWscripts/test-export-svg-standalone.py278CODE
LOWscripts/test-export-svg-standalone.py292CODE
LOWscripts/test-export-svg-standalone.py823CODE
LOWscripts/test-export-svg-standalone.py885CODE
LOWscripts/test-export-svg-standalone.py1442CODE
LOWscripts/test-export-svg-standalone.py1671CODE
LOWscripts/test-export-svg-standalone.py1812CODE
LOWscripts/test-verify-polar.py78CODE
LOWscripts/test-verify-axonometric-plan.py57CODE
LOWscripts/verify-treemap.py154CODE
LOWscripts/verify-bubble.py280CODE
LOWscripts/build-axonometric-plan-examples.py301CODE
LOWscripts/verify-streamgraph.py443CODE
LOWscripts/verify-streamgraph.py276CODE
LOWscripts/verify-beeswarm.py355CODE
LOWscripts/build-exploded-examples.py48CODE
LOWscripts/build-exploded-examples.py190CODE
72 more matches not shown…
Unused Imports95 hits · 94 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/test-verify-architecture-containment.py9CODE
LOWscripts/verify-ridgeline.py99CODE
LOWscripts/verify-mermaid-import.py9CODE
LOWscripts/test-export-wait.py18CODE
LOWscripts/test-export-wait.py386CODE
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.py54CODE
LOWscripts/verify-doctor.py8CODE
LOWscripts/test-verify-box-plot.py21CODE
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-install-scan.py12CODE
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
35 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/verify-doctor.py101except ProcessLookupError:CODE
HIGHscripts/test-plugin-package.py849except VERSION_HISTORY.VersionHistoryError:CODE
HIGHscripts/test-plugin-package.py859except VERSION_HISTORY.VersionHistoryError:CODE
HIGHscripts/test-build-openai-plugin-zip.py492except OSError:CODE
HIGHscripts/lint-skin.py379except ValueError:CODE
HIGHscripts/verify-drawio-import.py638except extractor.PayloadTooLarge:CODE
Over-Commented Block28 hits · 28 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.py701 for line in block.splitlines()COMMENT
LOWscripts/verify-docs-sync.py721# appendix` remains valid while the README's stale phrases stay covered.COMMENT
LOWscripts/verify-sankey.py121# Every element that can paint, or be inherited from. One list, because splittingCOMMENT
LOWscripts/verify-sankey.py141# the same figure a different way, which is a gate failing at its actual job -COMMENT
LOWscripts/verify-sankey.py161 r"^(?P<number>" + SVG_NUMBER + r")\s*(?P<unit>[a-z%]*)$",COMMENT
LOWscripts/verify-sankey.py721 host.values.append((value, body))COMMENT
LOWscripts/lint-render.py101# ponytail: 2px guard band around a released box absorbs boundary re-antialiasing;COMMENT
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
LOW.github/workflows/ci.yml501COMMENT
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 Wrapping13 hits · 11 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.py323 except Exception as exc:STRING
LOWscripts/test-export-wait.py345 except Exception as exc:STRING
LOWscripts/test-verify-box-plot.py209 except Exception as error: # pragma: no cover - the checker must not raiseCODE
LOWscripts/lint-render.py847 except Exception as error:CODE
LOWscripts/lint-render.py1609 except Exception as error:CODE
LOWscripts/lint-render.py1630 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.py257 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 Patterns4 hits · 4 pts
SeverityFileLineSnippetContext
LOWscripts/test-verify-marimekko.py124CODE
LOWscripts/test-verify-box-plot.py60CODE
LOWscripts/test-build-openai-plugin-zip.py83CODE
LOWscripts/test-verify-beeswarm.py62CODE
Modern Structural Boilerplate2 hits · 2 pts
SeverityFileLineSnippetContext
LOWscripts/test-plugin-package.py173def set_existing_versions(root: Path, version: str) -> None:CODE
LOWscripts/test-build-readme-thumbs.py83def update_thumb_digest(manifest: Path, thumb: Path) -> None:CODE