SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.
This report summarizes scanner evidence for mono/SkiaSharp, a C# project with 5,593 GitHub stars. SynthScan examined 410,202 lines of code across 3762 source files, recording 1648 pattern matches distributed across 19 syntactic categories. The legacy adjusted pattern signal is 5.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.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1449 finding(s).
Are imports declared and package/API names verified? 64 finding(s).
Are wrappers, guards, and repeated structures necessary? 400 finding(s).
Which changes need focused human review? 1648 finding(s).
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.
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.
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.
The scanner identified 1648 distinct pattern matches across 19 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | External-Dependency-Info.txt | 21 | // | COMMENT |
| LOW | External-Dependency-Info.txt | 41 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | COMMENT |
| LOW | External-Dependency-Info.txt | 101 | COMMENT | |
| LOW | External-Dependency-Info.txt | 121 | // this software without specific prior written permission. | COMMENT |
| LOW | External-Dependency-Info.txt | 941 | # The Google Chrome software developed by Google is licensed under | COMMENT |
| LOW | External-Dependency-Info.txt | 961 | # Neither the name of Google Inc. nor the names of its | COMMENT |
| LOW | External-Dependency-Info.txt | 981 | # | COMMENT |
| LOW | External-Dependency-Info.txt | 1001 | # * | COMMENT |
| LOW | External-Dependency-Info.txt | 1021 | # * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | COMMENT |
| LOW | External-Dependency-Info.txt | 1041 | # * . Redistributions in binary form must reproduce the above copyright | COMMENT |
| LOW | External-Dependency-Info.txt | 1061 | # * OF THE POSSIBILITY OF SUCH DAMAGE. | COMMENT |
| LOW | External-Dependency-Info.txt | 1081 | # the copyright holders, disclaims all warranties with regard to this | COMMENT |
| LOW | External-Dependency-Info.txt | 1101 | # | COMMENT |
| LOW | External-Dependency-Info.txt | 1121 | # development of the program and their respective officials, directors, | COMMENT |
| LOW | External-Dependency-Info.txt | 1141 | # above as far as the program is concerned. | COMMENT |
| LOW | External-Dependency-Info.txt | 1161 | # are permitted provided that the following conditions are met: | COMMENT |
| LOW | External-Dependency-Info.txt | 1181 | 4. Burmese Word Break Dictionary Data (burmesedict.txt) | COMMENT |
| LOW | External-Dependency-Info.txt | 1201 | # other materials provided with the distribution. | COMMENT |
| LOW | eng/common/SetupNugetSources.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | eng/common/vmr-sync.sh | 1 | #!/bin/bash | COMMENT |
| LOW | eng/common/vmr-sync.sh | 21 | ### | COMMENT |
| LOW | eng/common/native/init-distro-rid.sh | 1 | #!/bin/sh | COMMENT |
| LOW | eng/common/native/init-distro-rid.sh | 61 | COMMENT | |
| LOW | …common/templates-official/variables/pool-providers.yml | 1 | # Select a pool provider based off branch name. Anything with branch name containing 'release' must go into an -Svc pool | COMMENT |
| LOW | eng/common/templates/vmr-build-pr.yml | 1 | # This pipeline is used for running the VMR verification of the PR changes in repo-level PRs. | COMMENT |
| LOW | eng/common/templates/variables/pool-providers.yml | 1 | # Select a pool provider based off branch name. Anything with branch name containing 'release' must go into an -Svc pool | COMMENT |
| LOW | eng/common/core-templates/stages/renovate.yml | 1 | # -------------------------------------------------------------------------------------- | COMMENT |
| LOW | …g/common/core-templates/steps/get-github-app-token.yml | 1 | # Mints a short-lived GitHub App installation access token by signing a JWT | COMMENT |
| LOW | eng/common/core-templates/steps/install-microbuild.yml | 1 | parameters: | COMMENT |
| LOW | eng/common/core-templates/job/renovate.yml | 1 | # -------------------------------------------------------------------------------------- | COMMENT |
| LOW | eng/common/core-templates/job/source-build.yml | 1 | parameters: | COMMENT |
| LOW | eng/common/core-templates/job/source-build.yml | 21 | # published by source-build. | COMMENT |
| LOW | …umentation/docfx/releases/3.0.0/SkiaSharp/SkiaSharp.md | 2421 | COMMENT | |
| LOW | …n/docfx/releases/3.0.0/SkiaSharp/SkiaSharp.breaking.md | 1081 | COMMENT | |
| LOW | …ases/1.68.1/SkiaSharp.Views/SkiaSharp.Views.Desktop.md | 1 | # API diff: SkiaSharp.Views.Desktop.dll | COMMENT |
| LOW | ….1/SkiaSharp.Views/SkiaSharp.Views.Desktop.breaking.md | 1 | # API diff: SkiaSharp.Views.Desktop.dll | COMMENT |
| LOW | …docfx/releases/3.116.0/SkiaSharp/SkiaSharp.breaking.md | 1081 | COMMENT | |
| LOW | documentation/site/ai/dashboard.js | 1 | // ───────────────────────────────────────────────────────────── | COMMENT |
| LOW | ….Views.WinUI.Native/SkiaSharp.Views.WinUI.Native/pch.h | 1 | #pragma once | COMMENT |
| LOW | ….Views.WinUI.Native/SkiaSharp.Views.WinUI.Native/pch.h | 21 | #include <winrt/Microsoft.UI.Xaml.Interop.h> | COMMENT |
| LOW | …iaSharp.HarfBuzz/SkiaSharp.HarfBuzz/ColorExtensions.cs | 1 | using HarfBuzzSharp; | COMMENT |
| LOW | …urce/SkiaSharp.HarfBuzz/SkiaSharp.HarfBuzz/SKShaper.cs | 61 | COMMENT | |
| LOW | …urce/SkiaSharp.HarfBuzz/SkiaSharp.HarfBuzz/SKShaper.cs | 181 | } | COMMENT |
| LOW | …aSharp.HarfBuzz/SkiaSharp.HarfBuzz/CanvasExtensions.cs | 21 | /// <param name="text">The text to draw.</param> | COMMENT |
| LOW | …aSharp.HarfBuzz/SkiaSharp.HarfBuzz/CanvasExtensions.cs | 41 | /// <summary>Draws shaped text on the canvas at the specified coordinates.</summary> | COMMENT |
| LOW | …aSharp.HarfBuzz/SkiaSharp.HarfBuzz/CanvasExtensions.cs | 81 | COMMENT | |
| LOW | …aSharp.HarfBuzz/SkiaSharp.HarfBuzz/CanvasExtensions.cs | 101 | [Obsolete("Use the overload with SKTextAlign parameter instead.")] | COMMENT |
| LOW | …aSharp.HarfBuzz/SkiaSharp.HarfBuzz/CanvasExtensions.cs | 121 | /// <param name="x">The x-coordinate of the origin of the text being drawn.</param> | COMMENT |
| LOW | …s.Uno/SkiaSharp.Views.Uno.WinUI.Shared/SKXamlCanvas.cs | 81 | /// <summary>Gets the current DPI for the canvas.</summary> | COMMENT |
| LOW | …s.Uno/SkiaSharp.Views.Uno.WinUI.Shared/SKXamlCanvas.cs | 101 | /// var surfaceWidth = e.Info.Width; | COMMENT |
| LOW | …s.Uno/SkiaSharp.Views.Uno.WinUI.Shared/SKXamlCanvas.cs | 121 | /// method, or by attaching a handler to the | COMMENT |
| LOW | …o/SkiaSharp.Views.Uno.WinUI.Shared/SKSwapChainPanel.cs | 61 | SetBinding(ProxyVisibilityProperty, binding); | COMMENT |
| LOW | …/SkiaSharp.Views/SkiaSharp.Views.WinUI/SKXamlCanvas.cs | 101 | /// There are two ways to draw on this surface: by overriding the | COMMENT |
| LOW | …/SkiaSharp.Views/SkiaSharp.Views.WinUI/SKXamlCanvas.cs | 121 | /// ``` | COMMENT |
| LOW | …/SkiaSharp.Views/SkiaSharp.Views.WinUI/SKXamlCanvas.cs | 141 | /// | COMMENT |
| LOW | …SkiaSharp.Views/SkiaSharp.Views.WinUI/UWPExtensions.cs | 21 | #if WINDOWS | COMMENT |
| LOW | …SkiaSharp.Views/SkiaSharp.Views.WinUI/UWPExtensions.cs | 101 | COMMENT | |
| LOW | …SkiaSharp.Views/SkiaSharp.Views.WinUI/UWPExtensions.cs | 121 | using (var image = SKImage.FromPicture(picture, dimensions)) | COMMENT |
| LOW | …aSharp.Views/SkiaSharp.Views.WindowsForms/SKControl.cs | 21 | DoubleBuffered = true; | COMMENT |
| LOW | …aSharp.Views/SkiaSharp.Views.WindowsForms/SKControl.cs | 41 | /// | COMMENT |
| 938 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | External-Dependency-Info.txt | 1156 | # -------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | External-Dependency-Info.txt | 1179 | # -------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | External-Dependency-Info.txt | 1189 | # -------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | External-Dependency-Info.txt | 1217 | # -------------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | eng/common/core-templates/stages/renovate.yml | 1 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | eng/common/core-templates/stages/renovate.yml | 3 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | eng/common/core-templates/stages/renovate.yml | 9 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | eng/common/core-templates/job/renovate.yml | 1 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | eng/common/core-templates/job/renovate.yml | 3 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | eng/common/core-templates/job/renovate.yml | 17 | # -------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | documentation/site/ai/dashboard.js | 1 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | documentation/site/ai/dashboard.js | 14 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | documentation/site/ai/dashboard.js | 22 | // ── Formatting helpers ────────────────────────────────────── | COMMENT |
| MEDIUM | documentation/site/ai/dashboard.js | 85 | // ── Panel 1: Adoption at a glance ─────────────────────────── | COMMENT |
| MEDIUM | documentation/site/ai/dashboard.js | 154 | // ── Panel 2: Time to keep up with upstream (the hero) ─────── | COMMENT |
| MEDIUM | documentation/site/ai/dashboard.js | 274 | // ── Panel 3: What the automation costs (per run) ──────────── | COMMENT |
| MEDIUM | documentation/site/ai/dashboard.js | 317 | // ── Shared helpers ────────────────────────────────────────── | COMMENT |
| MEDIUM | documentation/site/ai/dashboard.js | 341 | // ── Load the cached data and render ───────────────────────── | COMMENT |
| MEDIUM | .agents/skills/review-skia-update/scripts/check_deps.py | 21 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .agents/skills/review-skia-update/scripts/check_deps.py | 23 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .agents/skills/review-skia-update/scripts/check_deps.py | 106 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .agents/skills/review-skia-update/scripts/check_deps.py | 108 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | .agents/skills/review-skia-update/scripts/run_review.py | 174 | # ========================================================================= | COMMENT |
| MEDIUM | .agents/skills/review-skia-update/scripts/run_review.py | 176 | # ========================================================================= | COMMENT |
| MEDIUM | .agents/skills/review-skia-update/scripts/run_review.py | 215 | # ========================================================================= | COMMENT |
| MEDIUM | .agents/skills/review-skia-update/scripts/run_review.py | 217 | # ========================================================================= | COMMENT |
| MEDIUM | .agents/skills/review-skia-update/scripts/run_review.py | 487 | # ========================================================================= | COMMENT |
| MEDIUM | .agents/skills/review-skia-update/scripts/run_review.py | 489 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | .agents/skills/review-skia-update/scripts/run_review.py | 555 | # ========================================================================= | COMMENT |
| MEDIUM⚡ | .agents/skills/review-skia-update/scripts/run_review.py | 557 | # ========================================================================= | COMMENT |
| MEDIUM | …ts/skills/issue-triage/scripts/render-triage-report.py | 31 | # ── Jinja2 filters (shared by template) ───────────────────────────────────── | COMMENT |
| MEDIUM | …ts/skills/issue-triage/scripts/render-triage-report.py | 66 | # ── Markdown rendering (Jinja2 template) ──────────────────────────────────── | COMMENT |
| MEDIUM | …ts/skills/issue-triage/scripts/render-triage-report.py | 104 | # ── HTML rendering (viewer.html injection) ────────────────────────────────── | COMMENT |
| MEDIUM | …ts/skills/issue-triage/scripts/render-triage-report.py | 136 | # ── Main ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ts/skills/skill-creator/eval-viewer/generate_review.py | 284 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …ts/skills/skill-creator/eval-viewer/generate_review.py | 286 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-data.py | 622 | # ── GitHub author resolution ───────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-data.py | 734 | # ── GitHub fixed-issue resolution ──────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-data.py | 862 | # ── GitHub first-time contributor resolution ───────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-data.py | 1067 | # ── Branch diffing ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-data.py | 1160 | # ── Preview-milestone enumeration ─────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-data.py | 1565 | # ── main ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-data.py | 1613 | # ── servicing branch (release/X.Y.x) ──────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-data.py | 2538 | # ── page-set discovery (shared by release-notes-index.py + release-notes-render.py) ────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-data.py | 2600 | # ── orphan-sidecar warnings ───────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-data.py | 2637 | # ── Commands ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-data.py | 2974 | # ── Main ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-render.py | 33 | # ── reuse release-notes-data.py's shared low-level helpers (one source of truth) ───── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-render.py | 94 | # ── formatting helpers (structure the agent must never hand-write) ─────────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-render.py | 171 | # ── page assembly (the single source of layout truth) ──────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-render.py | 295 | # ── enforcement ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/generate-ai-dashboard.py | 48 | # ── Paths & constants ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/generate-ai-dashboard.py | 92 | # ── Small helpers ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/generate-ai-dashboard.py | 150 | # ── Panel 1: adoption (NuGet) ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/generate-ai-dashboard.py | 239 | # ── Panel 2: cadence (git history + Chromium Dashboard) ────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/generate-ai-dashboard.py | 414 | # ── Panel 3: automation cost ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/generate-ai-dashboard.py | 441 | # ── Main ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/infra/docs/release-notes-index.py | 37 | # ── reuse release-notes-data.py's shared low-level helpers (one source of truth) ───── | COMMENT |
| MEDIUM⚡ | scripts/infra/caching/repo-deps.py | 24 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/infra/caching/repo-deps.py | 26 | # --------------------------------------------------------------------------- | COMMENT |
| 27 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | eng/common/cross/install-debs.py | 49 | async def download_deb_files_parallel(mirror, packages, tmp_dir): | CODE |
| LOW | eng/common/cross/install-debs.py | 65 | async def download_package_index_parallel(mirror, arch, suites, check_sig, keyring): | CODE |
| LOW | eng/common/cross/install-debs.py | 337 | def _rootfs_extraction_filter(member, dest_path): | CODE |
| LOW⚡ | …ills/ci-status/scripts/tests/test_workflow_registry.py | 101 | def test_registry_is_not_empty(self): | CODE |
| LOW⚡ | …ills/ci-status/scripts/tests/test_workflow_registry.py | 104 | def test_every_tracked_workflow_file_exists(self): | CODE |
| LOW⚡ | …ills/ci-status/scripts/tests/test_workflow_registry.py | 110 | def test_declared_trigger_matches_the_workflow(self): | CODE |
| LOW | …ills/ci-status/scripts/tests/test_workflow_registry.py | 122 | def test_display_names_match_the_workflow_name(self): | CODE |
| LOW | …ills/ci-status/scripts/tests/test_workflow_registry.py | 133 | def test_no_duplicate_entries(self): | CODE |
| LOW | …ills/ci-status/scripts/tests/test_workflow_registry.py | 137 | def test_external_registry_only_tracks_the_stable_publish_workflow(self): | CODE |
| LOW | …ills/ci-status/scripts/tests/test_workflow_registry.py | 151 | def test_scheduled_workflows_really_have_a_cron(self): | CODE |
| LOW | …ills/ci-status/scripts/tests/test_workflow_registry.py | 171 | def test_skill_table_only_names_tracked_workflows(self): | CODE |
| LOW | …ills/ci-status/scripts/tests/test_workflow_registry.py | 182 | def test_skill_explains_external_regeneration_monitoring_gap(self): | CODE |
| LOW | …ills/ci-status/scripts/tests/test_workflow_registry.py | 190 | def test_documented_schedules_match_the_workflow(self): | CODE |
| LOW | …s/skills/review-skia-update/scripts/check_companion.py | 47 | def has_generated_documentation_changes(diff: str) -> bool: | CODE |
| LOW | …view-skia-update/scripts/check_generated_files_test.py | 17 | def test_accepts_string_paths_and_preserves_split_tree_documentation(self): | CODE |
| LOW | …view-skia-update/scripts/check_generated_files_test.py | 54 | def test_preserves_legacy_single_file_documentation(self): | CODE |
| LOW | .agents/skills/review-skia-update/scripts/run_review.py | 91 | def extract_skia_milestone_from_cgmanifest(cgmanifest: dict): | CODE |
| LOW⚡ | .agents/skills/review-skia-update/scripts/run_review.py | 103 | def extract_skia_upstream_commit_from_cgmanifest(cgmanifest: dict): | CODE |
| LOW⚡ | .agents/skills/review-skia-update/scripts/run_review.py | 113 | def extract_skia_upstream_ref_from_cgmanifest(cgmanifest: dict): | CODE |
| LOW⚡ | .agents/skills/review-skia-update/scripts/run_review.py | 123 | def recorded_commit_belongs_to_upstream(cwd: str, commit: str, upstream_ref: str) -> bool: | CODE |
| LOW | …ills/review-skia-update/scripts/regenerate_bindings.py | 77 | def added_internal_functions_from_diffs(diffs: list[str]) -> list[str]: | CODE |
| LOW | …ills/review-skia-update/scripts/regenerate_bindings.py | 86 | def untracked_generated_diffs(repo_root: Path, projects) -> list[str]: | CODE |
| LOW | .agents/skills/review-skia-update/scripts/viewer.html | 584 | function renderRecommendationAlerts(targetId, recommendations, emptyText) { | CODE |
| LOW | …s/skills/review-skia-update/scripts/run_review_test.py | 13 | def test_extracts_exact_skia_registration(self) -> None: | CODE |
| LOW | …s/skills/review-skia-update/scripts/run_review_test.py | 40 | def test_returns_none_when_skia_registration_is_missing(self) -> None: | CODE |
| LOW | …s/skills/review-skia-update/scripts/run_review_test.py | 47 | def test_extracts_explicit_main_upstream_ref(self) -> None: | CODE |
| LOW | …s/skills/review-skia-update/scripts/run_review_test.py | 69 | def test_accepts_commit_from_upstream_history(self, run) -> None: | CODE |
| LOW | …s/skills/review-skia-update/scripts/run_review_test.py | 81 | def test_rejects_fork_head_as_upstream_commit(self, run) -> None: | CODE |
| LOW | …lls/review-skia-update/scripts/check_companion_test.py | 35 | def test_includes_documentation_changes_for_all_generated_statuses(self): | CODE |
| LOW | …lls/review-skia-update/scripts/check_companion_test.py | 51 | def test_skips_generated_code_changes_without_documentation(self): | CODE |
| LOW | …lls/review-skia-update/scripts/check_companion_test.py | 60 | def test_uses_both_paths_when_reviewing_a_renamed_generated_file(self): | CODE |
| LOW | …ents/skills/update-skia/scripts/regenerate_bindings.py | 79 | def added_internal_functions_from_diffs(diffs: list[str]) -> list[str]: | CODE |
| LOW | …ents/skills/update-skia/scripts/regenerate_bindings.py | 88 | def untracked_generated_diffs(repo_root: Path, projects) -> list[str]: | CODE |
| LOW | …/skills/update-skia/scripts/audit_fork_patches_test.py | 78 | def test_classifies_fork_delta_changes(self) -> None: | CODE |
| LOW | …/skills/update-skia/scripts/audit_fork_patches_test.py | 88 | def test_preserves_and_validates_decisions(self) -> None: | CODE |
| LOW | …/skills/update-skia/scripts/audit_fork_patches_test.py | 137 | def test_rejects_todo_and_wrong_disposition(self) -> None: | CODE |
| LOW | …/skills/update-skia/scripts/audit_fork_patches_test.py | 168 | def test_rejects_stale_category_and_fingerprint(self) -> None: | CODE |
| LOW | …/skills/update-skia/scripts/audit_fork_patches_test.py | 197 | def test_ignores_diff_metadata_but_keeps_hunk_context(self) -> None: | CODE |
| LOW | …/skills/update-skia/scripts/audit_fork_patches_test.py | 215 | def test_keeps_content_that_looks_like_file_headers(self) -> None: | CODE |
| LOW | …/skills/update-skia/scripts/audit_fork_patches_test.py | 230 | def test_keeps_binary_payload_but_ignores_binary_index(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 176 | def test_updates_all_version_surfaces(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 210 | def test_advances_harfbuzz_to_start_of_target_milestone_bucket(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 225 | def test_milestone_update_is_idempotent_for_harfbuzz_bucket(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 234 | def test_repairs_harfbuzz_bucket_after_partial_milestone_update(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 257 | def test_same_milestone_updates_only_manifest_hashes(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 301 | def test_rejects_upstream_main_milestone_drift_before_writes(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 321 | def test_release_line_preserves_servicing_version_surfaces(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 396 | def test_unchanged_legacy_dependency_requires_compliance_evidence(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 433 | def test_missing_upstream_ref_does_not_modify_files(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 448 | def test_milestone_update_is_idempotent_after_submodule_commit_changes(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 481 | def test_records_exact_upstream_sha_when_branch_moves(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 519 | def test_dependency_change_requires_and_records_version_review(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 575 | def test_dependency_change_can_keep_version_after_explicit_review(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 613 | def test_rejects_manifest_version_bump_without_dependency_change(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 634 | def test_rejects_missing_version_source_without_dependency_change(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 674 | def test_disabled_dependency_requires_manifest_registration_removal(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 718 | def test_reenabled_dependency_reports_stale_base_metadata(self) -> None: | CODE |
| LOW | …nts/skills/update-skia/scripts/update_versions_test.py | 757 | def test_automation_uses_environment_without_arguments(self) -> None: | CODE |
| LOW | …ts/skills/update-skia/scripts/prepare_branches_test.py | 46 | def test_release_branch_realigns_all_submodules_before_branching_skia( | CODE |
| LOW | .agents/skills/update-skia/scripts/update_versions.py | 166 | def reconcile_dependency_metadata( | CODE |
| 205 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | AGENTS.md | 184 | ### Step 1: Identify Pointer Type | COMMENT |
| LOW | AGENTS.md | 200 | ### Step 2: Choose Pattern | COMMENT |
| LOW | AGENTS.md | 233 | ### Step 3: Error Handling | COMMENT |
| LOW | AGENTS.md | 241 | ### Step 4: Same-Instance Returns | COMMENT |
| LOW | documentation/dev/building-samples.md | 28 | ### Step 1: Acquire packages | COMMENT |
| LOW | documentation/dev/building-samples.md | 45 | ### Step 2: Build samples — use the real NuGet version | COMMENT |
| LOW | documentation/dev/debugging-methodology.md | 169 | #### Step 1: Compare DT_NEEDED between working and broken builds | COMMENT |
| LOW | documentation/dev/debugging-methodology.md | 181 | #### Step 2: Check if the linker is silently failing | COMMENT |
| LOW | documentation/dev/debugging-methodology.md | 197 | #### Step 3: Fix location depends on root cause | COMMENT |
| LOW | documentation/dev/adding-apis.md | 104 | ### Step 1: Find C++ API | COMMENT |
| LOW | documentation/dev/adding-apis.md | 113 | ### Step 2: Add C API | COMMENT |
| LOW | documentation/dev/adding-apis.md | 129 | ### Step 3: Commit Submodule | COMMENT |
| LOW | documentation/dev/adding-apis.md | 142 | ### Step 4: Regenerate P/Invoke | COMMENT |
| LOW | documentation/dev/adding-apis.md | 157 | ### Step 5: Add C# Wrapper | COMMENT |
| LOW | documentation/dev/adding-apis.md | 167 | ### Step 6: Test | COMMENT |
| LOW⚡ | documentation/dev/adding-apis.md | 232 | # Step 1: Build native library (REQUIRED after C API changes) | COMMENT |
| LOW⚡ | documentation/dev/adding-apis.md | 236 | # Step 2: Regenerate P/Invoke (after C API changes) | COMMENT |
| LOW⚡ | documentation/dev/adding-apis.md | 239 | # Step 3: Build C# bindings | COMMENT |
| LOW⚡ | documentation/dev/adding-apis.md | 242 | # Step 4: Run tests (MANDATORY - not optional) | COMMENT |
| LOW | .agents/skills/ci-status/SKILL.md | 109 | ## Step 1: Collect Raw Data | COMMENT |
| LOW | .agents/skills/ci-status/SKILL.md | 156 | ## Step 2: AI Analysis | COMMENT |
| LOW | .agents/skills/ci-status/SKILL.md | 283 | ## Step 3: Assemble Report JSON | COMMENT |
| LOW | .agents/skills/ci-status/SKILL.md | 315 | ## Step 4: Validate Report | COMMENT |
| LOW | .agents/skills/ci-status/SKILL.md | 331 | ## Step 5: Render Reports | COMMENT |
| LOW | .agents/skills/ci-status/SKILL.md | 349 | ## Step 6: Present to User | COMMENT |
| LOW | .agents/skills/ci-status/SKILL.md | 393 | ## Step 7: Follow-Up Investigations | COMMENT |
| LOW | .agents/skills/native-dependency-update/SKILL.md | 258 | #### Step 1: Create mono/skia PR | COMMENT |
| LOW | .agents/skills/native-dependency-update/SKILL.md | 276 | #### Step 2: Create SkiaSharp PR | COMMENT |
| LOW | .agents/skills/native-dependency-update/SKILL.md | 290 | #### Step 3: Cross-link the PRs | COMMENT |
| LOW | …s/update-skia/references/breaking-changes-checklist.md | 9 | ## Step 1: Gather Release Notes | COMMENT |
| LOW | …s/update-skia/references/breaking-changes-checklist.md | 23 | ## Step 2: Filter by Relevance | COMMENT |
| LOW | …s/update-skia/references/breaking-changes-checklist.md | 47 | ## Step 3: Categorize Each Change | COMMENT |
| LOW | …s/update-skia/references/breaking-changes-checklist.md | 59 | ## Step 4: Verify the Analysis | COMMENT |
| LOW | …s/update-skia/references/breaking-changes-checklist.md | 83 | ## Step 5: C API Impact Analysis | COMMENT |
| LOW | …s/update-skia/references/breaking-changes-checklist.md | 104 | ## Step 6: Dependency Compatibility Audit | COMMENT |
| LOW | …s/update-skia/references/breaking-changes-checklist.md | 128 | ## Step 7: C# Impact Analysis | COMMENT |
| LOW | …ts/skills/api-add-review/references/review-workflow.md | 17 | ## Step 1: Gather the API Surface | COMMENT |
| LOW | …ts/skills/api-add-review/references/review-workflow.md | 27 | ## Step 2: Check Against Design Rules | COMMENT |
| LOW | …ts/skills/api-add-review/references/review-workflow.md | 87 | ## Step 3: Check Test Coverage | COMMENT |
| LOW | …ts/skills/api-add-review/references/review-workflow.md | 108 | ## Step 4: Build and Run Tests | COMMENT |
| LOW | …ts/skills/api-add-review/references/review-workflow.md | 126 | ## Step 5: Check Sample Code | COMMENT |
| LOW | …ts/skills/api-add-review/references/review-workflow.md | 163 | ## Step 6: Produce Report | COMMENT |
| LOW | .agents/skills/skill-creator/SKILL.md | 169 | ### Step 1: Spawn all runs (with-skill AND baseline) in the same turn | COMMENT |
| LOW | .agents/skills/skill-creator/SKILL.md | 199 | ### Step 2: While runs are in progress, draft assertions | COMMENT |
| LOW | .agents/skills/skill-creator/SKILL.md | 207 | ### Step 3: As runs complete, capture timing data | COMMENT |
| LOW | .agents/skills/skill-creator/SKILL.md | 221 | ### Step 4: Grade, aggregate, and launch the viewer | COMMENT |
| LOW | .agents/skills/skill-creator/SKILL.md | 267 | ### Step 5: Read the feedback | COMMENT |
| LOW | .agents/skills/skill-creator/SKILL.md | 337 | ### Step 1: Generate trigger eval queries | COMMENT |
| LOW | .agents/skills/skill-creator/SKILL.md | 360 | ### Step 2: Review with user | COMMENT |
| LOW | .agents/skills/skill-creator/SKILL.md | 375 | ### Step 3: Run the optimization loop | COMMENT |
| LOW | .agents/skills/skill-creator/SKILL.md | 402 | ### Step 4: Apply the result | COMMENT |
| LOW⚡ | .agents/skills/skill-creator/agents/grader.md | 21 | ### Step 1: Read the Transcript | COMMENT |
| LOW⚡ | .agents/skills/skill-creator/agents/grader.md | 27 | ### Step 2: Examine Output Files | COMMENT |
| LOW⚡ | .agents/skills/skill-creator/agents/grader.md | 33 | ### Step 3: Evaluate Each Assertion | COMMENT |
| LOW⚡ | .agents/skills/skill-creator/agents/grader.md | 43 | ### Step 4: Extract and Verify Claims | COMMENT |
| LOW | .agents/skills/skill-creator/agents/grader.md | 61 | ### Step 5: Read User Notes | COMMENT |
| LOW | .agents/skills/skill-creator/agents/grader.md | 68 | ### Step 6: Critique the Evals | COMMENT |
| LOW | .agents/skills/skill-creator/agents/grader.md | 81 | ### Step 7: Write Grading Results | COMMENT |
| LOW | .agents/skills/skill-creator/agents/grader.md | 101 | ### Step 8: Read Executor Metrics and Timing | COMMENT |
| LOW⚡ | .agents/skills/skill-creator/agents/comparator.md | 22 | ### Step 1: Read Both Outputs | COMMENT |
| 39 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …p.Views.Maui.Controls/SkiaSharp.Views.Maui.Controls.md | 15 | [Obsolete ("Use SkiaSharp.Views.Maui.Controls.Hosting.UseSkiaSharp() instead.")] | CODE |
| CRITICAL | …ibility/SkiaSharp.Views.Maui.Controls.Compatibility.md | 15 | [Obsolete ("Use SkiaSharp.Views.Maui.Controls.Hosting.UseSkiaSharp(bool, bool) instead.")] | CODE |
| CRITICAL | …Uno.WinUI.Wasm/WasmScripts/SkiaSharp.Views.Uno.Wasm.js | 75 | this.requestRender = () => skiaSharpExports.SkiaSharp.Views.Windows.SKSwapChainPanel.RenderFrame | CODE |
| CRITICAL | …aSharp.Views.Maui.Controls/AppHostBuilderExtensions.cs | 10 | /// <remarks>Call <see cref="M:SkiaSharp.Views.Maui.Controls.Hosting.AppHostBuilderExtensions.UseSkiaSharp(Microsoft.Ma | COMMENT |
| CRITICAL | samples/SkiaFiddle/App.xaml.cs | 64 | global::Uno.UI.Adapter.Microsoft.Extensions.Logging.LoggingAdapter.Initialize(); | CODE |
| CRITICAL | samples/Gallery/Uno/App.xaml.cs | 26 | await Uno.UI.Xaml.Media.FontFamilyHelper.PreloadAsync( | CODE |
| CRITICAL | samples/Gallery/Uno/App.xaml.cs | 140 | global::Uno.UI.Adapter.Microsoft.Extensions.Logging.LoggingAdapter.Initialize(); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .agents/skills/ci-status/scripts/ci-status.py | 354 | except (ValueError, TypeError): | CODE |
| HIGH | .agents/skills/ci-status/scripts/ci-status.py | 538 | except (ValueError, TypeError): | CODE |
| HIGH | …ts/skills/skill-creator/eval-viewer/generate_review.py | 303 | except subprocess.TimeoutExpired: | CODE |
| HIGH | …ts/skills/skill-creator/eval-viewer/generate_review.py | 231 | except (json.JSONDecodeError, OSError, KeyError): | CODE |
| HIGH | …ts/skills/skill-creator/eval-viewer/generate_review.py | 428 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | …ts/skills/skill-creator/eval-viewer/generate_review.py | 97 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | …ts/skills/skill-creator/eval-viewer/generate_review.py | 135 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | …ts/skills/skill-creator/eval-viewer/generate_review.py | 111 | except OSError: | CODE |
| HIGH | …ts/skills/skill-creator/eval-viewer/generate_review.py | 299 | except (ProcessLookupError, ValueError): | CODE |
| HIGH | …ts/skills/skill-creator/eval-viewer/generate_review.py | 340 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | …ts/skills/skill-creator/scripts/aggregate_benchmark.py | 146 | except json.JSONDecodeError: | CODE |
| HIGH | scripts/infra/docs/release-notes-data.py | 499 | except subprocess.CalledProcessError: | CODE |
| HIGH | scripts/infra/docs/release-notes-render.py | 934 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | eng/common/cross/install-debs.py | 18 | CODE | |
| LOW | .agents/skills/ci-status/scripts/ci-status.py | 23 | CODE | |
| LOW | .agents/skills/ci-status/scripts/ci-status.py | 26 | CODE | |
| LOW | …ills/ci-status/scripts/tests/test_workflow_registry.py | 27 | CODE | |
| LOW | …view-skia-update/scripts/check_generated_files_test.py | 1 | CODE | |
| LOW | …ills/review-skia-update/scripts/persist-skia-review.py | 6 | CODE | |
| LOW | …lls/review-skia-update/scripts/check_companion_test.py | 1 | CODE | |
| LOW | …ents/skills/update-skia/scripts/regenerate_bindings.py | 10 | CODE | |
| LOW | .agents/skills/update-skia/scripts/update_versions.py | 13 | CODE | |
| LOW | …ts/skills/issue-triage/scripts/render-triage-report.py | 14 | CODE | |
| LOW | .agents/skills/skill-creator/scripts/quick_validate.py | 7 | CODE | |
| LOW | scripts/infra/docs/release-notes-data.py | 96 | CODE | |
| LOW | scripts/infra/docs/release-notes-data.py | 105 | CODE | |
| LOW | scripts/infra/docs/release-notes-data.py | 106 | CODE | |
| LOW | scripts/infra/docs/release-notes-data.py | 107 | CODE | |
| LOW | scripts/infra/docs/release-notes-data.py | 109 | CODE | |
| LOW | scripts/infra/docs/release-notes-data.py | 109 | CODE | |
| LOW | scripts/infra/docs/release-notes-render.py | 24 | CODE | |
| LOW | scripts/infra/docs/release-notes-index.py | 28 | CODE | |
| LOW | scripts/infra/docs/release_notes/shipments.py | 12 | CODE | |
| LOW | scripts/infra/docs/release_notes/__init__.py | 20 | CODE | |
| LOW | scripts/infra/docs/release_notes/common.py | 7 | CODE | |
| LOW | scripts/infra/docs/release_notes/render_summary.py | 10 | CODE | |
| LOW | scripts/infra/docs/release_notes/safety.py | 9 | CODE | |
| LOW | scripts/infra/docs/release_notes/github.py | 3 | CODE | |
| LOW | …ts/infra/docs/release_notes/update_github_summaries.py | 15 | CODE | |
| LOW | scripts/infra/docs/release_notes/tests/test_common.py | 1 | CODE | |
| LOW | scripts/infra/docs/release_notes/tests/test_github.py | 1 | CODE | |
| LOW | scripts/infra/docs/release_notes/tests/test_safety.py | 1 | CODE | |
| LOW | …/infra/docs/release_notes/tests/test_render_summary.py | 1 | CODE | |
| LOW | scripts/infra/docs/release_notes/tests/test_banner.py | 1 | CODE | |
| LOW | scripts/infra/docs/release_notes/tests/test_cadence.py | 1 | CODE | |
| LOW | …cs/release_notes/tests/test_update_github_summaries.py | 1 | CODE | |
| LOW | scripts/infra/docs/release_notes/tests/test_rollups.py | 1 | CODE | |
| LOW | …nfra/docs/release_notes/tests/test_navigation_order.py | 1 | CODE | |
| LOW | …ripts/infra/docs/release_notes/tests/test_shipments.py | 1 | CODE | |
| LOW | scripts/infra/caching/repo-deps.py | 16 | CODE | |
| LOW | scripts/infra/perf/_common.py | 14 | CODE | |
| LOW | scripts/infra/perf/merge_summaries.py | 16 | CODE | |
| LOW | scripts/infra/perf/render_html.py | 17 | CODE | |
| LOW | scripts/infra/perf/sizes/measure_pr.py | 36 | CODE | |
| LOW | scripts/infra/perf/sizes/render_pr_md.py | 17 | CODE | |
| LOW | scripts/infra/perf/sizes/track.py | 32 | CODE | |
| LOW | scripts/infra/perf/sizes/render_md.py | 17 | CODE | |
| LOW | scripts/infra/perf/benchmarks/render_pr_md.py | 24 | CODE | |
| LOW | scripts/infra/perf/benchmarks/track.py | 33 | CODE | |
| LOW | scripts/infra/perf/benchmarks/resolve_versions.py | 18 | CODE | |
| LOW | scripts/infra/perf/benchmarks/render_md.py | 21 | CODE | |
| LOW | .github/scripts/tests/test_fixer_workflows.py | 4 | CODE | |
| LOW | .github/scripts/tests/test_auto_skia_sync_workflow.py | 4 | CODE | |
| LOW | …ub/scripts/tests/test_update_release_notes_workflow.py | 4 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | eng/common/cross/install-debs.py | 20 | CODE | |
| LOW | eng/common/cross/install-debs.py | 196 | CODE | |
| LOW | eng/common/cross/install-debs.py | 221 | CODE | |
| LOW | eng/common/cross/install-debs.py | 259 | CODE | |
| LOW | eng/common/cross/install-debs.py | 293 | CODE | |
| LOW | eng/common/cross/install-debs.py | 348 | CODE | |
| LOW | .agents/skills/ci-status/scripts/ci-status.py | 257 | CODE | |
| LOW | .agents/skills/ci-status/scripts/ci-status.py | 431 | CODE | |
| LOW | .agents/skills/ci-status/scripts/ci-status.py | 497 | CODE | |
| LOW | .agents/skills/ci-status/scripts/ci-status.py | 625 | CODE | |
| LOW | .agents/skills/ci-status/scripts/render-ci-status-md.py | 83 | CODE | |
| LOW | …s/skills/review-skia-update/scripts/check_companion.py | 55 | CODE | |
| LOW | …ls/review-skia-update/scripts/check_generated_files.py | 40 | CODE | |
| LOW | .agents/skills/review-skia-update/scripts/check_deps.py | 48 | CODE | |
| LOW | …lls/review-skia-update/scripts/validate-skia-review.py | 14 | CODE | |
| LOW | …ents/skills/review-skia-update/scripts/check_source.py | 52 | CODE | |
| LOW | .agents/skills/update-skia/scripts/update_versions.py | 166 | CODE | |
| LOW | …ts/skills/skill-creator/eval-viewer/generate_review.py | 85 | CODE | |
| LOW | …ts/skills/skill-creator/eval-viewer/generate_review.py | 149 | CODE | |
| LOW | …ts/skills/skill-creator/eval-viewer/generate_review.py | 288 | CODE | |
| LOW | .agents/skills/skill-creator/scripts/run_eval.py | 35 | CODE | |
| LOW | .agents/skills/skill-creator/scripts/package_skill.py | 42 | CODE | |
| LOW | …ts/skills/skill-creator/scripts/improve_description.py | 50 | CODE | |
| LOW | …ts/skills/skill-creator/scripts/aggregate_benchmark.py | 67 | CODE | |
| LOW | .agents/skills/skill-creator/scripts/generate_report.py | 16 | CODE | |
| LOW | .agents/skills/skill-creator/scripts/utils.py | 7 | CODE | |
| LOW | …gents/skills/security-audit/scripts/query-cg-alerts.py | 101 | CODE | |
| LOW | …gents/skills/security-audit/scripts/query-cg-alerts.py | 158 | CODE | |
| LOW | …gents/skills/security-audit/scripts/query-cg-alerts.py | 226 | CODE | |
| LOW | …lls/security-audit/scripts/render-security-audit-md.py | 63 | CODE | |
| LOW | …skills/security-audit/scripts/query-chrome-releases.py | 151 | CODE | |
| LOW | …lls/security-audit/scripts/query-milestone-schedule.py | 269 | CODE | |
| LOW | scripts/infra/tests/extract-visual-goldens.py | 77 | CODE | |
| LOW | scripts/infra/tests/extract-visual-goldens.py | 120 | CODE | |
| LOW | scripts/infra/docs/release-notes-data.py | 273 | CODE | |
| LOW | scripts/infra/docs/release-notes-data.py | 1413 | CODE | |
| LOW | scripts/infra/docs/release-notes-data.py | 1868 | CODE | |
| LOW | scripts/infra/docs/release-notes-render.py | 497 | CODE | |
| LOW | scripts/infra/docs/release_notes/shipments.py | 45 | CODE | |
| LOW | scripts/infra/docs/release_notes/shipments.py | 122 | CODE | |
| LOW | scripts/infra/caching/repo-deps.py | 213 | CODE | |
| LOW | scripts/infra/caching/repo-deps.py | 356 | CODE | |
| LOW | scripts/infra/perf/sizes/track.py | 150 | CODE | |
| LOW | scripts/infra/perf/sizes/track.py | 309 | CODE | |
| LOW | scripts/infra/perf/sizes/track.py | 406 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | eng/common/cross/install-debs.py | 42 | print(f"Error downloading {url}: {type(e).__name__} - {e}. Retrying...") | CODE |
| MEDIUM | eng/common/cross/install-debs.py | 206 | print(f"Error: Package '{current}' was not found in the available packages.") | CODE |
| LOW | .agents/skills/ci-status/scripts/ci-status.py | 142 | except Exception: | CODE |
| LOW | .agents/skills/ci-status/scripts/ci-status.py | 170 | except Exception: | CODE |
| LOW | .agents/skills/ci-status/scripts/ci-status.py | 192 | except Exception: | CODE |
| LOW | …ls/review-skia-update/scripts/check_generated_files.py | 80 | except Exception as error: | CODE |
| LOW | .agents/skills/review-skia-update/scripts/check_deps.py | 60 | except Exception as exc: | CODE |
| MEDIUM | .agents/skills/review-skia-update/scripts/check_deps.py | 74 | eprint(f"Error: DEPS parse failed: {e}") | CODE |
| LOW | .agents/skills/review-skia-update/scripts/run_review.py | 503 | except Exception as exc: | CODE |
| LOW | .agents/skills/review-skia-update/scripts/run_review.py | 519 | except Exception as exc: | CODE |
| LOW | .agents/skills/review-skia-update/scripts/run_review.py | 534 | except Exception as exc: | CODE |
| LOW⚡ | .agents/skills/review-skia-update/scripts/run_review.py | 548 | except Exception as exc: | CODE |
| MEDIUM | …ts/skills/skill-creator/eval-viewer/generate_review.py | 408 | print(f"Error: {workspace} is not a directory", file=sys.stderr) | CODE |
| LOW | .agents/skills/skill-creator/scripts/run_eval.py | 223 | except Exception as e: | CODE |
| MEDIUM | .agents/skills/skill-creator/scripts/run_eval.py | 276 | print(f"Error: No SKILL.md found at {skill_path}", file=sys.stderr) | CODE |
| LOW | .agents/skills/skill-creator/scripts/package_skill.py | 106 | except Exception as e: | CODE |
| MEDIUM | …ts/skills/skill-creator/scripts/improve_description.py | 205 | print(f"Error: No SKILL.md found at {skill_path}", file=sys.stderr) | CODE |
| MEDIUM | .agents/skills/skill-creator/scripts/run_loop.py | 265 | print(f"Error: No SKILL.md found at {skill_path}", file=sys.stderr) | CODE |
| LOW | …gents/skills/security-audit/scripts/query-cg-alerts.py | 82 | except Exception as e: | CODE |
| LOW | …gents/skills/security-audit/scripts/query-cg-alerts.py | 173 | except Exception as e: | CODE |
| LOW | …skills/security-audit/scripts/query-chrome-releases.py | 125 | except Exception: | CODE |
| LOW | scripts/infra/tests/extract-visual-goldens.py | 106 | except Exception as ex: # noqa: BLE001 | CODE |
| LOW | scripts/infra/tests/extract-visual-goldens.py | 148 | except Exception as ex: # noqa: BLE001 | CODE |
| LOW | scripts/infra/docs/release-notes-data.py | 2113 | except Exception: | CODE |
| LOW | scripts/infra/docs/release-notes-data.py | 2118 | except Exception: | CODE |
| LOW | scripts/infra/docs/generate-ai-dashboard.py | 160 | except Exception as e: # noqa: BLE001 - any failure -> try the mirror | CODE |
| LOW | scripts/infra/docs/generate-ai-dashboard.py | 199 | except Exception as e: # noqa: BLE001 - keep last-known adoption block | CODE |
| LOW | scripts/infra/docs/generate-ai-dashboard.py | 357 | except Exception as e: # noqa: BLE001 - can't read git -> keep snapshot | CODE |
| LOW | scripts/infra/docs/generate-ai-dashboard.py | 368 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | scripts/infra/docs/generate-ai-dashboard.py | 393 | except Exception as e: # noqa: BLE001 - keep snapshot dates for this one | CODE |
| LOW | scripts/infra/docs/generate-ai-dashboard.py | 448 | except Exception as e: # noqa: BLE001 | CODE |
| LOW | scripts/infra/docs/release-notes-index.py | 107 | except Exception as e: | CODE |
| LOW | .github/workflows/track-artifact-sizes.yml | 121 | except Exception as err: # noqa: BLE001 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | documentation/dev/release-notes-and-api-diffs.md | 318 | ## 2. Skill layout & orchestration | COMMENT |
| MEDIUM | .agents/skills/ci-status/scripts/ci-status.py | 331 | # Query globally (scheduled/dispatch/event-driven workflows) | COMMENT |
| MEDIUM | .github/workflows/update-github-release-summaries.yml | 3 | # A classic, deterministic workflow -- never agentic. It only selects exact | COMMENT |
| MEDIUM | .github/workflows/memory-leak-fixer.md | 15 | # guardrails (one finding per run, de-dup, validate-before-PR). | COMMENT |
| MEDIUM | .github/workflows/persist-aw-data.yml | 3 | # Downloads the agent artifact from a completed agentic workflow run and commits | COMMENT |
| MEDIUM | .github/workflows/performance-fixer.md | 16 | # guardrails (one finding per run, de-dup, two-proof-before-PR). | COMMENT |
| MEDIUM | .github/agents/agentic-workflows.md | 45 | - Configuration: `https://raw.githubusercontent.com/github/gh-aw/main/.github/aw/github-agentic-workflows.md` | CODE |
| MEDIUM⚡ | .github/agents/agentic-workflows.md | 69 | **Prompt file**: `https://raw.githubusercontent.com/github/gh-aw/main/.github/aw/create-agentic-workflow.md` | CODE |
| MEDIUM⚡ | .github/agents/agentic-workflows.md | 79 | **Prompt file**: `https://raw.githubusercontent.com/github/gh-aw/main/.github/aw/update-agentic-workflow.md` | CODE |
| MEDIUM⚡ | .github/agents/agentic-workflows.md | 89 | **Prompt file**: `https://raw.githubusercontent.com/github/gh-aw/main/.github/aw/debug-agentic-workflow.md` | CODE |
| MEDIUM⚡ | .github/agents/agentic-workflows.md | 99 | **Prompt file**: `https://raw.githubusercontent.com/github/gh-aw/main/.github/aw/upgrade-agentic-workflows.md` | CODE |
| MEDIUM | .github/agents/agentic-workflows.md | 119 | **Prompt file**: `https://raw.githubusercontent.com/github/gh-aw/main/.github/aw/create-shared-agentic-workflow.md` | CODE |
| MEDIUM | .github/agents/agentic-workflows.md | 193 | # Initialize repository for agentic workflows | COMMENT |
| MEDIUM | .github/agents/agentic-workflows.md | 225 | - Always reference the instructions file at `https://raw.githubusercontent.com/github/gh-aw/main/.github/aw/github-agent | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | eng/common/cross/install-debs.py | 126 | # keyboxd, which makes it robust on hosts running GnuPG 2.4+ (e.g. Azure | COMMENT |
| LOW | …ommon/core-templates/steps/enable-internal-sources.yml | 34 | # If running on dnceng (internal project), just use the default behavior for NuGetAuthenticate. | COMMENT |
| LOW | .agents/skills/pr-commit-message/evals/evals.json | 108 | "prompt": "Write the merge commit message for PR #5262 in acme/toolbox. Offline; use only what is below.\n\nThe di | CODE |
| MEDIUM | …es/Gallery/Shared/Samples/AnimatedWebpEncoderSample.cs | 111 | // Phase 8: empty pause (4 frames) <- makes loop seamless | COMMENT |
| MEDIUM | scripts/infra/perf/templates/dashboard.html | 231 | // ---------- robust smoothing / change-detection (optional "Smoothing" toggle) ---------- | COMMENT |
| MEDIUM | scripts/infra/perf/templates/dashboard.html | 355 | // Compares the last window's median to the prior window's, gated by a robust 3·MAD band. | COMMENT |
| MEDIUM | scripts/infra/perf/templates/dashboard.html | 400 | // Status (the robust regression/improvement verdict) is always shown, for every metric. | COMMENT |
| LOW | .github/workflows/build-site.yml | 397 | # If another workflow beat us to creating the branch, just use theirs | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …sForms/SkiaSharpSample/Properties/Settings.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| HIGH | …Forms/SkiaSharpSample/Properties/Resources.Designer.cs | 3 | // This code was generated by a tool. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | eng/common/tools.sh | 334 | # Check if the script is older than 30 days using timestamp file | COMMENT |
| LOW | eng/common/tools.sh | 443 | # Check if the toolset has already been extracted | COMMENT |
| LOW | eng/common/SetupNugetSources.sh | 66 | # Check if disabledPackageSources section exists | COMMENT |
| LOW | eng/common/SetupNugetSources.sh | 72 | # Check if this source name is disabled | COMMENT |
| LOW | eng/common/SetupNugetSources.sh | 92 | # Check if source already exists | COMMENT |
| LOW | eng/common/SetupNugetSources.sh | 122 | # Check if disabledPackageSources section exists | COMMENT |
| LOW | eng/common/SetupNugetSources.sh | 192 | # Check if there is no existing credential for this FeedName | COMMENT |
| LOW | eng/common/core-templates/steps/source-build.yml | 31 | # Check if AzDO substitutes in a build config from a variable, and use it if so. | COMMENT |
| LOW | eng/common/core-templates/steps/install-microbuild.yml | 64 | # Check if ESRP is disabled while SignType is real | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ills/security-audit/scripts/validate-security-audit.py | 209 | # bugUrl can only be null if bugId is null | COMMENT |
| HIGH | …ills/security-audit/scripts/validate-security-audit.py | 222 | errors.append(f"{loc}: assessment='affected' requires inOurTree (boolean, never null)") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | eng/common/native/install-dependencies.sh | 7 | # Usage: | COMMENT |
| LOW | …common/templates-official/variables/pool-providers.yml | 12 | # How to use: | COMMENT |
| LOW | eng/common/templates/variables/pool-providers.yml | 12 | # How to use: | COMMENT |
| LOW⚡ | eng/common/core-templates/job/renovate.yml | 11 | # Usage: | COMMENT |
| LOW | samples/SkiaFiddle/scripts/smoke.sh | 6 | # Usage: | COMMENT |
| LOW | samples/Gallery/Uno/scripts/smoke.sh | 6 | # Usage: | COMMENT |
| LOW | scripts/infra/docs/docker/run.sh | 21 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | eng/common/cross/build-rootfs.sh | 687 | # Create the symlink in the same directory | COMMENT |
| MEDIUM | eng/common/core-templates/job/helix-job-monitor.yml | 179 | # Create a minimal NuGet.config that only references the local nupkg directory. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …Sharp.Views.Blazor/wwwroot/types/emscripten/index.d.ts | 44 | print(str: string): void; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/infra/docs/release_notes/safety.py | 34 | re.compile(r"lorem ipsum", re.IGNORECASE), | CODE |
| LOW⚡ | scripts/infra/docs/release_notes/tests/test_safety.py | 80 | for placeholder in ("Replace this comment", "TBD", "TODO", "Lorem ipsum dolor", "None."): | CODE |
| LOW⚡ | scripts/infra/docs/release_notes/tests/test_safety.py | 83 | self.assertTrue(any("placeholder" in error for error in errors)) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/infra/docs/release_notes/github.py | 152 | def update_release_body(self, *, tag: str, body: str) -> None: | CODE |
| LOW | …ts/infra/docs/release_notes/update_github_summaries.py | 276 | def update_release_body(self, *, tag: str, body: str) -> None: | CODE |