The open-source communication infrastructure for agents and products
This report presents the forensic synthetic code analysis of novuhq/novu, a TypeScript project with 39,305 GitHub stars. SynthScan v2.0 examined 932,948 lines of code across 8293 source files, recording 2954 pattern matches distributed across 17 syntactic categories. The overall adjusted score of 3.6 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 2954 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/skills/add-channel-whats-next-onboarding/reference.md | 26 | function escapeJsxStringAttributeValue(value: string): string { | CODE |
| LOW | …/skills/add-channel-whats-next-onboarding/reference.md | 30 | function buildDiscordConnectSnippet(integrationIdentifier: string, applicationIdentifier: string): string { | CODE |
| LOW | …/skills/add-channel-whats-next-onboarding/reference.md | 58 | export function buildDiscordWhatsNextConfig({ | CODE |
| LOW | …/skills/add-channel-whats-next-onboarding/reference.md | 154 | export function DiscordAgentConnectedDetails({ | CODE |
| LOW | playground/nextjs/src/lib/slack-dm-endpoint-connect.ts | 85 | export async function ensureSlackUserDmEndpoint(args: { | CODE |
| LOW | …ayground/nextjs/src/lib/msteams-dm-endpoint-connect.ts | 60 | export async function ensureMsTeamsUserDmEndpoint(args: { | CODE |
| LOW | …ayground/nextjs/src/pages/subscription-hooks/index.tsx | 336 | export default function SubscriptionComponentsPage() { | CODE |
| LOW | …und/nextjs/src/pages/subscription-components/index.tsx | 7 | export default function SubscriptionComponentsPage() { | CODE |
| LOW | playground/nextjs/src/pages/send-email/index.tsx | 11 | function readFileAsAttachmentPayload( | CODE |
| LOW | …d/nextjs/src/pages/connect-telegram-end-user/index.tsx | 5 | export default function ConnectTelegramEndUserPage() { | CODE |
| LOW | enterprise/workers/step-resolver/src/utils/worker-id.ts | 1 | export function generateStepResolverWorkerId(organizationId: string, stepResolverHash: string): string { | CODE |
| LOW | enterprise/workers/thalamus-observer/src/validation.ts | 20 | export function validateObservationParams(body: unknown): body is ObservationParams { | CODE |
| LOW | …ents/skills/figma-use/references/component-patterns.md | 507 | async function getLocalComponentMetadata(componentId) { | CODE |
| LOW | …ents/skills/figma-use/references/component-patterns.md | 530 | async function getPublishedComponentMetadata(componentKey) { | CODE |
| LOW | …s/skills/figma-use/references/effect-style-patterns.md | 107 | function applyEffectStyleToMatchingNodes(styleId, nodeNamePattern) { | CODE |
| LOW | …skills/figma-use/references/plugin-api-standalone.d.ts | 210 | * function someNestedFunctionCallThatClosesThePlugin() { | COMMENT |
| LOW | …gents/skills/figma-use/references/variable-patterns.md | 285 | async function listVariableCollectionsAndVariables() { | CODE |
| LOW | …nts/skills/figma-use/references/text-style-patterns.md | 179 | async function applyTextStyleToMatchingNodes(styleId, nodeNamePattern) { | CODE |
| LOW | libs/agent-evals/src/core/recorder.ts | 137 | export function isForbiddenWatcherCommand(command: string): boolean { | CODE |
| LOW | …e/src/editor/bubble-suggestions/suggestion-registry.ts | 76 | export function registerSuggestionProvider(name: string, factory: SuggestionProviderFactory) { | CODE |
| LOW | …ble-suggestions/providers/inline-decorator-provider.ts | 44 | export function createInlineDecoratorProvider(editor: Editor): SuggestionProvider | null { | CODE |
| LOW | libs/maily-core/src/editor/nodes/button/button-view.tsx | 280 | function BackgroundColorPickerPopup(props: ColorPickerProps) { | CODE |
| LOW | …e/src/editor/plugins/drag-handle/drag-handle-plugin.ts | 203 | function getSelectionRangesNearCursor(e: MouseEvent, t: Editor) { | CODE |
| LOW | libs/maily-core/src/editor/utils/node-options.ts | 26 | export function getInlineDecoratorOptions(editor: Editor) { | CODE |
| LOW | libs/maily-core/src/editor/utils/node-options.ts | 30 | export function useInlineDecoratorOptions(editor: Editor) { | CODE |
| LOW | …editor/extensions/slash-command/slash-command-view.tsx | 238 | export function getSlashCommandSuggestions( | CODE |
| LOW | …/extensions/inline-decorator/inline-decorator-list.tsx | 171 | function createGetReferenceClientRect(props: any): GetReferenceClientRect { | CODE |
| LOW | …/extensions/inline-decorator/inline-decorator-list.tsx | 253 | export function getInlineDecoratorSuggestionsReact( | CODE |
| LOW | …editor/extensions/inline-decorator/inline-decorator.ts | 122 | function createSuggestionAllowHandler() { | CODE |
| LOW | libs/internal-sdk/src/types/unrecognized.ts | 15 | export function startCountingUnrecognized() { | CODE |
| LOW | …al-sdk/src/react-query/environmentVariablesRetrieve.ts | 61 | export function useEnvironmentVariablesRetrieve( | CODE |
| LOW | …al-sdk/src/react-query/environmentVariablesRetrieve.ts | 90 | export function useEnvironmentVariablesRetrieveSuspense( | CODE |
| LOW | …al-sdk/src/react-query/environmentVariablesRetrieve.ts | 113 | export function setEnvironmentVariablesRetrieveData( | CODE |
| LOW | …al-sdk/src/react-query/environmentVariablesRetrieve.ts | 126 | export function invalidateEnvironmentVariablesRetrieve( | CODE |
| LOW | …al-sdk/src/react-query/environmentVariablesRetrieve.ts | 144 | export function invalidateAllEnvironmentVariablesRetrieve( | CODE |
| LOW | libs/internal-sdk/src/react-query/workflowsSync.ts | 81 | export function buildWorkflowsSyncMutation( | CODE |
| LOW | …k/src/react-query/domainsAutoConfigureRetrieve.core.ts | 19 | export function prefetchDomainsAutoConfigureRetrieve( | CODE |
| LOW | …k/src/react-query/domainsAutoConfigureRetrieve.core.ts | 36 | export function buildDomainsAutoConfigureRetrieveQuery( | CODE |
| LOW | …k/src/react-query/domainsAutoConfigureRetrieve.core.ts | 49 | queryFn: async function domainsAutoConfigureRetrieveQueryFn( | CODE |
| LOW | …k/src/react-query/domainsAutoConfigureRetrieve.core.ts | 73 | export function queryKeyDomainsAutoConfigureRetrieve( | CODE |
| LOW | …nal-sdk/src/react-query/workflowsStepsRetrieve.core.ts | 19 | export function prefetchWorkflowsStepsRetrieve( | CODE |
| LOW | …nal-sdk/src/react-query/workflowsStepsRetrieve.core.ts | 38 | export function buildWorkflowsStepsRetrieveQuery( | CODE |
| LOW | …nal-sdk/src/react-query/workflowsStepsRetrieve.core.ts | 54 | queryFn: async function workflowsStepsRetrieveQueryFn( | CODE |
| LOW | …nal-sdk/src/react-query/workflowsStepsRetrieve.core.ts | 79 | export function queryKeyWorkflowsStepsRetrieve( | CODE |
| LOW | …ernal-sdk/src/react-query/translationsRetrieve.core.ts | 19 | export function prefetchTranslationsRetrieve( | CODE |
| LOW | …ernal-sdk/src/react-query/translationsRetrieve.core.ts | 34 | export function buildTranslationsRetrieveQuery( | CODE |
| LOW | …ernal-sdk/src/react-query/translationsRetrieve.core.ts | 51 | queryFn: async function translationsRetrieveQueryFn( | CODE |
| LOW | …ernal-sdk/src/react-query/translationsRetrieve.core.ts | 74 | export function queryKeyTranslationsRetrieve( | CODE |
| LOW | …ternal-sdk/src/react-query/integrationsSetAsPrimary.ts | 60 | export function useIntegrationsSetAsPrimaryMutation( | CODE |
| LOW | …ternal-sdk/src/react-query/integrationsSetAsPrimary.ts | 78 | export function mutationKeyIntegrationsSetAsPrimary(): MutationKey { | CODE |
| LOW | …ternal-sdk/src/react-query/integrationsSetAsPrimary.ts | 82 | export function buildIntegrationsSetAsPrimaryMutation( | CODE |
| LOW | …ternal-sdk/src/react-query/integrationsSetAsPrimary.ts | 93 | mutationFn: function integrationsSetAsPrimaryMutationFn({ | CODE |
| LOW | libs/internal-sdk/src/react-query/domainsRetrieve.ts | 87 | export function useDomainsRetrieveSuspense( | CODE |
| LOW | libs/internal-sdk/src/react-query/domainsRetrieve.ts | 120 | export function invalidateDomainsRetrieve( | CODE |
| LOW | libs/internal-sdk/src/react-query/domainsRetrieve.ts | 133 | export function invalidateAllDomainsRetrieve( | CODE |
| LOW | …l-sdk/src/react-query/channelEndpointsRetrieve.core.ts | 19 | export function prefetchChannelEndpointsRetrieve( | CODE |
| LOW | …l-sdk/src/react-query/channelEndpointsRetrieve.core.ts | 36 | export function buildChannelEndpointsRetrieveQuery( | CODE |
| LOW | …l-sdk/src/react-query/channelEndpointsRetrieve.core.ts | 49 | queryFn: async function channelEndpointsRetrieveQueryFn( | CODE |
| LOW | …l-sdk/src/react-query/channelEndpointsRetrieve.core.ts | 73 | export function queryKeyChannelEndpointsRetrieve( | CODE |
| LOW | …/react-query/subscribersNotificationsArchiveAllRead.ts | 61 | export function useSubscribersNotificationsArchiveAllReadMutation( | CODE |
| 2266 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ground/nextjs/src/app/api/agent-toolkit/lib/toolkit.ts | 45 | secretKey: process.env.NOVU_SECRET_KEY ?? 'dummy-key', | CODE |
| LOW | playground/nextjs/src/pages/api/hello.ts | 9 | res.status(200).json({ name: 'John Doe' }); | CODE |
| LOW | playground/nestjs/src/user.service.ts | 7 | name: 'John Doe', | CODE |
| LOW | .agents/skills/react-email/SKILL.md | 181 | name: 'John Doe', | CODE |
| LOW | .agents/skills/react-email/SKILL.md | 407 | to: ['user@example.com'], | CODE |
| LOW | .agents/skills/react-email/references/I18N.md | 141 | to: ['user@example.com'], | CODE |
| LOW | .agents/skills/react-email/references/SENDING.md | 38 | to: ['user@example.com'], | CODE |
| LOW | .agents/skills/react-email/references/SENDING.md | 67 | to: ['user@example.com'], | CODE |
| LOW | .agents/skills/react-email/references/SENDING.md | 93 | to: 'user@example.com', | CODE |
| LOW | .agents/skills/react-email/references/SENDING.md | 110 | to: 'user@example.com', | CODE |
| LOW | .agents/skills/react-email/references/PATTERNS.md | 67 | email: 'user@example.com', | CODE |
| LOW | .agents/skills/react-email/references/PATTERNS.md | 265 | name: 'John Doe', | CODE |
| LOW | .agents/skills/react-email/references/PATTERNS.md | 266 | street: '123 Main St', | CODE |
| LOW | .agents/skills/react-email/references/PATTERNS.md | 591 | author: 'Jane Doe', | CODE |
| LOW | .agents/skills/react-email/references/PATTERNS.md | 698 | inviterName: 'John Doe', | CODE |
| LOW | .agents/skills/testerarmy-cli/SKILL.md | 68 | echo '{"kind":"login","label":"Admin","username":"admin@example.com","password":"secret"}' | ta projects credentials-cre | CODE |
| LOW | docs/.mintlify/skills/manage-subscribers/SKILL.md | 39 | company: "Acme Inc", | CODE |
| LOW | …age-subscribers/references/subscriber-crud-examples.md | 25 | company: "Acme Inc", | CODE |
| LOW | …ls/framework-integration/references/email-templates.md | 239 | payloadSchema: z.object({ userName: z.string().default("John Doe") }), | CODE |
| LOW | …ls/framework-integration/references/email-templates.md | 302 | payloadSchema: z.object({ userName: z.string().default("John Doe") }), | CODE |
| LOW | …ger-notification/references/single-trigger-examples.md | 19 | companyName: "Acme Inc", | CODE |
| LOW | …ger-notification/references/single-trigger-examples.md | 39 | "companyName": "Acme Inc", | CODE |
| LOW | …ger-notification/references/single-trigger-examples.md | 57 | "companyName": "Acme Inc" | CODE |
| LOW | …on-generic/src/decorators/context-payload.decorator.ts | 23 | example: { name: 'Acme Corp', region: 'us-east-1' }, | CODE |
| LOW | libs/application-generic/src/utils/maily-utils.ts | 330 | * (node) => ({ type: "text", text: "John Doe" }) | COMMENT |
| LOW | libs/application-generic/src/utils/maily-utils.ts | 337 | * { type: "text", text: "John Doe" }, | COMMENT |
| LOW | libs/application-generic/src/utils/json-schema-mock.ts | 36 | JSONSchemaFaker.format('email', () => 'user@example.com'); | CODE |
| LOW | libs/application-generic/src/utils/json-schema-mock.ts | 64 | if (prop.format === 'email') return 'user@example.com'; | CODE |
| LOW | libs/application-generic/src/utils/json-schema-mock.ts | 73 | return 'user@example.com'; | CODE |
| LOW | libs/application-generic/src/utils/json-schema-mock.ts | 120 | return 'John Doe'; | CODE |
| LOW | libs/application-generic/src/utils/json-schema-mock.ts | 137 | return '123 Main Street'; | CODE |
| LOW | libs/application-generic/src/utils/json-schema-mock.ts | 355 | // Add examples for string properties to override lorem ipsum | COMMENT |
| LOW | …nel-endpoint/__tests__/channel-endpoint.schema.spec.ts | 49 | expect(validateEndpointForTypeFromSchema(ENDPOINT_TYPES.WEBEX_PERSON, { personEmail: 'user@example.com' })).toBe( | CODE |
| LOW | …nel-endpoint/__tests__/channel-endpoint.schema.spec.ts | 67 | personEmail: 'user@example.com', | CODE |
| LOW | …/application-generic/src/commands/base.command.spec.ts | 43 | TestCommand.create({ email: 'test@test.com', password: undefined }); | CODE |
| LOW | …/application-generic/src/commands/base.command.spec.ts | 55 | const obj = { email: 'test@test.com', password: 'P@ssw0rd' }; | CODE |
| LOW | …ecases/preview/services/mock-data-generator.service.ts | 146 | email: 'user@example.com', | CODE |
| LOW | libs/maily-render/src/maily.tsx | 369 | * name: 'John Doe', | COMMENT |
| LOW | libs/maily-render/src/render.test.ts | 24 | maily.setVariableValue('name', 'John Doe'); | CODE |
| LOW | libs/maily-render/src/render.test.ts | 29 | expect(result).toMatchInlineSnapshot(`"John Doe"`); | CODE |
| LOW | packages/framework/src/jsonSchemaFaker.js | 5774 | LIPSUM_WORDS = `Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore | CODE |
| LOW | packages/framework/src/jsonSchemaFaker.js | 5774 | LIPSUM_WORDS = `Lorem ipsum dolor sit amet consectetur adipisicing elit sed do eiusmod tempor incididunt ut labore | CODE |
| LOW | packages/framework/src/types/context.types.ts | 16 | * data: { name: "Acme Corp", plan: "enterprise" } | COMMENT |
| LOW | packages/framework/src/types/context.types.ts | 45 | * data: { name: "Acme Corp", plan: "enterprise" } | COMMENT |
| LOW | packages/framework/src/types/context.types.ts | 52 | * tenant: { id: "org-acme", data: { name: "Acme Corp" } }, | COMMENT |
| LOW | packages/framework/src/types/context.types.ts | 90 | * data: { name: "Acme Corp", plan: "enterprise", region: "us-east" } | COMMENT |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 203 | to: 'test@test.com', | CODE |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 236 | to: 'test@test.com', | CODE |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 266 | to: 'test@test.com', | CODE |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 293 | to: 'test@test.com', | CODE |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 308 | to: 'test@test.com', | CODE |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 325 | to: 'test@test.com', | CODE |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 349 | to: 'test@test.com', | CODE |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 374 | to: 'test@test.com', | CODE |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 385 | to: 'test@test.com', | CODE |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 426 | to: 'test@test.com', | CODE |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 434 | to: 'test@test.com', | CODE |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 482 | to: 'test@test.com', | CODE |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 518 | to: 'test@test.com', | CODE |
| LOW | …ages/framework/src/resources/workflow/workflow.test.ts | 529 | data: { name: 'Acme Corp', plan: 'enterprise', region: 'us-east' }, | CODE |
| 174 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docker/community/setup.sh | 98 | # ── Main ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …extjs/src/app/agents-mcp/components/flow-simulator.tsx | 169 | // ── Common preamble (visualization only) ───────────────────────────── | COMMENT |
| MEDIUM | …extjs/src/app/agents-mcp/components/flow-simulator.tsx | 184 | // ── Real call: connection status ───────────────────────────────────── | COMMENT |
| MEDIUM | …extjs/src/app/agents-mcp/components/flow-simulator.tsx | 214 | // ── Miss branch ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …extjs/src/app/agents-mcp/components/flow-simulator.tsx | 230 | // ── Real call: generate authorize URL + open popup ─────────────────── | COMMENT |
| MEDIUM | …und/nextjs/src/app/agents-mcp/components/flow-steps.ts | 55 | // ── Common preamble ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …und/nextjs/src/app/agents-mcp/components/flow-steps.ts | 83 | // ── Hit branch ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …und/nextjs/src/app/agents-mcp/components/flow-steps.ts | 100 | // ── Miss branch ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …und/nextjs/src/app/agents-mcp/components/flow-steps.ts | 157 | // ── Common epilogue ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/application-generic/src/utils/ssrf-url-validation.ts | 220 | // ────── Safe outbound HTTP ────── | COMMENT |
| MEDIUM | …rk/src/langchain/history-mapper/history-mapper.test.ts | 69 | // ─── Assertion helper: reduce a LangChain message to a comparable shape ───────── | COMMENT |
| MEDIUM | …rk/src/langchain/history-mapper/history-mapper.test.ts | 131 | // ─── Tests ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mework/src/langchain/history-mapper/approval-cycles.ts | 35 | // ─── Payload extractors ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mework/src/langchain/history-mapper/approval-cycles.ts | 75 | // ─── Approval index (one pre-scan per turn) ─────────────────────────────────── | COMMENT |
| MEDIUM | …mework/src/langchain/history-mapper/approval-cycles.ts | 121 | // ─── Cycle classification ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mework/src/langchain/history-mapper/approval-cycles.ts | 137 | // ─── LangChain message builders ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mework/src/langchain/history-mapper/approval-cycles.ts | 167 | // ─── Ledger entry mapper ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mework/src/langchain/history-mapper/approval-cycles.ts | 200 | // ─── Resume helpers ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/framework/src/langchain/reply-mapper/index.ts | 20 | // ─── Guards ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/framework/src/langchain/reply-mapper/index.ts | 44 | // ─── Text extraction ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/framework/src/langchain/reply-mapper/index.ts | 81 | // ─── Config path (Novu-managed approval loop) ─────────────────────────────────── | COMMENT |
| MEDIUM | packages/framework/src/langchain/reply-mapper/index.ts | 124 | // ─── Router ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/framework/src/ai-sdk/ai-sdk-agent.test.ts | 13 | // ─── Test fixtures ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/framework/src/ai-sdk/ai-sdk-agent.test.ts | 117 | // ─── Tests ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ework/src/ai-sdk/history-mapper/history-mapper.test.ts | 5 | // ─── Test fixtures ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ework/src/ai-sdk/history-mapper/history-mapper.test.ts | 63 | // ─── Expected AI SDK shapes (shortcuts for assertions) ──────────────────────── | COMMENT |
| MEDIUM | …ework/src/ai-sdk/history-mapper/history-mapper.test.ts | 98 | // ─── Tests ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …framework/src/ai-sdk/history-mapper/approval-cycles.ts | 30 | // ─── Payload extractors ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …framework/src/ai-sdk/history-mapper/approval-cycles.ts | 70 | // ─── Approval index (one pre-scan per turn) ─────────────────────────────────── | COMMENT |
| MEDIUM | …framework/src/ai-sdk/history-mapper/approval-cycles.ts | 118 | // ─── Cycle classification ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …framework/src/ai-sdk/history-mapper/approval-cycles.ts | 134 | // ─── AI SDK message builders ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …framework/src/ai-sdk/history-mapper/approval-cycles.ts | 174 | // ─── Ledger entry mappers ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …framework/src/ai-sdk/reply-mapper/reply-mapper.test.ts | 7 | // ─── Test fixtures ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …framework/src/ai-sdk/reply-mapper/reply-mapper.test.ts | 74 | // ─── Tests ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/shared/src/consts/providers/mcp-servers.ts | 171 | // ── Popular ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | packages/shared/src/consts/providers/mcp-servers.ts | 341 | // ── All others ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …c/consts/providers/credentials/provider-credentials.ts | 1556 | // ─── Agent Runtime Providers ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …rc/app/agents/management/skills/github-skill-bundle.ts | 221 | // ─── GitHub HTTP plumbing ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …rc/app/agents/management/skills/github-skill-bundle.ts | 345 | // ─── Streaming tar pipeline ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …rc/app/agents/management/skills/github-skill-bundle.ts | 501 | // ─── Public entry points ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ision-managed-agent/provision-managed-agent.usecase.ts | 104 | // ── Adopt mode ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ision-managed-agent/provision-managed-agent.usecase.ts | 137 | // ── Provision mode ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …rc/app/agents/mcp/oauth/mcp-oauth-discovery.service.ts | 53 | // ── `novu-app` mode (Novu's pre-registered OAuth app) ──────────────────── | COMMENT |
| MEDIUM | …oauth/mcp-oauth-callback/mcp-oauth-callback.usecase.ts | 151 | // ── execute sub-steps ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …nerate-mcp-oauth-url/generate-mcp-oauth-url.command.ts | 34 | // ── Session resume fields (source: 'user_chat') ────────────────────── | COMMENT |
| MEDIUM | …ts/mcp/oauth/generate-mcp-oauth-url/mcp-oauth-state.ts | 31 | // ── Session resume fields (source: 'user_chat') ────────────────────── | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/upload-custom-skill.e2e.ts | 197 | // ─── Helpers ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/upload-custom-skill.e2e.ts | 266 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/upload-custom-skill.e2e.ts | 268 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/upload-custom-skill.e2e.ts | 786 | // ─── Integration validation (cross-variant) ───────────────────────────────── | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/upload-custom-skill.e2e.ts | 817 | // ─── Request body validation (cross-variant) ──────────────────────────────── | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/upload-custom-skill.e2e.ts | 905 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/upload-custom-skill.e2e.ts | 907 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/upload-custom-skill.e2e.ts | 1169 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/upload-custom-skill.e2e.ts | 1171 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/managed-agent.e2e.ts | 142 | // ─── POST /v1/integrations — agent-kind provisioning ───────────────────────── | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/managed-agent.e2e.ts | 217 | // ─── POST /v1/agents — managed runtime ────────────────────────────────────── | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/managed-agent.e2e.ts | 369 | // ─── POST /v1/agents — externalEnvironmentId rebinding ───────────────────── | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/managed-agent.e2e.ts | 504 | // ─── GET /v1/agents/:identifier/runtime/config ────────────────────────────── | COMMENT |
| MEDIUM | apps/api/src/app/agents/e2e/managed-agent.e2e.ts | 617 | // ─── PATCH /v1/agents/:identifier/runtime/config ──────────────────────────── | COMMENT |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .cursor/skills/triage-agent-eval-failures/SKILL.md | 29 | ## Step 1: identify which grader failed and its kind | COMMENT |
| LOW | .cursor/skills/triage-agent-eval-failures/SKILL.md | 46 | ## Step 2: read the RunResult evidence | COMMENT |
| LOW | .cursor/skills/triage-agent-eval-failures/SKILL.md | 57 | ## Step 3: classify the failure | COMMENT |
| LOW | .cursor/skills/triage-agent-eval-failures/SKILL.md | 73 | ## Step 4: apply one bounded fix, then verify | COMMENT |
| LOW | .agents/skills/linear-release-setup/SKILL.md | 14 | ### Step 1: Preflight | COMMENT |
| LOW | .agents/skills/linear-release-setup/SKILL.md | 22 | ### Step 2: Map pipelines, then ask | COMMENT |
| LOW | .agents/skills/linear-release-setup/SKILL.md | 48 | ### Step 3: Generate the CI configuration | COMMENT |
| LOW | .agents/skills/linear-release-setup/SKILL.md | 80 | ### Step 4: Remind about secrets | COMMENT |
| LOW | …ges/providers/src/lib/chat/msTeams/msTeams.provider.ts | 130 | // Step 1: Create 1:1 conversation | COMMENT |
| LOW | …ges/providers/src/lib/chat/msTeams/msTeams.provider.ts | 153 | // Step 2: Send message to the conversation | COMMENT |
| LOW | …/providers/src/lib/email/sendgrid/sendgrid.provider.ts | 236 | // Step 1: Create a new Event Webhook | COMMENT |
| LOW | …/providers/src/lib/email/sendgrid/sendgrid.provider.ts | 264 | // Step 2: Enable Signature Verification | COMMENT |
| LOW | …es/providers/src/lib/email/mailgun/mailgun.provider.ts | 177 | // Step 2: Retrieve HTTP Webhook Signing Key from Mailgun API | COMMENT |
| LOW | .github/workflows/scripts/validate-submodule-sync.sh | 19 | # Step 1: Fetch the latest commit hash from the private repository's target branch | COMMENT |
| LOW | .github/workflows/scripts/validate-submodule-sync.sh | 53 | # Step 2: Get the current commit hash from the .source submodule | COMMENT |
| LOW | .github/workflows/scripts/validate-submodule-sync.sh | 78 | # Step 3: Compare the hashes | COMMENT |
| LOW | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 110 | ### Step 1: Package Installation | COMMENT |
| LOW | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 121 | ### Step 2: Environment Variable Configuration | COMMENT |
| LOW | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 137 | ### Step 3: Subscriber ID Detection | COMMENT |
| LOW | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 152 | ### Step 4: Inline Appearance Configuration | COMMENT |
| LOW | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 256 | ### Step 5: Component Creation | COMMENT |
| LOW⚡ | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 270 | ### Step 6: UI Placement Strategy | COMMENT |
| LOW⚡ | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 278 | ### Step 7: Validation & Testing | COMMENT |
| LOW | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 289 | ### Step 8: AI Model Verification (Internal Process) | COMMENT |
| LOW⚡ | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 301 | ### Step 9: Iterative Refinement Process | COMMENT |
| LOW⚡ | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 310 | ### Step 10: Final Output Requirements | COMMENT |
| LOW | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 137 | ### Step 1: Package Installation | COMMENT |
| LOW | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 157 | ### Step 2: Environment Variable Configuration | COMMENT |
| LOW | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 175 | ### Step 3: Composable Creation | COMMENT |
| LOW | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 212 | ### Step 4: Inline Appearance Configuration | COMMENT |
| LOW | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 311 | ### Step 5: Component Creation | COMMENT |
| LOW⚡ | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 325 | ### Step 6: UI Placement Strategy | COMMENT |
| LOW⚡ | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 333 | ### Step 7: Validation & Testing | COMMENT |
| LOW | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 345 | ### Step 8: AI Model Verification (Internal Process) | COMMENT |
| LOW⚡ | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 358 | ### Step 9: Iterative Refinement Process | COMMENT |
| LOW⚡ | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 367 | ### Step 10: Final Output Requirements | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 117 | ### Step 1: Package Installation | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 137 | ### Step 2: Environment Variable Configuration | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 154 | ### Step 3: Subscriber ID Detection | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 169 | ### Step 4: Inline Appearance Configuration | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 273 | ### Step 5: Component Creation | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 287 | ### Step 6: UI Placement Strategy | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 295 | ### Step 7: Validation & Testing | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 306 | ### Step 8: AI Model Verification (Internal Process) | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 318 | ### Step 9: Iterative Refinement Process | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 327 | ### Step 10: Final Output Requirements | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 122 | ### Step 1: Package Installation | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 142 | ### Step 2: Environment Variable Configuration | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 160 | ### Step 3: Root Configuration | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 208 | ### Step 4: Inline Appearance Configuration | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 307 | ### Step 5: Component Creation | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 321 | ### Step 6: UI Placement Strategy | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 329 | ### Step 7: Validation & Testing | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 341 | ### Step 8: AI Model Verification (Internal Process) | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 354 | ### Step 9: Iterative Refinement Process | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 363 | ### Step 10: Final Output Requirements | COMMENT |
| LOW⚡ | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 302 | ### Step 6: UI Placement Strategy | COMMENT |
| LOW⚡ | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 310 | ### Step 7: Validation & Testing | COMMENT |
| LOW⚡ | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 337 | ### Step 9: Iterative Refinement Process | COMMENT |
| LOW⚡ | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 347 | ### Step 10: Final Output Requirements | COMMENT |
| 44 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …usecases/create-workflow-v0/create-workflow.usecase.ts | 370 | // userPreferences is optional, so we need to check if it's defined before calling the upsert | COMMENT |
| LOW | …usecases/update-workflow-v0/update-workflow.usecase.ts | 207 | * userPreferences is optional, so we need to check if it's defined before calling the upsert. | COMMENT |
| LOW | …ges/providers/src/lib/chat/msTeams/msTeams.provider.ts | 130 | // Step 1: Create 1:1 conversation | COMMENT |
| LOW | …ges/providers/src/lib/chat/msTeams/msTeams.provider.ts | 153 | // Step 2: Send message to the conversation | COMMENT |
| LOW | …/providers/src/lib/email/sendgrid/sendgrid.provider.ts | 236 | // Step 1: Create a new Event Webhook | COMMENT |
| LOW | …/providers/src/lib/email/sendgrid/sendgrid.provider.ts | 264 | // Step 2: Enable Signature Verification | COMMENT |
| LOW | …es/providers/src/lib/email/mailgun/mailgun.provider.ts | 177 | // Step 2: Retrieve HTTP Webhook Signing Key from Mailgun API | COMMENT |
| LOW | .github/workflows/scripts/validate-submodule-sync.sh | 19 | # Step 1: Fetch the latest commit hash from the private repository's target branch | COMMENT |
| LOW | .github/workflows/scripts/validate-submodule-sync.sh | 53 | # Step 2: Get the current commit hash from the .source submodule | COMMENT |
| LOW | .github/workflows/scripts/validate-submodule-sync.sh | 78 | # Step 3: Compare the hashes | COMMENT |
| LOW | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 110 | ### Step 1: Package Installation | COMMENT |
| LOW | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 121 | ### Step 2: Environment Variable Configuration | COMMENT |
| LOW | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 137 | ### Step 3: Subscriber ID Detection | COMMENT |
| LOW | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 152 | ### Step 4: Inline Appearance Configuration | COMMENT |
| LOW | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 256 | ### Step 5: Component Creation | COMMENT |
| LOW⚡ | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 270 | ### Step 6: UI Placement Strategy | COMMENT |
| LOW⚡ | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 278 | ### Step 7: Validation & Testing | COMMENT |
| LOW | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 289 | ### Step 8: AI Model Verification (Internal Process) | COMMENT |
| LOW⚡ | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 301 | ### Step 9: Iterative Refinement Process | COMMENT |
| LOW⚡ | …/welcome/ai-prompts/framework-prompts/nextjs-prompt.ts | 310 | ### Step 10: Final Output Requirements | COMMENT |
| LOW | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 137 | ### Step 1: Package Installation | COMMENT |
| LOW | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 157 | ### Step 2: Environment Variable Configuration | COMMENT |
| LOW | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 175 | ### Step 3: Composable Creation | COMMENT |
| LOW | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 212 | ### Step 4: Inline Appearance Configuration | COMMENT |
| LOW | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 311 | ### Step 5: Component Creation | COMMENT |
| LOW⚡ | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 325 | ### Step 6: UI Placement Strategy | COMMENT |
| LOW⚡ | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 333 | ### Step 7: Validation & Testing | COMMENT |
| LOW | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 345 | ### Step 8: AI Model Verification (Internal Process) | COMMENT |
| LOW⚡ | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 358 | ### Step 9: Iterative Refinement Process | COMMENT |
| LOW⚡ | …nts/welcome/ai-prompts/framework-prompts/vue-prompt.ts | 367 | ### Step 10: Final Output Requirements | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 117 | ### Step 1: Package Installation | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 137 | ### Step 2: Environment Variable Configuration | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 154 | ### Step 3: Subscriber ID Detection | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 169 | ### Step 4: Inline Appearance Configuration | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 273 | ### Step 5: Component Creation | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 287 | ### Step 6: UI Placement Strategy | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 295 | ### Step 7: Validation & Testing | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 306 | ### Step 8: AI Model Verification (Internal Process) | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 318 | ### Step 9: Iterative Refinement Process | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/react-prompt.ts | 327 | ### Step 10: Final Output Requirements | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 122 | ### Step 1: Package Installation | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 142 | ### Step 2: Environment Variable Configuration | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 160 | ### Step 3: Root Configuration | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 208 | ### Step 4: Inline Appearance Configuration | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 307 | ### Step 5: Component Creation | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 321 | ### Step 6: UI Placement Strategy | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 329 | ### Step 7: Validation & Testing | COMMENT |
| LOW | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 341 | ### Step 8: AI Model Verification (Internal Process) | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 354 | ### Step 9: Iterative Refinement Process | COMMENT |
| LOW⚡ | …s/welcome/ai-prompts/framework-prompts/remix-prompt.ts | 363 | ### Step 10: Final Output Requirements | COMMENT |
| LOW⚡ | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 302 | ### Step 6: UI Placement Strategy | COMMENT |
| LOW⚡ | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 310 | ### Step 7: Validation & Testing | COMMENT |
| LOW⚡ | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 337 | ### Step 9: Iterative Refinement Process | COMMENT |
| LOW⚡ | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 347 | ### Step 10: Final Output Requirements | COMMENT |
| LOW | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 126 | ### Step 1: Package Installation | COMMENT |
| LOW | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 147 | ### Step 2: Environment Variable Configuration | COMMENT |
| LOW | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 165 | ### Step 3: Root Configuration | COMMENT |
| LOW | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 192 | ### Step 4: Inline Appearance Configuration | COMMENT |
| LOW | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 288 | ### Step 5: Component Creation | COMMENT |
| LOW | …me/ai-prompts/framework-prompts/react-native-prompt.ts | 323 | ### Step 8: AI Model Verification (Internal Process) | COMMENT |
| 38 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .cursor/scripts/start.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | …rprise/workers/step-resolver/worker-configuration.d.ts | 10141 | } : T; | COMMENT |
| LOW | …rprise/workers/step-resolver/worker-configuration.d.ts | 10161 | // For properties, rewrite types to be `Result`s. | COMMENT |
| LOW | …rprise/workers/step-resolver/worker-configuration.d.ts | 10181 | interface Env { | COMMENT |
| LOW | …rprise/workers/step-resolver/worker-configuration.d.ts | 10501 | readonly type: "attributes"; | COMMENT |
| LOW | …tep-resolver/scripts/configure-eu-regional-hostname.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .agents/skills/figma-use/references/gotchas.md | 521 | // For horizontal layout, stretch height: | COMMENT |
| LOW | …s/application-generic/src/utils/ssrf-url-validation.ts | 1 | // IMPORTANT: this file is a hand-maintained mirror of two source modules: | COMMENT |
| LOW | libs/notifications/src/workflows/usage-report/email.tsx | 1101 | </Body> | COMMENT |
| LOW | libs/notifications/src/workflows/usage-report/email.tsx | 1121 | // topProviders: [ | COMMENT |
| LOW | scripts/sync-skills.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/setup-agent.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | packages/js/src/ui/novuUI.tsx | 21 | export class NovuUI { | COMMENT |
| LOW | packages/novu/src/index.ts | 141 | data: {}, | COMMENT |
| LOW | packages/novu/src/index.ts | 161 | // .option('--ci', 'Force non-interactive logging mode (no Bootstrap countdown, no MCP picker)', false) | COMMENT |
| LOW | …/commands/init/templates/app-chat-sdk/ts/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | …mands/init/templates/app-agent-ai-sdk/ts/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | …ds/init/templates/app-agent-langchain/ts/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | …src/commands/init/templates/app-agent/ts/next-env.d.ts | 1 | /// <reference types="next" /> | COMMENT |
| LOW | packages/novu/src/commands/wizard/pipeline/runner.ts | 61 | const bootstrapProject = store.session.get().project; | COMMENT |
| LOW | packages/novu/src/commands/wizard/pipeline/runner.ts | 141 | if (mcpInstalled.length > 0) { | COMMENT |
| LOW | …ages/novu/src/commands/connect/ui/orb/orb-renderer.tsx | 41 | return <Orb phase={frame} scale={scale} tintColor={tintColor} label={label} morphProgress={morphProgress} />; | COMMENT |
| LOW | …ages/novu/src/commands/connect/ui/orb/orb-renderer.tsx | 61 | // matrix to produce the classic 1-bit ordered-dithered look. Lit hemisphere | COMMENT |
| LOW | .github/workflows/codeql-analysis.yml | 1 | # For most projects, this workflow file will not need changing; you simply need | COMMENT |
| LOW | .github/workflows/on-pr.yml | 281 | # Aggregator / "all-green" gate. This job depends on every other job in | COMMENT |
| LOW | .github/workflows/on-pr.yml | 381 | COMMENT | |
| LOW | apps/api/src/app/bridge/usecases/sync/sync.usecase.ts | 81 | // performs a discovery request against it. Without an SSRF guard, an | COMMENT |
| LOW | …ision-managed-agent/provision-managed-agent.usecase.ts | 221 | // Mongo is the source of truth for the agent's MCP list. Mirror the | COMMENT |
| LOW | …oauth/mcp-oauth-callback/mcp-oauth-callback.usecase.ts | 881 | // Legacy rows registered before negotiation existed have no value | COMMENT |
| LOW | apps/api/src/app/agents/shared/util/esm-import.ts | 1 | // Chat SDK packages are ESM-only; SWC rewrites import() → require() for CJS output. | COMMENT |
| LOW | apps/api/src/app/agents/e2e/agent-mcp-servers.e2e.ts | 701 | // No extra HTTP discovery or registration calls on the reuse path. | COMMENT |
| LOW | …ps/api/src/app/agents/e2e/agent-slack-roundtrip.e2e.ts | 161 | }, | COMMENT |
| LOW | …ps/api/src/app/agents/e2e/agent-slack-roundtrip.e2e.ts | 341 | COMMENT | |
| LOW | …ses/parse-event-request/parse-event-request.usecase.ts | 321 | // The trigger pipeline performs an outbound DISCOVER request against the | COMMENT |
| LOW | apps/inbound-mail/src/python/spf.py | 41 | # Revision 1.108.2.107 2013/07/23 18:37:17 customdesigned | COMMENT |
| LOW | apps/inbound-mail/src/python/spf.py | 61 | # Functional alias for __email__ | COMMENT |
| LOW | apps/inbound-mail/src/python/spf.py | 81 | # Revision 1.108.2.94 2013/07/22 02:44:39 kitterma | COMMENT |
| LOW | apps/inbound-mail/src/python/spf.py | 101 | # Revision 1.108.2.87 2013/05/26 00:23:52 kitterma | COMMENT |
| LOW | apps/inbound-mail/src/python/spf.py | 121 | # Fix dns_txt and dns_spf - should hopefully still be correct for python3. | COMMENT |
| LOW | apps/inbound-mail/src/python/DNS/lazy.py | 61 | # Revision 1.5.2.1.2.2 2011/03/23 01:42:07 customdesigned | COMMENT |
| LOW | apps/inbound-mail/src/python/DNS/lazy.py | 81 | # cvs keywords added | COMMENT |
| LOW | apps/inbound-mail/src/python/DNS/Base.py | 181 | elif self.resulttype == 'text': | COMMENT |
| LOW | apps/inbound-mail/src/python/dkim/canonicalization.py | 1 | # This software is provided 'as-is', without any express or implied | COMMENT |
| LOW | apps/inbound-mail/src/python/dkim/dnsplug.py | 1 | # This software is provided 'as-is', without any express or implied | COMMENT |
| LOW | apps/inbound-mail/src/python/dkim/util.py | 1 | # This software is provided 'as-is', without any express or implied | COMMENT |
| LOW | apps/inbound-mail/src/python/dkim/__init__.py | 1 | # This software is provided 'as-is', without any express or implied | COMMENT |
| LOW | apps/inbound-mail/src/python/dkim/__init__.py | 241 | j = 72 | COMMENT |
| LOW | apps/inbound-mail/src/python/dkim/__init__.py | 361 | if x.lower() in hset ] | COMMENT |
| LOW | apps/inbound-mail/src/python/dkim/__init__.py | 381 | #: enroute (e.g. mailing lists that append unsubscribe information) | COMMENT |
| LOW | apps/inbound-mail/src/python/dkim/crypto.py | 1 | # This software is provided 'as-is', without any express or implied | COMMENT |
| LOW | apps/inbound-mail/src/python/dkim/asn1.py | 1 | # This software is provided 'as-is', without any express or implied | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …s/providers/src/lib/email/braze/braze.provider.spec.ts | 5 | apiKey: 'your-api-key', | CODE |
| HIGH | packages/novu/src/commands/sync.spec.ts | 23 | const secretKey = 'your-api-key'; | CODE |
| HIGH | packages/novu/src/commands/sync.spec.ts | 46 | const secretKey = 'your-api-key'; | CODE |
| HIGH | packages/novu/src/commands/sync.spec.ts | 60 | const secretKey = 'your-api-key'; | CODE |
| HIGH | packages/novu/src/commands/sync.spec.ts | 78 | const secretKey = 'your-api-key'; | CODE |
| HIGH | packages/novu/src/commands/sync.spec.ts | 85 | const secretKey = 'your-api-key'; | CODE |
| HIGH | …board/src/components/workflow-editor/workflow-tabs.tsx | 82 | const apiKey = canReadApiKeys ? (apiKeysResponse?.data?.[0]?.key ?? 'your-api-key-here') : 'your-api-key-here'; | CODE |
| HIGH | …workflow-editor/test-workflow/test-workflow-drawer.tsx | 83 | const apiKey = canReadApiKeys ? (apiKeysResponse?.data?.[0]?.key ?? 'your-api-key-here') : 'your-api-key-here'; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/deployment-summary.yml | 67 | # Check if this is a release PR | COMMENT |
| LOW | .github/workflows/on-push-trigger.yml | 62 | # Check if only CI/CD label exists (standalone) | COMMENT |
| LOW | .github/workflows/deploy.yml | 206 | # Check if service has environments filter, otherwise deploy to all | COMMENT |
| LOW | .github/workflows/deploy.yml | 214 | # Check if any of the selected environments match the allowed environments | COMMENT |
| LOW | .github/workflows/deploy.yml | 236 | # Check if service has environments filter, otherwise deploy to all | COMMENT |
| LOW | .github/workflows/deploy.yml | 244 | # Check if any of the selected environments match the allowed environments | COMMENT |
| LOW | .github/workflows/conventional-commit.yml | 92 | # Check if PR title already has the Linear ticket format | COMMENT |
| LOW | .github/workflows/conventional-commit.yml | 115 | # Check if title has Linear ticket format manually added | COMMENT |
| LOW | .github/workflows/conventional-commit.yml | 134 | # Check if title ends with "fixes TICKET-ID" pattern | COMMENT |
| LOW | .github/workflows/rollback.yml | 212 | # Check if service has environments filter, otherwise rollback to all | COMMENT |
| LOW | .github/workflows/rollback.yml | 220 | # Check if any of the selected environments match the allowed environments | COMMENT |
| LOW | .github/workflows/rollback.yml | 242 | # Check if service has environments filter, otherwise rollback to all | COMMENT |
| LOW | .github/workflows/rollback.yml | 250 | # Check if any of the selected environments match the allowed environments | COMMENT |
| LOW | .github/workflows/scripts/stop-only.sh | 18 | # Check if any files were found | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | apps/api/src/app/inbox/e2e/update-preferences.e2e.ts | 231 | expect(response.body.errors.general.messages.some((msg: string) => msg.includes('must be in 12-hour format'))).to | CODE |
| CRITICAL | …s/api/src/app/workflows-v2/e2e/generate-preview.e2e.ts | 845 | const eventMatches = previewResponse3.result.result.preview.body.match(/'id':'example-id-\d+'/g); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/scripts/check-workflow-security.py | 55 | CODE | |
| LOW | .github/workflows/scripts/check-workflow-security.py | 114 | CODE | |
| LOW | apps/inbound-mail/src/python/spf.py | 458 | CODE | |
| LOW | apps/inbound-mail/src/python/spf.py | 506 | CODE | |
| LOW | apps/inbound-mail/src/python/spf.py | 679 | CODE | |
| LOW | apps/inbound-mail/src/python/spf.py | 840 | CODE | |
| LOW | apps/inbound-mail/src/python/spf.py | 1031 | CODE | |
| LOW | apps/inbound-mail/src/python/spf.py | 1223 | CODE | |
| LOW | apps/inbound-mail/src/python/spf.py | 1279 | CODE | |
| LOW | apps/inbound-mail/src/python/spf.py | 1381 | CODE | |
| LOW | apps/inbound-mail/src/python/spf.py | 1466 | CODE | |
| LOW | apps/inbound-mail/src/python/spf.py | 1655 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/win32dns.py | 48 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/Base.py | 173 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/Base.py | 330 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/Base.py | 372 | CODE | |
| LOW | apps/inbound-mail/src/python/dkim/__init__.py | 189 | CODE | |
| LOW | apps/inbound-mail/src/python/dkim/asn1.py | 46 | CODE | |
| LOW | apps/inbound-mail/src/python/dkim/asn1.py | 120 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/scripts/fix-step-duplicates.py | 4 | CODE | |
| LOW | .github/workflows/scripts/check-workflow-security.py | 26 | CODE | |
| LOW | apps/inbound-mail/src/python/spf.py | 162 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/Lib.py | 28 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/__init__.py | 23 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/__init__.py | 24 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/__init__.py | 25 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/__init__.py | 26 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/__init__.py | 30 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/__init__.py | 31 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/__init__.py | 33 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/__init__.py | 16 | CODE | |
| LOW | apps/inbound-mail/src/python/DNS/__init__.py | 19 | CODE | |
| LOW | apps/inbound-mail/src/python/dkim/__init__.py | 23 | CODE | |
| LOW | apps/inbound-mail/src/python/dkim/__init__.py | 24 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ursor/skills/nv-onboard-dcr-mcp/blocked-mcp-servers.md | 52 | | `bigdata-com` | Bigdata.com | `https://mcp.bigdata.com/` | 2026-06-03 | `no-registration-endpoint` | OAuth AS is Clerk | CODE |
| MEDIUM | .cursor/skills/sanity-changelog/SKILL.md | 43 | - **Improvements & fixes roundup**: review Linear releases since the last published changelog. See [reference.md](refere | CODE |
| MEDIUM | packages/novu/src/commands/init/templates/index.ts | 363 | // Framework only uses chat for card components; ai-sdk scaffold installs ai@7. | COMMENT |
| MEDIUM | …/dashboard/src/components/agents/agent-setup-steps.tsx | 56 | // Self-hosted agents add three handler steps (scaffold + run + send) below the provider guide. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/scripts/stop-only.sh | 3 | # Define the search directory (default to current directory) | COMMENT |
| MEDIUM | apps/inbound-mail/src/python/DNS/__init__.py | 4 | # This file is part of the py3dns project. | COMMENT |
| MEDIUM | apps/inbound-mail/src/python/DNS/lazy.py | 3 | # This file is part of the pydns project. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | apps/inbound-mail/src/python/dkim/canonicalization.py | 24 | __all__ = [ | CODE |
| LOW | apps/inbound-mail/src/python/dkim/dnsplug.py | 23 | __all__ = [ | CODE |
| LOW | apps/inbound-mail/src/python/dkim/util.py | 28 | __all__ = [ | CODE |
| LOW | apps/inbound-mail/src/python/dkim/__init__.py | 52 | __all__ = [ | CODE |
| LOW | apps/inbound-mail/src/python/dkim/crypto.py | 22 | __all__ = [ | CODE |
| LOW | apps/inbound-mail/src/python/dkim/asn1.py | 22 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/js/src/ui/helpers/useStyle.ts | 41 | // Find appearance keys in the className and utilize them as well. | COMMENT |
| LOW | apps/inbound-mail/src/python/spf.py | 887 | # just use last one in lax mode | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …skills/figma-use/references/plugin-api-standalone.d.ts | 2418 | * ## Example usage | COMMENT |
| LOW | scripts/sync-skills.sh | 11 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …s/framework/src/utils/normalize-controls.utils.test.ts | 204 | data: "{'user':{'name':'John O\\'Connor','message':\"Don't forget to check the user's profile\",'metadata':{'use | CODE |
| LOW | …s/framework/src/utils/normalize-controls.utils.test.ts | 214 | expect(parsed.user.message).toBe("Don't forget to check the user's profile"); | CODE |