AI Slop Code Risk Monitor

ionic-team/ionic-framework

SlopCodeMonitor badge for ionic-team/ionic-framework Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

A powerful cross-platform UI toolkit for building native-quality iOS, Android, and Progressive Web Apps with HTML, CSS, and JavaScript.

0.8 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for ionic-team/ionic-framework, a TypeScript project with 52,734 GitHub stars. SynthScan examined 564,392 lines of code across 2980 source files, recording 316 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 0.8 (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.

0.8
Adjusted Signal
0.8
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
52.7K
Stars
TypeScript
Language
564.4K
Lines of Code
3.0K
Files
316
Pattern Hits
2026-10-31
Scan Date
0.00
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 1.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 2.0/100 · LOW

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

Agent Over-Engineering Ratio 1.1/100 · LOW

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

PR Review Velocity Impact 3.4/100 · LOW

Which changes need focused human review? 316 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 1HIGH 0MEDIUM 31LOW 284

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 316 distinct pattern matches across 12 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.

Fake / Example Data186 hits · 220 pts
SeverityFileLineSnippetContext
LOWcore/src/components.d.ts1417 "placeholder"?: string;CODE
LOWcore/src/components.d.ts2898 "placeholder": string;CODE
LOWcore/src/components.d.ts3102 "placeholder"?: string;CODE
LOWcore/src/components.d.ts3441 "placeholder"?: string;CODE
LOWcore/src/components.d.ts6581 "placeholder"?: string;CODE
LOWcore/src/components.d.ts8097 "placeholder"?: string;CODE
LOWcore/src/components.d.ts8326 "placeholder"?: string;CODE
LOWcore/src/components.d.ts8682 "placeholder"?: string;CODE
LOWcore/src/components.d.ts9226 "placeholder": string;CODE
LOWcore/src/components.d.ts9505 "placeholder": string;CODE
LOWcore/src/components.d.ts9548 "placeholder": string;CODE
LOWcore/src/components.d.ts9627 "placeholder": string;CODE
LOWcore/src/components/searchbar/test/basic/index.html148 dynamicAttr.getAttribute('placeholder') === 'Search' ? 'Enter a Search Term' : 'Search';CODE
LOWcore/src/components/searchbar/test/basic/index.html149 dynamicAttr.setAttribute('placeholder', attrPlaceholder);CODE
LOW…e/src/components/searchbar/test/basic/searchbar.e2e.ts93 await expect(nativeInput).toHaveAttribute('placeholder', 'My Placeholder');CODE
LOW…e/src/components/searchbar/test/basic/searchbar.e2e.ts179 <ion-searchbar show-clear-button="focus" value="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce nCODE
LOW…e/src/components/searchbar/test/basic/searchbar.e2e.ts179 <ion-searchbar show-clear-button="focus" value="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce nCODE
LOW…e/src/components/searchbar/test/basic/searchbar.e2e.ts191 <ion-searchbar show-clear-button="always" value="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce CODE
LOW…e/src/components/searchbar/test/basic/searchbar.e2e.ts191 <ion-searchbar show-clear-button="always" value="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce CODE
LOW…re/src/components/footer/test/scroll-target/index.html43 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas blandit, justo vitae rhoncus porttitor,CODE
LOW…re/src/components/footer/test/scroll-target/index.html43 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas blandit, justo vitae rhoncus porttitor,CODE
LOWcore/src/components/footer/test/fade/index.html34 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas blandit, justo vitae rhoncus porttitor,CODE
LOWcore/src/components/footer/test/fade/index.html34 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas blandit, justo vitae rhoncus porttitor,CODE
LOWcore/src/components/loading/test/standalone/index.html28 onclick="openLoading({duration: 2000, content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ea volCODE
LOWcore/src/components/loading/test/standalone/index.html28 onclick="openLoading({duration: 2000, content: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ea volCODE
LOWcore/src/components/loading/test/basic/index.html101 onclick="openLoading({duration: 2000, message: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ea vCODE
LOWcore/src/components/loading/test/basic/index.html101 onclick="openLoading({duration: 2000, message: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ea vCODE
LOW…ents/input/test/item/scroll-assist-double-click.e2e.ts8 const longText = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. '.repeat(40);CODE
LOW…ents/input/test/item/scroll-assist-double-click.e2e.ts8 const longText = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. '.repeat(40);CODE
LOW…/components/item-sliding/test/scroll-target/index.html35 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur faucibus nulla a nunc tincidunt semper.CODE
LOW…/components/item-sliding/test/scroll-target/index.html35 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur faucibus nulla a nunc tincidunt semper.CODE
LOW⚡…/components/item-sliding/test/scroll-target/index.html55 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur faucibus nulla a nunc tincidunt semper.CODE
LOW⚡…/components/item-sliding/test/scroll-target/index.html55 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur faucibus nulla a nunc tincidunt semper.CODE
LOW⚡…/components/item-sliding/test/scroll-target/index.html63 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur faucibus nulla a nunc tincidunt semper.CODE
LOW⚡…/components/item-sliding/test/scroll-target/index.html63 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur faucibus nulla a nunc tincidunt semper.CODE
LOW⚡…/components/item-sliding/test/scroll-target/index.html71 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur faucibus nulla a nunc tincidunt semper.CODE
LOW⚡…/components/item-sliding/test/scroll-target/index.html71 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur faucibus nulla a nunc tincidunt semper.CODE
LOW⚡…/components/item-sliding/test/scroll-target/index.html79 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur faucibus nulla a nunc tincidunt semper.CODE
LOW⚡…/components/item-sliding/test/scroll-target/index.html79 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur faucibus nulla a nunc tincidunt semper.CODE
LOWcore/src/components/datetime/test/cover/index.html46 <ion-text class="placeholder">Select a date</ion-text>CODE
LOWcore/src/components/datetime/test/cover/index.html62 text.classList.remove('placeholder');CODE
LOW⚡core/src/components/alert/test/translucent/index.html131 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum hendrerit diam lorem, a faucibus turpisCODE
LOW⚡core/src/components/alert/test/translucent/index.html131 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum hendrerit diam lorem, a faucibus turpisCODE
LOW⚡core/src/components/alert/test/standalone/index.html92 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum hendrerit diam lorem, a faucibus turpisCODE
LOW⚡core/src/components/alert/test/standalone/index.html92 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum hendrerit diam lorem, a faucibus turpisCODE
LOW⚡core/src/components/alert/test/basic/index.html89 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum hendrerit diam lorem, a faucibus turpisCODE
LOW⚡core/src/components/alert/test/basic/index.html89 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum hendrerit diam lorem, a faucibus turpisCODE
LOWcore/src/components/toast/test/standalone/index.html35 onclick="openToast({message: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ea voluptatibus quibusdaCODE
LOWcore/src/components/toast/test/standalone/index.html35 onclick="openToast({message: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ea voluptatibus quibusdaCODE
LOWcore/src/components/toast/test/layout/index.html62 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum in elit varius, maximus sem in, bibenduCODE
LOWcore/src/components/toast/test/layout/index.html62 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum in elit varius, maximus sem in, bibenduCODE
LOWcore/src/components/toast/test/basic/index.html67 onclick="openToast({message: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum in elit variCODE
LOWcore/src/components/toast/test/basic/index.html67 onclick="openToast({message: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum in elit variCODE
LOW⚡core/src/components/label/test/headings/index.html29 Lorem, ipsum dolor sit amet consectetur adipisicing elit. Architecto laborum, voluptatum corporisCODE
LOW⚡core/src/components/label/test/headings/index.html36 Lorem, ipsum dolor sit amet consectetur adipisicing elit. Architecto laborum, voluptatum corporisCODE
LOW⚡core/src/components/label/test/headings/index.html43 <h1>Lorem, ipsum dolor sit amet consectetur adipisicing elit.</h1>CODE
LOW⚡core/src/components/label/test/headings/index.html48 <h1>Lorem, ipsum dolor sit amet consectetur adipisicing elit.</h1>CODE
LOW⚡core/src/components/label/test/headings/index.html54 Lorem, ipsum dolor sit amet consectetur adipisicing elit. Architecto laborum, voluptatum corporisCODE
LOW⚡core/src/components/label/test/headings/index.html62 Lorem, ipsum dolor sit amet consectetur adipisicing elit. Architecto laborum, voluptatum corporisCODE
LOW⚡core/src/components/label/test/headings/index.html70 Lorem, ipsum dolor sit amet consectetur adipisicing elit. Architecto laborum, voluptatum corporisCODE
126 more matches not shown…
Decorative Section Separators28 hits · 84 pts
SeverityFileLineSnippetContext
MEDIUMscripts/release-patch.sh41# ── Colors ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh49# ── Helpers ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh290# ── Argument parsing ──────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh344# ── Internal config ───────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh432# ── Ticket lookup only (--tickets) ────────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh458# ── Banner ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh568# ── State recovery (when resuming from a later step) ──────────────────────────COMMENT
MEDIUMscripts/release-patch.sh654# ── Step 1: Preflight checks ──────────────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh692# ── Step 2: Changelog check ──────────────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh722# ── Step 3: Code freeze ───────────────────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh734# ── Step 4: Create release branch ─────────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh761# ── Step 5: Trigger release workflow ─────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh818# ── Step 6: Create PRs ────────────────────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh861# ── Step 7: Wait and merge ────────────────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh962# ── Step 8: Jira release ──────────────────────────────────────────────────────COMMENT
MEDIUMscripts/release-patch.sh1007# ── Post-release ──────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/vue-router/scripts/test_runner.sh8# ---------------------------------------------------------------------------COMMENT
MEDIUMpackages/vue-router/scripts/test_runner.sh36# ---------------------------------------------------------------------------COMMENT
MEDIUMpackages/vue-router/scripts/test_runner.sh125# ---------------------------------------------------------------------------COMMENT
MEDIUMpackages/vue-router/scripts/test_runner.sh127# ---------------------------------------------------------------------------COMMENT
MEDIUMpackages/vue-router/scripts/test_runner.sh146# ---------------------------------------------------------------------------COMMENT
MEDIUMpackages/vue-router/scripts/test_runner.sh149# ---------------------------------------------------------------------------COMMENT
MEDIUMpackages/vue-router/scripts/test_runner.sh163# ---------------------------------------------------------------------------COMMENT
MEDIUMpackages/vue-router/scripts/test_runner.sh165# ---------------------------------------------------------------------------COMMENT
MEDIUMpackages/vue-router/scripts/test_runner.sh223# ---------------------------------------------------------------------------COMMENT
MEDIUMpackages/vue-router/scripts/test_runner.sh226# ---------------------------------------------------------------------------COMMENT
MEDIUMpackages/react-router/scripts/test_runner.sh8# ---------------------------------------------------------------------------COMMENT
MEDIUMpackages/react-router/scripts/test_runner.sh16# ---------------------------------------------------------------------------COMMENT
Over-Commented Block43 hits · 43 pts
SeverityFileLineSnippetContext
LOWcore/scripts/vercel-build.sh1#!/bin/bashCOMMENT
LOWcore/src/css/palettes/high-contrast-dark.scss81COMMENT
LOWcore/src/components/radio/radio.md.vars.scss41/// opacity is applied on top of the transparent color soCOMMENT
LOWcore/src/components/item-sliding/item-sliding.tsx501 // The logic required to know when the sliding item should close (openAmount=0)COMMENT
LOWcore/src/components/checkbox/checkbox.md.vars.scss21/// @prop - Border style of the checkbox iconCOMMENT
LOWcore/src/components/toggle/toggle.ios.scss161 // transform by -100% + handle width + 6px (width addition on activated)COMMENT
LOWcore/src/components/nav/test/nav-controller.spec.ts881COMMENT
LOWcore/src/components/range/range.vars.scss1/// @prop - Top margin of range's label when in an itemCOMMENT
LOWcore/src/components/router/utils/matching.ts61 // s2: 'b'COMMENT
LOWcore/src/themes/ionic.functions.string.scss101 @each $selector in $selectors {COMMENT
LOWcore/src/themes/ionic.functions.string.scss141 COMMENT
LOWcore/src/themes/ionic.functions.string.scss181 $updated-element: str-replace($element, ":host", ":host(#{$addHostSelector})");COMMENT
LOWcore/src/themes/ionic.globals.scss41COMMENT
LOWcore/src/themes/ionic.theme.default.scss1// Ionic ThemeCOMMENT
LOWcore/src/themes/ionic.functions.color.scss1// Gets the active color's css variable from a variation. Alpha is optional.COMMENT
LOWcore/src/themes/ionic.mixins.scss121COMMENT
LOWcore/src/themes/ionic.mixins.scss181}COMMENT
LOWcore/src/themes/ionic.mixins.scss341 -webkit-#{$prop}-end: $end;COMMENT
LOWcore/src/themes/ionic.mixins.scss361// @param {string} $startCOMMENT
LOWcore/src/themes/ionic.mixins.scss381// ----------------------------------------------------------COMMENT
LOWscripts/release-patch.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/release-patch.sh21# ./scripts/release-patch.sh 8.8.2 --dry-runCOMMENT
LOWscripts/release-patch.sh261# Prompts for confirmation, defaulting to yes. Takes a single keypress, soCOMMENT
LOWpackages/vue/test/base/tests/e2e/plugins/index.js1/// <reference types="cypress" />COMMENT
LOWpackages/vue/test/base/tests/e2e/support/index.js1// ***********************************************************COMMENT
LOWpackages/vue/test/base/tests/e2e/support/commands.js1// ***********************************************COMMENT
LOW…kages/angular/test/code-split/src/theme/variables.scss1// For information on how to create your own theme, please refer to:COMMENT
LOWpackages/vue-router/scripts/test_runner.sh1#!/bin/bashCOMMENT
LOWpackages/vue-router/scripts/test_runner.sh21# 6. Run Playwright e2e testsCOMMENT
LOWpackages/react/test/base/tests/e2e/plugins/index.js1/// <reference types="cypress" />COMMENT
LOWpackages/react/test/base/tests/e2e/support/index.js1// ***********************************************************COMMENT
LOWpackages/react/test/base/tests/e2e/support/commands.js1// ***********************************************COMMENT
LOWpackages/react/test/base/tests/e2e/support/commands.js21// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })COMMENT
LOW…ages/react-router/test/base/tests/e2e/plugins/index.js1/// <reference types="cypress" />COMMENT
LOW…ages/react-router/test/base/tests/e2e/support/index.js1// ***********************************************************COMMENT
LOW…s/react-router/test/base/tests/e2e/support/commands.js1/// <reference types="cypress" />COMMENT
LOWpackages/react-router/test/base/src/setupTests.ts1// jest-dom adds custom jest matchers for asserting on DOM nodes.COMMENT
LOWpackages/react-router/scripts/test_runner.sh1#!/bin/bashCOMMENT
LOWpackages/react-router/src/ReactRouter/StackManager.tsx381 // When navigating away from a tabbed section, the parent outlet firesCOMMENT
LOW.github/workflows/release.yml101 # Pull the latest version of the referenceCOMMENT
LOW.github/workflows/update-screenshots.yml1name: 'Update Reference Screenshots'COMMENT
LOW.github/workflows/update-screenshots.yml61 steps:COMMENT
LOW…thub/workflows/actions/test-core-screenshot/action.yml41 # changed so they can be correctly restoredCOMMENT
Hyper-Verbose Identifiers35 hits · 39 pts
SeverityFileLineSnippetContext
LOW…/test/playwright/matchers/toHaveReceivedEventDetail.ts6export function toHaveReceivedEventDetail(eventSpy: EventSpy, eventDetail: any) {CODE
LOW⚡core/src/components/alert/test/translucent/index.html137 function presentAlertMultipleButtons() {CODE
LOW⚡core/src/components/alert/test/standalone/index.html97 function presentAlertMultipleButtons() {CODE
LOW⚡core/src/components/alert/test/basic/index.html94 function presentAlertMultipleButtons() {CODE
LOWcore/src/components/alert/test/basic/index.html141 function presentAlertConfirmLongText() {CODE
LOWcore/src/components/toast/test/buttons/index.html64 async function presentToastWithTwoButtons() {CODE
LOWcore/src/components/toast/test/buttons/index.html88 async function presentToastWithMultipleButtons() {CODE
LOWcore/src/components/toast/test/buttons/index.html119 async function presentToastWithLongButton() {CODE
LOWcore/src/components/toast/test/basic/index.html221 async function openToastWithButtonOptions() {CODE
LOWcore/src/components/action-sheet/test/a11y/index.html88 function presentAriaLabelCancelButton() {CODE
LOWcore/src/components/range/test/custom/index.html426 function updateDisplayedKnobValues() {CODE
LOWcore/src/components/modal/test/safe-area/index.html189 async function presentFullscreenModalNoFooter() {CODE
LOWcore/src/components/modal/test/safe-area/index.html251 async function presentContentSizedDialog(childHeight, width = '300px') {CODE
LOWcore/src/components/segment-view/test/basic/index.html180 async function addSegmentButtonAndContent() {CODE
LOWcore/src/components/segment-view/test/rtl/index.html164 async function addSegmentButtonAndContent() {CODE
LOW…est/base/tests/e2e/playwright/utils/animation-utils.ts56export async function didChildReceiveInvisibleClass(CODE
LOW…est/base/tests/e2e/playwright/utils/animation-utils.ts111export async function waitForAnimationsComplete(page: Page, selector: string): Promise<void> {CODE
LOWpackages/angular/scripts/verify-change-detection.js40function findComponentDeclarations(source) {CODE
LOWpackages/angular/schematics/utils/ast.ts23export function addIonicModuleImportToNgModule(host: Tree, modulePath: string): void {CODE
LOWpackages/angular/schematics/add/index.ts31function addIonicAngularToPackageJson(): Rule {CODE
LOWpackages/angular/schematics/add/index.ts38function addIonicAngularToolkitToPackageJson(): Rule {CODE
LOWpackages/angular/schematics/add/index.ts49function addIonicAngularToolkitToAngularJson(): Rule {CODE
LOWpackages/angular/schematics/add/index.ts67function addIonicAngularModuleToAppModule(projectSourceRoot: Path): Rule {CODE
LOW…ular/src/common/directives/navigation/router-outlet.ts693function componentInputBindingFactory(router?: Router) {CODE
LOW…/react/src/hooks/__tests__/overlay-hook-types.spec.tsx39function componentPropsAreTypeChecked() {CODE
LOW…/react/src/hooks/__tests__/overlay-hook-types.spec.tsx71function explicitTypeArgumentsAreSupported() {CODE
LOW…/react/src/hooks/__tests__/overlay-hook-types.spec.tsx80function componentPropsAreRequiredWhenTheComponentRequiresThem() {CODE
LOW⚡…/react/src/hooks/__tests__/overlay-hook-types.spec.tsx97function untypedComponentsStayPermissive() {CODE
LOW⚡…/react/src/hooks/__tests__/overlay-hook-types.spec.tsx104function componentPropsAreOptionalWhenTheComponentHasNoRequiredProps() {CODE
LOW⚡…/react/src/hooks/__tests__/overlay-hook-types.spec.tsx114function jsxElementsRemainPermissive() {CODE
LOW⚡…/react/src/hooks/__tests__/overlay-hook-types.spec.tsx123function inlineComponentsAnnotateTheirProps() {CODE
LOW⚡…/react/src/hooks/__tests__/overlay-hook-types.spec.tsx131function selfReferencingDismissCompiles() {CODE
LOW…est/base/tests/e2e/playwright/utils/animation-utils.ts76export async function didChildReceiveInvisibleClass(CODE
LOW…est/base/tests/e2e/playwright/utils/animation-utils.ts149export async function waitForAnimationsComplete(page: Page, selector: string): Promise<void> {CODE
LOWpackages/react-router/src/ReactRouter/StackManager.tsx1931function routeElementsToRouteObjects(routeChildren: React.ReactElement[], basename?: string): RouteObject[] {CODE
Structural Annotation Overuse9 hits · 17 pts
SeverityFileLineSnippetContext
LOWcore/scripts/vercel-build.sh41# Step 1 - Build Core (dependencies already installed by Vercel installCommand)COMMENT
LOWcore/scripts/vercel-build.sh144# Step 2 - Build Framework Packages (parallel)COMMENT
LOWcore/scripts/vercel-build.sh182# Step 3 - Build Framework Test Apps (parallel)COMMENT
LOWcore/scripts/vercel-build.sh325# Step 4 - Landing PageCOMMENT
LOW⚡…r/test/base/tests/e2e/playwright/nested-params.spec.ts21 // Step 1: Navigate to user 99 detailsCOMMENT
LOW⚡…r/test/base/tests/e2e/playwright/nested-params.spec.ts25 // Step 2: Back to landing via routerLink (push).COMMENT
LOW⚡…r/test/base/tests/e2e/playwright/nested-params.spec.ts32 // Step 3: Navigate to user 42 detailsCOMMENT
LOW⚡…r/test/base/tests/e2e/playwright/nested-params.spec.ts36 // Step 4: Back to landing via routerLink (push).COMMENT
LOW⚡…r/test/base/tests/e2e/playwright/nested-params.spec.ts41 // Step 5: Navigate to user 42 details AGAIN -- this triggered the infinite loopCOMMENT
Verbosity Indicators6 hits · 13 pts
SeverityFileLineSnippetContext
LOW…n/directives/control-value-accessors/value-accessor.ts57 // different so we need to check if the closest ion-radio-group is the sameCOMMENT
LOW⚡…r/test/base/tests/e2e/playwright/nested-params.spec.ts21 // Step 1: Navigate to user 99 detailsCOMMENT
LOW⚡…r/test/base/tests/e2e/playwright/nested-params.spec.ts25 // Step 2: Back to landing via routerLink (push).COMMENT
LOW⚡…r/test/base/tests/e2e/playwright/nested-params.spec.ts32 // Step 3: Navigate to user 42 detailsCOMMENT
LOW⚡…r/test/base/tests/e2e/playwright/nested-params.spec.ts36 // Step 4: Back to landing via routerLink (push).COMMENT
LOW⚡…r/test/base/tests/e2e/playwright/nested-params.spec.ts41 // Step 5: Navigate to user 42 details AGAIN -- this triggered the infinite loopCOMMENT
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICALpackages/angular/schematics/utils/config.ts69 angularJson.architect.build.options.styles.push({CODE
Modern AI Meta-Vocabulary2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMpackages/migrate/test/angular-zoneless.test.ts100 // The Angular CLI's current scaffold has no polyfills file: `zone.js` isCOMMENT
MEDIUMpackages/vue-router/scripts/test_runner.sh15# This script orchestrates all suites:COMMENT
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippetContext
LOWcore/src/themes/ionic.functions.color.scss3// Example usage:COMMENT
LOWcore/src/themes/ionic.functions.color.scss17// Example usage:COMMENT
LOWscripts/release-patch.sh4# Usage:COMMENT
Slop Phrases1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUM.github/workflows/conventional-commit.yml38 # If `subjectPattern` is configured, you can use this property toCOMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWcore/scripts/vercel-build.sh126# Check if the full repo is availableCOMMENT
AI Slop Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
LOW.github/workflows/actions/build-core/action.yml20 # Otherwise just use the version defined in the package.json.COMMENT