AI Slop Code Risk Monitor

vendurehq/vendure

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

Open-source headless commerce platform built with TypeScript, NestJS, React, and GraphQL

1.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for vendurehq/vendure, a TypeScript project with 8,552 GitHub stars. SynthScan examined 618,263 lines of code across 4292 source files, recording 764 pattern matches distributed across 12 syntactic categories. The legacy adjusted pattern signal is 1.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.

1.6
Adjusted Signal
1.6
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
8.6K
Stars
TypeScript
Language
618.3K
Lines of Code
4.3K
Files
764
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 5.4/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 1.1/100 · LOW

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

Agent Over-Engineering Ratio 5.1/100 · LOW

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

PR Review Velocity Impact 7.3/100 · LOW

Which changes need focused human review? 764 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 3HIGH 0MEDIUM 72LOW 689

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

Hyper-Verbose Identifiers475 hits · 486 pts
SeverityFileLineSnippetContext
LOWscripts/docs/generate-graphql-docs.ts76function collectFieldReferencedTypes(field: GraphQLField<any, any>): Set<string> {CODE
LOWscripts/docs/generate-graphql-docs.ts96function collectTypeReferencedTypes(type: GraphQLObjectType | GraphQLInputObjectType): Set<string> {CODE
LOWscripts/docs/generate-graphql-docs.ts109function collectUnionReferencedTypes(type: GraphQLUnionType): Set<string> {CODE
LOWscripts/docs/generate-graphql-docs.ts319function renderQueryMutationFieldSDL(field: GraphQLField<any, any>, parentTypeName: 'Query' | 'Mutation'): string {CODE
LOWscripts/docs/generate-graphql-docs.ts338function renderGraphQLDocComponent(options: {CODE
LOWscripts/codegen/download-introspection-schema.ts56export async function downloadIntrospectionSchema(apiType: 'shop' | 'admin'): Promise<boolean> {CODE
LOWscripts/codegen/plugins/graphql-errors-plugin.ts193function getOperationsThatReturnErrorUnions(schema: GraphQLSchema, fields: GraphQLFieldMap<any, any>) {CODE
LOWscripts/changelogs/generate-changelog.ts57function generateChangelogForPackage() {CODE
LOWpackages/telemetry-plugin/src/instrumentation.ts36export function getDefaultInstrumentations(): NonNullable<NodeSDKConfiguration['instrumentations']> {CODE
LOW…-plugins/multivendor-plugin/config/mv-order-process.ts118async function findOrderWithFulfillments(ctx: RequestContext, id: ID): Promise<Order> {CODE
LOWpackages/dev-server/load-testing/load-test-config.ts16export function getMysqlConnectionOptions(databaseName: string) {CODE
LOWpackages/dev-server/load-testing/load-test-config.ts29export function getPostgresConnectionOptions(databaseName: string) {CODE
LOWpackages/dev-server/load-testing/init-load-test.ts299function generateProductDescription(): string {CODE
LOW…dev-server/load-testing/scripts/search-and-checkout.js61function setShippingAddressAndCustomer() {CODE
LOWpackages/core/e2e/entity-hydrator.e2e-spec.ts468 async function createOrderWithShippingLine() {CODE
LOWpackages/core/e2e/shop-order.e2e-spec.ts2152 function createCountryCodeShippingMethodInput(countryCode: string): CreateShippingMethodInput {CODE
LOWpackages/core/e2e/product.e2e-spec.ts1811 function getProductWithVariantsInLanguage(CODE
LOWpackages/core/e2e/administrator.e2e-spec.ts520 function getPasswordResetTokenPromise(): Promise<string> {CODE
LOWpackages/core/e2e/order-modification.e2e-spec.ts955 async function assertModifiedOrderIsPersisted(order: OrderWithModificationsFragment) {CODE
LOWpackages/core/e2e/order-modification.e2e-spec.ts3149 async function adminTransitionOrderToState(id: string, state: string) {CODE
LOWpackages/core/e2e/order-modification.e2e-spec.ts3196 async function createOrderAndTransitionToModifyingState(CODE
LOWpackages/core/e2e/order-modification.e2e-spec.ts3204 function getOrderPaymentsTotalWithRefunds(_order: OrderWithModificationsFragment) {CODE
LOWpackages/core/e2e/order-promotion.e2e-spec.ts795 async function assignPromotionToTaxIncludedChannel(promotionId: string | string[]) {CODE
LOWpackages/core/e2e/order-promotion.e2e-spec.ts1656 function logInAsRegisteredCustomer() {CODE
LOWpackages/core/e2e/order-promotion.e2e-spec.ts1844 function logInAsRegisteredCustomer() {CODE
LOWpackages/core/e2e/order-promotion.e2e-spec.ts2184 function logInAsRegisteredCustomer() {CODE
LOWpackages/core/e2e/order-promotion.e2e-spec.ts2620 async function createChannelAndAssignProducts(code: string, token: string) {CODE
LOWpackages/core/e2e/session-api-type-binding.e2e-spec.ts630 function expectForbiddenWithNullData(result: { data?: any; errors?: any[] }, field: string) {CODE
LOW…es/core/e2e/assign-to-channel-source-scope.e2e-spec.ts491 async function loginAsVictimChannelAdmin() {CODE
LOW…ckages/core/e2e/migrate-asset-translations.e2e-spec.ts66 async function simulatePreMigrationState() {CODE
LOWpackages/core/e2e/custom-field-relations.e2e-spec.ts224 function assertTranslatableCustomFieldValues(product: { customFields: any }) {CODE
LOWpackages/core/e2e/custom-field-relations.e2e-spec.ts1983 async function getProductsSortedBySingle(sortField: 'single' | 'singleId') {CODE
LOWpackages/core/e2e/custom-field-relations.e2e-spec.ts2078 async function createCollectionWithProducts(slug: string, productIds: string[], parentId?: string) {CODE
LOW⚡packages/core/e2e/stock-control.e2e-spec.ts155 async function getProductWithStockMovement(productId: string) {CODE
LOW⚡packages/core/e2e/stock-control.e2e-spec.ts162 async function getProductWithStockMovementByType(productId: string, type: StockMovementType) {CODE
LOW⚡packages/core/e2e/stock-control.e2e-spec.ts167 async function setFirstEligibleShippingMethod() {CODE
LOWpackages/core/e2e/auth.e2e-spec.ts368 async function createAdministratorWithPermissions(CODE
LOW…ages/core/e2e/stock-control-multi-location.e2e-spec.ts54 async function getProductWithStockMovement(productId: string) {CODE
LOW…ages/core/e2e/stock-control-multi-location.e2e-spec.ts59 async function setFirstEligibleShippingMethod() {CODE
LOWpackages/core/e2e/custom-field-permissions.e2e-spec.ts290async function createAdminWithPermissions(input: {CODE
LOW…ges/core/e2e/settings-store-rw-permissions.e2e-spec.ts382async function createAdminWithPermissions(input: {CODE
LOWpackages/core/e2e/order.e2e-spec.ts1111 async function assertNoStockMovementsCreated(productId: string) {CODE
LOWpackages/core/e2e/order.e2e-spec.ts2787async function getUnfulfilledOrderLineInput(CODE
LOWpackages/core/e2e/collection.e2e-spec.ts1247 async function createVariantNameFilteredCollection(CODE
LOWpackages/core/e2e/customer.e2e-spec.ts762 async function getVerifiedHistoryEntryCount(customerId: string): Promise<number> {CODE
LOWpackages/core/e2e/list-query-builder.e2e-spec.ts1342 function getTestEntityTranslations(testEntities: { items: any[] }) {CODE
LOW⚡packages/core/e2e/shop-auth.e2e-spec.ts1128function getVerificationTokenPromise(): Promise<string> {CODE
LOW⚡packages/core/e2e/shop-auth.e2e-spec.ts1136function getPasswordResetTokenPromise(): Promise<string> {CODE
LOW⚡packages/core/e2e/shop-auth.e2e-spec.ts1144function getEmailUpdateTokenPromise(): Promise<{CODE
LOWpackages/core/e2e/authentication-strategy.e2e-spec.ts745 async function authenticateInSecondChannel(CODE
LOWpackages/core/e2e/draft-order.e2e-spec.ts483 async function appliedDiscountDescriptions(): Promise<string[]> {CODE
LOWpackages/core/e2e/sso-account-takeover.e2e-spec.ts592 async function seedUnverifiedNativeCredentialOnSsoAccount() {CODE
LOWpackages/core/e2e/order-cancel-shipping.e2e-spec.ts74 async function createPaymentAuthorizedOrder() {CODE
LOW…ges/core/e2e/migrate-product-option-groups.e2e-spec.ts123 async function simulatePreMigrationState() {CODE
LOWpackages/core/e2e/default-search-plugin.e2e-spec.ts179 async function testRelevanceSortingWithEmptySortObject(testProducts: TestProducts) {CODE
LOWpackages/core/e2e/default-search-plugin.e2e-spec.ts208 async function testMatchPartialSearchTerm(testProducts: TestProducts) {CODE
LOWpackages/core/e2e/default-search-plugin.e2e-spec.ts261 async function testMatchFacetValueFiltersAnd(testProducts: TestProducts) {CODE
LOWpackages/core/e2e/default-search-plugin.e2e-spec.ts277 async function testMatchFacetValueFiltersOr(testProducts: TestProducts) {CODE
LOWpackages/core/e2e/default-search-plugin.e2e-spec.ts300 async function testMatchFacetValueFiltersOrWithAnd(testProducts: TestProducts) {CODE
LOWpackages/core/e2e/default-search-plugin.e2e-spec.ts320 async function testMatchFacetValueFiltersWithFacetIdsOr(testProducts: TestProducts) {CODE
415 more matches not shown…
Decorative Section Separators54 hits · 165 pts
SeverityFileLineSnippetContext
MEDIUM…ds/codemod/dashboard-ui/dashboard-ui-migration.spec.ts41// ─── asChild → render ────────────────────────────────────────────────COMMENT
MEDIUM…ds/codemod/dashboard-ui/dashboard-ui-migration.spec.ts234// ─── FormField → FormFieldWrapper ────────────────────────────────────COMMENT
MEDIUM…ds/codemod/dashboard-ui/dashboard-ui-migration.spec.ts489// ─── Import consolidation ────────────────────────────────────────────COMMENT
MEDIUM…ds/codemod/dashboard-ui/dashboard-ui-migration.spec.ts778// ─── Accordion props ─────────────────────────────────────────────────COMMENT
MEDIUM…ds/codemod/dashboard-ui/dashboard-ui-migration.spec.ts876// ─── Select items prop ───────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/vite/tests/plugin-hooks.spec.ts20// ─── Typed hook helpers ─────────────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/vite/tests/plugin-hooks.spec.ts59// ─── Shared test factories ──────────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/vite/tests/plugin-hooks.spec.ts99// ─── themeVariablesPlugin ────────────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/vite/tests/plugin-hooks.spec.ts333// ─── transformIndexHtmlPlugin ────────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/vite/tests/plugin-hooks.spec.ts416// ─── viteConfigPlugin ────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/vite/tests/plugin-hooks.spec.ts539// ─── dashboardMetadataPlugin ─────────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/vite/tests/plugin-hooks.spec.ts690// ─── hmrPlugin ──────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/vite/tests/plugin-hooks.spec.ts778// ─── dashboardTailwindSourcePlugin ───────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/vite/tests/plugin-hooks.spec.ts927// ─── bundleEntryPlugin (#4719) ───────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/vite/tests/plugin-hooks.spec.ts927// ─── bundleEntryPlugin (#4719) ───────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/vite/tests/plugin-hooks.spec.ts1004// ─── viteConfigPlugin: useExperimentalBundle (#4719) ─────────────────────────COMMENT
MEDIUMpackages/dashboard/vite/tests/plugin-hooks.spec.ts1004// ─── viteConfigPlugin: useExperimentalBundle (#4719) ─────────────────────────COMMENT
MEDIUMpackages/dashboard/vite/tests/plugin-hooks.spec.ts1103// ─── filterActivePluginInfo ──────────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/tests/sales/orders.spec.ts1514// ── Helpers ──────────────────────────────────────────────────────────────────COMMENT
MEDIUM…ages/dashboard/e2e/tests/catalog/custom-fields.spec.ts59 // ─── Scalar field types ──────────────────────────────────────────────COMMENT
MEDIUM…ages/dashboard/e2e/tests/catalog/custom-fields.spec.ts82 // ─── Nullable option select ──────────────────────────────────────────COMMENT
MEDIUM…ages/dashboard/e2e/tests/catalog/custom-fields.spec.ts122 // ─── Non-nullable field with a default ───────────────────────────────COMMENT
MEDIUM…ages/dashboard/e2e/tests/catalog/custom-fields.spec.ts162 // ─── Tab grouping ────────────────────────────────────────────────────COMMENT
MEDIUM…ages/dashboard/e2e/tests/catalog/custom-fields.spec.ts227 // ─── Scalar save & persist ───────────────────────────────────────────COMMENT
MEDIUM…ages/dashboard/e2e/tests/catalog/custom-fields.spec.ts253 // ─── String list (tag-style input) ───────────────────────────────────COMMENT
MEDIUM…ages/dashboard/e2e/tests/catalog/custom-fields.spec.ts318 // ─── Struct (single) ─────────────────────────────────────────────────COMMENT
MEDIUM…ages/dashboard/e2e/tests/catalog/custom-fields.spec.ts411 // ─── List inside struct ──────────────────────────────────────────────COMMENT
MEDIUM…ages/dashboard/e2e/tests/catalog/custom-fields.spec.ts450 // ─── List of structs ─────────────────────────────────────────────────COMMENT
MEDIUM…ard/e2e/tests/catalog/translation-placeholders.spec.ts95 // ── Setup: add German to the channel's available languages ──────────COMMENT
MEDIUM…ard/e2e/tests/catalog/translation-placeholders.spec.ts174 // ── Test 2: Slug placeholder ────────────────────────────────────────COMMENT
MEDIUM…ard/e2e/tests/catalog/translation-placeholders.spec.ts189 // ── Test 3: No placeholder on default language ──────────────────────COMMENT
MEDIUM⚡…ard/e2e/tests/catalog/translation-placeholders.spec.ts207 // ── Test 4: Placeholder hidden once user types a translation ────────COMMENT
MEDIUM⚡…ard/e2e/tests/catalog/translation-placeholders.spec.ts226 // ── Test 5: Placeholder for rich text description ───────────────────COMMENT
MEDIUM…ard/e2e/tests/catalog/translation-placeholders.spec.ts443 // ── Cleanup: switch back to English ─────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts111 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts113 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts128 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts130 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts151 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts153 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts167 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts169 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts180 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts182 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts201 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts203 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts216 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts218 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts247 // ──────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/e2e/utils/crud-test-factory.ts249 // ──────────────────────────────────────────────COMMENT
MEDIUM…src/lib/components/shared/asset/asset-upload-modal.tsx18// ─── Types ────────────────────────────────────────────────────────────────────COMMENT
MEDIUM…src/lib/components/shared/asset/asset-upload-modal.tsx46// ─── Pure helpers ─────────────────────────────────────────────────────────────COMMENT
MEDIUM…src/lib/components/shared/asset/asset-upload-modal.tsx96// ─── Component ────────────────────────────────────────────────────────────────COMMENT
MEDIUMpackages/dashboard/src/lib/graphql/api.ts154// ─── Upload with progress ───────────────────────────────────────────────────COMMENT
Fake / Example Data114 hits · 106 pts
SeverityFileLineSnippetContext
LOWpackages/dev-server/test-plugins/sso-auth-strategy.ts39 if (data.email !== 'test@test.com') {CODE
LOW…t-reviews-list/all-product-reviews-list.component.html64 <div class="placeholder">CODE
LOWpackages/core/e2e/settings-store.e2e-spec.ts69 emailAddress: 'test@test.com',CODE
LOWpackages/core/e2e/settings-store.e2e-spec.ts76 await adminClient.asUserWithCredentials('test@test.com', 'password');CODE
LOWpackages/core/e2e/shop-order.e2e-spec.ts967 emailAddress: 'test@test.com',CODE
LOWpackages/core/e2e/shop-order.e2e-spec.ts980 expect(customer.emailAddress).toBe('test@test.com');CODE
LOWpackages/core/e2e/shop-order.e2e-spec.ts987 emailAddress: 'test@test.com',CODE
LOWpackages/core/e2e/shop-order.e2e-spec.ts1000 expect(customer.emailAddress).toBe('test@test.com');CODE
LOWpackages/core/e2e/shop-order.e2e-spec.ts1924 emailAddress: 'test@test.com',CODE
LOWpackages/core/e2e/shop-order.e2e-spec.ts1944 emailAddress: 'test@test.com',CODE
LOWpackages/core/e2e/administrator.e2e-spec.ts117 emailAddress: 'test@test.com',CODE
LOWpackages/core/e2e/custom-field-relations.e2e-spec.ts592 emailAddress: "test@test.com"CODE
LOWpackages/core/e2e/order-recalculation.e2e-spec.ts223 phoneNumber: '555-0100',CODE
LOWpackages/core/e2e/order-recalculation.e2e-spec.ts274 input: { firstName: 'Test', lastName: 'User', emailAddress: 'test@test.com' },CODE
LOWpackages/core/e2e/order-recalculation.e2e-spec.ts412 phoneNumber: '555-0100',CODE
LOWpackages/core/e2e/sso-account-takeover.e2e-spec.ts302 phoneNumber: '555-0100',CODE
LOWpackages/core/e2e/sso-account-takeover.e2e-spec.ts324 expect(pendingCustomer.phoneNumber).toBe('555-0100');CODE
LOW⚡packages/core/src/common/utils.spec.ts50 expect(normalizeEmailAddress(' test@test.com ')).toBe('test@test.com');CODE
LOW⚡packages/core/src/common/utils.spec.ts55 expect(normalizeEmailAddress('TEST@TEST.COM')).toBe('test@test.com');CODE
LOW⚡packages/core/src/common/utils.spec.ts64 expect(normalizeEmailAddress('TEST@TEST.COM ')).toBe('test@test.com');CODE
LOW…ice/helpers/utils/check-superadmin-credentials.spec.ts6const SAFE = { identifier: 'admin@example.com', password: 'a-very-long-random-passphrase' };CODE
LOW…ice/helpers/utils/check-superadmin-credentials.spec.ts18 { identifier: 'admin@example.com', password: 'superadmin' },CODE
LOW⚡packages/email-plugin/src/plugin.spec.ts1001 .setRecipient(() => 'test@test.com')CODE
LOW⚡packages/email-plugin/src/plugin.spec.ts1003 .setOptionalAddressFields(() => ({ cc: 'foo@bar.com' }));CODE
LOW⚡packages/email-plugin/src/plugin.spec.ts1009 expect(onSend.mock.calls[0][0].cc).toBe('foo@bar.com');CODE
LOW⚡packages/email-plugin/src/plugin.spec.ts1016 .setRecipient(() => 'test@test.com')CODE
LOW⚡packages/email-plugin/src/plugin.spec.ts1018 .setOptionalAddressFields(() => ({ bcc: 'foo@bar.com' }));CODE
LOW⚡packages/email-plugin/src/plugin.spec.ts1024 expect(onSend.mock.calls[0][0].bcc).toBe('foo@bar.com');CODE
LOW⚡packages/email-plugin/src/plugin.spec.ts1031 .setRecipient(() => 'test@test.com')CODE
LOW⚡packages/email-plugin/src/plugin.spec.ts1033 .setOptionalAddressFields(() => ({ replyTo: 'foo@bar.com' }));CODE
LOW⚡packages/email-plugin/src/plugin.spec.ts1039 expect(onSend.mock.calls[0][0].replyTo).toBe('foo@bar.com');CODE
LOWpackages/email-plugin/src/plugin.spec.ts109 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts118 expect(onSend.mock.calls[0][0].recipient).toBe('test@test.com');CODE
LOWpackages/email-plugin/src/plugin.spec.ts132 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts153 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts174 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts200 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts215 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts235 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts250 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts266 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts297 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts330 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts347 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts369 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts384 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts400 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts416 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts437 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts464 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts479 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts504 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts533 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts561 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts585 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts607 expect(onSend.mock.calls[0][0].recipient).toBe('test@test.com');CODE
LOWpackages/email-plugin/src/plugin.spec.ts640 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts654 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts673 .setRecipient(() => 'test@test.com')CODE
LOWpackages/email-plugin/src/plugin.spec.ts692 .setRecipient(() => 'test@test.com')CODE
54 more matches not shown…
Over-Commented Block52 hits · 52 pts
SeverityFileLineSnippetContext
LOWbunfig.toml1# Bun package manager configuration.COMMENT
LOWscripts/npm-stage-approve-all.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/npm-trust-bulk.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/npm-trust-bulk.sh21#COMMENT
LOWscripts/npm-trust-bulk.sh101 # so it must be revoked before we can create the new dual-permission one —COMMENT
LOW…ue-1873/custom-fields/product-variant-custom-fields.ts1import type { CustomFieldConfig } from '@vendure/core';COMMENT
LOW…ue-1873/custom-fields/product-variant-custom-fields.ts41 type: 'relation',COMMENT
LOW…ue-1873/custom-fields/product-variant-custom-fields.ts61 // eager: true,COMMENT
LOW…es/dev-server/test-plugins/reviews/dashboard/index.tsx101 // query {COMMENT
LOW…es/dev-server/test-plugins/reviews/dashboard/index.tsx161 label="My Custom Action"COMMENT
LOW…s/product-bundle-list/product-bundle-list.component.ts41> {COMMENT
LOWpackages/core/e2e/entity-hydrator.e2e-spec.ts401 // Before the fix, the second line's variant (the same shared instance) wasCOMMENT
LOWpackages/core/e2e/channel.e2e-spec.ts121 },COMMENT
LOWpackages/core/e2e/order-promotion.e2e-spec.ts1981 // Capture the pre-payment total from one client. All clients haveCOMMENT
LOWpackages/core/e2e/order-promotion.e2e-spec.ts2021COMMENT
LOWpackages/core/src/package-dependencies.spec.ts1import fs from 'fs';COMMENT
LOWpackages/core/src/bootstrap.ts401COMMENT
LOW…core/src/service/helpers/entity-hydrator/merge-deep.ts61 return { value: a, complete: false };COMMENT
LOW…e/src/service/helpers/order-splitter/order-splitter.ts81 .createQueryBuilder()COMMENT
LOW…vice/helpers/order-calculator/order-calculator.spec.ts1481 });COMMENT
LOW…vice/helpers/order-calculator/order-calculator.spec.ts1501 // discountedLinePrice: order.lines[1].discountedLinePrice,COMMENT
LOW…rvice/helpers/translatable-saver/translation-differ.ts81 );COMMENT
LOWpackages/core/src/service/services/order.service.ts1481 // Re-fetch order if coupons were removed, so totals reflect recalculated pricesCOMMENT
LOWpackages/core/src/service/services/customer.service.ts421 // True when we are adding a native credential to a pre-existing account (e.g. SSO-only). InCOMMENT
LOW…s/asset-server-plugin/src/package-dependencies.spec.ts1import fs from 'fs';COMMENT
LOWpackages/email-plugin/src/package-dependencies.spec.ts1import fs from 'fs';COMMENT
LOW…ages/dashboard/scripts/translate/audit-translations.js61// Most script tables (REQUIRED_SCRIPTS, SCRIPT_RANGES, ALLOWED_SCRIPTS)COMMENT
LOWpackages/dashboard/e2e/tests/settings/channels.spec.ts201 await expect(lp.getRows().filter({ hasText: 'e2e-test-channel' })).toHaveCount(0);COMMENT
LOW…ckages/dashboard/e2e/tests/catalog/collections.spec.ts861 // The debounced query then narrows the destination tree to the match.COMMENT
LOW…s/regression/issue-4155-nullable-custom-fields.spec.ts1import { type Page, expect, test } from '@playwright/test';COMMENT
LOW…ion/issue-4729-alerts-do-not-poll-multi-plugin.spec.ts1import { expect, test } from '@playwright/test';COMMENT
LOWpackages/dashboard/src/vite-env.d.ts1/// <reference types="vite/client" />COMMENT
LOW…/app/routes/_authenticated/_channels/channels_.$id.tsx141 })COMMENT
LOW…d/src/lib/framework/form-engine/use-generated-form.tsx181 // Callers typically pass `setValues` as an inline arrow function, whichCOMMENT
LOW…d/src/lib/framework/form-engine/use-generated-form.tsx261 // back empty, and `stripUntouchedTranslations` would then keep every seeded row (see its docs).COMMENT
LOWpackages/dashboard/src/lib/providers/auth.tsx301 // Clear any stale error from a previous logout attempt. Matches theCOMMENT
LOW…/core/src/shared/components/chart/chart.component.scss1::ng-deep {COMMENT
LOW…ared/components/rich-text-editor/prosemirror/keymap.ts21// :: (Schema, ?Object) → ObjectCOMMENT
LOW…d/components/rich-text-editor/prosemirror/menu/menu.ts61COMMENT
LOW…d/components/rich-text-editor/prosemirror/menu/menu.ts81//COMMENT
LOW…d/components/rich-text-editor/prosemirror/menu/menu.ts101//COMMENT
LOW…c/shared/components/form-item/form-item.component.scss21// margin-top: calc(var(--space-unit) * 2);COMMENT
LOWpackages/admin-ui/src/lib/static/polyfills.ts21/** IE9, IE10 and IE11 requires all of the following polyfills. **/COMMENT
LOW…es/admin-ui/src/lib/static/styles/global/_clarity.scss21//Icons & ImagesCOMMENT
LOW…es/admin-ui/src/lib/static/styles/global/_clarity.scss41//depends on variables.clarity, mixins.clarity, color.clarity, helpers.clarity, list-group.clarity, buttons.clarityCOMMENT
LOW…es/admin-ui/src/lib/static/styles/global/_clarity.scss121COMMENT
LOWpackages/create/src/create-vendure-app.ts501 }COMMENT
LOW.github/workflows/typeorm_v1.yml1name: TypeORM v1 compatibilityCOMMENT
LOW.github/workflows/dependency_impact.yml1name: Dependency impactCOMMENT
LOW.github/workflows/publish_to_npm.yml161 # using the Trusted Publishing workflow for some reason.COMMENT
LOW.github/workflows/floating_deps_check.yml1name: Floating dependency checkCOMMENT
LOW.github/workflows/back_merge.yml1name: Back-mergeCOMMENT
Verbosity Indicators24 hits · 48 pts
SeverityFileLineSnippetContext
LOWscripts/npm-trust-bulk.sh97 # Step 1: find any existing trust entry and revoke it.COMMENT
LOWscripts/npm-trust-bulk.sh145 # Step 2: create the new trust entry with both flags.COMMENT
LOWscripts/npm-trust-bulk.sh183 # Step 3: require 2FA for any token/human publish.COMMENT
LOW⚡packages/core/e2e/order-merge.e2e-spec.ts362 // Step 1: Customer logs in and adds an item to their orderCOMMENT
LOW⚡packages/core/e2e/order-merge.e2e-spec.ts369 // Step 2: Log out and create a guest order with a different productCOMMENT
LOW⚡packages/core/e2e/order-merge.e2e-spec.ts376 // Step 3: Disable the product that owns variant T_5 (Curvy Monitor = product T_2).COMMENT
LOW⚡packages/core/e2e/order-merge.e2e-spec.ts383 // Step 4: Attempt login — triggers mergeOrders with UseGuestStrategy.COMMENT
LOWpackages/core/e2e/order-merge.e2e-spec.ts398 // Step 5: The existing order should be preserved with its original lineCOMMENT
LOW⚡packages/dashboard/.storybook/extract-jsdoc-plugin.js139 // Step 1: Find the position of the component exportCOMMENT
LOW⚡packages/dashboard/.storybook/extract-jsdoc-plugin.js148 // Step 2: Look backward from the export to find the JSDoc comment immediately before itCOMMENT
LOWpackages/dashboard/vite/tests/lingui-npm-plugin.spec.ts40 // Step 1: Compile and discover plugins (like the real build process does)COMMENT
LOW⚡packages/dashboard/vite/tests/lingui-npm-plugin.spec.ts56 // Step 2: Extract the package path from the discovered pluginCOMMENT
LOW⚡packages/dashboard/vite/tests/lingui-npm-plugin.spec.ts64 // Step 3: Create linguiBabelPlugin with the discovered packageCOMMENT
LOW⚡packages/dashboard/vite/tests/lingui-npm-plugin.spec.ts69 // Step 4: Read the actual dashboard file that contains Lingui macrosCOMMENT
LOW⚡packages/dashboard/vite/tests/lingui-npm-plugin.spec.ts79 // Step 5: Transform the file using linguiBabelPluginCOMMENT
LOW⚡packages/dashboard/vite/tests/lingui-npm-plugin.spec.ts83 // Step 6: Verify the macros were transformedCOMMENT
LOW⚡packages/dashboard/e2e/tests/sales/orders.spec.ts134 // Step 1: Create a draft order from the list pageCOMMENT
LOW⚡packages/dashboard/e2e/tests/sales/orders.spec.ts141 // Step 2: Set a customer — CustomerSelector uses Command/PopoverCOMMENT
LOW⚡packages/dashboard/e2e/tests/sales/orders.spec.ts151 // Step 3: Add a product variant — ProductVariantSelector uses Command/PopoverCOMMENT
LOWpackages/dashboard/e2e/tests/sales/orders.spec.ts162 // Step 4: Set shipping address — CustomerAddressSelector uses Popover with Card elementsCOMMENT
LOW⚡packages/dashboard/e2e/tests/sales/orders.spec.ts173 // Step 5: Select a shipping method — inline cards (not a popover)COMMENT
LOW⚡packages/dashboard/e2e/tests/sales/orders.spec.ts183 // Step 6: Complete the draft orderCOMMENT
LOW…/_authenticated/_orders/components/payment-details.tsx204 {/* We need to check if there is errorMessage field in the Payment type */}CODE
LOWpackages/create/src/helpers.ts748 // Now we need to check if the docker daemon is runningCOMMENT
Structural Annotation Overuse22 hits · 45 pts
SeverityFileLineSnippetContext
LOWscripts/npm-trust-bulk.sh97 # Step 1: find any existing trust entry and revoke it.COMMENT
LOWscripts/npm-trust-bulk.sh145 # Step 2: create the new trust entry with both flags.COMMENT
LOWscripts/npm-trust-bulk.sh183 # Step 3: require 2FA for any token/human publish.COMMENT
LOW⚡packages/core/e2e/order-merge.e2e-spec.ts362 // Step 1: Customer logs in and adds an item to their orderCOMMENT
LOW⚡packages/core/e2e/order-merge.e2e-spec.ts369 // Step 2: Log out and create a guest order with a different productCOMMENT
LOW⚡packages/core/e2e/order-merge.e2e-spec.ts376 // Step 3: Disable the product that owns variant T_5 (Curvy Monitor = product T_2).COMMENT
LOW⚡packages/core/e2e/order-merge.e2e-spec.ts383 // Step 4: Attempt login — triggers mergeOrders with UseGuestStrategy.COMMENT
LOWpackages/core/e2e/order-merge.e2e-spec.ts398 // Step 5: The existing order should be preserved with its original lineCOMMENT
LOW⚡packages/dashboard/.storybook/extract-jsdoc-plugin.js139 // Step 1: Find the position of the component exportCOMMENT
LOW⚡packages/dashboard/.storybook/extract-jsdoc-plugin.js148 // Step 2: Look backward from the export to find the JSDoc comment immediately before itCOMMENT
LOWpackages/dashboard/vite/tests/lingui-npm-plugin.spec.ts40 // Step 1: Compile and discover plugins (like the real build process does)COMMENT
LOW⚡packages/dashboard/vite/tests/lingui-npm-plugin.spec.ts56 // Step 2: Extract the package path from the discovered pluginCOMMENT
LOW⚡packages/dashboard/vite/tests/lingui-npm-plugin.spec.ts64 // Step 3: Create linguiBabelPlugin with the discovered packageCOMMENT
LOW⚡packages/dashboard/vite/tests/lingui-npm-plugin.spec.ts69 // Step 4: Read the actual dashboard file that contains Lingui macrosCOMMENT
LOW⚡packages/dashboard/vite/tests/lingui-npm-plugin.spec.ts79 // Step 5: Transform the file using linguiBabelPluginCOMMENT
LOW⚡packages/dashboard/vite/tests/lingui-npm-plugin.spec.ts83 // Step 6: Verify the macros were transformedCOMMENT
LOW⚡packages/dashboard/e2e/tests/sales/orders.spec.ts134 // Step 1: Create a draft order from the list pageCOMMENT
LOW⚡packages/dashboard/e2e/tests/sales/orders.spec.ts141 // Step 2: Set a customer — CustomerSelector uses Command/PopoverCOMMENT
LOW⚡packages/dashboard/e2e/tests/sales/orders.spec.ts151 // Step 3: Add a product variant — ProductVariantSelector uses Command/PopoverCOMMENT
LOWpackages/dashboard/e2e/tests/sales/orders.spec.ts162 // Step 4: Set shipping address — CustomerAddressSelector uses Popover with Card elementsCOMMENT
LOW⚡packages/dashboard/e2e/tests/sales/orders.spec.ts173 // Step 5: Select a shipping method — inline cards (not a popover)COMMENT
LOW⚡packages/dashboard/e2e/tests/sales/orders.spec.ts183 // Step 6: Complete the draft orderCOMMENT
Hallucination Indicators3 hits · 30 pts
SeverityFileLineSnippetContext
CRITICALpackages/mcp-plugin/e2e/shop-tools.e2e-spec.ts1714 const standard = quotes.body.result.structuredContent.methods.find(CODE
CRITICALpackages/mcp-plugin/e2e/shop-tools.e2e-spec.ts2603 const usOnly = quotes.body.result.structuredContent.methods.find(CODE
CRITICAL…uct-options-editor/product-options-editor.component.ts65 this.optionGroups$ = this.route.snapshot.data.entity.pipe(CODE
Modern AI Meta-Vocabulary8 hits · 24 pts
SeverityFileLineSnippetContext
MEDIUMpackages/ui-devkit/src/compiler/scaffold.ts277 // copy scaffoldCOMMENT
MEDIUMpackages/create/src/create-vendure-app.ts555 // scaffold proceed against a broken schema.COMMENT
MEDIUMpackages/create/src/helpers.ts601 // resolve it as a transitive dep (npm/yarn/bun hoist, and the scaffold forces yarn'sCOMMENT
MEDIUMpackages/create/src/create-vendure-app.spec.ts8 // One object stands in for everything the scaffold requires from the new project: ts-node,COMMENT
MEDIUMpackages/create/src/interactive-prompts.spec.ts60// for commander so the import runs an interactive (non --ci) scaffold of state.projectDir.COMMENT
MEDIUMpackages/create/src/helpers.spec.ts524// so the scaffold works under either version.COMMENT
MEDIUMpackages/create/src/helpers.spec.ts805 // scaffold's TYPEORM_VERSION being updated to match.COMMENT
MEDIUM…s/create/src/scaffolded-config-storefront-port.spec.ts10// the probe makes the port the scaffold settles on deterministic, so these tests can assertCOMMENT
AI Slop Vocabulary5 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUM…src/telemetry/collectors/system-info.collector.spec.ts35 // Test a few combinations to ensure the function is robustCOMMENT
MEDIUMpackages/core/src/service/services/session.service.ts389 // Using a query builder here because sessions utilize @TableInheritance,COMMENT
MEDIUMpackages/dashboard/plugin/static-server.ts61 // are numeric/UUID; list filters live in the query string). The structurally robustCOMMENT
MEDIUM.github/workflows/typeorm_v1.yml32 # The harness these jobs run through. Without it a change to the versionCOMMENT
MEDIUM.github/workflows/scripts/dashboard-tests.js84 // Wait for dashboard elements to appear with a more robust approachCOMMENT
Slop Phrases3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMpackages/core/src/config/catalog/collection-filter.ts30 * Here's a simple example of a custom CollectionFilter:COMMENT
MEDIUMpackages/dashboard/.storybook/providers.tsx136 * normally for demonstration purposes.COMMENT
MEDIUM…ard/src/lib/framework/form-engine/form-engine-types.ts181 * Here's a simple example:COMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM…ample-plugins/multivendor-plugin/multivendor.plugin.ts45 * ## Create a SellerCOMMENT
MEDIUMpackages/email-plugin/src/handler/event-handler.ts81 * ## Defining a custom handlerCOMMENT
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWscripts/npm-stage-approve-all.sh16# Usage:COMMENT
LOWscripts/npm-trust-bulk.sh27# Usage:COMMENT