Storybook is the industry standard workshop for building, documenting, and testing UI components in isolation
This report summarizes scanner evidence for storybookjs/storybook, a TypeScript project with 91,413 GitHub stars. SynthScan examined 952,017 lines of code across 7454 source files, recording 1222 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 1.9 (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.
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.
Can maintainers explain intent, assumptions, and trade-offs? 844 finding(s).
Are imports declared and package/API names verified? 377 finding(s).
Are wrappers, guards, and repeated structures necessary? 505 finding(s).
Which changes need focused human review? 1222 finding(s).
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.
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.
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.
The scanner identified 1222 distinct pattern matches across 15 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agent-eval/scripts/generate-agentic-ref-experiments.ts | 69 | export function generateAgenticRefWorkdir(): void { | CODE |
| LOW | agent-eval/lib/templates.ts | 325 | async function readSandboxWorkspaceFiles(sandbox: Sandbox): Promise<Record<string, string>> { | CODE |
| LOW | agent-eval/lib/templates.ts | 356 | function mergeTemplateAndFixtureFiles( | CODE |
| LOW | agent-eval/lib/templates.ts | 484 | async function installAmazonLinuxPackages(sandbox: Sandbox, packageNames: string[]): Promise<void> { | CODE |
| LOW | agent-eval/lib/templates.ts | 708 | export async function readTemplateCheckoutPackages(): Promise<WorkspacePackage[]> { | CODE |
| LOW | agent-eval/lib/templates.ts | 874 | function referencesStartStorybookScript(files: Record<string, string>): boolean { | CODE |
| LOW | agent-eval/lib/templates.ts | 881 | function workspacePackageJsonPaths(files: Record<string, string>): string[] { | CODE |
| LOW | agent-eval/lib/templates.ts | 995 | export async function writeCodexInAppBrowserMock(sandbox: Sandbox): Promise<void> { | CODE |
| LOW | agent-eval/lib/templates.ts | 1017 | export async function writeClaudeInAppBrowserMock(sandbox: Sandbox): Promise<void> { | CODE |
| LOW | agent-eval/lib/templates.ts | 1052 | export async function writeStorybookAgentInstructions(sandbox: Sandbox): Promise<void> { | CODE |
| LOW⚡ | agent-eval/lib/test-utils.ts | 132 | export function expectFinalResponseContains(substrings: string[]): void { | CODE |
| LOW⚡ | agent-eval/lib/test-utils.ts | 141 | export function expectFinalResponseMatches(patterns: RegExp[]): void { | CODE |
| LOW⚡ | agent-eval/lib/test-utils.ts | 148 | export function expectDisplayReviewForVisualChange(): void { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 86 | export function modelRunsTestsOnlyWhenAsked(): boolean { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 104 | export function getStorybookWorkflowCalls(): StorybookWorkflowCall[] { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 179 | export function expectDisplayReviewForBrowseRequest(): void { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 197 | export function expectAllStoryExportsInDisplayReview(): void { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 224 | export function expectStoryIdsInDisplayReview(idSubstrings: string[]): void { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 282 | export function expectDevServerLeftRunning(): void { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 301 | export function findDevServerKillCommands(commands: string[]): string[] { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 309 | export function parseCodexBrowserNavigations(rawTranscript: string): string[] { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 374 | export function expectStoryDiscoveryBeforeReview(): void { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 407 | export async function expectStoryTestsRanAndPassed(options?: { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 601 | function collectClaudeWorkflowToolResults( | CODE |
| LOW | agent-eval/lib/test-utils.ts | 667 | function collectCodexWorkflowToolResult( | CODE |
| LOW | agent-eval/lib/test-utils.ts | 726 | export function expectDocumentationToolingCalled(): void { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 736 | export function workflowCallIncludesStory( | CODE |
| LOW | agent-eval/lib/test-utils.ts | 794 | export function expectStorybookDependenciesAtLeast( | CODE |
| LOW | agent-eval/lib/test-utils.ts | 854 | export function expectStorybookInstalledFromCheckout(): void { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 906 | export function expectShellCommandMatching(pattern: RegExp): void { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 1014 | function expectValidDisplayReviewPayload(input: Record<string, unknown>): void { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 1023 | function expectValidDisplayReviewCollections(input: Record<string, unknown>): void { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 1065 | export function expectReviewOpenedInBrowser(): void { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 1092 | function getBrowserStepsAroundWorkflowCalls( | CODE |
| LOW | agent-eval/lib/test-utils.ts | 1149 | function expectFinalResponseSharesReviewLink(): void { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 1170 | function getParsedMcpWorkflowCalls(): StorybookWorkflowCall[] { | CODE |
| LOW | agent-eval/lib/test-utils.ts | 1191 | function getRawCodexMcpWorkflowCalls(): StorybookWorkflowCall[] { | CODE |
| LOW | agent-eval/lib/shell-parse.ts | 46 | export function parseStorybookWorkflowShellCommands(commands: string[]): StorybookWorkflowCall[] { | CODE |
| LOW | agent-eval/lib/shell-parse.ts | 50 | export function normalizeStorybookWorkflowName( | CODE |
| LOW | agent-eval/lib/shell-parse.ts | 94 | function parseStorybookCliWorkflowCalls(command: string): StorybookWorkflowCall[] { | CODE |
| LOW | agent-eval/lib/shell-parse.ts | 157 | function parseStorybookToolsInvocation( | CODE |
| LOW | agent-eval/lib/shell-parse.ts | 619 | function appendCommandSubstitution(dollar: number): number { | CODE |
| LOW | agent-eval/lib/agentic-reference/external-mcp.ts | 58 | export async function registerExternalStorybookMcp( | CODE |
| LOW | agent-eval/lib/agentic-reference/run-plan.ts | 87 | export function resolveExperimentSelection( | CODE |
| LOW | agent-eval/lib/agentic-reference/experiment.ts | 150 | function makeAgenticRefMetricsHook(agenticRefCase: AgenticRefCaseRecord, provider: LlmProvider) { | CODE |
| LOW | agent-eval/lib/agentic-reference/external-repo.ts | 25 | export function parseExternalRepoFromManifest(packageJsonContent: string): ExternalRepoPin { | CODE |
| LOW | agent-eval/lib/agentic-reference/local-mcp.ts | 47 | export function assertStorybookMcpPackageSpec(spec: StorybookMcpPackageSpec): void { | CODE |
| LOW | agent-eval/lib/agentic-reference/local-mcp.ts | 80 | export async function resolveStorybookMcpPackage( | CODE |
| LOW | …/lib/agentic-reference/metrics/inline-script-writes.ts | 107 | export function inlineScriptWritesBySegment(command: string): InlineScriptWrites[] { | CODE |
| LOW | agent-eval/lib/post-analysis/baseline.ts | 140 | export async function loadOrBuildBaselineAnalysis( | CODE |
| LOW | …s/svelte/static/svelte-csf/contexts/renderer.svelte.js | 65 | function createStoryRendererContext() { | CODE |
| LOW | …/svelte/static/svelte-csf/contexts/extractor.svelte.js | 36 | export function createStoriesExtractorContext(repository) { | CODE |
| LOW | …de/renderers/svelte/src/extractComponentDescription.ts | 2 | export function extractComponentDescription(component?: any): string { | CODE |
| LOW | code/renderers/svelte/src/svelte-csf/addon-check.ts | 12 | export function assertSvelteCsfAddonNotInstalled({ presetsList, framework }: Params) { | CODE |
| LOW | code/renderers/svelte/src/svelte-csf/utils/error.ts | 199 | export function isStorybookSvelteCSFError(error: unknown): error is StorybookSvelteCSFError { | CODE |
| LOW | code/renderers/svelte/src/svelte-csf/parser/ast.ts | 57 | export function createASTObjectExpression( | CODE |
| LOW | …csf/parser/analyse/define-meta/component-identifier.ts | 25 | export function getDefineMetaComponentValue(params: Params): DefineMetaComponentValue | undefined { | CODE |
| LOW | …csf/parser/analyse/define-meta/component-identifier.ts | 78 | export function getDefineMetaComponentName(value: DefineMetaComponentValue | undefined): string { | CODE |
| LOW | …rc/svelte-csf/parser/analyse/define-meta/properties.ts | 37 | export function getPropertyArrayOfStringsValue(options: GetArrayOfStringOptions) { | CODE |
| LOW | …/svelte/src/svelte-csf/parser/analyse/story/content.ts | 193 | function getSnippetBlockBodyRawCode(originalCode: string, node: SvelteAST.SnippetBlock) { | CODE |
| 444 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | agent-eval/eval-matchers.d.ts | 1 | // vitest matcher augmentation for @vercel/agent-eval 1.2.0's agentic judge matchers. | COMMENT |
| MEDIUM | agent-eval/vitest.config.ts | 12 | // .agentic-ref/ symlinks both into the generated work directory. | COMMENT |
| MEDIUM | agent-eval/eval.d.ts | 1 | // Ambient types for @vercel/agent-eval 1.2.0's agentic judge subjects. | COMMENT |
| MEDIUM | agent-eval/evals/702-rework-ui-flow/EVAL.ts | 2 | // reporting success. Real measurement is offline; see lib/agentic-reference/post-analysis.ts. | COMMENT |
| MEDIUM | agent-eval/evals/706-new-ui-scheduled-flow/EVAL.ts | 2 | // reporting success. Real measurement is offline; see lib/agentic-reference/post-analysis.ts. | COMMENT |
| MEDIUM | agent-eval/evals/703-fix-bug-flow/EVAL.ts | 2 | // reporting success. Real measurement is offline; see lib/agentic-reference/post-analysis.ts. | COMMENT |
| MEDIUM | agent-eval/evals/701-new-ui-flow/EVAL.ts | 2 | // reporting success. Real measurement is offline; see lib/agentic-reference/post-analysis.ts. | COMMENT |
| MEDIUM | agent-eval/evals/704-fix-a11y-flow/EVAL.ts | 2 | // reporting success. Real measurement is offline; see lib/agentic-reference/post-analysis.ts. | COMMENT |
| MEDIUM | agent-eval/evals/705-migrate-to-ds-flow/EVAL.ts | 2 | // reporting success. Real measurement is offline; see lib/agentic-reference/post-analysis.ts. | COMMENT |
| MEDIUM | agent-eval/scripts/run-agentic-ref.ts | 2 | // The agentic-reference runner: one entrypoint for the 70x case matrix. | COMMENT |
| MEDIUM | agent-eval/scripts/run-agentic-ref.ts | 4 | // yarn eval:agentic-ref [flags] | COMMENT |
| MEDIUM | agent-eval/scripts/run-agentic-ref.ts | 19 | // without a second grammar — see lib/agentic-reference/selection.ts. | COMMENT |
| MEDIUM | agent-eval/scripts/run-agentic-ref.ts | 34 | import { AGENT_EVAL_BIN, GENERATED_EVALS_WORK_DIR } from '#lib/agentic-reference/constants'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/generate-agentic-ref-experiments.ts | 2 | // Rebuilds agent-eval/.agentic-ref/ — a throwaway, gitignored work directory — | COMMENT |
| MEDIUM⚡ | agent-eval/scripts/generate-agentic-ref-experiments.ts | 3 | // from lib/agentic-reference/cases.ts. The experiments/ subdirectory is fully | COMMENT |
| MEDIUM⚡ | agent-eval/scripts/generate-agentic-ref-experiments.ts | 8 | // inside .agentic-ref/. | COMMENT |
| MEDIUM⚡ | agent-eval/scripts/generate-agentic-ref-experiments.ts | 10 | // Usage: node scripts/generate-agentic-ref-experiments.ts | COMMENT |
| MEDIUM | agent-eval/scripts/generate-agentic-ref-experiments.ts | 32 | } from '#lib/agentic-reference/constants'; | CODE |
| MEDIUM | agent-eval/scripts/generate-agentic-ref-experiments.ts | 39 | return `// Generated by scripts/generate-agentic-ref-experiments.ts — edit lib/agentic-reference/cases.ts, then regene | CODE |
| MEDIUM | agent-eval/scripts/generate-agentic-ref-experiments.ts | 117 | // this work directory when running agentic-ref evals — without these links a | COMMENT |
| MEDIUM | agent-eval/scripts/generate-agentic-ref-experiments.ts | 133 | // Also importable: scripts/run-agentic-ref.ts regenerates the work directory | COMMENT |
| MEDIUM | agent-eval/scripts/run-plan.ts | 14 | // evals, runs, parallelMax — see lib/agentic-reference/run-plan.ts and | COMMENT |
| MEDIUM | agent-eval/scripts/run-plan.ts | 19 | // lib/agentic-reference/comparability.ts, shared with the offline analyzer. | COMMENT |
| MEDIUM | agent-eval/scripts/run-plan.ts | 81 | // lib/agentic-reference/collected-runs.ts). | COMMENT |
| MEDIUM | agent-eval/scripts/run-plan.ts | 126 | // Runs the agentic-ref runner as a child process: one code path, with | COMMENT |
| MEDIUM | agent-eval/scripts/export-results.ts | 23 | import { AGENT_EVAL_ROOT } from '#lib/agentic-reference/constants'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 30 | import { AGENTIC_REF_EVAL_REGISTRY, knownExperimentNames } from '#lib/agentic-reference/cases'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 31 | import { isCurrentRun } from '#lib/agentic-reference/comparability'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 36 | } from '#lib/agentic-reference/external-repo'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 37 | import { laterSince, resolvePlanFlag } from '#lib/agentic-reference/plan-config'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 38 | import { dsPackagesForPin } from '#lib/agentic-reference/metrics/coverage'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 39 | import { dsDocsRefLabel } from '#lib/agentic-reference/metrics/ds-misuse/ds-docs'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 45 | } from '#lib/agentic-reference/metrics/ds-misuse/index'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 46 | import { assertApiKey } from '#lib/agentic-reference/metrics/ds-misuse/judge'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 47 | import { addUsage, usdOf } from '#lib/agentic-reference/metrics/judge-utils'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 48 | import { postAnalysis } from '#lib/agentic-reference/post-analysis'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 51 | import { selectionFlags } from '#lib/agentic-reference/selection'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 52 | import { formatCompactCount, shortExperiment } from '#lib/agentic-reference/utils'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 57 | import type { JudgeUsage } from '#lib/agentic-reference/metrics/ds-misuse/judge'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/judge-ds-misuse.ts | 58 | import type { NodeRecord } from '#lib/agentic-reference/metrics/ds-coverage/types'; | CODE |
| MEDIUM | agent-eval/scripts/judge-ds-misuse.ts | 81 | // Selection is the shared agentic-reference grammar, not a private one: this | COMMENT |
| MEDIUM | agent-eval/scripts/judge-ds-misuse.ts | 336 | // lib/agentic-reference/comparison/cells.ts) — so a judgement bought for one | COMMENT |
| MEDIUM | agent-eval/scripts/ds-coverage.ts | 5 | // The analyzer itself lives in lib/agentic-reference/metrics/ds-coverage/. | COMMENT |
| MEDIUM | agent-eval/scripts/prune-incomplete-runs.ts | 11 | // lib/agentic-reference/collected-runs.ts). Deleting them removes any eval | COMMENT |
| MEDIUM | agent-eval/scripts/prune-incomplete-runs.ts | 15 | // Selection follows the shared grammar in lib/agentic-reference/selection.ts, | COMMENT |
| MEDIUM | agent-eval/scripts/prune-incomplete-runs.ts | 28 | import { RESULTS_DIR } from '#lib/agentic-reference/constants'; | CODE |
| MEDIUM | agent-eval/scripts/prune-incomplete-runs.ts | 29 | import { findStoredEvalDirs } from '#lib/agentic-reference/results-tree'; | CODE |
| MEDIUM | agent-eval/scripts/compare-results.ts | 4 | // lib/agentic-reference/comparison/, statistics in scripts/compare_stats.py. | COMMENT |
| MEDIUM⚡ | agent-eval/scripts/compare-results.ts | 15 | } from '#lib/agentic-reference/cases'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/compare-results.ts | 16 | import { COMPARISON_METRICS } from '#lib/agentic-reference/comparison-metrics'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/compare-results.ts | 17 | import { autoSelectWorkflows, buildCells } from '#lib/agentic-reference/comparison/cells'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/compare-results.ts | 22 | } from '#lib/agentic-reference/comparison/commands'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/compare-results.ts | 27 | } from '#lib/agentic-reference/comparison/emit'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/compare-results.ts | 28 | import { writeHtmlReport, type EstimateRow } from '#lib/agentic-reference/comparison/html-report'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/compare-results.ts | 33 | } from '#lib/agentic-reference/comparison/misuse'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/compare-results.ts | 34 | import { parseCompareArgs } from '#lib/agentic-reference/comparison/options'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/compare-results.ts | 44 | } from '#lib/agentic-reference/comparison/resolve'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/compare-results.ts | 45 | import { ansiStyle } from '#lib/agentic-reference/style'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/compare-results.ts | 46 | import { findUv } from '#lib/agentic-reference/comparison/uv'; | CODE |
| MEDIUM⚡ | agent-eval/scripts/compare-results.ts | 47 | import { tallyVerdicts } from '#lib/agentic-reference/comparison/verdict-tally'; | CODE |
| 62 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v2.json | 1483 | "placeholder", | CODE |
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v2.json | 1501 | "placeholder", | CODE |
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v2.json | 1520 | "placeholder", | CODE |
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v2.json | 1538 | "placeholder", | CODE |
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v2.json | 1584 | "placeholder", | CODE |
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v2.json | 1602 | "placeholder", | CODE |
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v2.json | 1620 | "placeholder", | CODE |
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v4.json | 1469 | "placeholder", | CODE |
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v4.json | 1487 | "placeholder", | CODE |
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v4.json | 1506 | "placeholder", | CODE |
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v4.json | 1524 | "placeholder", | CODE |
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v4.json | 1570 | "placeholder", | CODE |
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v4.json | 1588 | "placeholder", | CODE |
| LOW | …rop@refs__tags__agentic-reference__droppy-70pc-v4.json | 1606 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v2.json | 1488 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v2.json | 1506 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v2.json | 1525 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v2.json | 1543 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v2.json | 1589 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v2.json | 1607 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v2.json | 1625 | "placeholder", | CODE |
| LOW | …ealdrop@refs__tags__agentic-reference__base-ui-v1.json | 1848 | "placeholder", | CODE |
| LOW | …ealdrop@refs__tags__agentic-reference__base-ui-v1.json | 1866 | "placeholder", | CODE |
| LOW | …ealdrop@refs__tags__agentic-reference__base-ui-v1.json | 1885 | "placeholder", | CODE |
| LOW | …ealdrop@refs__tags__agentic-reference__base-ui-v1.json | 1903 | "placeholder", | CODE |
| LOW | …ealdrop@refs__tags__agentic-reference__base-ui-v1.json | 1949 | "placeholder", | CODE |
| LOW | …ealdrop@refs__tags__agentic-reference__base-ui-v1.json | 1967 | "placeholder", | CODE |
| LOW | …ealdrop@refs__tags__agentic-reference__base-ui-v1.json | 1985 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v3.json | 1488 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v3.json | 1506 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v3.json | 1525 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v3.json | 1543 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v3.json | 1589 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v3.json | 1607 | "placeholder", | CODE |
| LOW | …mealdrop@refs__tags__agentic-reference__droppy-v3.json | 1625 | "placeholder", | CODE |
| LOW | …ortable-stories-kitchen-sink/nextjs/pages/api/hello.ts | 12 | res.status(200).json({ name: "John Doe" }); | CODE |
| LOW | …-storybooks/mcp/tests/mcp-composition-auth.e2e.test.ts | 102 | const response = await mcpRequest('tools/list', {}, 'dummy-token'); | CODE |
| LOW | …-storybooks/mcp/tests/mcp-composition-auth.e2e.test.ts | 115 | 'dummy-token', | CODE |
| LOW | …-storybooks/mcp/tests/mcp-composition-auth.e2e.test.ts | 131 | 'dummy-token', | CODE |
| LOW | …-storybooks/mcp/tests/mcp-composition-auth.e2e.test.ts | 230 | 'dummy-token', | CODE |
| LOW | …-storybooks/mcp/tests/mcp-composition-auth.e2e.test.ts | 246 | 'dummy-token', | CODE |
| LOW | test-storybooks/mcp/stories/components/Page.tsx | 17 | onLogin={() => setUser({ name: 'Jane Doe' })} | CODE |
| LOW | test-storybooks/mcp/stories/components/Page.tsx | 19 | onCreateAccount={() => setUser({ name: 'Jane Doe' })} | CODE |
| LOW | …st-storybooks/mcp/stories/components/Header.stories.ts | 18 | name: 'Jane Doe', | CODE |
| LOW | …/server-kitchen-sink/stories/kitchen_sink.stories.json | 13 | "params": { "name": "Jane Doe" } | CODE |
| LOW | …/server-kitchen-sink/stories/kitchen_sink.stories.json | 29 | "args": { "name": "John Doe", "age": 44 } | CODE |
| LOW | …rver-kitchen-sink/stories/addons/controls.stories.json | 11 | "args": { "name": "John Doe", "age": 44 } | CODE |
| LOW | …rver-kitchen-sink/stories/addons/controls.stories.json | 18 | "args": { "name": "John Doe", "color": "orangered" }, | CODE |
| LOW | code/renderers/svelte/template/cli/js/Page.svelte | 11 | onLogin={() => (user = { name: 'Jane Doe' })} | CODE |
| LOW | code/renderers/svelte/template/cli/js/Page.svelte | 13 | onCreateAccount={() => (user = { name: 'Jane Doe' })} | CODE |
| LOW | …renderers/svelte/template/cli/js/Header.stories.svelte | 24 | <Story name="Logged In" args={{ user: { name: 'Jane Doe' } }} /> | CODE |
| LOW | code/renderers/svelte/template/cli/ts/Page.svelte | 11 | onLogin={() => (user = { name: 'Jane Doe' })} | CODE |
| LOW | code/renderers/svelte/template/cli/ts/Page.svelte | 13 | onCreateAccount={() => (user = { name: 'Jane Doe' })} | CODE |
| LOW | …renderers/svelte/template/cli/ts/Header.stories.svelte | 24 | <Story name="Logged In" args={{ user: { name: 'Jane Doe' } }} /> | CODE |
| LOW | code/renderers/svelte/src/docs/sourceDecorator.test.ts | 12 | const loremIpsum = 'Lorem ipsum dolor sit amet'; | CODE |
| LOW | code/renderers/svelte/src/docs/sourceDecorator.test.ts | 12 | const loremIpsum = 'Lorem ipsum dolor sit amet'; | CODE |
| LOW⚡ | code/renderers/svelte/src/docs/sourceDecorator.test.ts | 46 | property1="Lorem ipsum dolor sit amet" | CODE |
| LOW⚡ | code/renderers/svelte/src/docs/sourceDecorator.test.ts | 46 | property1="Lorem ipsum dolor sit amet" | CODE |
| LOW⚡ | code/renderers/svelte/src/docs/sourceDecorator.test.ts | 47 | property2="Lorem ipsum dolor sit amet" | CODE |
| LOW⚡ | code/renderers/svelte/src/docs/sourceDecorator.test.ts | 47 | property2="Lorem ipsum dolor sit amet" | CODE |
| 287 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …omponent-docgen/resolve-component/resolve-component.ts | 119 | const declarator = ctx.editor.scopes.program.bindings.get(argument.name)?.node; | CODE |
| CRITICAL | …ers/react/src/componentManifest/getComponentImports.ts | 131 | const binding = csf.editor.scopes.program.bindings.get(base); | CODE |
| CRITICAL | …api/modules/preview-web/PreviewWeb.integration.test.ts | 88 | componentOneExports.default.parameters.docs.container.mockClear(); | CODE |
| CRITICAL | …api/modules/preview-web/PreviewWeb.integration.test.ts | 137 | componentOneExports.default.parameters.docs.container.mockImplementationOnce(() => | CODE |
| CRITICAL | …api/modules/preview-web/PreviewWeb.integration.test.ts | 169 | componentOneExports.default.parameters.docs.container.mockImplementation(() => { | CODE |
| CRITICAL | …e/core/src/manager/components/sidebar/Tree.stories.tsx | 580 | const registrations = managerContext.api.on.mock.calls.filter( | CODE |
| CRITICAL | …rver/utils/save-story/duplicate-story-with-new-name.ts | 14 | if (csf.editor.scopes.program.bindings.has(newStoryName)) { | CODE |
| CRITICAL | …rver/utils/save-story/duplicate-story-with-new-name.ts | 33 | ? csf.editor.scopes.program.bindings.get(target.localName)?.node | CODE |
| CRITICAL | code/core/src/csf-tools/CsfObjectDiscovery.ts | 86 | const binding = csf.editor.scopes.program.bindings.get(localName); | CODE |
| CRITICAL | code/core/src/csf-tools/CsfObjectDiscovery.ts | 192 | const init = variableInit(csf.editor.scopes.program.bindings.get(name)); | CODE |
| CRITICAL | code/core/src/csf-tools/CsfObjectDiscovery.ts | 262 | const init = variableInit(csf.editor.scopes.program.bindings.get(name)); | CODE |
| CRITICAL | code/core/src/csf-tools/CsfObjectDiscovery.ts | 286 | const initializer = variableInit(csf.editor.scopes.program.bindings.get(receiver)); | CODE |
| CRITICAL | code/core/src/csf-tools/CsfObjectDiscovery.ts | 295 | const binding = csf.editor.scopes.program.bindings.get(argument.name); | CODE |
| CRITICAL | code/core/src/csf-tools/CsfObjectDiscovery.ts | 331 | ? csf.editor.scopes.program.bindings.get(csf._metaVariableName) | CODE |
| CRITICAL | code/core/src/csf-tools/story-shape/resolve-members.ts | 461 | const binding = ctx.editor.scopes.program.bindings.get(name); | CODE |
| CRITICAL | code/core/src/csf-tools/story-shape/resolve-members.ts | 475 | const rootBinding = ctx.editor.scopes.program.bindings.get(rootName); | CODE |
| CRITICAL | …de/core/src/csf-tools/story-shape/resolve-arg-value.ts | 59 | if (ctx.editor.scopes.program.bindings.has(name)) { | CODE |
| CRITICAL | …de/core/src/csf-tools/story-shape/resolve-arg-value.ts | 203 | const binding = ctx.editor.scopes.program.bindings.get(node.name); | CODE |
| CRITICAL | code/addons/vitest/src/vitest-plugin/index.ts | 499 | context.vitest.config.coverage.exclude.push('storybook-static'); | CODE |
| CRITICAL | …rameworks/angular-vite/src/docgen/story-docs-markup.ts | 644 | const binding = shape.csf.editor.scopes.program.bindings.get(node.name); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agent-eval/eval.d.ts | 1 | // Ambient types for @vercel/agent-eval 1.2.0's agentic judge subjects. | COMMENT |
| LOW | …l/evals/812-first-story-empty-project/vitest.config.ts | 1 | // addon-vitest's test-run starts Vitest from the project root, so the | COMMENT |
| LOW | …es-for-fetching-component-without-msw/vitest.config.ts | 1 | // addon-vitest's test-run starts Vitest from the project root, so the | COMMENT |
| LOW | …ent-eval/evals/801-create-accessible-component/EVAL.ts | 41 | COMMENT | |
| LOW | agent-eval/plans/4-doc-types-edit.plan.ts | 1 | // Group 4 of 6 — Which kinds of documentation pay off? | COMMENT |
| LOW | agent-eval/plans/1-levels-edit.plan.ts | 1 | // Group 1 of 6 — How much content? | COMMENT |
| LOW | agent-eval/plans/5-story-types-create.plan.ts | 1 | // Group 5 of 6 — Which kinds of stories pay off? | COMMENT |
| LOW | agent-eval/plans/1-levels-create.plan.ts | 1 | // Group 1 of 6 — How much content? | COMMENT |
| LOW | agent-eval/plans/4-doc-types-create.plan.ts | 1 | // Group 4 of 6 — Which kinds of documentation pay off? | COMMENT |
| LOW | agent-eval/plans/3-jsdoc-edit.plan.ts | 1 | // Group 3 of 6 — What does JSDoc contribute? | COMMENT |
| LOW | agent-eval/plans/3-jsdoc-create.plan.ts | 1 | // Group 3 of 6 — What does JSDoc contribute? | COMMENT |
| LOW | agent-eval/plans/2-docs-vs-stories-create.plan.ts | 1 | // Group 2 of 6 — Docs or stories? | COMMENT |
| LOW | agent-eval/plans/2-docs-vs-stories-edit.plan.ts | 1 | // Group 2 of 6 — Docs or stories? | COMMENT |
| LOW | agent-eval/plans/5-story-types-edit.plan.ts | 1 | // Group 5 of 6 — Which kinds of stories pay off? | COMMENT |
| LOW | agent-eval/scripts/run-agentic-ref.ts | 1 | #!/usr/bin/env node | COMMENT |
| LOW | agent-eval/scripts/run-plan.ts | 1 | #!/usr/bin/env node | COMMENT |
| LOW | agent-eval/scripts/eval-gate-thread.ts | 1 | #!/usr/bin/env node | COMMENT |
| LOW | agent-eval/scripts/export-results.ts | 1 | #!/usr/bin/env node | COMMENT |
| LOW | agent-eval/scripts/judge-ds-misuse.ts | 1 | #!/usr/bin/env node | COMMENT |
| LOW | agent-eval/scripts/judge-ds-misuse.ts | 321 | COMMENT | |
| LOW | agent-eval/scripts/ds-coverage.ts | 1 | // Run the ds-coverage analyzer against a checked-out tree, for humans. | COMMENT |
| LOW | agent-eval/scripts/prune-incomplete-runs.ts | 1 | #!/usr/bin/env node | COMMENT |
| LOW | agent-eval/scripts/list-results.ts | 1 | #!/usr/bin/env node | COMMENT |
| LOW | agent-eval/scripts/analyze-results.ts | 1 | #!/usr/bin/env node | COMMENT |
| LOW | agent-eval/scripts/analyze-results.ts | 21 | // experiments. | COMMENT |
| LOW | agent-eval/scripts/analyze-results.ts | 41 | // --complexity print the complexity tables | COMMENT |
| LOW | agent-eval/lib/experiment.ts | 201 | // Post-run script checks stay disabled: they fail on sandbox environment | COMMENT |
| LOW | agent-eval/lib/utils/shell-segments.ts | 1 | // Split a shell command into independently classifiable segments. | COMMENT |
| LOW | agent-eval/lib/utils/table.ts | 1 | // Box-drawn tables for the console, in place of console.table. | COMMENT |
| LOW | agent-eval/lib/agentic-reference/selection.ts | 1 | // One argument grammar for the agentic-reference line, shared by the runner | COMMENT |
| LOW | agent-eval/lib/agentic-reference/post-analysis.ts | 1 | // Post-run analysis shared by every agentic-reference experiment. | COMMENT |
| LOW | agent-eval/lib/agentic-reference/post-analysis.ts | 521 | jsxCognitiveDelta: { mean: round(mean(jsxCognitiveDelta)) }, | COMMENT |
| LOW | agent-eval/lib/agentic-reference/local-mcp.ts | 1 | // Serve the design-system Storybook MCP inside the sandbox instead of pointing | COMMENT |
| LOW | agent-eval/lib/agentic-reference/tree/tree-diff.ts | 1 | // Compare the pinned upstream ref against the collected post-run tree. | COMMENT |
| LOW | …lib/agentic-reference/metrics/complexity-cyclomatic.ts | 1 | // Cyclomatic complexity per function. Ported from storybookjs/storybook#35141 | COMMENT |
| LOW | …/lib/agentic-reference/metrics/inline-script-writes.ts | 1 | // Detect file writes made through inline interpreter scripts. | COMMENT |
| LOW | …t-eval/lib/agentic-reference/metrics/complexity-jsx.ts | 1 | // JSX-aware variants of the cyclomatic and cognitive complexity walkers. | COMMENT |
| LOW | …t-eval/lib/agentic-reference/metrics/complexity-jsx.ts | 21 | // (width is jsx-structure's business). Render loops cost 1 + depth like | COMMENT |
| LOW | …t-eval/lib/agentic-reference/metrics/function-units.ts | 1 | // What counts as one measured function, shared by every complexity walker. | COMMENT |
| LOW | …/lib/agentic-reference/metrics/complexity-cognitive.ts | 1 | // Cognitive complexity per function, following Sonar's specification | COMMENT |
| LOW | …nt-eval/lib/agentic-reference/metrics/jsx-structure.ts | 1 | // Structural size of the markup in a file: how many tags, how many live | COMMENT |
| LOW | agent-eval/lib/agentic-reference/metrics/churn.ts | 1 | // How many times the agent rewrote each file. Fewer passes over the same file | COMMENT |
| LOW | agent-eval/lib/agentic-reference/metrics/coverage.ts | 1 | // Design-system coverage as post-analysis stores and compares it. | COMMENT |
| LOW | …nt-eval/lib/agentic-reference/metrics/tool-taxonomy.ts | 1 | // Classify an agent's tool calls into five buckets. | COMMENT |
| LOW | …nt-eval/lib/agentic-reference/metrics/tool-taxonomy.ts | 241 | function collectShellBuckets(command: string, buckets: Set<Bucket>, unclassified: string[]): void { | COMMENT |
| LOW | …val/lib/agentic-reference/metrics/ds-misuse/ds-docs.ts | 1 | // The design system's own documentation, as the judge reads it. | COMMENT |
| LOW | …/lib/agentic-reference/metrics/ds-misuse/tree-patch.ts | 1 | // The unified diff between the pinned baseline tree and what a run left behind. | COMMENT |
| LOW | …ntic-reference/metrics/ds-coverage/ds-coverage.test.ts | 1581 | includeNodes: true, | COMMENT |
| LOW | …/lib/agentic-reference/metrics/ds-coverage/identify.ts | 1 | // The identification layer: resolve a name to what it ultimately is. | COMMENT |
| LOW | …/lib/agentic-reference/metrics/ds-coverage/identify.ts | 81 | // When another file calls `import { Button } from './features/b'`, | COMMENT |
| LOW | …b/agentic-reference/metrics/ds-coverage/path-filter.ts | 1 | // Which files' JSX the census counts, from include and exclude glob lists. | COMMENT |
| LOW | …b/agentic-reference/metrics/ds-coverage/multipliers.ts | 1 | // Instantiation multipliers over the owner-usage graph. | COMMENT |
| LOW | …b/agentic-reference/metrics/ds-coverage/react/owner.ts | 1 | // Which top-level declaration owns a JSX element. | COMMENT |
| LOW | …entic-reference/metrics/ds-coverage/react/node-path.ts | 1 | // How a JSX element is addressed in the node census. | COMMENT |
| LOW | …entic-reference/metrics/ds-coverage/react/node-path.ts | 21 | // one link, not a subtree: `List/li[0]/Card[0]` below it still nests. | COMMENT |
| LOW | agent-eval/lib/agentic-reference/comparison/misuse.ts | 1 | // Pooling per-run ds-misuse judgements into one panel for the report. | COMMENT |
| LOW | agent-eval/lib/post-analysis/types.ts | 1 | // The contract between scripts/analyze-results.ts and the post-analysis module | COMMENT |
| LOW | agent-eval/lib/post-analysis/baseline.ts | 1 | // Measure the pristine tree a pin's runs are compared against, once per pin. | COMMENT |
| LOW | …tories-kitchen-sink/svelte/cypress/support/commands.ts | 1 | /// <reference types="cypress" /> | COMMENT |
| LOW | …tories-kitchen-sink/svelte/cypress/support/commands.ts | 21 | // -- This is a dual command -- | COMMENT |
| 57 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | .agents/skills/rebuild-restart-storybook/SKILL.md | 13 | ## Step 1: Ask whether to rebuild and restart (in case of model invocation) | COMMENT |
| LOW⚡ | .agents/skills/rebuild-restart-storybook/SKILL.md | 17 | ## Step 2: Determine modified packages | COMMENT |
| LOW⚡ | .agents/skills/rebuild-restart-storybook/SKILL.md | 23 | ## Step 3: Run the build and start commands in sequence | COMMENT |
| LOW | .agents/skills/rebuild-restart-storybook/SKILL.md | 43 | ## Step 4: Provide the URL and ask about a review | COMMENT |
| LOW | .agents/skills/rebuild-restart-storybook/SKILL.md | 47 | ## Step 5: Display the review | COMMENT |
| LOW | .agents/skills/minor-release/SKILL.md | 20 | ## Step 1: Collect the changelog entries | COMMENT |
| LOW | .agents/skills/minor-release/SKILL.md | 34 | ## Step 2: Select highlights | COMMENT |
| LOW | .agents/skills/minor-release/SKILL.md | 50 | ## Step 3: Compose the highlights text | COMMENT |
| LOW | .agents/skills/minor-release/SKILL.md | 137 | ## Step 4: Write the changelog entry | COMMENT |
| LOW | code/renderers/react/src/componentManifest/generator.ts | 62 | // Step 1: Resolve components for all entries (one CSF file each). | COMMENT |
| LOW | code/renderers/react/src/componentManifest/generator.ts | 80 | // Step 2: Batch extract rcm props (one TS program build per tsconfig project) | COMMENT |
| LOW | code/renderers/react/src/componentManifest/generator.ts | 98 | // Step 3: Build manifests | COMMENT |
| LOW | …ponentManifest/componentMeta/componentMetaExtractor.ts | 255 | // Step 1: Find the import binding symbol in the story file. | COMMENT |
| LOW | …ponentManifest/componentMeta/componentMetaExtractor.ts | 394 | // Step 2: Walk story file to find JSX elements using this import | COMMENT |
| LOW⚡ | …olsets/docs/manifest-formatter/extract-docs-summary.ts | 20 | // Step 1: Remove import statements (can be single or multi-line) | COMMENT |
| LOW⚡ | …olsets/docs/manifest-formatter/extract-docs-summary.ts | 24 | // Step 2: Remove JSX/MDX expressions like {expression} or {/* comments */} | COMMENT |
| LOW⚡ | …olsets/docs/manifest-formatter/extract-docs-summary.ts | 32 | // Step 3: Remove self-closing tags like <Component /> or <br /> | COMMENT |
| LOW⚡ | …olsets/docs/manifest-formatter/extract-docs-summary.ts | 35 | // Step 4: Extract text content from JSX/HTML elements | COMMENT |
| LOW⚡ | …olsets/docs/manifest-formatter/extract-docs-summary.ts | 45 | // Step 5: Remove any remaining standalone opening or closing tags | COMMENT |
| LOW⚡ | …olsets/docs/manifest-formatter/extract-docs-summary.ts | 48 | // Step 6: Clean up whitespace | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 472 | ### Step 1: Analyze the codebase | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 534 | ### Step 2: Build one default app environment in preview | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 564 | ### Step 3: Support portals with preview-body.html | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 600 | ### Step 4: Mock side effects globally | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 671 | ### Step 5: Write stories | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 719 | ### Step 6: Write a play function for every story | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 791 | ### Step 7: Prove CSS is loaded in exactly one story named \`CssCheck\` | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 808 | ### Step 8: Cover the patterns you found | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 824 | ### Step 9: Verify both rendering and types | COMMENT |
| LOW | code/core/src/cli/skills/content/setup-prompts/setup.ts | 173 | ### Step 1: Analyze the codebase | COMMENT |
| LOW | code/core/src/cli/skills/content/setup-prompts/setup.ts | 185 | ### Step 2: Configure \`${configDir}/preview.tsx\` with decorators | COMMENT |
| LOW | code/core/src/cli/skills/content/setup-prompts/setup.ts | 200 | ### Step 3: Write stories for 9 components | COMMENT |
| LOW | code/core/src/cli/skills/content/setup-prompts/setup.ts | 242 | ### Step 4: Verify each story with Vitest | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 97 | // Step 1: Run preflight checks | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 100 | // Step 2: Detect project type | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 103 | // Step 3: Detect framework, renderer, and builder | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 110 | // Step 4: Get user preferences and feature selections (with framework/builder for validation) | COMMENT |
| LOW | code/lib/create-storybook/src/initiate.ts | 146 | // Step 5: Execute generator with dependency collector (now with frameworkInfo) | COMMENT |
| LOW | code/lib/create-storybook/src/initiate.ts | 159 | // Step 6: Install all dependencies in a single operation | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 181 | // Step 7: Configure addons (run postinstall scripts for configuration only) | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 189 | // Step 8: Install the official Storybook skills for AI agents, and tell agents in AGENTS.md when | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 198 | // Step 9: Print final summary | COMMENT |
| LOW | code/lib/create-storybook/src/initiate.ts | 226 | // Step 10: Track telemetry (pass configDir so RN `.rnstorybook` metadata is resolved) | COMMENT |
| LOW⚡ | scripts/eval/lib/grading-helpers.test.ts | 69 | // Step 1: Find candidates — both components should be discovered | COMMENT |
| LOW⚡ | scripts/eval/lib/grading-helpers.test.ts | 73 | // Step 2: Simulate git output where the agent added storybook config + one | COMMENT |
| LOW | scripts/eval/lib/grading-helpers.test.ts | 89 | // Step 3: Score is now just story-render preview gain. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | code/renderers/react/src/componentManifest/generator.ts | 62 | // Step 1: Resolve components for all entries (one CSF file each). | COMMENT |
| LOW | code/renderers/react/src/componentManifest/generator.ts | 80 | // Step 2: Batch extract rcm props (one TS program build per tsconfig project) | COMMENT |
| LOW | code/renderers/react/src/componentManifest/generator.ts | 98 | // Step 3: Build manifests | COMMENT |
| LOW | …ponentManifest/componentMeta/componentMetaExtractor.ts | 255 | // Step 1: Find the import binding symbol in the story file. | COMMENT |
| LOW | …ponentManifest/componentMeta/componentMetaExtractor.ts | 394 | // Step 2: Walk story file to find JSX elements using this import | COMMENT |
| LOW⚡ | …olsets/docs/manifest-formatter/extract-docs-summary.ts | 20 | // Step 1: Remove import statements (can be single or multi-line) | COMMENT |
| LOW⚡ | …olsets/docs/manifest-formatter/extract-docs-summary.ts | 24 | // Step 2: Remove JSX/MDX expressions like {expression} or {/* comments */} | COMMENT |
| LOW⚡ | …olsets/docs/manifest-formatter/extract-docs-summary.ts | 32 | // Step 3: Remove self-closing tags like <Component /> or <br /> | COMMENT |
| LOW⚡ | …olsets/docs/manifest-formatter/extract-docs-summary.ts | 35 | // Step 4: Extract text content from JSX/HTML elements | COMMENT |
| LOW⚡ | …olsets/docs/manifest-formatter/extract-docs-summary.ts | 45 | // Step 5: Remove any remaining standalone opening or closing tags | COMMENT |
| LOW⚡ | …olsets/docs/manifest-formatter/extract-docs-summary.ts | 48 | // Step 6: Clean up whitespace | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 472 | ### Step 1: Analyze the codebase | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 534 | ### Step 2: Build one default app environment in preview | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 564 | ### Step 3: Support portals with preview-body.html | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 600 | ### Step 4: Mock side effects globally | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 671 | ### Step 5: Write stories | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 719 | ### Step 6: Write a play function for every story | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 791 | ### Step 7: Prove CSS is loaded in exactly one story named \`CssCheck\` | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 808 | ### Step 8: Cover the patterns you found | COMMENT |
| LOW | …/cli/skills/content/setup-prompts/pattern-copy-play.ts | 824 | ### Step 9: Verify both rendering and types | COMMENT |
| LOW | code/core/src/cli/skills/content/setup-prompts/setup.ts | 173 | ### Step 1: Analyze the codebase | COMMENT |
| LOW | code/core/src/cli/skills/content/setup-prompts/setup.ts | 185 | ### Step 2: Configure \`${configDir}/preview.tsx\` with decorators | COMMENT |
| LOW | code/core/src/cli/skills/content/setup-prompts/setup.ts | 200 | ### Step 3: Write stories for 9 components | COMMENT |
| LOW | code/core/src/cli/skills/content/setup-prompts/setup.ts | 242 | ### Step 4: Verify each story with Vitest | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 97 | // Step 1: Run preflight checks | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 100 | // Step 2: Detect project type | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 103 | // Step 3: Detect framework, renderer, and builder | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 110 | // Step 4: Get user preferences and feature selections (with framework/builder for validation) | COMMENT |
| LOW | code/lib/create-storybook/src/initiate.ts | 146 | // Step 5: Execute generator with dependency collector (now with frameworkInfo) | COMMENT |
| LOW | code/lib/create-storybook/src/initiate.ts | 159 | // Step 6: Install all dependencies in a single operation | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 181 | // Step 7: Configure addons (run postinstall scripts for configuration only) | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 189 | // Step 8: Install the official Storybook skills for AI agents, and tell agents in AGENTS.md when | COMMENT |
| LOW⚡ | code/lib/create-storybook/src/initiate.ts | 198 | // Step 9: Print final summary | COMMENT |
| LOW | code/lib/create-storybook/src/initiate.ts | 226 | // Step 10: Track telemetry (pass configDir so RN `.rnstorybook` metadata is resolved) | COMMENT |
| LOW⚡ | scripts/eval/lib/grading-helpers.test.ts | 69 | // Step 1: Find candidates — both components should be discovered | COMMENT |
| LOW⚡ | scripts/eval/lib/grading-helpers.test.ts | 73 | // Step 2: Simulate git output where the agent added storybook config + one | COMMENT |
| LOW | scripts/eval/lib/grading-helpers.test.ts | 89 | // Step 3: Score is now just story-render preview gain. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …rs/svelte/src/docgen/story-docs/print-template.test.ts | 36 | print( | CODE |
| HIGH | …rs/svelte/src/docgen/story-docs/print-template.test.ts | 51 | print( | CODE |
| HIGH | …rs/svelte/src/docgen/story-docs/print-template.test.ts | 74 | print( | CODE |
| HIGH | …rs/svelte/src/docgen/story-docs/print-template.test.ts | 89 | print( | CODE |
| HIGH | …rs/svelte/src/docgen/story-docs/print-template.test.ts | 147 | print('<Button {...props} title={props.label} />', "{ label: 'Save' }", false, { | CODE |
| HIGH | …rs/svelte/src/docgen/story-docs/print-template.test.ts | 156 | print( | CODE |
| HIGH⚡ | …rs/svelte/src/docgen/story-docs/print-template.test.ts | 205 | print('<Button class:active {...rest} />', '{ active: true }', false, { | CODE |
| HIGH⚡ | …rs/svelte/src/docgen/story-docs/print-template.test.ts | 214 | print('<Button {label} />', "{ label: 'Save' }", false, { | CODE |
| HIGH⚡ | …rs/svelte/src/docgen/story-docs/print-template.test.ts | 223 | print('<Button value={{ label }} />', "{ label: 'Save' }", false, { | CODE |
| HIGH⚡ | …rs/svelte/src/docgen/story-docs/print-template.test.ts | 232 | print( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CONTRIBUTING.md | 29 | Pull requests or issues entirely generated by AI with no human involvement (e.g. by an automated agent) will be labeled | CODE |
| HIGH | …ore/src/core-server/server-channel/ai-setup-channel.ts | 75 | // Fetch AI-generated stories and score them with the ghost stories metrics, if any are found. | COMMENT |
| HIGH | …ore/src/core-server/server-channel/ai-setup-channel.ts | 120 | runError: 'No stories found that were generated by ai setup', | CODE |
| HIGH | code/core/src/core-server/utils/checklist.ts | 128 | // Find at least one entry generated by AI. | COMMENT |
| HIGH | code/core/src/core-server/utils/checklist.ts | 159 | // `ai-setup-ran` cache and the AI-generated stories appear *after* the | COMMENT |
| HIGH | code/core/src/core-server/utils/checklist.ts | 173 | // Sync aiSetup UI as soon as we observe AI-generated stories in the | COMMENT |
| HIGH | …e-server/utils/manifests/render-components-manifest.ts | 61 | // AI generated manifests/components.html page | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …lib/agentic-reference/comparison/compare-stats.test.ts | 154 | // HC3 leverage is 1 on a singleton cell and rank-deficiency splits | COMMENT |
| MEDIUM | code/core/src/manager-api/modules/layout.ts | 467 | // ways to make this API more robust to focus-trap race conditions. | COMMENT |
| MEDIUM | code/e2e-sandbox/manager.spec.ts | 253 | // Wait for args to appear in the URL (robust URL-decoding logic) | COMMENT |
| MEDIUM | …ocgen-harness/src/perf/docgen-perf/engines/compodoc.ts | 209 | : `${this.#pin} did not resolve; it is pinned in code/lib/docgen-harness/package.json, so run yarn install`; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …mplates/reshaped-storybook/public/mockServiceWorker.js | 147 | async function handleRequest(event, requestId) { | CODE |
| LOW | code/core/src/csf/story.test.ts | 41 | async function doSomething() { | CODE |
| LOW | code/core/src/manager-api/modules/refs.ts | 119 | async function handleRequest( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …e/core/src/manager/components/sidebar/Tree.stories.tsx | 890 | // ─── Sticky ancestors of the topmost visible row (VSCode-style sticky scroll) ──────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/ecosystem-ci/build.sh | 15 | # Create the storybook-sandboxes directory with a package.json that specifies Yarn as the package manager. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | agent-eval/scripts/compare_stats.py | 148 | CODE | |
| LOW | agent-eval/scripts/compare_stats.py | 340 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | code/addons/docs/src/blocks/controls/Boolean.tsx | 121 | * ## Example usage | COMMENT |