AI Slop Code Risk Monitor

yikart/AiToEarn

SlopCodeMonitor badge for yikart/AiToEarn Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Let's use AI to Earn!

2.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for yikart/AiToEarn, a TypeScript project with 27,111 GitHub stars. SynthScan examined 369,647 lines of code across 2142 source files, recording 617 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 2.6 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

2.6
Adjusted Signal
2.6
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
27.1K
Stars
TypeScript
Language
369.6K
Lines of Code
2.1K
Files
617
Pattern Hits
2026-10-31
Scan Date
0.01
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 9.2/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 544 finding(s).

Hallucinated Dependency & Supply Chain Risk 2.6/100 · LOW

Are imports declared and package/API names verified? 61 finding(s).

Agent Over-Engineering Ratio 5.5/100 · LOW

Are wrappers, guards, and repeated structures necessary? 396 finding(s).

PR Review Velocity Impact 10.2/100 · LOW

Which changes need focused human review? 617 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 11HIGH 11MEDIUM 12LOW 583

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 617 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers384 hits · 380 pts
SeverityFileLineSnippetContext
LOW⚡…-web/.agents/skills/impeccable/scripts/live-browser.js4507 function isSvelteComponentManifestPath(filePath) {CODE
LOW⚡…-web/.agents/skills/impeccable/scripts/live-browser.js4511 function parseOriginalMarkupElement(originalMarkup) {CODE
LOW⚡…-web/.agents/skills/impeccable/scripts/live-browser.js4517 function findLiveElementForOriginalMarkup(originalMarkup) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js924 function buildAnnotationsForCapture(rect, snapshot) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js964 function stripManualEditRuntimeState(root) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js987 function sanitizedContextOuterHTML(el, maxLength) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1039 function contextElementForManualEdit(selectedEl, rows, ops) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1063 function isUsefulManualEditContext(candidate, leafEl, editedTexts) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1069 function collectManualContextPieces(rootEl, editedTexts) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1093 function isMeaningfulManualContextPiece(text, editedTexts) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1099 function normalizeManualContextText(value) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1242 function detectInsertAxisFromStyle(style) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1412 function placeholderWidthIsImplicit(kind) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1416 function applyPlaceholderSizingStyles(placeholder, sizing) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1433 function materializePlaceholderWidth(placeholder) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1454 function insertCreateDisabledReason({ prompt, comments, strokes }) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1473 function resizePlaceholderFromEdge(start, edge, dx, dy, parentWidth) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1560 function syncPageInteractionCursor() {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1601 function removeInsertPlaceholderDom() {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1619 function buildInsertPlaceholderSnapshotFromDom(anchor, placeholder) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1650 function isInsertGeneratingSession() {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1685 function applyPlaceholderDimensions({ width, height, marginLeft, marginTop }) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1702 function buildPlaceholderResizeHandles() {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1732 function syncPlaceholderResizeHandles() {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1743 function startPlaceholderEdgeResize(edge, e) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js1816 function ensureInsertCreateTooltip() {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js2707 function getMountedSvelteComponentAnchor(session = svelteComponentSession) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js2713 function resolveSvelteComponentAnchor(session = svelteComponentSession) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js2960 function wrapMixedContentTextNodes(rootEl) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js2985 function unwrapMixedContentTextNodes(rootEl) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3209 function normalizeDocumentRefToken(value) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3241 function nearbyEditableTextsForManualEdit(rows, activeEl, originalText, newText) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3355 function schedulePendingDockPosition() {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3370 function playPendingIntroAnimation() {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3417 function readStoredManualApplyState() {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3461 function clearStoredManualApplyState() {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3469 function shouldResumeManualApplyLoading(count) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3503 function updateManualApplyProgressFromChunk(chunk) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3518 function updateManualApplyRepairState(repair, phase) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3529 function refreshLiveControlsForManualApply() {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3786 function manualEditEventForCurrentPage(msg) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3881 function restoreDiscardedManualEdits(entries) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3900 function canRestoreManualEditElement(el, op) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3917 function restoreMixedTextNodeManualEdit(op) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3935 function directMixedTextRestoreNodes(parent) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3945 function findManualEditRestoreElement(op) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js3984 function parseManualEditRefSegment(segment) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js4000 function elementMatchesManualRefSegment(el, segment) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js4546 function findLiveElementForSvelteManifest(manifest) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js4567 async function loadSvelteComponentParams(manifest) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js4587 function buildSveltePropValuesFromLiveElement(liveEl, manifest) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js4601 async function mountSvelteComponentVariant(variantNum) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js4653 function teardownSvelteComponentSession(restoreOriginal) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js4668 function applyOriginalAttrsToSvelteAnchor(el, originalMarkup) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js4683 function commitAcceptedSvelteComponentToDom(sessionId) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js4702 async function injectSvelteComponentsFromManifest(manifestPath, sessionId) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js4830 function waitForSvelteComponentTargetAndRetry({ manifestPath, sessionId, manifest }) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js4830 function waitForSvelteComponentTargetAndRetry({ manifestPath, sessionId, manifest }) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js4850 function abortSvelteComponentInjection(sessionId, message) {CODE
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js4973 function buildSvelteExpressionTextMap(sourceOriginal, liveOriginal) {CODE
324 more matches not shown…
Structural Annotation Overuse114 hits · 224 pts
SeverityFileLineSnippetContext
LOW…rn-web/.agents/skills/impeccable/reference/document.md80### Step 1: Find the design assetsCOMMENT
LOW…rn-web/.agents/skills/impeccable/reference/document.md92### Step 2: Auto-extract what can be auto-extractedCOMMENT
LOW…rn-web/.agents/skills/impeccable/reference/document.md113### Step 3: Ask the user for qualitative languageCOMMENT
LOW…rn-web/.agents/skills/impeccable/reference/document.md125### Step 4: Write DESIGN.mdCOMMENT
LOW…rn-web/.agents/skills/impeccable/reference/document.md331### Step 5: Confirm and refineCOMMENT
LOW…rn-web/.agents/skills/impeccable/reference/document.md343### Step 1: Confirm seed modeCOMMENT
LOW…rn-web/.agents/skills/impeccable/reference/document.md349### Step 2: Five questionsCOMMENT
LOW…rn-web/.agents/skills/impeccable/reference/document.md377### Step 3: Write seed DESIGN.mdCOMMENT
LOW…rn-web/.agents/skills/impeccable/reference/document.md398### Step 4: ConfirmCOMMENT
LOW⚡…toearn-web/.agents/skills/impeccable/reference/live.md426### Step 1: Identify where the element actually livesCOMMENT
LOW⚡…toearn-web/.agents/skills/impeccable/reference/live.md436### Step 2: Show three variants in the DOM for previewCOMMENT
LOW⚡…toearn-web/.agents/skills/impeccable/reference/live.md446### Step 3: On accept, write to true sourceCOMMENT
LOW⚡…toearn-web/.agents/skills/impeccable/reference/live.md456### Step 4: On discard, clean up the served fileCOMMENT
LOW…arn-web/.agents/skills/impeccable/reference/extract.md5## Step 1: Discover the Design SystemCOMMENT
LOW…arn-web/.agents/skills/impeccable/reference/extract.md11## Step 2: Identify PatternsCOMMENT
LOW…arn-web/.agents/skills/impeccable/reference/extract.md24## Step 3: Plan ExtractionCOMMENT
LOW⚡…arn-web/.agents/skills/impeccable/reference/extract.md36## Step 4: Extract & EnrichCOMMENT
LOW⚡…arn-web/.agents/skills/impeccable/reference/extract.md44## Step 5: MigrateCOMMENT
LOW⚡…arn-web/.agents/skills/impeccable/reference/extract.md53## Step 6: DocumentCOMMENT
LOW…toearn-web/.agents/skills/impeccable/reference/init.md11## Step 1: Load current stateCOMMENT
LOW…toearn-web/.agents/skills/impeccable/reference/init.md26## Step 2: Explore the codebaseCOMMENT
LOW…toearn-web/.agents/skills/impeccable/reference/init.md46## Step 3: Ask strategic questions (for PRODUCT.md)COMMENT
LOW…toearn-web/.agents/skills/impeccable/reference/init.md91## Step 4: Write PRODUCT.mdCOMMENT
LOW…toearn-web/.agents/skills/impeccable/reference/init.md127## Step 5: Decide on DESIGN.mdCOMMENT
LOW…toearn-web/.agents/skills/impeccable/reference/init.md138## Step 6: Configure live mode (when code exists)COMMENT
LOW…toearn-web/.agents/skills/impeccable/reference/init.md154## Step 7: Recommend starting points, then wrap upCOMMENT
LOW…oearn-web/.agents/skills/impeccable/reference/craft.md22## Step 0: Project FoundationCOMMENT
LOW…oearn-web/.agents/skills/impeccable/reference/craft.md43## Step 1: Shape the DesignCOMMENT
LOW…oearn-web/.agents/skills/impeccable/reference/craft.md55## Step 2: Load ReferencesCOMMENT
LOW…oearn-web/.agents/skills/impeccable/reference/craft.md69## Step 3: Visual Direction & Assets (Harness-Gated)COMMENT
LOW…oearn-web/.agents/skills/impeccable/reference/craft.md77## Step 4: Build to Production QualityCOMMENT
LOW…oearn-web/.agents/skills/impeccable/reference/craft.md101## Step 5: Iterate VisuallyCOMMENT
LOW…oearn-web/.agents/skills/impeccable/reference/craft.md115## Step 6: PresentCOMMENT
LOW…oearn-web/.agents/skills/impeccable/reference/teach.md10## Step 1: Load current stateCOMMENT
LOW…oearn-web/.agents/skills/impeccable/reference/teach.md31## Step 2: Explore the codebaseCOMMENT
LOW…oearn-web/.agents/skills/impeccable/reference/teach.md51## Step 3: Ask strategic questions (for PRODUCT.md)COMMENT
LOW…oearn-web/.agents/skills/impeccable/reference/teach.md97## Step 4: Write PRODUCT.mdCOMMENT
LOW…oearn-web/.agents/skills/impeccable/reference/teach.md133## Step 5: Decide on DESIGN.mdCOMMENT
LOW…oearn-web/.agents/skills/impeccable/reference/teach.md144## Step 6: Confirm and wrap upCOMMENT
LOW⚡…at/wechat-official/wechat-official-publish.provider.ts74 // Step 1: Upload cover image for thumb_media_idCOMMENT
LOW⚡…at/wechat-official/wechat-official-publish.provider.ts84 // Step 2: Upload inline images and replace URLs with media IDsCOMMENT
LOW…at/wechat-official/wechat-official-publish.provider.ts96 // Step 3: Build articleCOMMENT
LOW⚡…at/wechat-official/wechat-official-publish.provider.ts108 // Step 4: Create draftCOMMENT
LOW⚡…at/wechat-official/wechat-official-publish.provider.ts111 // Step 5: Submit for free publishCOMMENT
LOW…/core/channels/platforms/kwai/kwai-publish.provider.ts61 // Step 1: Initialize uploadCOMMENT
LOW⚡…/core/channels/platforms/kwai/kwai-publish.provider.ts93 // Step 4: Build caption with topicsCOMMENT
LOW⚡…/core/channels/platforms/kwai/kwai-publish.provider.ts96 // Step 5: Fetch cover imageCOMMENT
LOW…/core/channels/platforms/kwai/kwai-publish.provider.ts124 // Step 6: Publish the videoCOMMENT
LOW…rc/core/channels/publish/flows/publish-flow.service.ts142 // Step 1: common content validationCOMMENT
LOW…rc/core/channels/publish/flows/publish-flow.service.ts159 // Step 2: platform-specific validation (only if step 1 passed)COMMENT
LOW…rc/core/channels/publish/flows/publish-flow.service.ts171 // Step 3: media probe + validation (only if step 1+2 passed)COMMENT
LOW⚡…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts75### Step 0: Understand RequirementsCOMMENT
LOW⚡…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts79### Step 1: Analyze and Load Skills (MANDATORY)COMMENT
LOW…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts128### Step 2: Execution Plan (MANDATORY - ALWAYS SHOW)COMMENT
LOW…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts200### Step 3: Content Metadata (MANDATORY)COMMENT
LOW…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts220### Step 4: Media GenerationCOMMENT
LOW⚡…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts256### Step 5: Async Task HandlingCOMMENT
LOW⚡…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts264### Step 6: Content SavingCOMMENT
LOW⚡…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts272### Step 7: PublishingCOMMENT
LOW⚡…nd/apps/aitoearn-ai/src/core/agent/mcp/subtitle.mcp.ts143 // Step 1: 使用 FFmpeg 提取音频COMMENT
54 more matches not shown…
Hallucination Indicators11 hits · 130 pts
SeverityFileLineSnippetContext
CRITICAL…/src/core/draft-generation/draft-generation.service.ts231 const modelConfig = config.ai.models.video.generation.find(m => m.name === model)CODE
CRITICAL…/src/core/draft-generation/draft-generation.service.ts328 const generationModel = config.ai.models.image.generation.find(model => model.name === imageModel)CODE
CRITICAL…/src/core/draft-generation/draft-generation.service.ts329 const editModel = config.ai.models.image.edit.find(model => model.name === imageModel)CODE
CRITICAL…/src/core/draft-generation/draft-generation.service.ts373 const modelConfig = config.ai.models.video.generation.find(m => m.name === dto.model)CODE
CRITICAL…nd/apps/aitoearn-ai/src/core/ai/video/video.service.ts70 const modelConfig = this.modelsConfigService.config.video.generation.find(m => m.name === model)CODE
CRITICAL…rn-ai/src/core/ai/video/dashscope/dashscope.service.ts59 const modelConfig = this.modelsConfigService.config.video.generation.find(m => m.name === model)CODE
CRITICAL…earn-ai/src/core/ai/video/relay/relay-video.service.ts32 const modelConfig = this.modelsConfigService.config.video.generation.find(m => m.name === request.model)CODE
CRITICAL⚡…nd/apps/aitoearn-ai/src/core/ai/image/image.service.ts43 ? this.modelsConfigService.config.image.generation.find(item => item.name === model)CODE
CRITICAL⚡…nd/apps/aitoearn-ai/src/core/ai/image/image.service.ts44 : this.modelsConfigService.config.image.edit.find(item => item.name === model)CODE
CRITICAL⚡…nd/apps/aitoearn-ai/src/core/ai/image/image.service.ts51 ? this.modelsConfigService.config.image.generation.find(item => item.name === model)CODE
CRITICAL⚡…nd/apps/aitoearn-ai/src/core/ai/image/image.service.ts52 : this.modelsConfigService.config.image.edit.find(item => item.name === model)CODE
Verbosity Indicators26 hits · 51 pts
SeverityFileLineSnippetContext
LOW⚡…at/wechat-official/wechat-official-publish.provider.ts74 // Step 1: Upload cover image for thumb_media_idCOMMENT
LOW⚡…at/wechat-official/wechat-official-publish.provider.ts84 // Step 2: Upload inline images and replace URLs with media IDsCOMMENT
LOW…at/wechat-official/wechat-official-publish.provider.ts96 // Step 3: Build articleCOMMENT
LOW⚡…at/wechat-official/wechat-official-publish.provider.ts108 // Step 4: Create draftCOMMENT
LOW⚡…at/wechat-official/wechat-official-publish.provider.ts111 // Step 5: Submit for free publishCOMMENT
LOW…/core/channels/platforms/kwai/kwai-publish.provider.ts61 // Step 1: Initialize uploadCOMMENT
LOW⚡…/core/channels/platforms/kwai/kwai-publish.provider.ts93 // Step 4: Build caption with topicsCOMMENT
LOW⚡…/core/channels/platforms/kwai/kwai-publish.provider.ts96 // Step 5: Fetch cover imageCOMMENT
LOW…/core/channels/platforms/kwai/kwai-publish.provider.ts124 // Step 6: Publish the videoCOMMENT
LOW…rc/core/channels/publish/flows/publish-flow.service.ts142 // Step 1: common content validationCOMMENT
LOW…rc/core/channels/publish/flows/publish-flow.service.ts159 // Step 2: platform-specific validation (only if step 1 passed)COMMENT
LOW…rc/core/channels/publish/flows/publish-flow.service.ts171 // Step 3: media probe + validation (only if step 1+2 passed)COMMENT
LOW⚡…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts75### Step 0: Understand RequirementsCOMMENT
LOW⚡…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts79### Step 1: Analyze and Load Skills (MANDATORY)COMMENT
LOW…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts128### Step 2: Execution Plan (MANDATORY - ALWAYS SHOW)COMMENT
LOW…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts200### Step 3: Content Metadata (MANDATORY)COMMENT
LOW…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts220### Step 4: Media GenerationCOMMENT
LOW⚡…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts256### Step 5: Async Task HandlingCOMMENT
LOW⚡…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts264### Step 6: Content SavingCOMMENT
LOW⚡…end/apps/aitoearn-ai/src/core/agent/agent.constants.ts272### Step 7: PublishingCOMMENT
LOW⚡…nd/apps/aitoearn-ai/src/core/agent/mcp/subtitle.mcp.ts143 // Step 1: 使用 FFmpeg 提取音频COMMENT
LOW⚡…nd/apps/aitoearn-ai/src/core/agent/mcp/subtitle.mcp.ts148 // Step 2: 构建提示词COMMENT
LOW⚡…nd/apps/aitoearn-ai/src/core/agent/mcp/subtitle.mcp.ts151 // Step 3: 调用 Gemini 进行转录COMMENT
LOW…nd/apps/aitoearn-ai/src/core/agent/mcp/subtitle.mcp.ts174 // Step 4: 解析响应COMMENT
LOW⚡…nd/apps/aitoearn-ai/src/core/agent/mcp/subtitle.mcp.ts187 // Step 5: 生成 SRT 格式COMMENT
LOW⚡…nd/apps/aitoearn-ai/src/core/agent/mcp/subtitle.mcp.ts190 // Step 6: 上传 SRT 文件COMMENT
Fake / Example Data46 hits · 47 pts
SeverityFileLineSnippetContext
LOW…oject/aitoearn-web/.agents/skills/taste-skill/SKILL.md615### 9.D Content & Data ("Jane Doe" Effect)COMMENT
LOW…oject/aitoearn-web/.agents/skills/taste-skill/SKILL.md616* **NO generic names.** "John Doe", "Sarah Chan", "Jack Su" → use creative, realistic, locale-appropriate names.COMMENT
LOWproject/aitoearn-web/src/app/i18n/locales/ja/chat.json3 "placeholder": "新しい寿司盛り合わせの8秒縦型プロモーション動画を作成してください。アップテンポなジャズ音楽、新鮮なサーモンのクローズアップ、字幕を生成、最後にロゴを表示。",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/ja/welcome.json23 "placeholder": "レストランを検索",CODE
LOW…oject/aitoearn-web/src/app/i18n/locales/ja/common.json72 "placeholder": "選択してください...",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/ja/account.json467 "placeholder": "プロキシアドレスを入力",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/ja/publish.json306 "placeholder": "プライバシーレベルを選択",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/ja/publish.json340 "placeholder": "申告タイプを選択",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/ja/publish.json437 "placeholder": "Paste an extension link",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/zh-CN/chat.json3 "placeholder": "为我们的新品寿司拼盘制作一个8秒的竖屏宣传视频。使用欢快的爵士乐,新鲜三文鱼的特写镜头,生成字幕,最后展示我们的logo。",CODE
LOW…t/aitoearn-web/src/app/i18n/locales/zh-CN/welcome.json23 "placeholder": "输入您的餐厅名称",CODE
LOW…ct/aitoearn-web/src/app/i18n/locales/zh-CN/common.json74 "placeholder": "请选择...",CODE
LOW…oject/aitoearn-web/src/app/i18n/locales/zh-CN/dev.json179 "placeholder": "粘贴扩展链接",CODE
LOW…t/aitoearn-web/src/app/i18n/locales/zh-CN/account.json466 "placeholder": "请输入代理地址",CODE
LOW…t/aitoearn-web/src/app/i18n/locales/zh-CN/publish.json315 "placeholder": "请选择隐私级别",CODE
LOW…t/aitoearn-web/src/app/i18n/locales/zh-CN/publish.json349 "placeholder": "请选择声明类型",CODE
LOW…t/aitoearn-web/src/app/i18n/locales/zh-CN/publish.json483 "placeholder": "粘贴扩展链接",CODE
LOWproject/aitoearn-web/src/app/i18n/locales/de/chat.json3 "placeholder": "Erstellen Sie ein 8-Sekunden-Hochformat-Werbevideo für unsere neue Sushi-Platte. Verwenden Sie fröhlCODE
LOW…ject/aitoearn-web/src/app/i18n/locales/de/welcome.json23 "placeholder": "Finden Sie Ihr Restaurant",CODE
LOW…oject/aitoearn-web/src/app/i18n/locales/de/common.json72 "placeholder": "Auswählen...",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/de/account.json467 "placeholder": "Proxy-Adresse eingeben",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/de/publish.json307 "placeholder": "Datenschutzstufe auswählen",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/de/publish.json341 "placeholder": "Erklärungstyp auswählen",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/de/publish.json438 "placeholder": "Paste an extension link",CODE
LOWproject/aitoearn-web/src/app/i18n/locales/ko/chat.json3 "placeholder": "새로운 스시 플래터를 위한 8초 세로형 홍보 영상을 만들어주세요. 경쾌한 재즈 음악, 신선한 연어 클로즈업, 자막 생성, 마지막에 로고를 표시해주세요.",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/ko/welcome.json23 "placeholder": "레스토랑 찾기",CODE
LOW…oject/aitoearn-web/src/app/i18n/locales/ko/common.json72 "placeholder": "선택...",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/ko/account.json467 "placeholder": "프록시 주소 입력",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/ko/publish.json307 "placeholder": "공개 수준 선택",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/ko/publish.json341 "placeholder": "신고 유형 선택",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/ko/publish.json438 "placeholder": "Paste an extension link",CODE
LOWproject/aitoearn-web/src/app/i18n/locales/fr/chat.json3 "placeholder": "Créez une vidéo promotionnelle verticale de 8 secondes pour notre nouveau plateau de sushi. UtilisezCODE
LOW…ject/aitoearn-web/src/app/i18n/locales/fr/welcome.json23 "placeholder": "Trouvez votre restaurant",CODE
LOW…oject/aitoearn-web/src/app/i18n/locales/fr/common.json72 "placeholder": "Sélectionner...",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/fr/account.json467 "placeholder": "Entrez l'adresse proxy",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/fr/publish.json307 "placeholder": "Sélectionnez le niveau de confidentialité",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/fr/publish.json341 "placeholder": "Sélectionnez le type de déclaration",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/fr/publish.json438 "placeholder": "Paste an extension link",CODE
LOWproject/aitoearn-web/src/app/i18n/locales/en/chat.json3 "placeholder": "Create an 8-second vertical promo video for our new Sushi Platter. Use upbeat jazz music, close-up sCODE
LOW…ject/aitoearn-web/src/app/i18n/locales/en/welcome.json23 "placeholder": "Find your restaurant",CODE
LOW…oject/aitoearn-web/src/app/i18n/locales/en/common.json74 "placeholder": "Select...",CODE
LOWproject/aitoearn-web/src/app/i18n/locales/en/dev.json179 "placeholder": "https://example.com",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/en/account.json467 "placeholder": "Enter proxy address",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/en/publish.json314 "placeholder": "Select privacy level",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/en/publish.json348 "placeholder": "Select declaration type",CODE
LOW…ject/aitoearn-web/src/app/i18n/locales/en/publish.json482 "placeholder": "Paste an extension link",CODE
Synthetic Comment Markers7 hits · 45 pts
SeverityFileLineSnippetContext
HIGH…ccable/scripts/detector/detect-antipatterns-browser.js104 // ── AI slop: tells that something was AI-generated ──COMMENT
HIGH…ccable/scripts/detector/detect-antipatterns-browser.js1375 // (the "card-icon" pattern from many AI-generated demos).COMMENT
HIGH…ect/aitoearn-web/src/app/i18n/locales/en/material.json9 "description": "Images and videos automatically generated by AI",CODE
HIGH…ct/aitoearn-web/src/app/[lng]/accounts/accountCore.tsx104 // Handle AI-generated content paramsCOMMENT
HIGH…ct/aitoearn-web/src/app/[lng]/accounts/accountCore.tsx245 // Fill AI-generated data after publish dialog opensCOMMENT
HIGH…ct/aitoearn-web/src/app/[lng]/accounts/accountCore.tsx494 ossUrl: media.url, // AI-generated images already have ossUrlCODE
HIGHproject/aitoearn-backend/.agents/skills/triage/SKILL.md13> *This was generated by AI during triage.*CODE
Decorative Section Separators12 hits · 39 pts
SeverityFileLineSnippetContext
MEDIUM⚡…ccable/scripts/detector/detect-antipatterns-browser.js2756// ─── Clipped overflow container ───────────────────────────────────────────────COMMENT
MEDIUM⚡…ccable/scripts/detector/detect-antipatterns-browser.js2792// ─── Text overflow (browser-only: needs scrollWidth/clientWidth) ──────────────COMMENT
MEDIUM…ccable/scripts/detector/detect-antipatterns-browser.js15// ─── Section 1: Constants ───────────────────────────────────────────────────COMMENT
MEDIUM…ccable/scripts/detector/detect-antipatterns-browser.js477// ─── Section 2: Color Utilities ─────────────────────────────────────────────COMMENT
MEDIUM…ccable/scripts/detector/detect-antipatterns-browser.js594// ─── Section 3: Pure Detection ──────────────────────────────────────────────COMMENT
MEDIUM…ccable/scripts/detector/detect-antipatterns-browser.js1173// ─── Section 4: resolveBackground (unified) ─────────────────────────────────COMMENT
MEDIUM…ccable/scripts/detector/detect-antipatterns-browser.js1317// ─── Section 5: Element Adapters ────────────────────────────────────────────COMMENT
MEDIUM…ccable/scripts/detector/detect-antipatterns-browser.js2358// ─── Section 6: Page-Level Checks ───────────────────────────────────────────COMMENT
MEDIUM…ccable/scripts/detector/detect-antipatterns-browser.js2612// ─── Cream / beige palette (the default "tasteful" AI surface) ────────────────COMMENT
MEDIUM…ccable/scripts/detector/detect-antipatterns-browser.js2679// ─── Oversized hero headline ────────────────────────────────────────────────COMMENT
MEDIUM…ccable/scripts/detector/detect-antipatterns-browser.js2711// ─── GPT tell: hairline border + wide diffuse shadow (gated --gpt) ────────────COMMENT
MEDIUM…ccable/scripts/detector/detect-antipatterns-browser.js2819// ─── Section 7: Browser UI (IS_BROWSER only) ────────────────────────────────COMMENT
Magic Placeholder Names4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHREADME_JA.md127 "x-api-key": "your-api-key"CODE
HIGHREADME_JA.md136MCP 設定に **MCP アドレス** と **認証ヘッダー**(`x-api-key: your-api-key`)を入力してください。各ツールの手順とスクリーンショット入り解説は [docs の MCP ガイド](https://doCODE
HIGHREADME_EN.md135 "x-api-key": "your-api-key"CODE
HIGHREADME_EN.md144In your MCP settings, fill in the **MCP URL** and the **Auth Header** (`x-api-key: your-api-key`). Step-by-step instructCODE
Over-Commented Block11 hits · 6 pts
SeverityFileLineSnippetContext
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js341 // Two host-page behaviors break us when the picked element lives inside aCOMMENT
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js2621 }COMMENT
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js6441 // background fills with ink and the lighter content punches holes instead.COMMENT
LOW…-web/.agents/skills/impeccable/scripts/live-browser.js6461 // transparent region stays transparent (the live backdrop shows through theCOMMENT
LOW…ccable/scripts/detector/detect-antipatterns-browser.js881 siblingTag, siblingText, siblingTextTransform,COMMENT
LOW…ccable/scripts/detector/detect-antipatterns-browser.js1861 } else if (hMin < hThresh) {COMMENT
LOW…ccable/scripts/detector/detect-antipatterns-browser.js1941 const PAD_THRESHOLD = 2;COMMENT
LOW…ccable/scripts/detector/detect-antipatterns-browser.js2021 // is the absence of the container entirely.COMMENT
LOW…ccable/scripts/detector/detect-antipatterns-browser.js2821if (IS_BROWSER) {COMMENT
LOW…/.agents/skills/diagnose/scripts/hitl-loop.template.sh1#!/usr/bin/env bashCOMMENT
LOW…rver/src/core/publish-record/publish-record.service.ts21@Injectable()COMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…/.agents/skills/diagnose/scripts/hitl-loop.template.sh6# Usage:COMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOW.github/workflows/backend-build.yml121 # Check if manual modeCOMMENT