AI Slop Code Risk Monitor

unopim/unopim

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

Open source Product Information Management (PIM) and Digital Asset Management (DAM) platform built on Laravel — manage, enrich, and scale product data and digital assets beyond 10 million products. Free forever.

2.4 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for unopim/unopim, a PHP project with 11,049 GitHub stars. SynthScan examined 574,726 lines of code across 3737 source files, recording 821 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 2.4 (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.4
Adjusted Signal
2.4
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
11.0K
Stars
PHP
Language
574.7K
Lines of Code
3.7K
Files
821
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 4.1/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.7/100 · LOW

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

Agent Over-Engineering Ratio 8.7/100 · LOW

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

PR Review Velocity Impact 10.7/100 · LOW

Which changes need focused human review? 821 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 2MEDIUM 229LOW 589

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 821 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.

Decorative Section Separators223 hits · 682 pts
SeverityFileLineSnippetContext
MEDIUMcompose.dev.yaml1# =============================================================================COMMENT
MEDIUMcompose.dev.yaml3# =============================================================================COMMENT
MEDIUMcompose.dev.yaml30# ─── Web server: Nginx (default) or Apache ──────────────────────────COMMENT
MEDIUMcompose.dev.yaml33# ─── Database: PostgreSQL (default) or MySQL ────────────────────────COMMENT
MEDIUMcompose.dev.yaml48# =============================================================================COMMENT
MEDIUMcompose.dev.yaml50# ─── Shared configuration (reused via YAML anchors) ─────────────────COMMENT
MEDIUMcompose.dev.yaml84 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml86 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml101 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml103 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml125 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml127 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml149 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml151 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml177 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml179 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml206 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml208 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml230 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml232 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml252 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml254 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml284 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.dev.yaml286 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml1# =============================================================================COMMENT
MEDIUMcompose.yaml3# =============================================================================COMMENT
MEDIUMcompose.yaml17# =============================================================================COMMENT
MEDIUMcompose.yaml72 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml74 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml94 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml96 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml111 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml113 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml132 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml134 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml153 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml155 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml173 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml175 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml196 # ---------------------------------------------------------------------------COMMENT
MEDIUMcompose.yaml198 # ---------------------------------------------------------------------------COMMENT
MEDIUM⚡compose.dev.apache.yaml1# =============================================================================COMMENT
MEDIUM⚡compose.dev.apache.yaml3# =============================================================================COMMENT
MEDIUM⚡compose.dev.apache.yaml14# =============================================================================COMMENT
MEDIUM⚡compose.mysql.yaml1# =============================================================================COMMENT
MEDIUM⚡compose.mysql.yaml3# =============================================================================COMMENT
MEDIUM⚡compose.mysql.yaml12# =============================================================================COMMENT
MEDIUM…ts/e2e-pw/tests/09-notifications/notifications.spec.js32// ─── Notification Page Tests ────────────────────────────────────────COMMENT
MEDIUMtests/e2e-pw/tests/03-dashboard/versionCheck.spec.js22// ═════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e-pw/tests/03-dashboard/versionCheck.spec.js24// ═════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e-pw/tests/03-dashboard/versionCheck.spec.js69// ═════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e-pw/tests/03-dashboard/versionCheck.spec.js71// ═════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e-pw/tests/03-dashboard/versionCheck.spec.js97// ═════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e-pw/tests/03-dashboard/versionCheck.spec.js99// ═════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e-pw/tests/03-dashboard/notifications.spec.js23// ═════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e-pw/tests/03-dashboard/notifications.spec.js25// ═════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e-pw/tests/03-dashboard/notifications.spec.js51// ═════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e-pw/tests/03-dashboard/notifications.spec.js53// ═════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e-pw/tests/03-dashboard/notifications.spec.js115// ═════════════════════════════════════════════════COMMENT
MEDIUMtests/e2e-pw/tests/03-dashboard/notifications.spec.js117// ═════════════════════════════════════════════════COMMENT
163 more matches not shown…
Hyper-Verbose Identifiers356 hits · 360 pts
SeverityFileLineSnippetContext
LOWtests/Pest.php123function seedRequiredProductValues(Product $product): ProductCODE
LOWtests/e2e-pw/tests/product-variant-structure.spec.js46async function ensureColorSizeVariantStructure(adminPage) {CODE
LOW…-pw/tests/04-datatransfer/export-status-filter.spec.js15async function createExportWithStatusFilter(adminPage, code, statusLabel) {CODE
LOW…-datatransfer/test-export/locale-export/export.spec.js5async function createExportWithStatusFilter(adminPage, code, statusLabel) {CODE
LOW…atatransfer/test-export/currency-export/export.spec.js5async function createExportWithStatusFilter(adminPage, code, statusLabel) {CODE
LOWtests/e2e-pw/tests/catalog/association-types.spec.js75async function configureAssociationTypeField(page, { required }) {CODE
LOWtests/e2e-pw/tests/catalog/association-types.spec.js93async function ensureAssociationTypeAbsent(page, code) {CODE
LOW…e2e-pw/tests/catalog/product-association-links.spec.js134async function ensureBundleKitAssociationTypeExists(page) {CODE
LOW…e2e-pw/tests/catalog/product-association-links.spec.js257async function fillRequiredProductAttributes(page, { name, urlKey, price }) {CODE
LOWtests/e2e-pw/tests/02-configuration/magicAI.spec.js52async function ensureMagicAITranslationEnabled(adminPage) {CODE
LOW…s/e2e-pw/tests/02-configuration/webhookVariant.spec.js47async function createConfigurableProduct(page, sku) {CODE
LOWtests/e2e-pw/tests/01-catalog/attribute.spec.js34async function createSelectSwatchAttribute(adminPage, code, name, swatchType = 'Text Swatch') {CODE
LOW…2e-pw/tests/01-catalog/product-discard-changes.spec.js78async function findMultiselectWithOptions(page) {CODE
LOWtests/e2e-pw/tests/01-catalog/measurement-ui.spec.js70async function selectFirstMultiselectOption(page, name) {CODE
LOWtests/e2e-pw/tests/01-catalog/measurement-ui.spec.js90async function createMeasurementAttribute(page, { familyCode = MEASUREMENT_FAMILY } = {}) {CODE
LOWtests/e2e-pw/tests/01-catalog/measurement-ui.spec.js160async function selectUnassignedAttribute(page, matchText) {CODE
LOW…ts/e2e-pw/tests/01-catalog/codefieldvalidation.spec.js16async function clickSaveAndExpectSuccess(page, saveButton, toastPattern) {CODE
LOW…/tests/01-catalog/mediaDownloadAndLockedFields.spec.js55async function ensureColorVariantStructure(adminPage) {CODE
LOWtests/e2e-pw/tests/01-catalog/products.spec.js101async function createConfigurableProduct(adminPage, sku) {CODE
LOWtests/e2e-pw/tests/01-catalog/measurement.spec.js205 async function createMeasurementAttribute(page, code, label) {CODE
LOW…leteness/02.product-completeness-functionality.spec.js21async function goToDefaultFamilyCompleteness(adminPage) {CODE
LOWtests/e2e-pw/utils/gallery-helpers.js68async function assignAttributeToMediaGroup(adminPage, code) {CODE
LOWtests/e2e-pw/utils/gallery-helpers.js117async function fillRequiredProductFields(adminPage, label) {CODE
LOWtests/e2e-pw/utils/api-credential-setup.js57async function readCredentialsOnEditPage(page) {CODE
LOWpackages/Webkul/DataGrid/src/DataGrid.php347 protected function extractRequestedCondition(array $requestedValues): ?arrayCODE
LOWpackages/Webkul/DataGrid/src/DataGrid.php398 public function processRequestedPagination(array $requestedPagination): LengthAwarePaginatorCODE
LOWpackages/Webkul/Webhook/src/Models/Webhook.php40 public function getPrimaryModelIdForHistory(): intCODE
LOWpackages/Webkul/Webhook/src/Models/WebhookSetting.php41 public function getPrimaryModelIdForHistory(): intCODE
LOWpackages/Webkul/Webhook/src/Services/WebhookService.php366 public function getProductChangesForWebhook(Product $product): arrayCODE
LOW…ppUrlGuard/src/Http/Middleware/VerifyAppUrlMatches.php87 protected function redirectsToUnreachableAppUrl(Request $request, Response $response): boolCODE
LOW…bkul/ProductPassport/tests/ProductPassportTestCase.php115 protected function productWithSecretAndDppAttributes(bool $withDocument = false): arrayCODE
LOW…bkul/ProductPassport/tests/ProductPassportTestCase.php211 protected function variantWithInheritedPassportValues(): arrayCODE
LOW…bkul/ProductPassport/tests/ProductPassportTestCase.php313 protected function publishedTieredPassportFixture(): PublicationVersionCODE
LOW…Passport/tests/Feature/MassTransitionSelectAllTest.php10function createPublicationsWithSkuPrefix(string $prefix, int $count, object $channel): arrayCODE
LOW…uctPassport/src/Models/PassportTemplateTranslation.php24 public function getPrimaryModelIdForHistory(): intCODE
LOW…l/ProductPassport/src/Models/PassportTemplateField.php64 public function getPrimaryModelIdForHistory(): intCODE
LOW…ProductPassport/src/Models/PassportTemplateSection.php41 public function getPrimaryModelIdForHistory(): intCODE
LOW…assport/src/Http/Controllers/PublicationController.php384 private function publicationAcceptsPublishing(int $productId, int $channelId): boolCODE
LOW…l/Core/tests/Feature/ChannelLocaleOrderingRiskTest.php25function riskInsertPivotRowsInOrder(Channel $channel, array $localeIds): voidCODE
LOW…l/Core/tests/Feature/ChannelLocaleOrderingRiskTest.php37function riskChannelWithLocalesInsertedInOrder(array $codes): ChannelCODE
LOW…l/Core/tests/Feature/ChannelLocaleOrderingRiskTest.php46function riskLocalesWithIdOrderInverseToCodeOrder(): arrayCODE
LOW…l/Core/tests/Feature/ChannelLocaleOrderingRiskTest.php138function riskCaptureLocaleSyncPayload(callable $work): arrayCODE
LOWpackages/Webkul/Core/tests/Concerns/CoreAssertions.php54 public function assertAttributeFamilyExists(string $code, array $additional = []): voidCODE
LOWpackages/Webkul/Core/tests/Concerns/CoreAssertions.php81 public function assertJsonResponseStructure($response): voidCODE
LOWpackages/Webkul/Core/tests/Concerns/CoreAssertions.php89 public function assertSuccessJsonResponse($response): voidCODE
LOWpackages/Webkul/Core/src/Tree.php183 private function removeChildrenUnauthorizedUrls(array &$item): voidCODE
LOWpackages/Webkul/Core/src/Core.php176 public function getDefaultLocaleCodeFromDefaultChannel(): stringCODE
LOWpackages/Webkul/Core/src/Core.php348 public function getRequestedLocaleCodeInRequestedChannel()CODE
LOWpackages/Webkul/Core/src/Core.php734 public function convertToAssociativeArray(array $items): arrayCODE
LOWpackages/Webkul/Core/src/Core.php809 public function convertEmptyStringsToNull(array $array): arrayCODE
LOWpackages/Webkul/Core/src/Traits/PDFHandler.php33 protected function adjustArabicAndPersianContent(string $html): string|arrayCODE
LOWpackages/Webkul/Core/src/Traits/MergesUploadedFiles.php9 protected function mergeUploadedFilesIntoInput(): voidCODE
LOW…ages/Webkul/Core/src/Providers/CoreServiceProvider.php138 private function mailTransportIsPinnedByEnvironment(): boolCODE
LOW…ages/Webkul/Core/src/Providers/CoreServiceProvider.php153 protected function overrideMailConfiguration(): voidCODE
LOW…ages/Webkul/Core/src/Providers/CoreServiceProvider.php208 protected function ensurePurifierCacheDirectory(string $path): voidCODE
LOWpackages/Webkul/Core/src/Models/ChannelTranslation.php47 public function getPrimaryModelIdForHistory(): intCODE
LOWpackages/Webkul/Core/src/Exceptions/Handler.php65 private function handleAuthenticationException(): voidCODE
LOWpackages/Webkul/Core/src/Exceptions/Handler.php135 private function handleValidationException(): voidCODE
LOWpackages/Webkul/Core/src/Eloquent/TranslatableModel.php67 public function getTranslatedValueWithFallback(string $column, ?string $locale = null): ?stringCODE
LOW…bkul/Core/src/Console/Commands/TranslationsChecker.php1317 private function shouldSkipUntranslatedCheck(string $value): boolCODE
296 more matches not shown…
Fake / Example Data178 hits · 184 pts
SeverityFileLineSnippetContext
LOWtests/e2e-pw/tests/passport-qa-regression.spec.js91 await fillDppField(page, 'dpp_manufacturer_name', 'Acme Corp');CODE
LOWtests/e2e-pw/tests/passport.spec.js70 await fillDppField(page, 'dpp_manufacturer_name', 'Acme Corp');CODE
LOW…ts/e2e-pw/tests/09-notifications/notifications.spec.js20 await page.locator('input[name="email"]').fill('admin@example.com');CODE
LOW…-pw/tests/04-datatransfer/export-filter-fields.spec.js175 await expect(codeFilter).toHaveAttribute('placeholder', 'Code');CODE
LOWtests/e2e-pw/tests/07-ui-loginpage/loginpage.spec.js6const email = 'admin@example.com';CODE
LOW…ts/e2e-pw/tests/07-ui-loginpage/login-security.spec.js17const KNOWN_EMAIL = process.env.ADMIN_EMAIL || 'admin@example.com';CODE
LOW…ts/e2e-pw/tests/07-ui-loginpage/login-security.spec.js73 "admin@example.com'; DROP TABLE admins; -- ",CODE
LOW…-pw/tests/07-ui-loginpage/forget-password-smtp.spec.js18const ADMIN_EMAIL = process.env.ADMIN_EMAIL || 'admin@example.com';CODE
LOWtests/e2e-pw/tests/05-settings/user.spec.js264 await searchInDataGrid(adminPage, 'admin@example.com');CODE
LOWtests/e2e-pw/tests/05-settings/user.spec.js265 const row = adminPage.locator('#app div').filter({ hasText: 'admin@example.com' });CODE
LOWtests/e2e-pw/tests/10-navigation/breadcrumbs.spec.js13 await page.getByRole('textbox', { name: 'Email Address' }).fill(process.env.ADMIN_EMAIL || 'admin@example.com');CODE
LOWtests/e2e-pw/tests/10-navigation/ajax-nav.spec.js9 const email = process.env.ADMIN_EMAIL || 'admin@example.com';CODE
LOWtests/e2e-pw/tests/08-security/security.spec.js5const ADMIN_EMAIL = process.env.ADMIN_USERNAME || process.env.ADMIN_EMAIL || 'admin@example.com';CODE
LOW…2e-pw/tests/08-security/product-sort-injection.spec.js19 form: { _token: token || '', email: 'admin@example.com', password: 'admin123' },CODE
LOWtests/e2e-pw/utils/login.js5 const email = process.env.ADMIN_USERNAME || process.env.ADMIN_EMAIL || 'admin@example.com';CODE
LOWtests/e2e-pw/utils/ensure-family-state.js15const EMAIL = process.env.FAMILY_ADMIN_EMAIL || process.env.ADMIN_EMAIL || process.env.ADMIN_USERNAME || 'admin@example.CODE
LOWtests/e2e-pw/utils/api/auth-helper.js80 username: creds.username || process.env.ADMIN_EMAIL || 'admin@example.com',CODE
LOW…bkul/ProductPassport/tests/ProductPassportTestCase.php226 'values' => ['common' => [$manufacturer->code => 'Acme Corp']],CODE
LOW…tPassport/tests/Feature/PassportPayloadBuilderTest.php25 expect($field['value'])->toBe('Acme Corp');CODE
LOW⚡…ebkul/ProductPassport/src/Config/passport_settings.php33 'placeholder' => 'passport::app.configuration.product_passport.settings.operator-name-placeholder',CODE
LOW⚡…ebkul/ProductPassport/src/Config/passport_settings.php39 'placeholder' => 'passport::app.configuration.product_passport.settings.operator-address-placeholder',CODE
LOW⚡…ebkul/ProductPassport/src/Config/passport_settings.php45 'placeholder' => 'passport::app.configuration.product_passport.settings.operator-eu-rep-placeholder',CODE
LOW⚡…Webkul/Publication/src/Config/publication_settings.php36 'placeholder' => 'publication::app.configuration.publication.settings.base-url-placeholder',CODE
LOW⚡…Webkul/Publication/src/Config/publication_settings.php43 'placeholder' => 'publication::app.configuration.publication.settings.cache-ttl-placeholder',CODE
LOW⚡…Webkul/Publication/src/Config/publication_settings.php50 'placeholder' => 'publication::app.configuration.publication.settings.rate-limit-placeholder',CODE
LOW…Webkul/Publication/src/Config/publication_settings.php62 'placeholder' => 'publication::app.configuration.publication.settings.gs1-passport-channel-placeholder',CODE
LOW…ul/Admin/tests/Feature/Notification/UserNotifyTest.php20 'email' => 'user@example.com',CODE
LOW…ul/Admin/tests/Feature/Notification/UserNotifyTest.php59 ['admin@example.com'],CODE
LOW…ul/Admin/tests/Feature/Notification/UserNotifyTest.php77 ['admin@example.com'],CODE
LOW…ul/Admin/tests/Feature/Notification/UserNotifyTest.php86 ['admin@example.com'],CODE
LOW…ul/Admin/tests/Feature/Notification/UserNotifyTest.php101 ['admin@example.com'],CODE
LOW…ul/Admin/tests/Feature/Notification/UserNotifyTest.php115 new UserNotify(['admin@example.com'], 'Subject', 'admin::emails.data-transfer.index', 'not-an-array');CODE
LOWpackages/Webkul/Admin/src/Config/system.php162 'placeholder' => '0 = unlimited, e.g. 500000',CODE
LOWpackages/Webkul/Admin/src/Config/system.php251 'placeholder' => 'common',CODE
LOWpackages/Webkul/Admin/src/Config/system.php261 'placeholder' => '••••••••',CODE
LOWpackages/Webkul/Admin/src/Config/system.php321 'placeholder' => '••••••••',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/en_NZ/app.php2560 'placeholder' => 'Search',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/en_NZ/app.php2574 'placeholder' => 'Type or paste values, separated by commas or new lines',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/fi_FI/app.php2560 'placeholder' => 'Hae',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/fi_FI/app.php2574 'placeholder' => 'Kirjoita tai liitä arvot pilkulla tai rivinvaihdolla eroteltuina',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/uk_UA/app.php2563 'placeholder' => 'Пошук',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/uk_UA/app.php2577 'placeholder' => 'Введіть або вставте значення, розділені комами чи новими рядками',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/en_US/app.php2720 'placeholder' => 'Search',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/en_US/app.php2731 'placeholder' => 'Type or paste values, separated by commas or new lines',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/ar_AE/app.php2560 'placeholder' => 'بحث',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/ar_AE/app.php2574 'placeholder' => 'اكتب القيم أو الصقها مفصولة بفواصل أو أسطر جديدة',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/sv_SE/app.php2563 'placeholder' => 'Sök',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/sv_SE/app.php2577 'placeholder' => 'Skriv eller klistra in värden separerade med kommatecken eller nya rader',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/id_ID/app.php2560 'placeholder' => 'Cari',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/id_ID/app.php2574 'placeholder' => 'Ketik atau tempel nilai yang dipisahkan koma atau baris baru',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/pt_BR/app.php2563 'placeholder' => 'Buscar',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/pt_BR/app.php2577 'placeholder' => 'Digite ou cole valores separados por vírgulas ou novas linhas',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/ko_KR/app.php2563 'placeholder' => '검색',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/ko_KR/app.php2577 'placeholder' => '값을 입력하거나 쉼표 또는 줄바꿈으로 구분하여 붙여넣으세요',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/it_IT/app.php2560 'placeholder' => 'Cerca',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/it_IT/app.php2574 'placeholder' => 'Digita o incolla i valori separati da virgole o a capo',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/zh_TW/app.php2563 'placeholder' => '搜尋',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/zh_TW/app.php2577 'placeholder' => '輸入或貼上值,使用逗號或換行分隔',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/tl_PH/app.php2563 'placeholder' => 'Maghanap',CODE
LOWpackages/Webkul/Admin/src/Resources/lang/tl_PH/app.php2577 'placeholder' => 'Mag-type o mag-paste ng mga halaga na pinaghihiwalay ng kuwit o bagong linya',CODE
118 more matches not shown…
Structural Annotation Overuse26 hits · 46 pts
SeverityFileLineSnippetContext
LOW⚡…e2e-pw/tests/04-datatransfer/import-empty-file.spec.js40 // Step 1: Create import with empty XLSX file — should succeed (file is accepted)COMMENT
LOW⚡…e2e-pw/tests/04-datatransfer/import-empty-file.spec.js43 // Step 2: Click Import Now — should redirect to tracker pageCOMMENT
LOW⚡…e2e-pw/tests/04-datatransfer/import-empty-file.spec.js47 // Step 3: Verify tracker page loaded with the import code (no PHP crash)COMMENT
LOW⚡…e2e-pw/tests/04-datatransfer/import-empty-file.spec.js50 // Step 4: Verify no raw PHP error messages are exposed on the pageCOMMENT
LOW⚡…s/e2e-pw/tests/02-configuration/webhookVariant.spec.js140 // Step 1: Enable webhookCOMMENT
LOW⚡…s/e2e-pw/tests/02-configuration/webhookVariant.spec.js143 // Step 2: Create configurable productCOMMENT
LOW⚡…s/e2e-pw/tests/02-configuration/webhookVariant.spec.js146 // Step 3: Navigate back and open the edit page with a clean stateCOMMENT
LOW⚡…s/e2e-pw/tests/02-configuration/webhookVariant.spec.js162 // Step 4: Add a variant (Size = S)COMMENT
LOW⚡…s/e2e-pw/tests/02-configuration/webhookVariant.spec.js165 // Step 5: Save the product to trigger the update + variant creationCOMMENT
LOW⚡…s/e2e-pw/tests/02-configuration/webhookVariant.spec.js174 // Step 6: Check webhook logs for variant SKU entryCOMMENT
LOW…2e-pw/tests/01-catalog/attributeHistoryTooltip.spec.js11 // Step 1: Create an attribute so it generates a history entryCOMMENT
LOW…2e-pw/tests/01-catalog/attributeHistoryTooltip.spec.js27 // Step 2: Navigate to the attribute's History tabCOMMENT
LOW…2e-pw/tests/01-catalog/attributeHistoryTooltip.spec.js39 // Step 3: Check the eye icon tooltip does NOT show a raw translation keyCOMMENT
LOW…sts/e2e-pw/tests/05-settings/bouncer403Message.spec.js145 // Step 1: As admin, create a role with minimal permissions and a userCOMMENT
LOW…sts/e2e-pw/tests/05-settings/bouncer403Message.spec.js167 // Step 2: Log in as the restricted user in a fresh context (no stored session)COMMENT
LOW…sts/e2e-pw/tests/05-settings/bouncer403Message.spec.js181 // Step 3: Positive assertion — the translated 403 message must be present.COMMENT
LOW…sts/e2e-pw/tests/05-settings/bouncer403Message.spec.js198 // Step 4: Cleanup as adminCOMMENT
LOWpackages/Webkul/AiAgent/AGENTS.md199### Step 1: Extend BaseAgentCOMMENT
LOWpackages/Webkul/AiAgent/AGENTS.md221### Step 2: Use It (Auto-Injected)COMMENT
LOWpackages/Webkul/AiAgent/AGENTS.md231### Step 3: Call execute() or executeAsync()COMMENT
LOWpackages/Webkul/ElasticSearch/Guide.md5### Step 1: Add the Indexer CommandCOMMENT
LOWpackages/Webkul/ElasticSearch/Guide.md24### Step 2: Add an Observer for the TableCOMMENT
LOWpackages/Webkul/ElasticSearch/Guide.md43### Step 3: Register the ObserverCOMMENT
LOWpackages/Webkul/ElasticSearch/Guide.md58### Step 4: Register the Indexer Command:COMMENT
LOWpackages/Webkul/ElasticSearch/Guide.md73### Step 5: Add logic to clear index of new tableCOMMENT
LOWpackages/Webkul/ElasticSearch/Guide.md86### Step 5: Run and test the CommandsCOMMENT
Verbosity Indicators17 hits · 33 pts
SeverityFileLineSnippetContext
LOW⚡…e2e-pw/tests/04-datatransfer/import-empty-file.spec.js40 // Step 1: Create import with empty XLSX file — should succeed (file is accepted)COMMENT
LOW⚡…e2e-pw/tests/04-datatransfer/import-empty-file.spec.js43 // Step 2: Click Import Now — should redirect to tracker pageCOMMENT
LOW⚡…e2e-pw/tests/04-datatransfer/import-empty-file.spec.js47 // Step 3: Verify tracker page loaded with the import code (no PHP crash)COMMENT
LOW⚡…e2e-pw/tests/04-datatransfer/import-empty-file.spec.js50 // Step 4: Verify no raw PHP error messages are exposed on the pageCOMMENT
LOW⚡…s/e2e-pw/tests/02-configuration/webhookVariant.spec.js140 // Step 1: Enable webhookCOMMENT
LOW⚡…s/e2e-pw/tests/02-configuration/webhookVariant.spec.js143 // Step 2: Create configurable productCOMMENT
LOW⚡…s/e2e-pw/tests/02-configuration/webhookVariant.spec.js146 // Step 3: Navigate back and open the edit page with a clean stateCOMMENT
LOW⚡…s/e2e-pw/tests/02-configuration/webhookVariant.spec.js162 // Step 4: Add a variant (Size = S)COMMENT
LOW⚡…s/e2e-pw/tests/02-configuration/webhookVariant.spec.js165 // Step 5: Save the product to trigger the update + variant creationCOMMENT
LOW⚡…s/e2e-pw/tests/02-configuration/webhookVariant.spec.js174 // Step 6: Check webhook logs for variant SKU entryCOMMENT
LOW…2e-pw/tests/01-catalog/attributeHistoryTooltip.spec.js11 // Step 1: Create an attribute so it generates a history entryCOMMENT
LOW…2e-pw/tests/01-catalog/attributeHistoryTooltip.spec.js27 // Step 2: Navigate to the attribute's History tabCOMMENT
LOW…2e-pw/tests/01-catalog/attributeHistoryTooltip.spec.js39 // Step 3: Check the eye icon tooltip does NOT show a raw translation keyCOMMENT
LOW…sts/e2e-pw/tests/05-settings/bouncer403Message.spec.js145 // Step 1: As admin, create a role with minimal permissions and a userCOMMENT
LOW…sts/e2e-pw/tests/05-settings/bouncer403Message.spec.js167 // Step 2: Log in as the restricted user in a fresh context (no stored session)COMMENT
LOW…sts/e2e-pw/tests/05-settings/bouncer403Message.spec.js181 // Step 3: Positive assertion — the translated 403 message must be present.COMMENT
LOW…sts/e2e-pw/tests/05-settings/bouncer403Message.spec.js198 // Step 4: Cleanup as adminCOMMENT
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippetContext
HIGH…Agent/Resources/views/components/chat-widget.blade.php2343 // Sanitize HTML to prevent XSS from AI-generated or injected content.COMMENT
HIGH…ages/Webkul/AiAgent/src/Services/EnrichmentService.php85 // Score: AI-generated fields get medium confidenceCOMMENT
Over-Commented Block11 hits · 10 pts
SeverityFileLineSnippetContext
LOWcompose.dev.yaml1# =============================================================================COMMENT
LOWcompose.dev.yaml21#COMMENT
LOWcompose.yaml1# =============================================================================COMMENT
LOWdocker-compose.yml1# Deprecated — kept so existing commands and docker-compose.override.yml filesCOMMENT
LOWcompose.dev.apache.yaml1# =============================================================================COMMENT
LOWcompose.mysql.yaml1# =============================================================================COMMENT
LOWresources/js/bootstrap.js21// window.Pusher = Pusher;COMMENT
LOW…tests/02-configuration/magicAI-custom-provider.spec.js61COMMENT
LOW…l/Admin/tests/Feature/Catalog/ProductLinksViewTest.php341COMMENT
LOW…ettings/DataTransfer/AbstractJobInstanceController.php221 // if ($this->importHelper->isIndexingRequired()) {COMMENT
LOW.github/workflows/playwright_test.yml121 # Login-heavy shards (loginpage, notifications re-auth, ajax-nav, security)COMMENT
Hallucination Indicators1 hit · 10 pts
SeverityFileLineSnippetContext
CRITICAL…/src/Resources/views/catalog/attributes/edit.blade.php785 return this.$refs.optionsDataGrid.applied.filters.columns.filter(CODE
Slop Phrases5 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUM…ages/Webkul/Installer/src/Resources/lang/en_NZ/app.php16 'footer' => 'Generated by UnoPim for demonstration purposes.',CODE
MEDIUM…ages/Webkul/Installer/src/Resources/lang/en_US/app.php16 'footer' => 'Generated by UnoPim for demonstration purposes.',CODE
MEDIUM…ages/Webkul/Installer/src/Resources/lang/en_CA/app.php16 'footer' => 'Generated by UnoPim for demonstration purposes.',CODE
MEDIUM…ages/Webkul/Installer/src/Resources/lang/en_AU/app.php16 'footer' => 'Generated by UnoPim for demonstration purposes.',CODE
MEDIUM…ages/Webkul/Installer/src/Resources/lang/en_GB/app.php16 'footer' => 'Generated by UnoPim for demonstration purposes.',CODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMpackages/Webkul/AiAgent/src/Http/Client/AiApiClient.php322 * Pre-flight token guard (issue #423): trim oldest history / largest blocks when the estimate exceeds the context wCOMMENT
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippetContext
LOW⚡compose.dev.apache.yaml6# Usage:COMMENT