Repository Analysis

ampproject/amphtml

The AMP web component framework.

3.0 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of ampproject/amphtml, a JavaScript project with 14,904 GitHub stars. SynthScan v2.0 examined 1,066,206 lines of code across 5894 source files, recording 2362 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 3.0 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.0
Adjusted Score
3.0
Raw Score
100%
Time Factor
2026-07-13
Last Push
14.9K
Stars
JavaScript
Language
1.1M
Lines of Code
5.9K
Files
2.4K
Pattern Hits
2026-07-14
Scan Date
0.01
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

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

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

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 30HIGH 34MEDIUM 19LOW 2279

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 2362 distinct pattern matches across 18 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.

Fake / Example Data1540 hits · 1791 pts
SeverityFileLineSnippetContext
LOWvalidator/testdata/feature_tests/video-json-ld.html11 <title>Lorem Ipsum</title>CODE
LOWvalidator/testdata/feature_tests/everything.html147 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt.CODE
LOWvalidator/testdata/feature_tests/everything.html147 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt.CODE
LOWvalidator/testdata/feature_tests/everything.html152 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt.CODE
LOWvalidator/testdata/feature_tests/everything.html152 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt.CODE
LOWvalidator/testdata/feature_tests/everything.html250 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html250 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html256 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html256 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html262 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html262 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html273 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html273 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html274 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html274 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html275 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html275 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html308 Lorem ipsum dolor sit amet.CODE
LOWvalidator/testdata/feature_tests/everything.html308 Lorem ipsum dolor sit amet.CODE
LOWvalidator/testdata/feature_tests/everything.html317 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id neCODE
LOWvalidator/testdata/feature_tests/everything.html317 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id neCODE
LOWvalidator/testdata/feature_tests/everything.html321 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id neCODE
LOWvalidator/testdata/feature_tests/everything.html321 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id neCODE
LOWvalidator/testdata/feature_tests/everything.html233 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html233 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id CODE
LOWvalidator/testdata/feature_tests/everything.html333 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id neCODE
LOWvalidator/testdata/feature_tests/everything.html333 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id neCODE
LOWvalidator/testdata/feature_tests/everything.html358 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id neCODE
LOWvalidator/testdata/feature_tests/everything.html358 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id neCODE
LOWvalidator/testdata/feature_tests/everything.html390 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id neCODE
LOWvalidator/testdata/feature_tests/everything.html390 Lorem ipsum dolor sit amet, has nisl nihil convenire et, vim at aeque inermis reprehendunt. Propriae tincidunt id neCODE
LOWvalidator/testdata/feature_tests/review-microdata.html11 <title>Lorem Ipsum</title>CODE
LOWvalidator/testdata/feature_tests/recipe-json-ld.html11 <title>Lorem Ipsum</title>CODE
LOWvalidator/testdata/feature_tests/old-boilerplate.html16 "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."CODE
LOWvalidator/testdata/feature_tests/old-boilerplate.html16 "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."CODE
LOWvalidator/testdata/feature_tests/recipe-microdata.html11 <title>Lorem Ipsum</title>CODE
LOWvalidator/testdata/feature_tests/article.html5 <title>Lorem Ipsum | PublisherName</title>CODE
LOWvalidator/testdata/feature_tests/article.html316 <h1 itemprop="headline">Lorem Ipsum</h1>CODE
LOWvalidator/testdata/feature_tests/article.html331 itemprop="author"><b>Lorem Ipsum</b>CODE
LOWvalidator/testdata/feature_tests/article.html340 Lorem ipsum dolor sit amet, consectetur adipiscing elit.CODE
LOWvalidator/testdata/feature_tests/article.html340 Lorem ipsum dolor sit amet, consectetur adipiscing elit.CODE
LOWvalidator/testdata/feature_tests/video-microdata.html11 <title>Lorem Ipsum</title>CODE
LOWvalidator/testdata/feature_tests/review-json-ld.html11 <title>Lorem Ipsum</title>CODE
LOWvalidator/testdata/feature_tests/article-microdata.html11 <title>Lorem Ipsum</title>CODE
LOWvalidator/testdata/feature_tests/article-microdata.html48 <h1 itemprop="headline">Lorem Ipsum</h1>CODE
LOWvalidator/testdata/feature_tests/article-microdata.html65 <amp-img src="http://cdn.ampproject.org/leader.jpg" alt="Lorem Ipsum?" height="2000" width="800"></amp-img>CODE
LOWvalidator/testdata/feature_tests/article-microdata.html70 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer necCODE
LOWvalidator/testdata/feature_tests/article-microdata.html70 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer necCODE
LOWvalidator/testdata/feature_tests/article-json-ld.html11 <title>Lorem Ipsum</title>CODE
LOWvalidator/testdata/feature_tests/article-json-ld.html60 "headline": "Lorem Ipsum",CODE
LOWvalidator/testdata/feature_tests/article-json-ld.html91 <h1>Lorem Ipsum</h1>CODE
LOWvalidator/testdata/feature_tests/article-json-ld.html92 <amp-img src="http://cdn.ampproject.org/leader.jpg" alt="Lorem Ipsum?" height="2000" width="800"></amp-img>CODE
LOWvalidator/testdata/feature_tests/article-json-ld.html93 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer necCODE
LOWvalidator/testdata/feature_tests/article-json-ld.html93 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer necCODE
LOWtest/unit/test-resource.js434 element.setAttribute('placeholder', '');CODE
LOWtest/unit/test-custom-element.js835 placeholder.setAttribute('placeholder', '');CODE
LOWtest/unit/test-custom-element.js2010 element.appendChild(createWithAttr('placeholder'));CODE
LOWtest/unit/test-custom-element.js2011 const placeholder2 = element.appendChild(createWithAttr('placeholder'));CODE
LOWtest/unit/test-custom-element.js2016 const placeholder1 = element.appendChild(createWithAttr('placeholder'));CODE
LOWtest/unit/test-custom-element.js2018 input.setAttribute('placeholder', '');CODE
1480 more matches not shown…
Hyper-Verbose Identifiers563 hits · 574 pts
SeverityFileLineSnippetContext
LOWads/vendors/nativo.js97 function getLastPositionCoordinates(positions) {CODE
LOWads/vendors/vmfive.js26function parallelDownloadScriptsAndExecuteInOrder(win) {CODE
LOWads/inabox/full-overlay-frame-helper.js12export function centerFrameUnderVsyncMutate(CODE
LOWads/inabox/full-overlay-frame-helper.js49export function expandFrameUnderVsyncMutate(iframe) {CODE
LOWads/inabox/full-overlay-frame-helper.js72export function collapseFrameUnderVsyncMutate(iframe) {CODE
LOWads/inabox/frame-overlay-helper.js102export function stubExpandFrameForTesting(implFn) {CODE
LOWads/inabox/frame-overlay-helper.js109export function resetExpandFrameForTesting() {CODE
LOWads/inabox/frame-overlay-helper.js126export function stubCollapseFrameForTesting(implFn) {CODE
LOWads/inabox/frame-overlay-helper.js133export function resetCollapseFrameForTesting() {CODE
LOWads/google/utils.js193export function getMatchedContentResponsiveHeightAndUpdatePubParams(CODE
LOWads/google/ima/ima-video.js483export function removeHoverEventFromElement(element, callback) {CODE
LOWads/google/ima/ima-video.js1502export function getShowControlsThrottledForTesting() {CODE
LOWads/google/ima/ima-video.js1520export function setAdDisplayContainerForTesting(adc) {CODE
LOWads/google/ima/ima-video.js1530export function setVideoWidthAndHeightForTesting(width, height) {CODE
LOWads/google/ima/ima-video.js1540export function setVideoPlayerMutedForTesting(shouldMute) {CODE
LOWads/google/ima/ima-video.js1549export function setAllAdsCompletedForTesting(newValue) {CODE
LOWads/google/ima/ima-video.js1558export function setAdRequestFailedForTesting(newValue) {CODE
LOWads/google/ima/ima-video.js1585export function setMuteAdsManagerOnLoadedForTesting(shouldMute) {CODE
LOWads/google/ima/ima-video.js1604export function setAdsManagerDimensionsOnLoadForTesting(width, height) {CODE
LOWads/google/ima/ima-video.js1614export function setContentCompleteForTesting(newContentComplete) {CODE
LOWads/google/ima/ima-video.js1641export function setHideControlsTimeoutForTesting(newTimeout) {CODE
LOWads/google/a4a/cookie-utils.js27export function maybeSetCookieFromAdResponse(win, fetchResponse) {CODE
LOWads/google/a4a/cookie-utils.js64export function handleCookieOptOutPostMessage(win, event) {CODE
LOWads/google/a4a/traffic-experiments.js167export function addAmpExperimentIdToElement(experimentId, element) {CODE
LOWads/google/a4a/utils.js640export function getCsiAmpAnalyticsVariables(analyticsTrigger, a4a, qqid) {CODE
LOWads/google/a4a/utils.js668export function extractAmpAnalyticsConfig(a4a, responseHeaders) {CODE
LOWads/google/a4a/utils.js721function generateActiveViewRequest(config, urls) {CODE
LOWads/google/a4a/utils.js745function generateBeginToRenderRequest(config, urls) {CODE
LOWads/google/a4a/utils.js794export function addCsiSignalsToAmpAnalyticsConfig(CODE
LOWads/google/a4a/utils.js858export function getEnclosingContainerTypes(adElement) {CODE
LOWads/google/a4a/utils.js880export function maybeAppendErrorParameter(adUrl, parameterValue) {CODE
LOWads/google/a4a/utils.js904export function getBinaryTypeNumericalCode(type) {CODE
LOWads/google/a4a/utils.js936export function setNameframeExperimentConfigs(headers, nameframeConfig) {CODE
LOWads/google/a4a/utils.js963function getBrowserCapabilitiesBitmap(win) {CODE
LOWads/google/a4a/utils.js990export function getAmpRuntimeTypeParameter(win) {CODE
LOWads/google/a4a/utils.js1036function getUserAgentClientHintParameters(win) {CODE
LOWads/google/a4a/shared/content-recommendation.js309function validateAndParsePubControlParams(params) {CODE
LOWads/google/a4a/shared/content-recommendation.js309function validateAndParsePubControlParams(params) {CODE
LOWads/google/a4a/shared/content-recommendation.js470function getLargerAdOneColumnSidebysideSize(CODE
LOWads/google/a4a/shared/content-recommendation.js493function convertToPubControlLayoutType(layout) {CODE
LOW3p/yotpo.js74function getReviewsCarouselContainer(global, data) {CODE
LOW3p/yotpo.js140function getProductGalleryContainer(global, data) {CODE
LOW3p/yotpo.js165function getVisualUgcGalleryContainer(global) {CODE
LOW3p/yotpo.js182function getEmbeddedWidgetContainer(global, data) {CODE
LOW3p/yotpo.js221function getPhotosCarouselContainer(global, data) {CODE
LOW3p/yotpo.js241function getPromotedProductsContainer(global, data) {CODE
LOW3p/messaging.js11export function nonSensitiveDataPostMessage(type, opt_object) {CODE
LOW3p/integration-lib.js257export function validateAllowedEmbeddingOrigins(window, allowedHostnames) {CODE
LOW3p/environment.js262export function installEmbedStateListener() {CODE
LOW3p/recaptcha.js126function initializeIframeMessagingClient(win, grecaptcha, dataObject) {CODE
LOW3p/recaptcha.js189export function doesOriginDomainMatchIframeSrc(win, data) {CODE
LOWvalidator/js/gulpjs/test/validate.js158 function createFileWithValidatorFailure(name) {CODE
LOWvalidator/js/webui/webui.js18function removeParamFromLocationHashParams(param) {CODE
LOWvalidator/js/chromeextension/worker.js180function handleValidatorNotPresent(tabId) {CODE
LOWvalidator/cpp/engine/wasm/validator.js60function stringifyValidationErrorFields(error) {CODE
LOWvalidator/cpp/engine/wasm/validator.js75function digitizeValidationErrorFields(error) {CODE
LOWtest/unit/test-runtime.js138 function extensionRegistrationTest() {CODE
LOWtest/unit/test-video-iframe-integration.js14 function expectCalledWithAmpVideoIntegration(spy) {CODE
LOWtest/unit/test-xhr.js627 function getDefaultResponseOptions() {CODE
LOWtest/unit/test-xhr.js633 function getDefaultResponsePromise() {CODE
503 more matches not shown…
Hallucination Indicators30 hits · 330 pts
SeverityFileLineSnippetContext
CRITICALtest/unit/test-friendly-iframe-embed.js130 embed.win.document.documentElement.classList.contains('i-amphtml-fie')CODE
CRITICALextensions/amp-story/1.0/amp-story.js1904 this.win.document.documentElement.classList.add(CODE
CRITICALextensions/amp-story/1.0/test/test-amp-story.js2195 env.win.document.body.parentElement.setAttribute('lang', 'es');CODE
CRITICALextensions/amp-story/1.0/test/test-amp-story.js2221 env.win.document.body.parentElement.setAttribute('lang', 'es-419');CODE
CRITICALextensions/amp-story/1.0/test/test-amp-story.js2232 env.win.document.body.parentElement.setAttribute('lang', 'es-419');CODE
CRITICALextensions/amp-story/1.0/test/test-amp-story.js2244 env.win.document.body.parentElement.setAttribute('lang', 'es-419');CODE
CRITICAL…tensions/amp-web-push/0.1/amp-web-push-helper-frame.js365 this.window_.navigator.serviceWorker.controller.addEventListener(CODE
CRITICALextensions/amp-web-push/0.1/web-push-service.js907 this.ampdoc.win.location.href.indexOf('?') !== -1;CODE
CRITICALextensions/amp-a4a/0.1/test/test-template-renderer.js113 expect(iframe.contentWindow.document.body.innerHTML.trim()).to.equal(CODE
CRITICAL…nsions/amp-analytics/0.1/test/test-iframe-transport.js226 env.ampdoc.win.document.body.appendChild(frame);CODE
CRITICAL…system/release-tagger/test/label-pull-requests.test.js25 t.context.octokitRest.rest.issues.getLabel.resolves({CODE
CRITICAL…system/release-tagger/test/label-pull-requests.test.js45 t.context.octokitRest.rest.repos.compareCommits.resolves({CODE
CRITICAL…system/release-tagger/test/label-pull-requests.test.js123 t.context.octokitRest.rest.issues.getLabel.resolves({CODE
CRITICAL…system/release-tagger/test/label-pull-requests.test.js143 t.context.octokitRest.rest.repos.compareCommits.resolves({CODE
CRITICALbuild-system/release-tagger/test/make-release.test.js41 t.context.octokitRest.rest.repos.createRelease.resolves({data: {}});CODE
CRITICALbuild-system/release-tagger/test/make-release.test.js42 t.context.octokitRest.rest.repos.compareCommits.resolves({CODE
CRITICALbuild-system/release-tagger/test/make-release.test.js158 t.context.octokitRest.rest.repos.createRelease.calledWith({CODE
CRITICALbuild-system/release-tagger/test/make-release.test.js198 t.context.octokitRest.rest.repos.createRelease.resolves({data: {}});CODE
CRITICALbuild-system/release-tagger/test/make-release.test.js199 t.context.octokitRest.rest.repos.compareCommits.resolves({CODE
CRITICALbuild-system/release-tagger/test/make-release.test.js245 t.context.octokitRest.rest.repos.createRelease.calledWith({CODE
CRITICALbuild-system/release-tagger/test/update-release.test.js22 t.context.octokitRest.rest.repos.getReleaseByTag.resolves({data: {id: 1}});CODE
CRITICALbuild-system/release-tagger/test/update-release.test.js23 t.context.octokitRest.rest.repos.updateRelease.resolves({data: {id: 1}});CODE
CRITICALbuild-system/release-tagger/test/update-release.test.js32 t.context.octokitRest.rest.repos.updateRelease.calledWith({CODE
CRITICALbuild-system/release-tagger/test/update-release.test.js43 t.context.octokitRest.rest.repos.getReleaseByTag.resolves({CODE
CRITICALbuild-system/release-tagger/test/update-release.test.js49 t.context.octokitRest.rest.repos.updateRelease.resolves({data: {id: 1}});CODE
CRITICALbuild-system/release-tagger/test/update-release.test.js57 t.context.octokitRest.rest.repos.updateRelease.calledOnceWith({CODE
CRITICALsrc/friendly-iframe-embed.js516 this.win.document.documentElement.classList.add('i-amphtml-fie');CODE
CRITICALsrc/service/resources-impl.js264 this.win.document.fonts.ready.then(remeasure);CODE
CRITICALsrc/service/viewport/viewport-binding-natural.js131 this.win.document.documentElement.classList.add(CODE
CRITICALsrc/service/viewport/viewport-binding-natural.js139 this.win.document.documentElement.classList.remove(CODE
Magic Placeholder Names33 hits · 236 pts
SeverityFileLineSnippetContext
HIGH…ogle-read-aloud-player/amp-google-read-aloud-player.md120 data-api-key="<YOUR_API_KEY>"CODE
HIGH…ogle-read-aloud-player/amp-google-read-aloud-player.md120 data-api-key="<YOUR_API_KEY>"CODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html86 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="UA-168915890-1" data-voice="eCODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html90 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="UA-168915890-1"CODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html96 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="UA-168915890-1,UA-168915890-2CODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html100 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="UA-1-168915890"CODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html105 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="UA-1-1" data-voice="en.some-vCODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html109 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="UA-168915890-1" data-voice="eCODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html113 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="UA-168915890-1" data-voice="eCODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html121 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="123" data-voice="en.some-voicCODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html125 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="168915890-1" data-voice="en.sCODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html129 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="ua-1" data-voice="en.some-voiCODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html133 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="UA-1-1.2" data-voice="en.someCODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html137 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="" data-voice="en.some-voice">CODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html141 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="UA-1-1 XYZ" data-voice="en.soCODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html145 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-voice="en.some-voice">CODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html149 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="UA-168915890-1">CODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html153 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-url="index.html" data-voice="en.some-voice"CODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html157 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-url="http://www.example.com/index.html" datCODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html161 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="UA-168915890-1" data-voice="eCODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html165 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-voice="en.some-voice" data-intro="file.mp3"CODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html169 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-voice="en.some-voice" data-outro="file.mp3"CODE
HIGH…r/0.1/test/validator-amp-google-read-aloud-player.html173 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-voice="en.some-voice" data-ad-tag-url="indeCODE
HIGH…d-player/0.1/test/test-amp-google-read-aloud-player.js12const API_KEY = 'YOUR_API_KEY';CODE
HIGH…ead-aloud-player/amp-google-read-aloud-player.amp.html90 <amp-google-read-aloud-player height="66" data-api-key="YOUR_API_KEY" data-tracking-ids="UA-000000-2"CODE
HIGH…ead-aloud-player/amp-google-read-aloud-player.amp.html99 <amp-google-read-aloud-player layout="fixed" height="66" width="500" data-api-key="YOUR_API_KEY"CODE
HIGH…ead-aloud-player/amp-google-read-aloud-player.amp.html106 <amp-google-read-aloud-player layout="fixed-height" height="66" data-api-key="YOUR_API_KEY"CODE
HIGH…ead-aloud-player/amp-google-read-aloud-player.amp.html114 data-api-key="YOUR_API_KEY" data-tracking-ids="UA-000000-2"CODE
HIGH…ead-aloud-player/amp-google-read-aloud-player.amp.html130 <amp-google-read-aloud-player layout="fixed-height" height="66" data-api-key="YOUR_API_KEY"CODE
HIGH…ead-aloud-player/amp-google-read-aloud-player.amp.html137 <amp-google-read-aloud-player layout="fixed-height" height="66" data-api-key="YOUR_API_KEY"CODE
HIGH…ead-aloud-player/amp-google-read-aloud-player.amp.html144 <amp-google-read-aloud-player layout="fixed-height" height="66" data-api-key="YOUR_API_KEY"CODE
HIGH…ead-aloud-player/amp-google-read-aloud-player.amp.html151 <amp-google-read-aloud-player layout="fixed-height" height="66" data-api-key="YOUR_API_KEY"CODE
HIGH…ead-aloud-player/amp-google-read-aloud-player.amp.html159 <amp-google-read-aloud-player layout="fixed-height" height="66" data-api-key="YOUR_API_KEY"CODE
Over-Commented Block157 hits · 157 pts
SeverityFileLineSnippetContext
LOW.lando.yml1# This is a configuration file for a Lando-based local dev environment for amphtml.COMMENT
LOWvalidator/validator.pb.go21COMMENT
LOWvalidator/validator.pb.go361 return nilCOMMENT
LOWvalidator/validator.pb.go1501 unknownFields protoimpl.UnknownFieldsCOMMENT
LOWvalidator/validator.pb.go1541 ValueOneofSet *AttrSpec_ValueSet `protobuf:"varint,26,opt,name=value_oneof_set,json=valueOneofSet,enum=amp.validator.ACOMMENT
LOWvalidator/validator.pb.go2341COMMENT
LOWvalidator/validator.pb.go2461// Specifies which AMP Layouts are supported by a given element.COMMENT
LOWvalidator/validator.pb.go2581}COMMENT
LOWvalidator/validator.pb.go2681 return *x.MandatoryMinNumChildTagsCOMMENT
LOWvalidator/validator.pb.go2701// they are first matched against these reference points, and onlyCOMMENT
LOWvalidator/validator.pb.go2781 state protoimpl.MessageStateCOMMENT
LOWvalidator/validator.pb.go2961 // this TagSpec. If a Type Identifier is in `enabled_by` then thisCOMMENT
LOWvalidator/validator.pb.go2981 // do with this tag spec, provide a `descriptive_name` value, which if presentCOMMENT
LOWvalidator/validator.pb.go3001 MandatoryAlternatives *string `protobuf:"bytes,4,opt,name=mandatory_alternatives,json=mandatoryAlternatives" json:"mandCOMMENT
LOWvalidator/validator.pb.go3021 // spec_names (e.g. tag.name = "!DOCTYPE" or tag.spec_name = "html doctype").COMMENT
LOWvalidator/validator.pb.go3041 // e.g. the name of a tag.COMMENT
LOWvalidator/validator.pb.go3061 // of this tag in the document.COMMENT
LOWvalidator/validator.pb.go3481 // validating parsed documents;: with that Type Identifier. An DocCssSpec canCOMMENT
LOWvalidator/validator.pb.go3501 // `max_bytes`. This is used for handling signed exchange transformationsCOMMENT
LOWvalidator/validator.pb.go4281 //COMMENT
LOWvalidator/js/engine/htmlparser-interface.js81// amp-ad-0.1.mjsCOMMENT
LOWvalidator/cpp/htmlparser/doctype.h1#ifndef CPP_HTMLPARSER_DOCTYPE_H_COMMENT
LOWvalidator/cpp/htmlparser/parser.h21 // Parsing state flags (section 12.2.4.5).COMMENT
LOWvalidator/cpp/htmlparser/parser.h41 // Count number of terms in a text node delimited by ascii whitespace andCOMMENT
LOWvalidator/cpp/htmlparser/parser.h141 void InBodyEndTagOther(Atom tag_atom, std::string_view tag_name);COMMENT
LOWvalidator/cpp/htmlparser/parser.h201 // is in matchTags, provided there is no higher element in the scope's stopCOMMENT
LOWvalidator/cpp/htmlparser/fileutil.h1#ifndef CPP_HTMLPARSER_FILEUTIL_H_COMMENT
LOWvalidator/cpp/htmlparser/fileutil.h81 // - Rows are sorted in some form and client provides a comparator. Example:COMMENT
LOWvalidator/cpp/htmlparser/renderer.h1// Renderer renders the parse tree rooted at node to the given buffer.COMMENT
LOWvalidator/cpp/htmlparser/node.h1#ifndef CPP_HTMLPARSER_NODE_H_COMMENT
LOWvalidator/cpp/htmlparser/node.h221// test consistency of the nodes built manually, or by the Parser.COMMENT
LOWvalidator/cpp/htmlparser/tokenizer.h1#ifndef CPP_HTMLPARSER_TOKENIZER_H_COMMENT
LOWvalidator/cpp/htmlparser/tokenizer.h41 // can contain a <foreignObject> that is foreign-to-SVG but not foreign-to-COMMENT
LOWvalidator/cpp/htmlparser/tokenizer.h61 // <title> inside an <svg> does not. Another example is that a <textarea>COMMENT
LOWvalidator/cpp/htmlparser/tokenizer.h81 // `<!-- xml version="1.0"` (without closing), then the first Next call wouldCOMMENT
LOWvalidator/cpp/htmlparser/tokenizer.h141 // been consumed, where 'a' means anything in [A-Za-z].COMMENT
LOWvalidator/cpp/htmlparser/tokenizer.h161COMMENT
LOWvalidator/cpp/htmlparser/tokenizer.h241 // Tells if the token is manufactured.COMMENT
LOWvalidator/cpp/htmlparser/logging.h1// Defines various logging macros. This is temporary and will be replaced by aCOMMENT
LOWvalidator/cpp/htmlparser/strings.h1#ifndef CPP_HTMLPARSER_STRINGS_H_COMMENT
LOWvalidator/cpp/htmlparser/strings.h61 // byte is in the range 0x41-0x5A or 0x61-0x7A (A-Z or a-z).COMMENT
LOWvalidator/cpp/htmlparser/strings.h81 static int8_t CodePointByteSequenceCount(uint8_t c);COMMENT
LOWvalidator/cpp/htmlparser/strings.h121 //COMMENT
LOWvalidator/cpp/htmlparser/strings.h201 // Case insensitive equals.COMMENT
LOWvalidator/cpp/htmlparser/strings.h221 // "ABCDEFGHIJKLMNOPQRSTUVWXYZ")COMMENT
LOWvalidator/cpp/htmlparser/glog_polyfill.h21};COMMENT
LOWvalidator/cpp/htmlparser/casetable.h1// AUTO GENERATED; DO NOT EDIT.COMMENT
LOWvalidator/cpp/htmlparser/allocator.h1// An average HTML DOM tree consists of hundreds or thousands of nodes andCOMMENT
LOWvalidator/cpp/htmlparser/allocator.h21// the block size is upgraded to 4096 for 4k page_size or 8192 for 8k page_size.COMMENT
LOWvalidator/cpp/htmlparser/allocator.h41// The allocator maintains linked list of blocks of memory buffers forCOMMENT
LOWvalidator/cpp/htmlparser/allocator.h61// It's called misaligned otherwise. For example, an 8-byte floating-point dataCOMMENT
LOWvalidator/cpp/htmlparser/allocator.h81// int64_t b; // 8 byte (now at 8 byte alignment). 0x0008COMMENT
LOWvalidator/cpp/htmlparser/allocator.h101// | 10 | waste | 120 | Obj22 | 164 | waste |COMMENT
LOWvalidator/cpp/htmlparser/allocator.h121// object size. So the remaining bytes in the block are skipped and new blockCOMMENT
LOWvalidator/cpp/htmlparser/allocator.h141// is the master owner of all the objects. Client treats all objects as constCOMMENT
LOWvalidator/cpp/htmlparser/allocator.h161// This can also be achieved by modulo operator N % A == 0.COMMENT
LOWvalidator/cpp/htmlparser/url.h1// Uniform resouce locator parsing related static functions.COMMENT
LOWvalidator/cpp/htmlparser/entity.h1// AUTO GENERATED; DO NOT EDIT.COMMENT
LOWvalidator/cpp/htmlparser/document.h1#ifndef CPP_HTMLPARSER_DOCUMENT_H_COMMENT
LOWvalidator/cpp/htmlparser/document.h21struct DocumentMetadata {COMMENT
97 more matches not shown…
AI Slop Vocabulary9 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUM3p/integration.js117import {empower} from '#ads/vendors/empower';CODE
MEDIUM3p/vendors/empower.js7import {empower} from '#ads/vendors/empower';CODE
MEDIUMvalidator/js/nodejs/index_test.js220 // relatively robust. We don't want it to churn if the validatorCOMMENT
MEDIUMvalidator/cpp/htmlparser/atom.h1394 0xcce08, // seamlessCODE
MEDIUM…-network-adzerk-impl/0.1/amp-ad-network-adzerk-impl.js65 // Does not utilize crypto signature based AMP creative validation.COMMENT
MEDIUMextensions/amp-form/0.1/amp-form.js1357 // Do not interfere with form fields that utilize variable substitutions.COMMENT
MEDIUMextensions/amp-analytics/0.1/iframe-transport.js137 // utilize the same analytics vendor, so perhaps two creatives mightCOMMENT
MEDIUMthird_party/resize-observer-polyfill/ResizeObserver.js251 // be possible to utilize the getBoundingClientRect if only it's data wasn'tCOMMENT
MEDIUM…rty/resize-observer-polyfill/ResizeObserver.install.js250 // be possible to utilize the getBoundingClientRect if only it's data wasn'tCOMMENT
Decorative Section Separators8 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUMvalidator/cpp/htmlparser/data/CaseFolding.txt31# ================================================================================COMMENT
MEDIUMvalidator/cpp/htmlparser/data/CaseFolding.txt33# ================================================================================COMMENT
MEDIUMvalidator/cpp/htmlparser/data/CaseFolding.txt55# =================================================================COMMENT
MEDIUMvalidator/cpp/htmlparser/data/CaseFolding.txt62# =================================================================COMMENT
MEDIUMvalidator/cpp/htmlparser/data/ipaddressgrammar.txt10# =================COMMENT
MEDIUMvalidator/cpp/htmlparser/data/ipaddressgrammar.txt12# =================COMMENT
MEDIUMvalidator/cpp/htmlparser/data/ipaddressgrammar.txt126# =================COMMENT
MEDIUMvalidator/cpp/htmlparser/data/ipaddressgrammar.txt128# =================COMMENT
Cross-Language Confusion1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHvalidator/validator_gen_js.py437 out.Line('this.combinedDenyListedCdataRegex = null;')CODE
Self-Referential Comments2 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUMvalidator/validator_gen_js.py867 # Create a mapping from attr spec ids to AttrSpec instances, deduping theCOMMENT
MEDIUMexamples/article-with-docked-video.html346 <!-- ## Define the content under the slot -->CODE
Slop Phrases3 hits · 4 pts
SeverityFileLineSnippetContext
LOWextensions/amp-list/1.0/component.jss.js3// Make sure to replace "#" with "%23" in these strings!COMMENT
LOW.github/workflows/codeql.yml27 # TODO: add `cpp` for Validator; don't forget to add a build stepCOMMENT
LOW.github/workflows/codeql.yml27 # TODO: add `cpp` for Validator; don't forget to add a build stepCOMMENT
Deep Nesting4 hits · 4 pts
SeverityFileLineSnippetContext
LOWvalidator/validator_gen_js.py374CODE
LOWvalidator/validator_gen_js.py555CODE
LOWvalidator/validator_gen_js.py690CODE
LOWvalidator/js/webui/build.py89CODE
TODO Padding2 hits · 3 pts
SeverityFileLineSnippetContext
LOWads/google/a4a/test/test-utils.js82 //TODO: Add tests for other utils functions.COMMENT
LOWextensions/amp-consent/0.1/amp-consent.js616 // TODO: Handle errorsCOMMENT
Verbosity Indicators2 hits · 3 pts
SeverityFileLineSnippetContext
LOWextensions/amp-vimeo/0.1/amp-vimeo.js237 // We need to check if already muted to prevent an initial mute() callCOMMENT
LOWexamples/amp-ad/sticky.js4 // Step 1: Once knowing the ad size is 300x250, hide the frame and request to have ad shownCOMMENT
Overly Generic Function Names3 hits · 3 pts
SeverityFileLineSnippetContext
LOW…s/amp-consent/0.1/test/test-tcf-api-command-manager.js470function getData(command, callId, opt_parameter) {CODE
LOWbuild-system/tasks/e2e/driver/query-xpath.js90function getData(node) {CODE
LOWsrc/utils/event-helper.js63export function getData(event) {CODE
Unused Imports2 hits · 2 pts
SeverityFileLineSnippetContext
LOWvalidator/build.py5CODE
LOWvalidator/js/webui/build.py10CODE
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOWvalidator/cpp/htmlparser/iterators.h16// Example usage:COMMENT
Structural Annotation Overuse1 hit · 2 pts
SeverityFileLineSnippetContext
LOWexamples/amp-ad/sticky.js4 // Step 1: Once knowing the ad size is 300x250, hide the frame and request to have ad shownCOMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOW.circleci/check_config.sh20# Check if the PR branch contains the most recent revision the CircleCI config.COMMENT