Repository Analysis

Tencent/libpag

The official rendering library for PAG (Portable Animated Graphics) files that renders After Effects animations natively across multiple platforms.

5.6 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of Tencent/libpag, a HTML project with 5,743 GitHub stars. SynthScan v2.0 examined 443,638 lines of code across 2621 source files, recording 2273 pattern matches distributed across 12 syntactic categories. The overall adjusted score of 5.6 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).

5.6
Adjusted Score
5.6
Raw Score
100%
Time Factor
2026-08-01
Last Push
5.7K
Stars
HTML
Language
443.6K
Lines of Code
2.6K
Files
2.3K
Pattern Hits
2026-08-02
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

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 0HIGH 7MEDIUM 64LOW 2202

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 2273 distinct pattern matches across 12 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 Block2070 hits · 2036 pts
SeverityFileLineSnippetContext
LOWpagx/wechat/CMakeLists.txt21endif ()COMMENT
LOWpagx/wechat/script/cmake.wx.js1#!/usr/bin/env nodeCOMMENT
LOWpagx/wechat/script/rollup.wx.js1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/ts/decorators.ts1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/ts/render-canvas.ts1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/ts/binding.ts1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/ts/wx-system-info.ts1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/ts/backend-texture.ts1///////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/ts/babel.ts1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/ts/gesture-manager.ts1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/ts/backend-context.ts1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/ts/types.ts1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/ts/pagx.ts1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/ts/pagx-view.ts1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/ts/pagx-view.ts221 // pan/zoom clamp math. Kept in canvas-physical-pixel space (offset) andCOMMENT
LOWpagx/wechat/ts/interfaces.ts1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/src/binding.cpp1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/src/PAGXView.cpp1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/src/PAGXView.cpp21#include <emscripten/html5.h>COMMENT
LOWpagx/wechat/src/PAGXView.cpp41#include "pagx/nodes/Stroke.h"COMMENT
LOWpagx/wechat/src/PAGXView.cpp61constexpr uint32_t RGBA_BYTES_PER_PIXEL = 4;COMMENT
LOWpagx/wechat/src/PAGXView.cpp81constexpr double ZOOM_IN_END_TIMEOUT_MS = 300.0;COMMENT
LOWpagx/wechat/src/PAGXView.cpp461 // Replacement subtraction: when the same path is already attached, flushPendingUploadsCOMMENT
LOWpagx/wechat/src/PAGXView.cpp541 if (pendingUploads.empty() || context == nullptr || !document) {COMMENT
LOWpagx/wechat/src/PAGXView.cpp1561COMMENT
LOWpagx/wechat/src/PAGXView.h1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/src/PAGXView.h21#include <emscripten/val.h>COMMENT
LOWpagx/wechat/src/PAGXView.h381 // the display list carried the user pan/zoom) now that the runtime tree is owned by PAGScene.COMMENT
LOWpagx/wechat/src/PAGXView.h421 // Wall-clock timestamp (emscripten_get_now ms) of the previous timeline advance, used to deriveCOMMENT
LOWpagx/wechat/src/PAGXView.h441 // without a full Record(). setGestureActive takes effect once a snapshot exists. Cleared onCOMMENT
LOWpagx/wechat/src/PAGXView.h481 // push_back / clear / swap that touches pendingUploads.COMMENT
LOWpagx/wechat/src/PAGXView.h501 // LRU pressure entirely.COMMENT
LOWpagx/wechat/src/PAGXView.h521 // totalBytes crosses this line, but uploads are still allowed: the buffer betweenCOMMENT
LOWpagx/wechat/src/PAGXView.h541 size_t fullBudgetHardCap = 384ULL * 1024 * 1024;COMMENT
LOWpagx/wechat/src/PAGXView.h561COMMENT
LOWpagx/wechat/src/PAGXView.h581 // GL.textures indices retired during the current draw (eviction, replacement upload, orCOMMENT
LOWpagx/wechat/src/PAGXView.h601 // via the JS helper, wraps it in a non-adopted tgfx::Image (Image::MakeFrom) so tgfx neverCOMMENT
LOWpagx/wechat/src/PAGXView.h621 // logged in this case so sustained overflow stays visible without flooding the console.COMMENT
LOWpagx/wechat/src/PAGXView.h641COMMENT
LOWpagx/wechat/src/PAGXView.h661 // that the upload can now fit. Eviction is silent (no host callback).COMMENT
LOWpagx/wechat/src/utils/ImagePatternMatrixCalculator.h1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/src/utils/ImagePatternMatrixCalculator.h41// image loading: they represent the full-resolution pixel dimensions recorded by the exporterCOMMENT
LOWpagx/wechat/src/utils/ImagePatternMatrixCalculator.h61// first call, so repeated invocations after runtime image changes recompute against theCOMMENT
LOWpagx/wechat/src/utils/ImagePatternMatrixCalculator.cpp1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWpagx/wechat/src/utils/ImagePatternMatrixCalculator.cpp21#include <cstdio>COMMENT
LOWpagx/wechat/src/utils/StringParser.h1/////////////////////////////////////////////////////////////////////////////////////////////////COMMENT
LOWtools/html-snapshot/server.js181 }COMMENT
LOWtools/html-snapshot/server.js461 // cookies: [{ name, value }] only — anything else is dropped (validatorsCOMMENT
LOWtools/html-snapshot/build-browser-bundle.js81 * PAGX. The snapshot conforms to spec/html_subset.md.COMMENT
LOWtools/html-snapshot/bench/run-native.sh1#!/usr/bin/env bashCOMMENT
LOWtools/html-snapshot/bench/run-native.sh21#COMMENT
LOWtools/html-snapshot/bench/run-native.sh41# BASELINE_HOLD_MS ms each baseline run holds the page open (default 200)COMMENT
LOWtools/html-snapshot/bench/run-native.sh61# computes from /proc/<pid>/stat (Linux native) or `ps -A -o time=`COMMENT
LOWtools/html-snapshot/bench/summarize.js1#!/usr/bin/env nodeCOMMENT
LOWtools/html-snapshot/bench/summarize.js21// so reviewers can drill into the heavy onesCOMMENT
LOWtools/html-snapshot/bench/summarize-html.js1#!/usr/bin/env nodeCOMMENT
LOWtools/html-snapshot/bench/summarize-html.js21// notes caveat box explaining the three memory metricsCOMMENT
LOWtools/html-snapshot/bench/baseline-blank.js1#!/usr/bin/env nodeCOMMENT
LOWtools/html-snapshot/bench/baseline-blank.js21// 1. Launch the same browser engine `snapshot.js` uses (puppeteer,COMMENT
LOWtools/html-snapshot/bench/run-bench.sh1#!/usr/bin/env bashCOMMENT
2010 more matches not shown…
Decorative Section Separators57 hits · 189 pts
SeverityFileLineSnippetContext
MEDIUMtest/gen_html_comparison.sh50#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh52#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh147#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh149#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh154#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh156#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh77#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh79#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh104#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh106#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh124#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh126#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh168#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh170#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh259#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh261#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh286#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh288#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh319#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh321#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh391#-------------------------------------------------------------------------COMMENT
MEDIUMtest/gen_html_comparison.sh393#-------------------------------------------------------------------------COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py295 # ======================================================================COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py297 # ======================================================================COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py166 # ======================================================================COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py168 # ======================================================================COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py186 # ======================================================================COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py188 # ======================================================================COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py207 # ======================================================================COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py209 # ======================================================================COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py231 # ======================================================================COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py233 # ======================================================================COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py256 # ======================================================================COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py260 # ======================================================================COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py277 # ======================================================================COMMENT
MEDIUM.codebuddy/skills/squash/scripts/replace_branch.py280 # ======================================================================COMMENT
MEDIUMsrc/pagx/svg/SVGExporter.cpp2125// ── writeTextAsPath ─────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/svg/SVGExporter.cpp2246// ── writeTextAsFont ─────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/svg/SVGExporter.cpp2383// ── writeText ───────────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTExporter.cpp133// ── Transform decomposition ────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTExporter.cpp177// ── Shape envelope ─────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTExporter.cpp232// ── Lazy build result ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTExporter.cpp242// ── Shared XML helpers ──────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTExporter.cpp244// ── Custom geometry ────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTExporter.cpp262// ── Shape writers ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTTextWriter.cpp133 // ── Bitmap glyphs ─────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTTextWriter.cpp785// ── TextBox group ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTTextWriter.cpp1210// ── Element / layer traversal ──────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTStyleEmitter.cpp56// ── Picture helpers ─────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTStyleEmitter.cpp87// ── Rasterized picture ──────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTStyleEmitter.cpp101// ── ImagePattern as p:pic element ──────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTStyleEmitter.cpp158// ── Color source / gradient ────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTStyleEmitter.cpp391// ── Fill / stroke ──────────────────────────────────────────────────────────COMMENT
MEDIUMsrc/pagx/ppt/PPTStyleEmitter.cpp476// ── Effects (shadow) ───────────────────────────────────────────────────────COMMENT
MEDIUMsrc/rendering/filters/DisplacementMapFilter.cpp308 // │ │ └─────────────── B -> horizontal modulationCOMMENT
MEDIUMsrc/rendering/filters/DisplacementMapFilter.cpp309 // │ └─────────────────────────────── G -> vertical displacementCOMMENT
MEDIUMsrc/rendering/filters/DisplacementMapFilter.cpp310 // └─────────────────────────────────────────── R -> horizontal displacementCOMMENT
Structural Annotation Overuse73 hits · 127 pts
SeverityFileLineSnippetContext
LOWpagx/wechat/wx_demo/BUILD.md36### Step 1: 配置环境COMMENT
LOWpagx/wechat/wx_demo/BUILD.md46### Step 2: 运行构建COMMENT
LOWpagx/wechat/wx_demo/BUILD.md53### Step 3: 验证输出COMMENT
LOWtest/src/PAGXTest.cpp279 // Step 2: Layout and embed fontsCOMMENT
LOWtest/src/PAGXTest.cpp283 // Step 3: Export to XML and save as PAGX fileCOMMENT
LOWtest/src/PAGXTest.cpp292 // Step 4: Load PAGX file and build layer tree (this is the viewer's actual path)COMMENT
LOWtest/src/PAGXTest.cpp851 // Step 3: Re-import from XML.COMMENT
LOWtest/src/PAGXTest.cpp856 // Step 4: Verify Document customData.COMMENT
LOWtest/src/PAGXTest.cpp861 // Step 5: Verify Layer customData.COMMENT
LOWtest/src/PAGXTest.cpp868 // Step 6: Verify Element customData.COMMENT
LOWtest/src/PAGXTest.cpp880 // Step 7: Verify SolidColor resource customData.COMMENT
LOWtest/src/PAGXTest.cpp886 // Step 8: Re-export and re-import to verify consistency.COMMENT
LOWtest/src/PAGXTest.cpp261 // Step 1: Parse SVG to PAGXDocumentCOMMENT
LOWtest/src/PAGXTest.cpp812 // Step 1: Create document with customData on various nodes.COMMENT
LOWtest/src/PAGXTest.cpp839 // Step 2: Export to XML.COMMENT
LOWtest/src/PAGSurfaceTest.cpp175 // Step 1: Set external GL state before PAG renderingCOMMENT
LOWtest/src/PAGSurfaceTest.cpp188 // Step 2: PAG rendering (GLRestorer should save state on lockContext, restore on unlockContext)COMMENT
LOWtest/src/PAGSurfaceTest.cpp195 // Step 3: Verify GL state is restored after PAG renderingCOMMENT
LOWplayground/pagx-viewer/README.md40// Step 1: Parse PAGX data without building layers.COMMENT
LOWplayground/pagx-viewer/README.md43// Step 2: Get external file paths (e.g., images) referenced by the document.COMMENT
LOWplayground/pagx-viewer/README.md46// Step 3: Download each external file and inject it back into the view.COMMENT
LOWplayground/pagx-viewer/README.md53// Step 4: Build the layer tree after all external files are loaded.COMMENT
LOW.codebuddy/skills/pagx/SKILL.md101### Step 1: Assess the current fileCOMMENT
LOW.codebuddy/skills/pagx/SKILL.md117### Step 2: Make the editsCOMMENT
LOW.codebuddy/skills/pagx/SKILL.md142### Step 3: Polish & QACOMMENT
LOW.codebuddy/skills/pagx/SKILL.md212### Step 0: One-time setupCOMMENT
LOW.codebuddy/skills/pagx/SKILL.md250### Step 1: Understand the requestCOMMENT
LOW.codebuddy/skills/pagx/SKILL.md265### Step 2: Generate the HTMLCOMMENT
LOW.codebuddy/skills/pagx/SKILL.md283### Step 3: Convert to PAGXCOMMENT
LOW.codebuddy/skills/pagx/SKILL.md339### Step 4: Review and iterateCOMMENT
LOW.codebuddy/skills/pagx/spec/sync_pagx_spec.md130### Step 1: Confirm the ScopeCOMMENT
LOW.codebuddy/skills/pagx/spec/sync_pagx_spec.md138### Step 2: Read the libpag SourceCOMMENT
LOW.codebuddy/skills/pagx/spec/sync_pagx_spec.md145### Step 3: Compare the DocsCOMMENT
LOW.codebuddy/skills/pagx/spec/sync_pagx_spec.md159### Step 4: Sync the Chinese/English Docs and the XSDCOMMENT
LOW.codebuddy/skills/pagx/spec/sync_pagx_spec.md167### Step 5: Check Whether a Sample Is NeededCOMMENT
LOW.codebuddy/skills/pagx/spec/sync_pagx_spec.md185### Step 6: In-Subsection Sample PlacementCOMMENT
LOW.codebuddy/skills/pagx/spec/sync_pagx_spec.md189### Step 7: Report the ChangesCOMMENT
LOW.codebuddy/skills/squash/SKILL.md47## Step 1: CleanupCOMMENT
LOW.codebuddy/skills/squash/SKILL.md64## Step 2: Collect CommitsCOMMENT
LOW.codebuddy/skills/squash/SKILL.md88## Step 3: Analyze & DecideCOMMENT
LOW.codebuddy/skills/squash/SKILL.md145## Step 4: Build New HistoryCOMMENT
LOW.codebuddy/skills/squash/SKILL.md160## Step 5: User ConfirmationCOMMENT
LOW.codebuddy/skills/squash/SKILL.md179## Step 6: Replace BranchCOMMENT
LOW.codebuddy/skills/squash/SKILL.md216## Step 7: Offer to PushCOMMENT
LOW.codebuddy/skills/squash/scripts/replace_branch.py299 # Step 1: Atomically update the branch ref FIRST, before removingCOMMENT
LOW.codebuddy/skills/squash/scripts/replace_branch.py315 # Step 2: Remove the temporary worktree (branch still exists)COMMENT
LOW.codebuddy/skills/squash/scripts/replace_branch.py325 # Step 3: Verify the update succeededCOMMENT
LOW.codebuddy/skills/squash/scripts/replace_branch.py349 # Step 4: Delete the temporary branch (worktree is already removed)COMMENT
LOW.codebuddy/skills/squash/scripts/replace_branch.py355 # Step 5: Restore upstream tracking if it existedCOMMENT
LOW.codebuddy/skills/cr/references/local-review.md17## Step 1: ScopeCOMMENT
LOW.codebuddy/skills/cr/references/local-review.md52## Step 2: ReviewCOMMENT
LOW.codebuddy/skills/cr/references/local-review.md70## Step 3: FilterCOMMENT
LOW.codebuddy/skills/cr/references/local-review.md79## Step 4: Report and fixCOMMENT
LOW.codebuddy/skills/cr/references/local-review.md92## Step 5: Checklist evolutionCOMMENT
LOW.codebuddy/skills/cr/references/checklist-evolution.md7## Step 1: Draft candidatesCOMMENT
LOW.codebuddy/skills/cr/references/checklist-evolution.md26## Step 2: User confirmationCOMMENT
LOW.codebuddy/skills/cr/references/checklist-evolution.md31## Step 3: InsertCOMMENT
LOW.codebuddy/skills/cr/references/pr-review.md18## Step 1: Create worktreeCOMMENT
LOW.codebuddy/skills/cr/references/pr-review.md58## Step 2: Collect diff and contextCOMMENT
LOW.codebuddy/skills/cr/references/pr-review.md78## Step 3: ReviewCOMMENT
13 more matches not shown…
Verbosity Indicators28 hits · 52 pts
SeverityFileLineSnippetContext
LOWtest/src/PAGXTest.cpp279 // Step 2: Layout and embed fontsCOMMENT
LOWtest/src/PAGXTest.cpp283 // Step 3: Export to XML and save as PAGX fileCOMMENT
LOWtest/src/PAGXTest.cpp292 // Step 4: Load PAGX file and build layer tree (this is the viewer's actual path)COMMENT
LOWtest/src/PAGXTest.cpp851 // Step 3: Re-import from XML.COMMENT
LOWtest/src/PAGXTest.cpp856 // Step 4: Verify Document customData.COMMENT
LOWtest/src/PAGXTest.cpp861 // Step 5: Verify Layer customData.COMMENT
LOWtest/src/PAGXTest.cpp868 // Step 6: Verify Element customData.COMMENT
LOWtest/src/PAGXTest.cpp880 // Step 7: Verify SolidColor resource customData.COMMENT
LOWtest/src/PAGXTest.cpp886 // Step 8: Re-export and re-import to verify consistency.COMMENT
LOWtest/src/PAGXTest.cpp261 // Step 1: Parse SVG to PAGXDocumentCOMMENT
LOWtest/src/PAGXTest.cpp812 // Step 1: Create document with customData on various nodes.COMMENT
LOWtest/src/PAGXTest.cpp839 // Step 2: Export to XML.COMMENT
LOWtest/src/PAGSurfaceTest.cpp175 // Step 1: Set external GL state before PAG renderingCOMMENT
LOWtest/src/PAGSurfaceTest.cpp188 // Step 2: PAG rendering (GLRestorer should save state on lockContext, restore on unlockContext)COMMENT
LOWtest/src/PAGSurfaceTest.cpp195 // Step 3: Verify GL state is restored after PAG renderingCOMMENT
LOW.codebuddy/skills/squash/scripts/replace_branch.py299 # Step 1: Atomically update the branch ref FIRST, before removingCOMMENT
LOW.codebuddy/skills/squash/scripts/replace_branch.py315 # Step 2: Remove the temporary worktree (branch still exists)COMMENT
LOW.codebuddy/skills/squash/scripts/replace_branch.py325 # Step 3: Verify the update succeededCOMMENT
LOW.codebuddy/skills/squash/scripts/replace_branch.py349 # Step 4: Delete the temporary branch (worktree is already removed)COMMENT
LOW.codebuddy/skills/squash/scripts/replace_branch.py355 # Step 5: Restore upstream tracking if it existedCOMMENT
LOWsrc/renderer/GlyphRunRenderer.cpp215 // Step 1: Compute the final matrix for each glyph (source transform × inverseMatrix).COMMENT
LOWsrc/renderer/GlyphRunRenderer.cpp275 // Step 2: Classify all glyph matrices to find the most compact positioning mode.COMMENT
LOWsrc/renderer/GlyphRunRenderer.cpp284 // Step 3: Write glyphs into the TextBlob with the determined mode.COMMENT
LOWsrc/renderer/GlyphRunRenderer.cpp306 // Step 1: Compute the final matrix for each glyph.COMMENT
LOWsrc/renderer/GlyphRunRenderer.cpp321 // Step 2: Classify all glyph matrices to find the most compact positioning mode.COMMENT
LOWsrc/renderer/GlyphRunRenderer.cpp330 // Step 3: Write glyphs into the TextBlob with the determined mode.COMMENT
LOWsrc/cli/CommandVerify.cpp2986 // Step 1: Resolve all import directives in the file (full file, idempotent).COMMENT
LOWsrc/cli/CommandVerify.cpp2997 // Step 2: Load document and compute layout.COMMENT
Cross-Language Confusion7 hits · 32 pts
SeverityFileLineSnippetContext
HIGHtest/gen_html_comparison.py172 if (found && location.hash !== '#' + id) {CODE
HIGHtest/gen_html_comparison.py173 history.replaceState(null, '', '#' + id);CODE
HIGHtest/gen_html_comparison.py181 history.pushState(null, '', '#' + id);CODE
HIGH.codebuddy/skills/squash/scripts/replace_branch.py15 - upstream_remote: original upstream remote name (or null)STRING
HIGH.codebuddy/skills/squash/scripts/replace_branch.py16 - upstream_merge: original upstream merge ref (or null)STRING
HIGH.codebuddy/skills/squash/scripts/build_history.py15 - upstream_remote: original upstream remote name (or null)STRING
HIGH.codebuddy/skills/squash/scripts/build_history.py16 - upstream_merge: original upstream merge ref (or null)STRING
AI Slop Vocabulary6 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMtools/html-snapshot/bench/run-native.sh27# (mirrors the eval/ harness — every run gets its ownCOMMENT
MEDIUMtools/html-snapshot/bench/run-bench.sh12# (mirrors the eval/ harness — every run gets its ownCOMMENT
MEDIUMsrc/pagx/html/importer/HTMLValueParser.cpp723 // to exactly one `periodPx`-tall (or wide) span in the layer, keeping the repeat seamless and theCOMMENT
MEDIUMsrc/pagx/ppt/PPTContourUtils.cpp74// approximation, this is robust to paths with few high-curvature curves.COMMENT
MEDIUMsrc/pagx/ppt/PPTContourUtils.cpp158// midpoint makes the ContourInsideContour fallback robust for high-curvatureCOMMENT
MEDIUMsrc/renderer/LayerBuilder.cpp3237 // subtree build so it is robust even if TextBoxes were ever nested.COMMENT
Hyper-Verbose Identifiers15 hits · 15 pts
SeverityFileLineSnippetContext
LOWpagx/wechat/ts/wx-system-info.ts86function getDeviceBenchmarkInfoNativeAsync(): Promise<{CODE
LOWpagx/wechat/ts/pagx-check.ts542function countPathDataWithExpansion(root: XmlNode): number {CODE
LOWtools/html-snapshot/lib/icon-font.ts231async function browserCollectFontFaceMap(): Promise<Record<string, ParsedSrc>> {CODE
LOWtools/html-snapshot/lib/icon-font.ts255async function browserCollectIconFontTargets(): Promise<IconFontTarget[]> {CODE
LOWtools/html-snapshot/lib/snapshot-runner.ts120export function makeResourceCacheRouteHandler(CODE
LOWtools/html-snapshot/lib/snapshot-runner.ts141export function makeResourceCacheListener(CODE
LOWtools/html-snapshot/lib/browser-snapshot.ts659function appendBackgroundImageFitting(parts, computed) {CODE
LOWtools/html-snapshot/lib/browser-snapshot.ts1153function isCssBorderTrianglePattern(el, computed) {CODE
LOWtools/html-snapshot/lib/browser-snapshot.ts1724function boundarySpacePreservation(textNode, computed) {CODE
LOWtools/html-snapshot/lib/browser-snapshot.ts2630function isInlineTextLeafCandidate(el, computed, precomputedHasChildren) {CODE
LOWtools/html-snapshot/lib/browser-snapshot.ts4271async function materializeDecorativePseudoElements() {CODE
LOWplayground/pagx-player/src/editor/index.ts79function ensureEditorStylesInjected(): void {CODE
LOWplayground/pagx-preview/scripts/prebuild.js161function buildUpstreamDependencies({ release, mt }) {CODE
LOWweb/lite/src/base/time-range.ts79export function convertFrameByStaticTimeRanges(timeRanges: Array<TimeRange>, frame: number): number {CODE
LOWohos/hvigorfile.ts11function overrideSigningConfigIfNeeded() {CODE
Example Usage Blocks6 hits · 9 pts
SeverityFileLineSnippetContext
LOWtools/html-snapshot/bench/run-native.sh22# Usage:COMMENT
LOWtools/html-snapshot/bench/run-bench.sh7# Usage:COMMENT
LOWtools/html-snapshot/bench/run-cases.sh17# Usage:COMMENT
LOWtest/run_html_eval.sh23# Usage:COMMENT
LOWtest/gen_html_comparison.sh45# Usage:COMMENT
LOWcli/npm/pack.sh35# Usage:COMMENT
Deep Nesting6 hits · 6 pts
SeverityFileLineSnippetContext
LOW.codebuddy/skills/squash/scripts/resolve_scope.py37CODE
LOW.codebuddy/skills/squash/scripts/format_report.py31CODE
LOW.codebuddy/skills/squash/scripts/collect_commits.py87CODE
LOW.codebuddy/skills/squash/scripts/collect_commits.py182CODE
LOW.codebuddy/skills/squash/scripts/build_history.py120CODE
LOW.codebuddy/skills/squash/scripts/build_history.py276CODE
Fake / Example Data3 hits · 3 pts
SeverityFileLineSnippetContext
LOWtools/html-snapshot/lib/browser-snapshot.ts516 return (el.value || el.getAttribute('placeholder') || '').trim();CODE
LOWtools/html-snapshot/lib/browser-snapshot.ts521 return (el.value || el.getAttribute('placeholder') || '').trim();CODE
LOWtools/html-snapshot/lib/browser-snapshot.ts2352 const placeholderColor = (!el.value && el.getAttribute('placeholder'))CODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMsrc/pagx/ppt/PPTWriter.h930 // scaffold that both native-text and TextBox shape frames share. The callerCOMMENT
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtest/gen_html_comparison.py21CODE