AI Slop Code RIsk Monitor

jazzband/django-silk

Silky smooth profiling for Django

17.8 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for jazzband/django-silk, a Python project with 4,996 GitHub stars. SynthScan examined 18,462 lines of code across 205 source files, recording 221 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 17.8 (Elevated 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.

17.8
Adjusted Signal
17.8
Raw Pattern Score
100%
Time Factor
2026-10-05
Last Push
5.0K
Stars
Python
Language
18.5K
Lines of Code
205
Files
221
Pattern Hits
2026-10-12
Scan Date
0.09
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 42.7/100 · MEDIUM

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

Hallucinated Dependency & Supply Chain Risk 9.9/100 · LOW

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

Agent Over-Engineering Ratio 51.2/100 · HIGH

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

PR Review Velocity Impact 59.3/100 · HIGH

Which changes need focused human review? 221 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

Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.

No multi-scan history yet — run the scanner again to build trend data.

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 3HIGH 16MEDIUM 2LOW 200

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 221 distinct pattern matches across 12 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 Identifiers166 hits · 179 pts
SeverityFileLineSnippetContext
LOWsilk/auth.py15def permissions_possibly_required(function=None):CODE
LOWsilk/models.py128 def time_spent_on_sql_queries(self):CODE
LOWsilk/models.py390 def time_spent_on_sql_queries(self):CODE
LOWsilk/collector.py42 def ensure_middleware_installed(self):CODE
LOWsilk/profiling/dynamic.py46def profile_function_or_method(module, func, name=None):CODE
LOWsilk/profiling/dynamic.py77def _get_context_manager_source(end_line, file_path, name, start_line):CODE
LOWsilk/profiling/dynamic.py153def _inject_context_manager_func(func, start_line, end_line, name):CODE
LOWsilk/profiling/dynamic.py202def inject_context_manager_func(module, func, start_line, end_line, name):CODE
LOWsilk/profiling/profiler.py74 def _query_identifiers_from_collector(self):CODE
LOWsilk/views/code.py34def _code_context_from_request(request, end_line_num=None, prefix=''):CODE
LOWsilk/views/code.py43def _should_display_file_name(file_name):CODE
LOWsilk/views/profile_dot.py32def _temp_file_from_file_field(source):CODE
LOWsilk/views/summary.py20 def _avg_time_spent_on_queries(self, filters):CODE
LOWsilk/views/summary.py37 def _time_spent_in_db_by_view(self, filters):CODE
LOWproject/tests/test_view_sql_detail.py22 def test_allowed_file_paths_nothing_specified(self):CODE
LOWproject/tests/test_view_sql_detail.py29 def test_allowed_file_paths_available_source(self):CODE
LOWproject/tests/test_view_sql_detail.py46 def test_allowed_file_paths_unavailable_source(self):CODE
LOWproject/tests/test_view_sql_detail.py61 def test_virtualenv_not_available_no_highlight(self):CODE
LOWproject/tests/test_view_sql_detail.py73 def test_virtualenv_hightlight(self):CODE
LOWproject/tests/test_view_clear_db.py33 def test_clear_all_and_delete_profiles(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py22 def test_mask_credentials_preserves_single_insensitive_values(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py27 def test_mask_credentials_masks_sensitive_values(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py32 def test_mask_credentials_masks_multiple_sensitive_values(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py37 def test_mask_credentials_masks_sensitive_values_between_insensitive_values(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py42 def test_mask_credentials_preserves_insensitive_values_between_sensitive_values(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py47 def test_mask_credentials_is_case_insensitive(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py52 def test_mask_credentials_handles_prefixes(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py57 def test_mask_credentials_handles_suffixes(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py62 def test_mask_credentials_handles_regex_characters(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py67 def test_mask_credentials_handles_complex_cases(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py72 def test_mask_credentials_masks_sensitive_values_listed_in_settings(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py78 def test_sensitive_values_remain_unmasked_with_empty_settings(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py92 def test_mask_credentials_preserves_single_insensitive_values(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py95 def test_mask_credentials_preserves_insensitive_values_in_presence_of_sensitive(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py98 def test_mask_credentials_masks_sensitive_values(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py101 def test_mask_credentials_masks_sensitive_values_in_presence_of_regular(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py104 def test_mask_credentials_is_case_insensitive(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py107 def test_mask_credentials_handles_prefixes(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py110 def test_mask_credentials_handles_suffixes(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py113 def test_mask_credentials_handles_complex_cases(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py119 def test_mask_credentials_in_nested_data_structures(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py127 def test_mask_credentials_masks_sensitive_values_listed_in_settings(self):CODE
LOW⚡project/tests/test_sensitive_data_in_request.py131 def test_sensitive_values_remain_unmasked_with_empty_settings(self):CODE
LOWproject/tests/test_sensitive_data_in_request.py182 def test_password_in_batched_json(self):CODE
LOWproject/tests/test_sensitive_data_in_request.py207 def test_authorization_header(self):CODE
LOWproject/tests/test_sensitive_data_in_request.py245 def test_hide_sensitive_headers(self):CODE
LOWproject/tests/test_db.py23 def test_profile_request_to_db(self):CODE
LOWproject/tests/test_db.py32 def test_profile_request_to_db_with_constraints(self):CODE
LOWproject/tests/test_code.py40 def test_code_context_from_request(self):CODE
LOWproject/tests/test_encoding.py38 def test_utf_json_not_encoded(self):CODE
LOWproject/tests/test_encoding.py60 def test_utf_json_encoded_no_charset(self):CODE
LOWproject/tests/test_encoding.py72 def test_invalid_encoding_json(self):CODE
LOWproject/tests/test_encoding.py109 def test_utf_json_not_encoded(self):CODE
LOWproject/tests/test_encoding.py131 def test_utf_json_encoded_no_charset(self):CODE
LOWproject/tests/test_encoding.py143 def test_invalid_encoding_json(self):CODE
LOW⚡project/tests/test_encoding.py166 def test_application_javascript_no_warning(self):CODE
LOW⚡project/tests/test_encoding.py173 def test_text_javascript_no_warning(self):CODE
LOW⚡project/tests/test_encoding.py180 def test_application_x_javascript_no_warning(self):CODE
LOW⚡project/tests/test_encoding.py187 def test_text_x_javascript_no_warning(self):CODE
LOW⚡project/tests/test_encoding.py194 def test_json_content_type_warns_on_invalid_json(self):CODE
106 more matches not shown…
Empty Error Handlers13 hits · 65 pts
SeverityFileLineSnippetContext
HIGHsilk/models.py326except IndexError: # Reach the endCODE
HIGHsilk/model_factory.py49except (IndexError, ValueError):CODE
HIGHsilk/model_factory.py157except AttributeError:CODE
HIGHsilk/model_factory.py176except AttributeError:CODE
HIGHsilk/model_factory.py162except AttributeError:CODE
HIGHsilk/code_generation/curl.py22except TypeError:CODE
HIGHsilk/code_generation/django_test_client.py23except TypeError:CODE
HIGHsilk/views/summary.py53except IndexError:CODE
HIGHsilk/views/profiling.py37except ValueError:CODE
HIGHsilk/views/request_detail.py33except (ValueError, TypeError):CODE
HIGHproject/tests/test_view_requests.py136except IndexError:CODE
HIGHproject/tests/test_view_requests.py176except IndexError:CODE
HIGHproject/tests/test_view_profiling.py54except IndexError:CODE
Hallucination Indicators3 hits · 30 pts
SeverityFileLineSnippetContext
CRITICALsilk/static/silk/lib/jquery-3.6.0.min.js2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):fCODE
CRITICALsilk/static/silk/lib/jquery-ui-1.13.2.min.js6!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(V){"use strict"CODE
CRITICALsilk/static/silk/lib/jquery-ui-1.13.1.min.js6!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(V){"use strict"CODE
Cross-File Repetition3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHproject/tests/test_view_summary_view.py0filters are not present because there is no `session` to store them.STRING
HIGHproject/tests/test_view_requests.py0filters are not present because there is no `session` to store them.STRING
HIGHproject/tests/test_view_profiling.py0filters are not present because there is no `session` to store them.STRING
Over-Commented Block10 hits · 10 pts
SeverityFileLineSnippetContext
LOWdocs/conf.py1#COMMENT
LOWdocs/conf.py41project = 'silk'COMMENT
LOWdocs/conf.py61# today_fmt = '%B %d, %Y'COMMENT
LOWdocs/conf.py81COMMENT
LOWdocs/conf.py101# html_theme_options = {}COMMENT
LOWdocs/conf.py121COMMENT
LOWdocs/conf.py141# html_sidebars = {}COMMENT
LOWdocs/conf.py161COMMENT
LOWdocs/conf.py181 # 'papersize': 'letterpaper',COMMENT
LOWdocs/conf.py201COMMENT
Deep Nesting10 hits · 10 pts
SeverityFileLineSnippetContext
LOWsilk/models.py300CODE
LOWsilk/collector.py144CODE
LOWsilk/sql.py32CODE
LOWsilk/model_factory.py140CODE
LOWsilk/model_factory.py258CODE
LOWsilk/middleware.py183CODE
LOWsilk/utils/data_deletion.py5CODE
LOWsilk/profiling/dynamic.py77CODE
LOWsilk/views/clear_db.py25CODE
LOWsilk/views/profiling.py47CODE
Fake / Example Data6 hits · 8 pts
SeverityFileLineSnippetContext
LOWsilk/static/silk/js/components/filters.js8 text = $this.attr('placeholder').trim();CODE
LOWsilk/static/silk/lib/jquery-ui-1.13.2.min.js6!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(V){"use strict"CODE
LOWsilk/static/silk/lib/jquery-ui-1.13.1.min.js6!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(V){"use strict"CODE
LOW⚡project/tests/test_profile_dot.py100 dummy_data = b'dummy data'CODE
LOW⚡project/tests/test_profile_dot.py101 stream = self._mock_file(dummy_data)CODE
LOW⚡project/tests/test_profile_dot.py105 self.assertEqual(f.read(), dummy_data)CODE
Excessive Try-Catch Wrapping5 hits · 5 pts
SeverityFileLineSnippetContext
LOWsilk/model_factory.py110 except Exception as e:CODE
LOWsilk/model_factory.py115 except Exception:CODE
LOWsilk/model_factory.py136 except Exception:CODE
LOWsilk/model_factory.py166 except Exception as e:CODE
LOWsilk/profiling/profiler.py162 except Exception:CODE
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMdocs/conf.py5# This file is execfile()d with the current directory set to itsCOMMENT
AI Slop Vocabulary2 hits · 2 pts
SeverityFileLineSnippetContext
MEDIUMsilk/sql.py69 """wrapper around real execute_sql in order to extract information"""STRING
LOWproject/tests/test_profile_dot.py53 # just use the filename of the temp file already createdCOMMENT
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWsilk/middleware.py110CODE
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOWproject/tests/__init__.py1CODE