Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
This report presents the forensic synthetic code analysis of vlang/v, a V project with 37,706 GitHub stars. SynthScan v2.0 examined 452,740 lines of code across 1181 source files, recording 1237 pattern matches distributed across 9 syntactic categories. The overall adjusted score of 2.5 places this repository in the Likely human-written 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).
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.
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.
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.
The scanner identified 1237 distinct pattern matches across 9 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cmd/tools/vgret.defaults.toml | 41 | path = 'examples/ttf_font/example_ttf.v' | COMMENT |
| LOW | cmd/tools/vgret.defaults.toml | 61 | # 'examples/gg/drag_n_drop.v' // Default font, that can be different on different platforms | COMMENT |
| LOW | bench/crypto/ecdsa/ecdsa.c | 1 | #include <stdio.h> | COMMENT |
| LOW | …aw_benchmark_chart/typescript_vanilla_typeorm/index.ts | 101 | // update: update_stopwatchs, | COMMENT |
| LOW | …aw_benchmark_chart/typescript_vanilla_typeorm/index.ts | 121 | COMMENT | |
| LOW | examples/sokoban/three_boxes.txt | 1 | It seems tricky, but it is not ...@Be careful to not get stuck. | COMMENT |
| LOW | examples/sokoban/corners.txt | 1 | Push the boxes to the corners of the warehouse.@It is a lot of work...@Have fun. | COMMENT |
| LOW | examples/sokoban/simple.txt | 1 | @Use the arrows or WASD keys, to move your player.@Use R to restart the level and N to go to the next level.@To win, mov | COMMENT |
| LOW | examples/sokoban/tr_levels/29.txt | 1 | Author: Thinking Rabbit, Level 29 | COMMENT |
| LOW | examples/sokoban/tr_levels/15.txt | 1 | Author: Thinking Rabbit, Level 15 | COMMENT |
| LOW | examples/sokoban/tr_levels/01.txt | 1 | Author: Thinking Rabbit, Level 01 | COMMENT |
| LOW | examples/sokoban/tr_levels/14.txt | 1 | Author: Thinking Rabbit, Level 14 | COMMENT |
| LOW | examples/sokoban/tr_levels/28.txt | 1 | Author: Thinking Rabbit, Level 28 | COMMENT |
| LOW | examples/sokoban/tr_levels/02.txt | 1 | Author: Thinking Rabbit, Level 02 | COMMENT |
| LOW | examples/sokoban/tr_levels/16.txt | 1 | Author: Thinking Rabbit, Level 16 | COMMENT |
| LOW | examples/sokoban/tr_levels/17.txt | 1 | Author: Thinking Rabbit, Level 17 | COMMENT |
| LOW | examples/sokoban/tr_levels/03.txt | 1 | Author: Thinking Rabbit, Level 03 | COMMENT |
| LOW | examples/sokoban/tr_levels/07.txt | 1 | Author: Thinking Rabbit, Level 07 | COMMENT |
| LOW | examples/sokoban/tr_levels/13.txt | 1 | Author: Thinking Rabbit, Level 13 | COMMENT |
| LOW | examples/sokoban/tr_levels/12.txt | 1 | Author: Thinking Rabbit, Level 12 | COMMENT |
| LOW | examples/sokoban/tr_levels/06.txt | 1 | Author: Thinking Rabbit, Level 06 | COMMENT |
| LOW | examples/sokoban/tr_levels/10.txt | 1 | Author: Thinking Rabbit, Level 10 | COMMENT |
| LOW | examples/sokoban/tr_levels/04.txt | 1 | Author: Thinking Rabbit, Level 04 | COMMENT |
| LOW | examples/sokoban/tr_levels/38.txt | 1 | Author: Thinking Rabbit, Level 38 | COMMENT |
| LOW | examples/sokoban/tr_levels/39.txt | 1 | Author: Thinking Rabbit, Level 39 | COMMENT |
| LOW | examples/sokoban/tr_levels/05.txt | 1 | Author: Thinking Rabbit, Level 05 | COMMENT |
| LOW | examples/sokoban/tr_levels/11.txt | 1 | Author: Thinking Rabbit, Level 11 | COMMENT |
| LOW | examples/sokoban/tr_levels/49.txt | 1 | Author: Thinking Rabbit, Level 49 | COMMENT |
| LOW | examples/sokoban/tr_levels/48.txt | 1 | Author: Thinking Rabbit, Level 48 | COMMENT |
| LOW | examples/sokoban/tr_levels/43.txt | 1 | Author: Thinking Rabbit, Level 43 | COMMENT |
| LOW | examples/sokoban/tr_levels/42.txt | 1 | Author: Thinking Rabbit, Level 42 | COMMENT |
| LOW | examples/sokoban/tr_levels/40.txt | 1 | Author: Thinking Rabbit, Level 40 | COMMENT |
| LOW | examples/sokoban/tr_levels/41.txt | 1 | Author: Thinking Rabbit, Level 41 | COMMENT |
| LOW | examples/sokoban/tr_levels/45.txt | 1 | Author: Thinking Rabbit, Level 45 | COMMENT |
| LOW | examples/sokoban/tr_levels/50.txt | 1 | Author: Thinking Rabbit, Level 50 | COMMENT |
| LOW | examples/sokoban/tr_levels/44.txt | 1 | Author: Thinking Rabbit, Level 44 | COMMENT |
| LOW | examples/sokoban/tr_levels/46.txt | 1 | Author: Thinking Rabbit, Level 46 | COMMENT |
| LOW | examples/sokoban/tr_levels/47.txt | 1 | Author: Thinking Rabbit, Level 47 | COMMENT |
| LOW | examples/sokoban/tr_levels/08.txt | 1 | Author: Thinking Rabbit, Level 08 | COMMENT |
| LOW | examples/sokoban/tr_levels/34.txt | 1 | Author: Thinking Rabbit, Level 34 | COMMENT |
| LOW | examples/sokoban/tr_levels/20.txt | 1 | Author: Thinking Rabbit, Level 20 | COMMENT |
| LOW | examples/sokoban/tr_levels/21.txt | 1 | Author: Thinking Rabbit, Level 21 | COMMENT |
| LOW | examples/sokoban/tr_levels/35.txt | 1 | Author: Thinking Rabbit, Level 35 | COMMENT |
| LOW | examples/sokoban/tr_levels/09.txt | 1 | Author: Thinking Rabbit, Level 09 | COMMENT |
| LOW | examples/sokoban/tr_levels/23.txt | 1 | Author: Thinking Rabbit, Level 23 | COMMENT |
| LOW | examples/sokoban/tr_levels/37.txt | 1 | Author: Thinking Rabbit, Level 37 | COMMENT |
| LOW | examples/sokoban/tr_levels/36.txt | 1 | Author: Thinking Rabbit, Level 36 | COMMENT |
| LOW | examples/sokoban/tr_levels/22.txt | 1 | Author: Thinking Rabbit, Level 22 | COMMENT |
| LOW | examples/sokoban/tr_levels/26.txt | 1 | Author: Thinking Rabbit, Level 26 | COMMENT |
| LOW | examples/sokoban/tr_levels/32.txt | 1 | Author: Thinking Rabbit, Level 32 | COMMENT |
| LOW | examples/sokoban/tr_levels/33.txt | 1 | Author: Thinking Rabbit, Level 33 | COMMENT |
| LOW | examples/sokoban/tr_levels/27.txt | 1 | Author: Thinking Rabbit, Level 27 | COMMENT |
| LOW | examples/sokoban/tr_levels/31.txt | 1 | Author: Thinking Rabbit, Level 31 | COMMENT |
| LOW | examples/sokoban/tr_levels/25.txt | 1 | Author: Thinking Rabbit, Level 25 | COMMENT |
| LOW | examples/sokoban/tr_levels/19.txt | 1 | Author: Thinking Rabbit, Level 19 | COMMENT |
| LOW | examples/sokoban/tr_levels/18.txt | 1 | Author: Thinking Rabbit, Level 18 | COMMENT |
| LOW | examples/sokoban/tr_levels/24.txt | 1 | Author: Thinking Rabbit, Level 24 | COMMENT |
| LOW | examples/sokoban/tr_levels/30.txt | 1 | Author: Thinking Rabbit, Level 30 | COMMENT |
| LOW | .github/workflows/claude_code_review.yml | 1 | name: Claude Code Review | COMMENT |
| LOW | .github/workflows/docs_site_ci.yml | 61 | rm -rf docs_site | COMMENT |
| 1145 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | thirdparty/mbedtls/library/error.c | 186 | /* Begin Auto-Generated Code. */ | COMMENT |
| HIGH | thirdparty/mbedtls/library/error.c | 528 | /* End Auto-Generated Code. */ | COMMENT |
| HIGH | thirdparty/mbedtls/library/error.c | 549 | /* Begin Auto-Generated Code. */ | COMMENT |
| HIGH | thirdparty/mbedtls/library/error.c | 783 | /* End Auto-Generated Code. */ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | thirdparty/mbedtls/include/psa/crypto_extra.h | 1617 | * -# Initialize the operation object with one of the methods described in the | COMMENT |
| MEDIUM | thirdparty/mbedtls/include/psa/crypto.h | 962 | * -# Initialize the operation object with one of the methods described in the | COMMENT |
| MEDIUM | thirdparty/mbedtls/include/psa/crypto.h | 1325 | * -# Initialize the operation object with one of the methods described in the | COMMENT |
| MEDIUM | thirdparty/mbedtls/include/psa/crypto.h | 1385 | * -# Initialize the operation object with one of the methods described in the | COMMENT |
| MEDIUM | thirdparty/mbedtls/include/psa/crypto.h | 1734 | * -# Initialize the operation object with one of the methods described in the | COMMENT |
| MEDIUM | thirdparty/mbedtls/include/psa/crypto.h | 1797 | * -# Initialize the operation object with one of the methods described in the | COMMENT |
| MEDIUM | thirdparty/mbedtls/include/psa/crypto.h | 2252 | * -# Initialize the operation object with one of the methods described in the | COMMENT |
| MEDIUM | thirdparty/mbedtls/include/psa/crypto.h | 2322 | * -# Initialize the operation object with one of the methods described in the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CHANGELOG.md | 2191 | - Add a Lorem Ipsum Generator (#26036) | CODE |
| LOW | cmd/tools/vdoc/testdata/output_formats/README.md | 93 | payload := base64.url_encode(json.encode(JwtPayload{'1234567890', 'John Doe', 1516239022}).bytes()) | CODE |
| LOW | cmd/tools/vdoc/testdata/output_formats/main.html | 72 | payload <span class="token operator">:=</span> base64<span class="token punctuation">.</span><span class="token func | CODE |
| LOW | changelogs0.x/0.5.md | 3837 | - Add a Lorem Ipsum Generator (#26036) | CODE |
| LOW | doc/docs.md | 2652 | name: 'John Doe' | CODE |
| LOW | thirdparty/sokol/util/sokol_gl.h | 2739 | sg_pipeline dummy_id = { SG_INVALID_ID }; | CODE |
| LOW | thirdparty/sokol/util/sokol_gl.h | 2740 | return dummy_id; | CODE |
| LOW | vlib/crypto/README.md | 85 | base64.url_encode(json.encode(JwtPayload{'1234567890', 'John Doe', 1516239022}).bytes()) | CODE |
| LOW | vlib/orm/README.md | 503 | name: 'John Doe' | CODE |
| LOW | vlib/orm/README.md | 511 | select from Member where name == 'John Doe' limit 1 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | thirdparty/stb_vorbis/stb_vorbis.c | 51 | // 1.10 - 2017-03-03 - more robust seeking; fix negative ilog(); clear error in open_memory | COMMENT |
| MEDIUM | thirdparty/sokol/sokol_gfx.h | 8203 | // enable seamless cubemap sampling (only desktop GL) | COMMENT |
| MEDIUM | vlib/net/http/h2spec/run_h2spec.sh | 6 | # conformance tester. It connects as a client and runs ~146 cases. This harness: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/1brc/README.md | 16 | ### Step 1: Create a measurements file | COMMENT |
| LOW | examples/1brc/README.md | 28 | ### Step 2: Run (and time) the solution | COMMENT |
| LOW | examples/1brc/README.md | 50 | ### Step 3: Improve upon the solution | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | vlib/hash/crc64/interop/crc64_ref.py | 59 | print(f"Error: invalid hex input: {e}", file=sys.stderr) | CODE |
| MEDIUM | vlib/hash/crc64/interop/crc64_ref.py | 62 | print(f"Error: unknown action '{action}'", file=sys.stderr) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/claude_code_review.yml | 4 | # claude-code-action with the `code-review` plugin (multi-agent review that | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/call_v_from_python/test.py | 1 | CODE |