AI Slop Code RIsk Monitor

tw93/Kami

👩‍🚒 Paper-inspired typography for elegant reading on screen. Good content deserves good paper.

6.0 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for tw93/Kami, a HTML project with 11,934 GitHub stars. SynthScan examined 92,944 lines of code across 306 source files, recording 437 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 6.0 (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.

6.0
Adjusted Signal
6.0
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
11.9K
Stars
HTML
Language
92.9K
Lines of Code
306
Files
437
Pattern Hits
2026-10-12
Scan Date
0.03
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 13.2/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 3.1/100 · LOW

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

Agent Over-Engineering Ratio 20.4/100 · LOW

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

PR Review Velocity Impact 27.2/100 · MEDIUM

Which changes need focused human review? 437 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 10MEDIUM 52LOW 375

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 437 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.

Hyper-Verbose Identifiers207 hits · 188 pts
SeverityFileLineSnippetContext
LOWplugins/kami/skills/kami/scripts/mermaid_normalize.py266def _assert_beautiful_mermaid(svg: str) -> None:CODE
LOWplugins/kami/skills/kami/scripts/site_facts.py168def _drop_language_redirect_script(rows: list[str]) -> list[str]:CODE
LOWplugins/kami/skills/kami/scripts/shared.py62def configure_weasyprint_runtime() -> None:CODE
LOWplugins/kami/skills/kami/scripts/shared.py211def public_document_template_kinds() -> set[str]:CODE
LOWplugins/kami/skills/kami/scripts/shared.py224def public_document_template_count() -> int:CODE
LOWplugins/kami/skills/kami/scripts/content.py207 def _handle_ambiguous_starttag(CODE
LOWplugins/kami/skills/kami/scripts/content.py418def _changelog_contract_issues(content: dict) -> list[str]:CODE
LOWplugins/kami/skills/kami/scripts/html_visibility.py283def _document_custom_properties(raw: str) -> dict[str, str]:CODE
LOWplugins/kami/skills/kami/scripts/html_visibility.py858 def _implicitly_closed_by_start(open_tag: str, new_tag: str) -> bool:CODE
LOWplugins/kami/skills/kami/scripts/html_visibility.py884 def _implicitly_closed_by_end(open_tag: str, end_tag: str) -> bool:CODE
LOWplugins/kami/skills/kami/scripts/html_visibility.py898 def _implicit_start_boundaries(new_tag: str) -> set[str]:CODE
LOWplugins/kami/skills/kami/scripts/html_visibility.py1096 def _handle_ambiguous_starttag(CODE
LOWplugins/kami/skills/kami/scripts/lint.py83def _strip_css_block_comments(text: str) -> str:CODE
LOWplugins/kami/skills/kami/scripts/lint.py445def _emphasis_container_findings(path: Path) -> list[Finding]:CODE
LOWplugins/kami/skills/kami/scripts/lint.py576def _undefined_token_findings(CODE
LOWplugins/kami/skills/kami/scripts/lint.py699def check_cross_template_consistency(verbose: bool = False) -> int:CODE
LOWscripts/build_metadata.py510def should_include_skill_mirror_file(path: Path) -> bool:CODE
LOWscripts/tests/test_package.py92def test_render_examples_are_ignored_and_untracked() -> None:CODE
LOWscripts/tests/test_package.py111def test_dist_package_contents() -> None:CODE
LOWscripts/tests/test_package.py174def test_package_failure_preserves_last_good_archive() -> None:CODE
LOWscripts/tests/test_package.py197def test_plugin_metadata_generated() -> None:CODE
LOWscripts/tests/test_package.py214def test_claude_plugin_marketplace_version_matches_version_file() -> None:CODE
LOWscripts/tests/test_package.py250def test_build_metadata_reads_tokens_from_root_argument() -> None:CODE
LOWscripts/tests/test_package.py265def test_catalog_lists_pptx_for_slides() -> None:CODE
LOWscripts/tests/test_package.py344def test_check_update_defaults_to_latest_published_release() -> None:CODE
LOWscripts/tests/test_package.py374def test_check_update_uses_codex_plugin_update_command() -> None:CODE
LOWscripts/tests/test_package.py413def test_check_update_uses_claude_plugin_update_command() -> None:CODE
LOWscripts/tests/test_package.py447def test_release_gate_rejects_identity_mismatches() -> None:CODE
LOWscripts/tests/test_package.py460def test_release_gate_resolves_only_the_tag_namespace() -> None:CODE
LOWscripts/tests/test_package.py476def test_release_gate_requires_main_push_provenance() -> None:CODE
LOWscripts/tests/test_package.py499def test_release_gate_requires_mainline_reachability() -> None:CODE
LOWscripts/tests/test_package.py517def test_release_gate_compares_zip_payloads_not_container_bytes() -> None:CODE
LOWscripts/tests/test_package.py554def test_release_workflow_reads_back_required_reactions() -> None:CODE
LOWscripts/tests/test_package.py565def test_release_workflow_preserves_published_version_payloads() -> None:CODE
LOWscripts/tests/test_package.py580def test_release_note_help_matches_placeholder_flow() -> None:CODE
LOWscripts/tests/test_package.py593def test_release_note_scaffold_matches_published_shape() -> None:CODE
LOWscripts/tests/test_package.py614def test_plugin_mirror_follows_tracked_files() -> None:CODE
LOWscripts/tests/test_package.py636def test_mcp_server_card_install_path_matches_developer_docs() -> None:CODE
LOW⚡scripts/tests/test_templates.py978def test_check_placeholders_passes_clean() -> None:CODE
LOW⚡scripts/tests/test_templates.py988def test_markdown_residue_flags_raw_markers() -> None:CODE
LOWscripts/tests/test_templates.py32def test_long_doc_templates_use_rendered_toc_pages_and_chapter_headers() -> None:CODE
LOWscripts/tests/test_templates.py78def test_chinese_html_templates_keep_single_serif_stack() -> None:CODE
LOWscripts/tests/test_templates.py124def test_korean_templates_carry_resolvable_serif_name() -> None:CODE
LOWscripts/tests/test_templates.py162def test_sibling_placeholder_hints_stay_in_parity() -> None:CODE
LOWscripts/tests/test_templates.py190def test_font_fallback_markers_recognize_pt_serif() -> None:CODE
LOWscripts/tests/test_templates.py202def test_print_surfaces_have_no_ornamental_brand_lines() -> None:CODE
LOWscripts/tests/test_templates.py234def test_shipped_surfaces_keep_subtractive_defaults() -> None:CODE
LOWscripts/tests/test_templates.py312def test_print_radius_guidance_matches_shipped_range() -> None:CODE
LOWscripts/tests/test_templates.py323def test_reviewed_demo_details_keep_quiet_hierarchy() -> None:CODE
LOWscripts/tests/test_templates.py369def test_table_components_keep_one_quiet_rule_system() -> None:CODE
LOWscripts/tests/test_templates.py455def test_documented_snippets_answer_to_template_rules() -> None:CODE
LOWscripts/tests/test_templates.py515def test_emphasis_container_mix_counts_distinct_fills() -> None:CODE
LOWscripts/tests/test_templates.py559def test_templates_declare_jetbrains_mono_exactly_where_used() -> None:CODE
LOWscripts/tests/test_templates.py575def test_template_web_fonts_resolve_from_kami_cdn() -> None:CODE
LOWscripts/tests/test_templates.py589def test_brand_logo_slot_matches_across_locale_variants() -> None:CODE
LOWscripts/tests/test_templates.py832def test_off_palette_scans_site_demos_and_rejects_empty_checkout_scope() -> None:CODE
LOWscripts/tests/test_templates.py876def test_scan_file_ignores_block_comment_rgba() -> None:CODE
LOWscripts/tests/test_templates.py944def test_emphasis_exemption_matches_whole_class_names() -> None:CODE
LOWscripts/tests/test_templates.py1011def test_check_markdown_residue_skips_html_code_blocks() -> None:CODE
LOWscripts/tests/test_templates.py1058def test_pair_names_includes_known_pairs() -> None:CODE
147 more matches not shown…
Decorative Section Separators48 hits · 144 pts
SeverityFileLineSnippetContext
MEDIUMplugins/kami/skills/kami/scripts/mermaid_normalize.py73# ---------------------------------------------------------------------------COMMENT
MEDIUMplugins/kami/skills/kami/scripts/mermaid_normalize.py75# ---------------------------------------------------------------------------COMMENT
MEDIUMplugins/kami/skills/kami/scripts/mermaid_normalize.py101# ---------------------------------------------------------------------------COMMENT
MEDIUMplugins/kami/skills/kami/scripts/mermaid_normalize.py103# ---------------------------------------------------------------------------COMMENT
MEDIUMplugins/kami/skills/kami/scripts/mermaid_normalize.py203# ---------------------------------------------------------------------------COMMENT
MEDIUMplugins/kami/skills/kami/scripts/mermaid_normalize.py205# ---------------------------------------------------------------------------COMMENT
MEDIUMplugins/kami/skills/kami/scripts/shared.py105# ---------------------------------------------------------------------------COMMENT
MEDIUMplugins/kami/skills/kami/scripts/shared.py110# ---------------------------------------------------------------------------COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides-en.py21# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides-en.py23# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides-en.py44# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides-en.py46# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides-en.py93# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides-en.py95# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides-en.py278# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides-en.py280# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides.py21# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides.py23# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides.py50# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides.py52# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides.py102# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides.py104# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides.py315# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMplugins/kami/skills/kami/assets/templates/slides.py317# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/scripts/mermaid_normalize.py73# ---------------------------------------------------------------------------COMMENT
MEDIUMskills/kami/scripts/mermaid_normalize.py75# ---------------------------------------------------------------------------COMMENT
MEDIUMskills/kami/scripts/mermaid_normalize.py101# ---------------------------------------------------------------------------COMMENT
MEDIUMskills/kami/scripts/mermaid_normalize.py103# ---------------------------------------------------------------------------COMMENT
MEDIUMskills/kami/scripts/mermaid_normalize.py203# ---------------------------------------------------------------------------COMMENT
MEDIUMskills/kami/scripts/mermaid_normalize.py205# ---------------------------------------------------------------------------COMMENT
MEDIUMskills/kami/scripts/shared.py105# ---------------------------------------------------------------------------COMMENT
MEDIUMskills/kami/scripts/shared.py110# ---------------------------------------------------------------------------COMMENT
MEDIUMskills/kami/assets/templates/slides-en.py21# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides-en.py23# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides-en.py44# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides-en.py46# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides-en.py93# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides-en.py95# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides-en.py278# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides-en.py280# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides.py21# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides.py23# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides.py50# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides.py52# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides.py102# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides.py104# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides.py315# ═══════════════════════════════════════════════════════════COMMENT
MEDIUMskills/kami/assets/templates/slides.py317# ═══════════════════════════════════════════════════════════COMMENT
Unused Imports60 hits · 58 pts
SeverityFileLineSnippetContext
LOWevals/score.py14CODE
LOWevals/score.py19CODE
LOWplugins/kami/skills/kami/scripts/build.py43CODE
LOWplugins/kami/skills/kami/scripts/mermaid_normalize.py32CODE
LOWplugins/kami/skills/kami/scripts/render.py10CODE
LOWplugins/kami/skills/kami/scripts/render.py21CODE
LOWplugins/kami/skills/kami/scripts/site_facts.py7CODE
LOWplugins/kami/skills/kami/scripts/checks.py14CODE
LOWplugins/kami/skills/kami/scripts/tokens.py7CODE
LOWplugins/kami/skills/kami/scripts/diagram_geometry.py6CODE
LOWplugins/kami/skills/kami/scripts/shared.py2CODE
LOWplugins/kami/skills/kami/scripts/content.py17CODE
LOWplugins/kami/skills/kami/scripts/content.py22CODE
LOWplugins/kami/skills/kami/scripts/visual.py13CODE
LOWplugins/kami/skills/kami/scripts/highlight.py7CODE
LOWplugins/kami/skills/kami/scripts/highlight.py168CODE
LOWplugins/kami/skills/kami/scripts/verify.py9CODE
LOWplugins/kami/skills/kami/scripts/math_render.py12CODE
LOWplugins/kami/skills/kami/scripts/deliver.py20CODE
LOWplugins/kami/skills/kami/scripts/html_visibility.py7CODE
LOWplugins/kami/skills/kami/scripts/optional_deps.py8CODE
LOWplugins/kami/skills/kami/scripts/mcp_server.py25CODE
LOWplugins/kami/skills/kami/scripts/lint.py13CODE
LOWscripts/build_metadata.py33CODE
LOWscripts/draft-release-notes.py20CODE
LOWscripts/release_gate.py3CODE
LOWscripts/tests/test_package.py2CODE
LOWscripts/tests/support.py2CODE
LOWscripts/tests/test_templates.py2CODE
LOWscripts/tests/test_build.py2CODE
LOWscripts/tests/test_site.py2CODE
LOWscripts/tests/test_content.py2CODE
LOWscripts/tests/test_render.py2CODE
LOWscripts/tests/test_render.py359CODE
LOWscripts/tests/test_render.py360CODE
LOWscripts/tests/test_deliver.py2CODE
LOWscripts/tests/test_mcp.py2CODE
LOWscripts/tests/test_diagrams.py2CODE
LOWscripts/tests/test_math.py2CODE
LOWskills/kami/scripts/build.py43CODE
LOWskills/kami/scripts/mermaid_normalize.py32CODE
LOWskills/kami/scripts/render.py10CODE
LOWskills/kami/scripts/render.py21CODE
LOWskills/kami/scripts/site_facts.py7CODE
LOWskills/kami/scripts/checks.py14CODE
LOWskills/kami/scripts/tokens.py7CODE
LOWskills/kami/scripts/diagram_geometry.py6CODE
LOWskills/kami/scripts/shared.py2CODE
LOWskills/kami/scripts/content.py17CODE
LOWskills/kami/scripts/content.py22CODE
LOWskills/kami/scripts/visual.py13CODE
LOWskills/kami/scripts/highlight.py7CODE
LOWskills/kami/scripts/highlight.py168CODE
LOWskills/kami/scripts/verify.py9CODE
LOWskills/kami/scripts/math_render.py12CODE
LOWskills/kami/scripts/deliver.py20CODE
LOWskills/kami/scripts/html_visibility.py7CODE
LOWskills/kami/scripts/optional_deps.py8CODE
LOWskills/kami/scripts/mcp_server.py25CODE
LOWskills/kami/scripts/lint.py13CODE
Deep Nesting57 hits · 54 pts
SeverityFileLineSnippetContext
LOWevals/score.py127CODE
LOWplugins/kami/skills/kami/scripts/mermaid_normalize.py105CODE
LOWplugins/kami/skills/kami/scripts/mermaid_normalize.py118CODE
LOWplugins/kami/skills/kami/scripts/mermaid_normalize.py217CODE
LOWplugins/kami/skills/kami/scripts/mermaid_normalize.py151CODE
LOWplugins/kami/skills/kami/scripts/site_facts.py208CODE
LOWplugins/kami/skills/kami/scripts/checks.py193CODE
LOWplugins/kami/skills/kami/scripts/checks.py262CODE
LOWplugins/kami/skills/kami/scripts/checks.py312CODE
LOWplugins/kami/skills/kami/scripts/diagram_geometry.py79CODE
LOWplugins/kami/skills/kami/scripts/diagram_geometry.py147CODE
LOWplugins/kami/skills/kami/scripts/content.py237CODE
LOWplugins/kami/skills/kami/scripts/content.py297CODE
LOWplugins/kami/skills/kami/scripts/content.py536CODE
LOWplugins/kami/skills/kami/scripts/content.py576CODE
LOWplugins/kami/skills/kami/scripts/verify.py101CODE
LOWplugins/kami/skills/kami/scripts/verify.py160CODE
LOWplugins/kami/skills/kami/scripts/verify.py357CODE
LOWplugins/kami/skills/kami/scripts/verify.py521CODE
LOWplugins/kami/skills/kami/scripts/deliver.py146CODE
LOWplugins/kami/skills/kami/scripts/html_visibility.py105CODE
LOWplugins/kami/skills/kami/scripts/html_visibility.py152CODE
LOWplugins/kami/skills/kami/scripts/html_visibility.py232CODE
LOWplugins/kami/skills/kami/scripts/html_visibility.py283CODE
LOWplugins/kami/skills/kami/scripts/html_visibility.py563CODE
LOWplugins/kami/skills/kami/scripts/lint.py97CODE
LOWscripts/tests/test_package.py111CODE
LOWscripts/tests/test_templates.py162CODE
LOWscripts/tests/test_content.py85CODE
LOWscripts/tests/test_render.py244CODE
LOWscripts/tests/test_render.py788CODE
LOWscripts/tests/test_render.py807CODE
LOWskills/kami/scripts/mermaid_normalize.py105CODE
LOWskills/kami/scripts/mermaid_normalize.py118CODE
LOWskills/kami/scripts/mermaid_normalize.py217CODE
LOWskills/kami/scripts/mermaid_normalize.py151CODE
LOWskills/kami/scripts/site_facts.py208CODE
LOWskills/kami/scripts/checks.py193CODE
LOWskills/kami/scripts/checks.py262CODE
LOWskills/kami/scripts/checks.py312CODE
LOWskills/kami/scripts/diagram_geometry.py79CODE
LOWskills/kami/scripts/diagram_geometry.py147CODE
LOWskills/kami/scripts/content.py237CODE
LOWskills/kami/scripts/content.py297CODE
LOWskills/kami/scripts/content.py536CODE
LOWskills/kami/scripts/content.py576CODE
LOWskills/kami/scripts/verify.py101CODE
LOWskills/kami/scripts/verify.py160CODE
LOWskills/kami/scripts/verify.py357CODE
LOWskills/kami/scripts/verify.py521CODE
LOWskills/kami/scripts/deliver.py146CODE
LOWskills/kami/scripts/html_visibility.py105CODE
LOWskills/kami/scripts/html_visibility.py152CODE
LOWskills/kami/scripts/html_visibility.py232CODE
LOWskills/kami/scripts/html_visibility.py283CODE
LOWskills/kami/scripts/html_visibility.py563CODE
LOWskills/kami/scripts/lint.py97CODE
Empty Error Handlers10 hits · 50 pts
SeverityFileLineSnippetContext
HIGHplugins/kami/skills/kami/scripts/mermaid_normalize.py68except (OSError, ValueError):CODE
HIGHplugins/kami/skills/kami/scripts/render.py51except FileNotFoundError:CODE
HIGHplugins/kami/skills/kami/scripts/verify.py97except FileNotFoundError:CODE
HIGHplugins/kami/skills/kami/scripts/deliver.py170except (json.JSONDecodeError, OSError):CODE
HIGHplugins/kami/skills/kami/scripts/mcp_server.py222except OSError:CODE
HIGHskills/kami/scripts/mermaid_normalize.py68except (OSError, ValueError):CODE
HIGHskills/kami/scripts/render.py51except FileNotFoundError:CODE
HIGHskills/kami/scripts/verify.py97except FileNotFoundError:CODE
HIGHskills/kami/scripts/deliver.py170except (json.JSONDecodeError, OSError):CODE
HIGHskills/kami/scripts/mcp_server.py222except OSError:CODE
Excessive Try-Catch Wrapping39 hits · 39 pts
SeverityFileLineSnippetContext
LOWevals/score.py49 except Exception as exc: # a crashing gate is a failed gate, not a crashed scorerCODE
LOWplugins/kami/skills/kami/scripts/build.py105 except Exception as exc: # WeasyPrint / pypdf / OS errors: report, keep the sweep goingCODE
LOWplugins/kami/skills/kami/scripts/checks.py98 except Exception as exc:CODE
LOWplugins/kami/skills/kami/scripts/checks.py222 except Exception as exc:CODE
LOWplugins/kami/skills/kami/scripts/checks.py357 except Exception as exc:CODE
LOWplugins/kami/skills/kami/scripts/checks.py462 except Exception as exc:CODE
LOWplugins/kami/skills/kami/scripts/visual.py130 except Exception as exc:CODE
LOWplugins/kami/skills/kami/scripts/highlight.py139 except Exception:CODE
LOWplugins/kami/skills/kami/scripts/verify.py107 except Exception:CODE
LOWplugins/kami/skills/kami/scripts/verify.py129 except Exception as exc:CODE
LOWplugins/kami/skills/kami/scripts/verify.py261 except Exception as exc:CODE
LOWplugins/kami/skills/kami/scripts/verify.py449 except Exception as exc: # WeasyPrint / pypdf / OS errors: report, keep the sweep goingCODE
LOWplugins/kami/skills/kami/scripts/math_render.py435 except Exception as exc:CODE
LOWplugins/kami/skills/kami/scripts/math_render.py598 except Exception as exc:CODE
LOWplugins/kami/skills/kami/scripts/deliver.py110 except Exception as exc: # a crashing gate must not cost the verdictCODE
LOWplugins/kami/skills/kami/scripts/deliver.py229 except Exception as exc: # WeasyPrint and math failures both block deliveryCODE
LOWplugins/kami/skills/kami/scripts/deliver.py247 except Exception as exc:CODE
LOWplugins/kami/skills/kami/scripts/optional_deps.py110 except Exception as exc:CODE
LOWplugins/kami/skills/kami/scripts/mcp_server.py423 except Exception as exc:CODE
LOWplugins/kami/skills/kami/scripts/mcp_server.py448 except Exception:CODE
LOWskills/kami/scripts/build.py105 except Exception as exc: # WeasyPrint / pypdf / OS errors: report, keep the sweep goingCODE
LOWskills/kami/scripts/checks.py98 except Exception as exc:CODE
LOWskills/kami/scripts/checks.py222 except Exception as exc:CODE
LOWskills/kami/scripts/checks.py357 except Exception as exc:CODE
LOWskills/kami/scripts/checks.py462 except Exception as exc:CODE
LOWskills/kami/scripts/visual.py130 except Exception as exc:CODE
LOWskills/kami/scripts/highlight.py139 except Exception:CODE
LOWskills/kami/scripts/verify.py107 except Exception:CODE
LOWskills/kami/scripts/verify.py129 except Exception as exc:CODE
LOWskills/kami/scripts/verify.py261 except Exception as exc:CODE
LOWskills/kami/scripts/verify.py449 except Exception as exc: # WeasyPrint / pypdf / OS errors: report, keep the sweep goingCODE
LOWskills/kami/scripts/math_render.py435 except Exception as exc:CODE
LOWskills/kami/scripts/math_render.py598 except Exception as exc:CODE
LOWskills/kami/scripts/deliver.py110 except Exception as exc: # a crashing gate must not cost the verdictCODE
LOWskills/kami/scripts/deliver.py229 except Exception as exc: # WeasyPrint and math failures both block deliveryCODE
LOWskills/kami/scripts/deliver.py247 except Exception as exc:CODE
LOWskills/kami/scripts/optional_deps.py110 except Exception as exc:CODE
LOWskills/kami/scripts/mcp_server.py423 except Exception as exc:CODE
LOWskills/kami/scripts/mcp_server.py448 except Exception:CODE
Modern AI Meta-Vocabulary3 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMplugins/kami/skills/kami/references/design.md1354### Multilingual SEO scaffoldingCOMMENT
MEDIUMsite/assets/demos/demo-waza.html414 <text x="360" y="78" fill="#141413" font-size="13" font-weight="500" font-family="'TsangerJinKai02', 'Source Han SCODE
MEDIUMskills/kami/references/design.md1354### Multilingual SEO scaffoldingCOMMENT
Over-Commented Block6 hits · 6 pts
SeverityFileLineSnippetContext
LOWplugins/kami/skills/kami/scripts/ensure-fonts.sh1#!/usr/bin/env bashCOMMENT
LOWplugins/kami/skills/kami/scripts/lint.py241 return 1COMMENT
LOWplugins/kami/skills/kami/scripts/lint.py541# with the same rules the templates answer to, and every var() it names mustCOMMENT
LOWskills/kami/scripts/ensure-fonts.sh1#!/usr/bin/env bashCOMMENT
LOWskills/kami/scripts/lint.py241 return 1COMMENT
LOWskills/kami/scripts/lint.py541# with the same rules the templates answer to, and every var() it names mustCOMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMevals/score.py59 # The harness seals the run tree with mode 000; the scorer runs as its owner.COMMENT
AI Structural Patterns2 hits · 2 pts
SeverityFileLineSnippetContext
LOWplugins/kami/skills/kami/scripts/mermaid_normalize.py325CODE
LOWskills/kami/scripts/mermaid_normalize.py325CODE
Modern Structural Boilerplate2 hits · 2 pts
SeverityFileLineSnippetContext
LOWplugins/kami/skills/kami/scripts/render.py60def set_pdf_metadata(pdf_path: Path, author: str | None = None) -> None:CODE
LOWskills/kami/scripts/render.py60def set_pdf_metadata(pdf_path: Path, author: str | None = None) -> None:CODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/tests/test_render.py342def helper():CODE
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/tests/test_mcp.py156 and "placeholder" in broken_result["report"].lower(),CODE