Repository Analysis

adambard/learnxinyminutes-docs

Code documentation written as code! How novel and totally my idea!

6.8 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of adambard/learnxinyminutes-docs, a Markdown project with 12,302 GitHub stars. SynthScan v2.0 examined 331,964 lines of code across 886 source files, recording 1581 pattern matches distributed across 11 syntactic categories. The overall adjusted score of 6.8 places this repository in the Low AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

6.8
Adjusted Score
6.8
Raw Score
100%
Time Factor
2026-07-12
Last Push
12.3K
Stars
Markdown
Language
332.0K
Lines of Code
886
Files
1.6K
Pattern Hits
2026-07-14
Scan Date
0.03
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 24MEDIUM 396LOW 1161

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 1581 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Over-Commented Block1137 hits · 1074 pts
SeverityFileLineSnippetContext
LOWswift.md21```swiftCOMMENT
LOWswift.md301//Iterating through a dictionary does not guarantee any specific orderCOMMENT
LOWswift.md861// You can use #warning(message) and #error(message) to have the compiler emit warnings and/or errorsCOMMENT
LOWlinker.md41COMMENT
LOWlinker.md101 KEEP (*(.init))COMMENT
LOWgleam.md61pub type UserId =COMMENT
LOWgleam.md81 // io.println(10)COMMENT
LOWgleam.md161 let one_point_three = 1.3COMMENT
LOWgleam.md221 // \\ - backslashCOMMENT
LOWgleam.md281 let _version: Int = 1COMMENT
LOWmake.md21COMMENT
LOWmake.md181# Variables 2COMMENT
LOWsing.md21 Use it to remark-out part of the code.COMMENT
LOWsing.md181//COMMENT
LOWminiscript.md241print roll(2) // roll two 6-sided diceCOMMENT
LOWminiscript.md361// prefix on the left-hand side of the assignment, since otherwiseCOMMENT
LOWpython.md721# You can shorten module namesCOMMENT
LOWpython.md741####################################################COMMENT
LOWpython.md841# Inheritance allows new child classes to be defined that inherit methods andCOMMENT
LOWpython.md861 # If the child class should inherit all of the parent's definitions withoutCOMMENT
LOWsorbet.md21# Strictness levels (lax to strict):COMMENT
LOWsorbet.md181 #COMMENT
LOWsorbet.md501 #COMMENT
LOWsorbet.md861 # `T.unsafe` so Sorbet will let you call it. Although we tend to think ofCOMMENT
LOWpascal.md81 // can define zero (0) length arrays that are dynamically sizedCOMMENT
LOWcoffeescript.md41#=>var fill;COMMENT
LOWcoffeescript.md61# "cube": function(x) { return x * square(x); }COMMENT
LOWcoffeescript.md81# _results = [];COMMENT
LOWjq.md21# When running jq from the command line, jq program code can be specified as theCOMMENT
LOWjq.md61# "name": "jq"COMMENT
LOWjq.md101#COMMENT
LOWjq.md121jq -n --argjson val 123 '$val' # $val is a numberCOMMENT
LOWjq.md141#COMMENT
LOWjq.md161# 1 + 2 = 3COMMENT
LOWjq.md181 # NOTE: The + (plus) operator here concatenates strings.COMMENT
LOWjq.md201#COMMENT
LOWjq.md221# 1COMMENT
LOWjq.md241# [COMMENT
LOWjq.md261# Output:COMMENT
LOWjq.md281#COMMENT
LOWjq.md301#COMMENT
LOWjq.md321# [dot, 4].forEach(dot => console.log(dot))COMMENT
LOWjq.md341# For object attributes, you can also use the `.key` shortcut.COMMENT
LOWjq.md381# NOTE: `empty` is actually a built-in function in jq.COMMENT
LOWjq.md401# If the lookup index or key is omitted then jq iterates throughCOMMENT
LOWjq.md421# Output:COMMENT
LOWjq.md441# "values": 4COMMENT
LOWjq.md461# Another example using a conditional:COMMENT
LOWjq.md481# 5COMMENT
LOWjq.md501jq -n '[range(2; 10; 2)]' # => [2, 4, 6, 8]COMMENT
LOWjq.md541#COMMENT
LOWjq.md581# an array of key-value objects and turn that into an object with keysCOMMENT
LOWjq.md601COMMENT
LOWjq.md641# Average: 3267COMMENT
LOWjq.md661# the collection. Here are some examples:COMMENT
LOWjq.md681# "a": 1,COMMENT
LOWjq.md701# and then it becomes the result of applying the `reduction_expr` asCOMMENT
LOWjq.md721COMMENT
LOWjq.md761# 2 * 1 = 2COMMENT
LOWjq.md821# for its side effect, and doesn't generate a new output.COMMENT
1077 more matches not shown…
Decorative Section Separators392 hits · 1037 pts
SeverityFileLineSnippetContext
MEDIUMmake.md27#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md29#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md59#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md61#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md80#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md82#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md97#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md99#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md132#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md134#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md180#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md182#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md199#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md201#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md216#-----------------------------------------------------------------------COMMENT
MEDIUMmake.md218#-----------------------------------------------------------------------COMMENT
MEDIUMjq.md642# ------------------------------------------------------------------------------COMMENT
MEDIUMjq.md645# ------------------------------------------------------------------------------COMMENT
MEDIUMjq.md648# ------------------------------------------------------------------------------COMMENT
MEDIUMjq.md651# ------------------------------------------------------------------------------COMMENT
MEDIUMjq.md654# ------------------------------------------------------------------------------COMMENT
MEDIUMelixir.md26## ---------------------------COMMENT
MEDIUMelixir.md28## ---------------------------COMMENT
MEDIUMelixir.md108## ---------------------------COMMENT
MEDIUMelixir.md110## ---------------------------COMMENT
MEDIUMelixir.md160## ---------------------------COMMENT
MEDIUMelixir.md162## ---------------------------COMMENT
MEDIUMelixir.md225## ---------------------------COMMENT
MEDIUMelixir.md227## ---------------------------COMMENT
MEDIUMelixir.md336## ---------------------------STRING
MEDIUMelixir.md338## ---------------------------STRING
MEDIUMelixir.md374## ---------------------------STRING
MEDIUMelixir.md376## ---------------------------STRING
MEDIUMelixir.md428## ---------------------------STRING
MEDIUMelixir.md430## ---------------------------STRING
MEDIUMnix.md22 #=========================================COMMENT
MEDIUMnix.md31 #=========================================COMMENT
MEDIUMnix.md44 #=========================================COMMENT
MEDIUMnix.md66 #=========================================COMMENT
MEDIUMnix.md95 #=========================================COMMENT
MEDIUMnix.md118 #=========================================COMMENT
MEDIUMnix.md138 #=========================================COMMENT
MEDIUMnix.md159 #=========================================COMMENT
MEDIUMnix.md181 #=========================================COMMENT
MEDIUMnix.md212 #=========================================COMMENT
MEDIUMnix.md267 #=========================================COMMENT
MEDIUMnix.md289 #=========================================COMMENT
MEDIUMnix.md313 #=========================================COMMENT
MEDIUMnix.md340 #=========================================COMMENT
MEDIUMvim9script.md70# ----------------------------------------------------------------------------COMMENT
MEDIUMvim9script.md96# ----------------------------------------------------------------------------COMMENT
MEDIUMvim9script.md130# ----------------------------------------------------------------------------COMMENT
MEDIUMvim9script.md162# ----------------------------------------------------------------------------COMMENT
MEDIUMvim9script.md190# ----------------------------------------------------------------------------COMMENT
MEDIUMvim9script.md237# ----------------------------------------------------------------------------COMMENT
MEDIUMvim9script.md271# ----------------------------------------------------------------------------COMMENT
MEDIUMvim9script.md291# ----------------------------------------------------------------------------COMMENT
MEDIUMvim9script.md310# ----------------------------------------------------------------------------COMMENT
MEDIUMvim9script.md330# ----------------------------------------------------------------------------COMMENT
MEDIUMvim9script.md347# ----------------------------------------------------------------------------COMMENT
332 more matches not shown…
Cross-File Repetition21 hits · 105 pts
SeverityFileLineSnippetContext
HIGHpython.md0all_the_args(1, 2, a=3, b=4) prints: (1, 2) {"a": 3, "b": 4}STRING
HIGHpythonlegacy.md0all_the_args(1, 2, a=3, b=4) prints: (1, 2) {"a": 3, "b": 4}STRING
HIGHja/python.md0all_the_args(1, 2, a=3, b=4) prints: (1, 2) {"a": 3, "b": 4}STRING
HIGHzh-cn/python.md0all_the_args(1, 2, a=3, b=4) prints: (1, 2) {"a": 3, "b": 4}STRING
HIGHzh-cn/pythonlegacy.md0all_the_args(1, 2, a=3, b=4) prints: (1, 2) {"a": 3, "b": 4}STRING
HIGHzh-tw/pythonlegacy.md0all_the_args(1, 2, a=3, b=4) prints: (1, 2) {"a": 3, "b": 4}STRING
HIGHar/python.md0all_the_args(1, 2, a=3, b=4) prints: (1, 2) {"a": 3, "b": 4}STRING
HIGHtr/pythonlegacy.md0all_the_args(1, 2, a=3, b=4) prints: (1, 2) {"a": 3, "b": 4}STRING
HIGHscala.md0<form id="daform"> <p>press belo', joe</p> | <input type="submit"> </form>STRING
HIGHel/scala.md0<form id="daform"> <p>press belo', joe</p> | <input type="submit"> </form>STRING
HIGHzh-cn/scala.md0<form id="daform"> <p>press belo', joe</p> | <input type="submit"> </form>STRING
HIGHpt-br/scala.md0<form id="daform"> <p>press belo', joe</p> | <input type="submit"> </form>STRING
HIGHes/scala.md0<form id="daform"> <p>press belo', joe</p> | <input type="submit"> </form>STRING
HIGHfr/scala.md0<form id="daform"> <p>press belo', joe</p> | <input type="submit"> </form>STRING
HIGHdart.md0example19 <a href="etc"> example19 don't can't i'm etc example19 </a>STRING
HIGHzh-cn/dart.md0example19 <a href="etc"> example19 don't can't i'm etc example19 </a>STRING
HIGHzh-tw/dart.md0example19 <a href="etc"> example19 don't can't i'm etc example19 </a>STRING
HIGHes/dart.md0example19 <a href="etc"> example19 don't can't i'm etc example19 </a>STRING
HIGHpythonstatcomp.md0ix dynasty name birth death election 1 0 nan carolingian charles i 2 april 742 28 january 814 nan 1 nan carolingian louiSTRING
HIGHpt-br/pythonstatcomp.md0ix dynasty name birth death election 1 0 nan carolingian charles i 2 april 742 28 january 814 nan 1 nan carolingian louiSTRING
HIGHes/pythonstatcomp.md0ix dynasty name birth death election 1 0 nan carolingian charles i 2 april 742 28 january 814 nan 1 nan carolingian louiSTRING
AI Response Leakage3 hits · 22 pts
SeverityFileLineSnippetContext
HIGHnix.md358 # its contents. You can read files from anywhere. In this example,COMMENT
HIGHraku.md663# In this example, even though the sequence is infinite, only the 15COMMENT
HIGHawk.md175 # between actual function parameters and local variables. In this example,COMMENT
Hyper-Verbose Identifiers13 hits · 13 pts
SeverityFileLineSnippetContext
LOWsolidity.md779 function checkIfFundingCompleteOrExpired()CODE
LOWballerina.md76public function fromHttpTriggerCosmosDBInput(CODE
LOWhack.md334 public static function favoriteProgrammingLanguage(): string {CODE
LOWit/solidity.md892 function checkIfFundingCompleteOrExpired()CODE
LOWcs/python.md443def vrat_pojmenovane_argumenty(**pojmenovane_argumenty):CODE
LOWzh-cn/solidity.md669 function checkIfFundingCompleteOrExpired()CODE
LOWpt-br/php.md491 final function voceNaoPodeMeSobrescrever()CODE
LOWpt-br/php.md525 function imprimePropriedadeProtegida()CODE
LOWpt-br/solidity.md746 function verifiqueSeLevantamentoFoiCompletadoOuExpirado() {CODE
LOWnl/typescript.md41function groteVerschrikkelijkeMelding(): void {CODE
LOWid/php.md593 function tampilkanPropertiTerlindungi()CODE
LOWes/php.md574 function imprimePropiedadProtegida()CODE
LOWes/javascript.md312function decirHolaCadaCincoSegundos(nombre){CODE
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMsorbet.md197 # Sometimes (usually dependency injection), a method will accept a referenceCOMMENT
MEDIUMmessagepack.md107# event-driven deserializationCOMMENT
Fake / Example Data6 hits · 6 pts
SeverityFileLineSnippetContext
LOWpythonlegacy.md140"{} is a {}".format("This", "placeholder")CODE
LOWdhall.md98 { name = "John Doe"CODE
LOWmessagepack.md19| {"name":"John Doe","age":12} |CODE
LOWmongodb.md105db.engineers.insertOne({ name: "Jane Doe", age: 21, gender: 'Female' })CODE
LOWmongodb.md212db.engineers.updateOne({ name: 'Foo Bar' }, { $set: { name: 'John Doe', age: 100 }})CODE
LOWzh-tw/pythonlegacy.md127"{} is a {}".format("This", "placeholder")CODE
Excessive Try-Catch Wrapping2 hits · 3 pts
SeverityFileLineSnippetContext
MEDIUMswift.md1003 print("Error message: \(msg)")STRING
MEDIUMlint/frontmatter.py109 print(f"Error: {path_input} does not exist.")CODE
Structural Annotation Overuse2 hits · 3 pts
SeverityFileLineSnippetContext
LOWraku.md1866# IMPORTANT: Don't skip them because you know PCRE. They're different. SomeCOMMENT
LOWraku.md2080# WARNING: They are DIFFERENT from PCRE regexps.COMMENT
Deep Nesting2 hits · 2 pts
SeverityFileLineSnippetContext
LOWlint/frontmatter.py42CODE
LOWlint/frontmatter.py72CODE
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWlint/encoding.sh7 # Check if the encoding is neither UTF-8 nor US-ASCIICOMMENT