Repository Analysis

immortalwrt/immortalwrt

An opensource OpenWrt variant for mainland China users.

3.8 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of immortalwrt/immortalwrt, a C project with 11,216 GitHub stars. SynthScan v2.0 examined 387,366 lines of code across 1174 source files, recording 1668 pattern matches distributed across 10 syntactic categories. The overall adjusted score of 3.8 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).

3.8
Adjusted Score
3.8
Raw Score
100%
Time Factor
2026-07-09
Last Push
11.2K
Stars
C
Language
387.4K
Lines of Code
1.2K
Files
1.7K
Pattern Hits
2026-07-14
Scan Date
0.00
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 0MEDIUM 16LOW 1652

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 1668 distinct pattern matches across 10 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 Block1619 hits · 1394 pts
SeverityFileLineSnippetContext
LOWtools/mklibs/include/elf.h121COMMENT
LOWtools/mklibs/include/elf.h141#define ELFOSABI_NETBSD 2 /* NetBSD. */COMMENT
LOWtools/mklibs/include/elf.h161#define ET_EXEC 2 /* Executable file */COMMENT
LOWtools/mklibs/include/elf.h181#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */COMMENT
LOWtools/mklibs/include/elf.h201#define EM_H8_300 46 /* Hitachi H8/300 */COMMENT
LOWtools/mklibs/include/elf.h221#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */COMMENT
LOWtools/mklibs/include/elf.h241#define EM_V850 87 /* NEC v850 */COMMENT
LOWtools/mklibs/include/elf.h301 (Solaris). */COMMENT
LOWtools/mklibs/include/elf.h321#define SHT_REL 9 /* Relocation entries, no addends */COMMENT
LOWtools/mklibs/include/elf.h341#define SHT_HIOS 0x6fffffff /* End OS-specific type */COMMENT
LOWtools/mklibs/include/elf.h421#define SYMINFO_NUM 2COMMENT
LOWtools/mklibs/include/elf.h441#define STB_LOOS 10 /* Start of OS-specific */COMMENT
LOWtools/mklibs/include/elf.h561#define PT_SHLIB 5 /* Reserved */COMMENT
LOWtools/mklibs/include/elf.h581#define PF_R (1 << 2) /* Segment is readable */COMMENT
LOWtools/mklibs/include/elf.h641#define DT_RELASZ 8 /* Total size of Rela relocs */COMMENT
LOWtools/mklibs/include/elf.h661#define DT_FINI_ARRAYSZ 28 /* Size in bytes of DT_FINI_ARRAY */COMMENT
LOWtools/mklibs/include/elf.h681#define DT_CHECKSUM 0x6ffffdf8COMMENT
LOWtools/mklibs/include/elf.h701#define DT_GNU_LIBLIST 0x6ffffef9 /* Library list */COMMENT
LOWtools/mklibs/include/elf.h721#define DT_VERDEF 0x6ffffffc /* Address of version definitionCOMMENT
LOWtools/mklibs/include/elf.h741#define DF_BIND_NOW 0x00000008 /* No lazy binding for this object */COMMENT
LOWtools/mklibs/include/elf.h921COMMENT
LOWtools/mklibs/include/elf.h1041#define ELF32_M_SYM(info) ((info) >> 8)COMMENT
LOWtools/mklibs/include/elf.h1061#define R_68K_PC32 4 /* PC relative 32 bit */COMMENT
LOWtools/mklibs/include/elf.h1081#define R_68K_NUM 23COMMENT
LOWtools/mklibs/include/elf.h1101 block offset */COMMENT
LOWtools/mklibs/include/elf.h1121#define R_386_TLS_LDM_32 28 /* Direct 32 bit for local dynamicCOMMENT
LOWtools/mklibs/include/elf.h1141COMMENT
LOWtools/mklibs/include/elf.h1161#define R_SPARC_16 2 /* Direct 16 bit */COMMENT
LOWtools/mklibs/include/elf.h1181#define R_SPARC_RELATIVE 22 /* Adjust by program base */COMMENT
LOWtools/mklibs/include/elf.h1201#define R_SPARC_PC_LM22 39 /* Low miggle 22 bits of ... */COMMENT
LOWtools/mklibs/include/elf.h1221#define R_SPARC_TLS_LDM_HI22 60COMMENT
LOWtools/mklibs/include/elf.h1261COMMENT
LOWtools/mklibs/include/elf.h1281/* The following are non-official names and should not be used. */COMMENT
LOWtools/mklibs/include/elf.h1301#define SHT_MIPS_LIBLIST 0x70000000 /* Shared objects used in link */COMMENT
LOWtools/mklibs/include/elf.h1321#define SHT_MIPS_OPTSYM 0x70000017COMMENT
LOWtools/mklibs/include/elf.h1341/* Legal values for sh_flags field of Elf32_Shdr. */COMMENT
LOWtools/mklibs/include/elf.h1401COMMENT
LOWtools/mklibs/include/elf.h1421#define OEX_PRECISEFP OEX_FPDBUGCOMMENT
LOWtools/mklibs/include/elf.h1461#define R_MIPS_HI16 5 /* High 16 bit */COMMENT
LOWtools/mklibs/include/elf.h1481#define R_MIPS_DELETE 27COMMENT
LOWtools/mklibs/include/elf.h1501/* Special program header types. */COMMENT
LOWtools/mklibs/include/elf.h1521#define DT_MIPS_GOTSYM 0x70000013 /* First GOT entry in DYNSYM */COMMENT
LOWtools/mklibs/include/elf.h1541#define DT_MIPS_CXX_FLAGS 0x70000022 /* Flags indicating for C++ flavor. */COMMENT
LOWtools/mklibs/include/elf.h1561/* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry. */COMMENT
LOWtools/mklibs/include/elf.h1621#define EF_PARISC_EXT 0x00020000 /* Program uses arch. extensions. */COMMENT
LOWtools/mklibs/include/elf.h1661COMMENT
LOWtools/mklibs/include/elf.h1681#define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */COMMENT
LOWtools/mklibs/include/elf.h1701#define R_PARISC_DIR16F 85 /* 16 bits of eff. address. */COMMENT
LOWtools/mklibs/include/elf.h1721#define R_PARISC_PLTOFF16WF 118 /* 16 bits PLT-rel. address. */COMMENT
LOWtools/mklibs/include/elf.h1741#define R_PARISC_TPREL14DR 220 /* TP-rel. address, right 14 bits. */COMMENT
LOWtools/mklibs/include/elf.h1761#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)COMMENT
LOWtools/mklibs/include/elf.h1801COMMENT
LOWtools/mklibs/include/elf.h1821#define R_ALPHA_SREL64 11 /* PC relative 64 bit */COMMENT
LOWtools/mklibs/include/elf.h1861#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag*/COMMENT
LOWtools/mklibs/include/elf.h1881#define R_PPC_GOT16_LO 15COMMENT
LOWtools/mklibs/include/elf.h1901#define R_PPC_SECTOFF_HI 35COMMENT
LOWtools/mklibs/include/elf.h1921#define R_PPC_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */COMMENT
LOWtools/mklibs/include/elf.h1941#define R_PPC_EMB_NADDR16_LO 103COMMENT
LOWtools/mklibs/include/elf.h1961#define R_PPC_DIAB_RELSDA_HI 184 /* like EMB_RELSDA, but high 16 bit */COMMENT
LOWtools/mklibs/include/elf.h1981#define R_PPC64_REL14 R_PPC_REL14 /* PC relative 16 bit */COMMENT
1559 more matches not shown…
Self-Referential Comments14 hits · 42 pts
SeverityFileLineSnippetContext
MEDIUMscripts/slugimage.pl202# Create an empty jffs2 block.COMMENT
MEDIUMscripts/slugimage.pl620 # Define the skip region for the initial Sercomm header.COMMENT
MEDIUMscripts/slugimage.pl629 # Define the skip region for the inline Sercomm header.COMMENT
MEDIUMscripts/slugimage.pl1130 # Create an empty partition of the requested size.COMMENT
MEDIUMscripts/mkits-qsdk-ipq-image.sh31# Create a default, fully populated DTS fileCOMMENT
MEDIUMscripts/symlink-tree.sh2# Create a new openwrt tree with symlinks pointing at the current treeCOMMENT
MEDIUMscripts/dl_cleanup.py283 # Create a directory listing and parse the file names.COMMENT
MEDIUMscripts/dl_cleanup.py299 # Create a map of programsCOMMENT
MEDIUMscripts/mkits-zyxel-fit.sh19# Create a default, fully populated DTS fileCOMMENT
MEDIUMscripts/mkits-zyxel-fit-filogic.sh19# Create a default, fully populated DTS fileCOMMENT
MEDIUMscripts/checkpatch.pl592#Create a search pattern for all these functions to speed up a loop belowCOMMENT
MEDIUMscripts/checkpatch.pl613#Create a search pattern for all these strings to speed up a loop belowCOMMENT
MEDIUMscripts/checkpatch.pl648#Create a search pattern for all these strings to speed up a loop belowCOMMENT
MEDIUMscripts/mkits.sh199# Create a default, fully populated DTS fileCOMMENT
Redundant / Tautological Comments9 hits · 13 pts
SeverityFileLineSnippetContext
LOWtarget/linux/gemini/base-files/lib/upgrade/platform.sh77# Check if we have the new partition scheme, else do it the oldCOMMENT
LOWscripts/brcmImage.pl78 local $/; # Set input to "slurp" mode.CODE
LOWscripts/checkpatch.pl2613# Check if the commit log has what seems like a diff which can confuse patchCOMMENT
LOWscripts/checkpatch.pl2659# Check if MAINTAINERS is being updated. If so, there's probably no need toCOMMENT
LOWscripts/checkpatch.pl2764# Check if the commit log is in a possible stack dumpCOMMENT
LOWscripts/checkpatch.pl2888# Check if it's the start of a commit logCOMMENT
LOWscripts/checkpatch.pl2898# Check if there is UTF-8 in a commit log when a mail header has explicitlyCOMMENT
LOWscripts/checkpatch.pl3761 # Check if either of these lines are modified, elseCOMMENT
LOWpackage/base-files/files/lib/upgrade/nand.sh478# Check if passed file is a valid one for NAND sysupgrade.COMMENT
AI Slop Vocabulary5 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUM…get/linux/pistachio/base-files/lib/upgrade/platform.sh19 # fact we don't even want to reboot as part of seamlessCOMMENT
LOW…get/linux/pistachio/base-files/lib/upgrade/platform.sh21 # the next reboot to boot from that partition. Could just callCOMMENT
LOWtarget/linux/bcm4908/base-files/lib/upgrade/platform.sh84 # JFFS2) so just use bcm4908img instead of bash hacks.COMMENT
LOWtarget/linux/econet/image/tclinux-trx.sh141 # creating their TRX header, so we just use that.COMMENT
LOWscripts/xxdi.pl46# to '_', or, if this is stdin, just use "stdin" as the name.COMMENT
Unused Imports7 hits · 7 pts
SeverityFileLineSnippetContext
LOWscripts/belkin-header.py24CODE
LOWscripts/belkin-header.py26CODE
LOWscripts/belkin-header.py27CODE
LOWscripts/dl_cleanup.py10CODE
LOWscripts/cameo-imghdr.py10CODE
LOWscripts/cameo-imghdr.py11CODE
LOWscripts/flashing/jungo-image.py30CODE
Deep Nesting6 hits · 6 pts
SeverityFileLineSnippetContext
LOWscripts/dl_cleanup.py222CODE
LOWscripts/dl_github_archive.py133CODE
LOWscripts/dl_github_archive.py253CODE
LOWscripts/make-sbom.py37CODE
LOWscripts/make-sbom.py90CODE
LOWscripts/flashing/jungo-image.py94CODE
Excessive Try-Catch Wrapping4 hits · 5 pts
SeverityFileLineSnippetContext
LOWscripts/dl_github_archive.py279 except Exception:CODE
LOWscripts/dl_github_archive.py366 except Exception as e:CODE
LOWscripts/dl_github_archive.py428 except Exception as ex:CODE
MEDIUMscripts/flashing/jungo-image.py73 print("Error: No linux support for A0 stepping!")CODE
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/size_compare.sh17### Usage:COMMENT
LOWpackage/base-files/files/lib/upgrade/tar.sh3# Example usage:COMMENT
Structural Annotation Overuse1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpackage/base-files/files/lib/upgrade/nand.sh316 # WARNING: This fails if tar contains more than one 'sysupgrade-*' directory.COMMENT
Hyper-Verbose Identifiers1 hit · 1 pts
SeverityFileLineSnippetContext
LOWscripts/dl_github_archive.py370 def _init_commit_ts_remote_get(self, url, attrpath):CODE