Skip to content

Conversation

@jonniebigodes
Copy link
Contributor

@jonniebigodes jonniebigodes commented Dec 17, 2025

Closes #

What I did

This pull request updates and fixes broken links in the ESlint rules and docs.

What was done:

  • Vetted and fixed the ESLint rules links and prose
  • Adjusted the documentation to match the current supported options, configurations and guidelines

Checklist for Contributors

Testing

The changes in this PR are covered in the following automated tests:

  • stories
  • unit tests
  • integration tests
  • end-to-end tests

Manual testing

This section is mandatory for all contributions. If you believe no manual test is necessary, please state so explicitly. Thanks!

Documentation

  • Add or update documentation reflecting your changes
  • If you are deprecating/removing a feature, make sure to update
    MIGRATION.MD

Checklist for Maintainers

  • When this PR is ready for testing, make sure to add ci:normal, ci:merged or ci:daily GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found in code/lib/cli-storybook/src/sandbox-templates.ts

  • Make sure this PR contains one of the labels below:

    Available labels
    • bug: Internal changes that fixes incorrect behavior.
    • maintenance: User-facing maintenance tasks.
    • dependencies: Upgrading (sometimes downgrading) dependencies.
    • build: Internal-facing build tooling & test updates. Will not show up in release changelog.
    • cleanup: Minor cleanup style change. Will not show up in release changelog.
    • documentation: Documentation only changes. Will not show up in release changelog.
    • feature request: Introducing a new feature.
    • BREAKING CHANGE: Changes that break compatibility in some way with current major version.
    • other: Changes that don't fit in the above categories.

🦋 Canary release

This PR does not have a canary release associated. You can request a canary release of this pull request by mentioning the @storybookjs/core team here.

core team members can create a canary release here or locally with gh workflow run --repo storybookjs/storybook publish.yml --field pr=<PR_NUMBER>

Summary by CodeRabbit

  • Documentation
    • Improved clarity, grammar, and consistency across ESLint rule docs; updated example import paths to use the Storybook core test package and clarified guidance on addons, framework packages, and when to disable rules.
  • Chores
    • Updated ESLint configuration examples to the flat config style and clarified handling to include the Storybook directory.

✏️ Tip: You can customize this high-level summary in your review settings.

@jonniebigodes jonniebigodes changed the title Docs: Fix ESLint docs nad broken links in the rules settings Docs: Fix ESLint docs and broken links in the rules settings Dec 18, 2025
@ndelangen ndelangen added documentation ci:docs Run the CI jobs for documentation checks only. labels Dec 22, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 22, 2025

📝 Walkthrough

Walkthrough

Documentation updates across ESLint plugin rule files and the ESLint integration guide: standardized capitalization to "Storybook", replaced deprecated/internal import paths with storybook/test in examples, refined wording/grammar across many docs, and modernized the ESLint flat-config example to use defineConfig and globalIgnores.

Changes

Cohort / File(s) Change Summary
ESLint Rule Docs: test import updates & examples
code/lib/eslint-plugin/docs/rules/await-interactions.md, code/lib/eslint-plugin/docs/rules/use-storybook-expect.md, code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
Replaced example imports from @storybook/test with storybook/test; updated example comments/spacing; adjusted guidance references to the Storybook core package.
ESLint Rule Docs: Capitalization & phrasing standardization
code/lib/eslint-plugin/docs/rules/context-in-play-function.md, code/lib/eslint-plugin/docs/rules/default-exports.md, code/lib/eslint-plugin/docs/rules/story-exports.md
Standardized "Storybook" capitalization and made small stylistic/grammatical wording tweaks in "When Not To Use It" and related sections.
ESLint Rule Docs: Grammar, typos, and formatting fixes
code/lib/eslint-plugin/docs/rules/csf-component.md, code/lib/eslint-plugin/docs/rules/hierarchy-separator.md, code/lib/eslint-plugin/docs/rules/meta-satisfies-type.md, code/lib/eslint-plugin/docs/rules/no-redundant-story-name.md, code/lib/eslint-plugin/docs/rules/prefer-pascal-case.md, code/lib/eslint-plugin/docs/rules/no-title-property-in-meta.md
Small edits: comma insertion, typo corrections, verb tense adjustments, backtick formatting for satisfies, link slug correction, and minor rephrasings for clarity.
ESLint Rule Docs: Framework mapping & config guidance
code/lib/eslint-plugin/docs/rules/no-renderer-packages.md, code/lib/eslint-plugin/docs/rules/no-stories-of.md, code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
Revised framework-package recommendations toward vite-oriented variants, tightened phrasing about renderer packages and storiesOf deprecation, clarified .storybook main.js
Integration Guide: ESLint flat-config example
docs/configure/integration/eslint-plugin.mdx
Replaced plain array export with defineConfig([...]), added import of defineConfig and globalIgnores from eslint/config, inserted globalIgnores(['!.storybook'], ...) in the sample, and updated related prose and snippets.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs


📜 Recent review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2612a50 and 3a46b9f.

📒 Files selected for processing (1)
  • docs/configure/integration/eslint-plugin.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/configure/integration/eslint-plugin.mdx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Core Unit Tests, windows-latest

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c60f2d8 and 2612a50.

📒 Files selected for processing (16)
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/context-in-play-function.md
  • code/lib/eslint-plugin/docs/rules/csf-component.md
  • code/lib/eslint-plugin/docs/rules/default-exports.md
  • code/lib/eslint-plugin/docs/rules/hierarchy-separator.md
  • code/lib/eslint-plugin/docs/rules/meta-satisfies-type.md
  • code/lib/eslint-plugin/docs/rules/no-redundant-story-name.md
  • code/lib/eslint-plugin/docs/rules/no-renderer-packages.md
  • code/lib/eslint-plugin/docs/rules/no-stories-of.md
  • code/lib/eslint-plugin/docs/rules/no-title-property-in-meta.md
  • code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
  • code/lib/eslint-plugin/docs/rules/prefer-pascal-case.md
  • code/lib/eslint-plugin/docs/rules/story-exports.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • docs/configure/integration/eslint-plugin.mdx
🧰 Additional context used
🧠 Learnings (29)
📓 Common learnings
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-28T14:50:24.889Z
Learning: Follow existing patterns and conventions in the Storybook codebase
Learnt from: Sidnioulz
Repo: storybookjs/storybook PR: 32458
File: code/core/src/components/components/Select/Select.tsx:200-204
Timestamp: 2025-11-05T09:38:47.712Z
Learning: Repo: storybookjs/storybook — Guidance: Until Storybook 11 is released, do not suggest using React.useId anywhere (e.g., in code/core/src/components/components/Select/Select.tsx) to maintain compatibility with React 17 runtimes. Prefer advising: accept a caller-provided props.id and, if needed, generate a client-only fallback id to minimize SSR hydration issues — but avoid useId. Resume prompting for useId after Storybook 11.
Learnt from: cylewaitforit
Repo: storybookjs/storybook PR: 31965
File: code/lib/eslint-plugin/src/rules/only-csf3.ts:31-33
Timestamp: 2025-09-24T13:04:58.631Z
Learning: The Storybook ESLint plugin supports ESLint v8.57+ where context.sourceCode is already available as a property since it was introduced in v8.40.0, so no fallback to context.getSourceCode() is needed in rules.
Learnt from: cylewaitforit
Repo: storybookjs/storybook PR: 31965
File: code/lib/eslint-plugin/src/rules/only-csf3.ts:31-33
Timestamp: 2025-09-24T13:04:58.631Z
Learning: The Storybook ESLint plugin supports ESLint v8.57+ where context.sourceCode is already available as a property since it was introduced in v8.40.0, so no fallback to context.getSourceCode() is needed in rules.
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-28T14:50:24.889Z
Learning: Applies to **/*.{js,jsx,json,html,ts,tsx,mjs} : Use ESLint and Prettier configurations that are enforced in the codebase
📚 Learning: 2025-11-28T14:50:24.889Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-28T14:50:24.889Z
Learning: Follow existing patterns and conventions in the Storybook codebase

Applied to files:

  • code/lib/eslint-plugin/docs/rules/story-exports.md
  • code/lib/eslint-plugin/docs/rules/no-title-property-in-meta.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/no-stories-of.md
  • code/lib/eslint-plugin/docs/rules/csf-component.md
  • code/lib/eslint-plugin/docs/rules/no-renderer-packages.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
  • code/lib/eslint-plugin/docs/rules/prefer-pascal-case.md
  • code/lib/eslint-plugin/docs/rules/default-exports.md
  • code/lib/eslint-plugin/docs/rules/context-in-play-function.md
  • code/lib/eslint-plugin/docs/rules/meta-satisfies-type.md
  • code/lib/eslint-plugin/docs/rules/hierarchy-separator.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
  • docs/configure/integration/eslint-plugin.mdx
📚 Learning: 2025-11-05T09:38:47.712Z
Learnt from: Sidnioulz
Repo: storybookjs/storybook PR: 32458
File: code/core/src/components/components/Select/Select.tsx:200-204
Timestamp: 2025-11-05T09:38:47.712Z
Learning: Repo: storybookjs/storybook — Guidance: Until Storybook 11 is released, do not suggest using React.useId anywhere (e.g., in code/core/src/components/components/Select/Select.tsx) to maintain compatibility with React 17 runtimes. Prefer advising: accept a caller-provided props.id and, if needed, generate a client-only fallback id to minimize SSR hydration issues — but avoid useId. Resume prompting for useId after Storybook 11.

Applied to files:

  • code/lib/eslint-plugin/docs/rules/story-exports.md
  • code/lib/eslint-plugin/docs/rules/no-title-property-in-meta.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/no-stories-of.md
  • code/lib/eslint-plugin/docs/rules/csf-component.md
  • code/lib/eslint-plugin/docs/rules/no-renderer-packages.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
  • code/lib/eslint-plugin/docs/rules/prefer-pascal-case.md
  • code/lib/eslint-plugin/docs/rules/default-exports.md
  • code/lib/eslint-plugin/docs/rules/context-in-play-function.md
  • code/lib/eslint-plugin/docs/rules/meta-satisfies-type.md
  • code/lib/eslint-plugin/docs/rules/hierarchy-separator.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
  • docs/configure/integration/eslint-plugin.mdx
📚 Learning: 2025-09-24T13:04:58.631Z
Learnt from: cylewaitforit
Repo: storybookjs/storybook PR: 31965
File: code/lib/eslint-plugin/src/rules/only-csf3.ts:31-33
Timestamp: 2025-09-24T13:04:58.631Z
Learning: The Storybook ESLint plugin supports ESLint v8.57+ where context.sourceCode is already available as a property since it was introduced in v8.40.0, so no fallback to context.getSourceCode() is needed in rules.

Applied to files:

  • code/lib/eslint-plugin/docs/rules/story-exports.md
  • code/lib/eslint-plugin/docs/rules/no-title-property-in-meta.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/no-stories-of.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
  • code/lib/eslint-plugin/docs/rules/default-exports.md
  • code/lib/eslint-plugin/docs/rules/context-in-play-function.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
  • docs/configure/integration/eslint-plugin.mdx
📚 Learning: 2025-11-28T14:50:24.889Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-28T14:50:24.889Z
Learning: Applies to code/**/*.{ts,tsx,js,jsx,mjs} : Use server-side logger from 'storybook/internal/node-logger' for Node.js code

Applied to files:

  • code/lib/eslint-plugin/docs/rules/story-exports.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/no-renderer-packages.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/default-exports.md
  • code/lib/eslint-plugin/docs/rules/context-in-play-function.md
  • code/lib/eslint-plugin/docs/rules/meta-satisfies-type.md
📚 Learning: 2025-11-28T14:50:24.889Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-28T14:50:24.889Z
Learning: Applies to **/*.{js,jsx,json,html,ts,tsx,mjs} : Use ESLint and Prettier configurations that are enforced in the codebase

Applied to files:

  • code/lib/eslint-plugin/docs/rules/story-exports.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
  • code/lib/eslint-plugin/docs/rules/default-exports.md
  • docs/configure/integration/eslint-plugin.mdx
📚 Learning: 2025-11-28T14:50:24.889Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-28T14:50:24.889Z
Learning: Applies to code/**/*.{ts,tsx,js,jsx,mjs} : Use client-side logger from 'storybook/internal/client-logger' for browser code

Applied to files:

  • code/lib/eslint-plugin/docs/rules/story-exports.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/no-renderer-packages.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/default-exports.md
  • code/lib/eslint-plugin/docs/rules/context-in-play-function.md
  • code/lib/eslint-plugin/docs/rules/meta-satisfies-type.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
  • docs/configure/integration/eslint-plugin.mdx
📚 Learning: 2025-11-24T17:49:31.838Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .cursorrules:0-0
Timestamp: 2025-11-24T17:49:31.838Z
Learning: Applies to **/*.{test,spec}.{ts,tsx} : Test files should follow the naming pattern `*.test.ts`, `*.test.tsx`, `*.spec.ts`, or `*.spec.tsx`

Applied to files:

  • code/lib/eslint-plugin/docs/rules/story-exports.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/prefer-pascal-case.md
  • code/lib/eslint-plugin/docs/rules/context-in-play-function.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
  • docs/configure/integration/eslint-plugin.mdx
📚 Learning: 2025-09-24T09:39:39.233Z
Learnt from: ndelangen
Repo: storybookjs/storybook PR: 32507
File: code/core/src/manager/globals/globals-module-info.ts:25-33
Timestamp: 2025-09-24T09:39:39.233Z
Learning: In Storybook, storybook/actions/decorator is a preview-only entrypoint and should not be included in manager globals configuration. The duplicatedKeys array in code/core/src/manager/globals/globals-module-info.ts is specifically for manager-side externalization, not preview entrypoints.

Applied to files:

  • code/lib/eslint-plugin/docs/rules/story-exports.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
  • code/lib/eslint-plugin/docs/rules/context-in-play-function.md
📚 Learning: 2025-10-01T15:24:01.060Z
Learnt from: Sidnioulz
Repo: storybookjs/storybook PR: 32594
File: code/core/src/components/components/Popover/WithPopover.tsx:7-9
Timestamp: 2025-10-01T15:24:01.060Z
Learning: In the Storybook repository, "react-aria-components/patched-dist/*" (e.g., "react-aria-components/patched-dist/Dialog", "react-aria-components/patched-dist/Popover", "react-aria-components/patched-dist/Tooltip") are valid import paths created by a patch applied to the react-aria-components package. These imports should not be flagged as broken or invalid until a maintainer explicitly states they are no longer acceptable.

Applied to files:

  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/no-renderer-packages.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
  • code/lib/eslint-plugin/docs/rules/hierarchy-separator.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
📚 Learning: 2025-11-05T09:37:25.920Z
Learnt from: Sidnioulz
Repo: storybookjs/storybook PR: 32458
File: code/core/src/components/components/tooltip/WithTooltip.tsx:54-96
Timestamp: 2025-11-05T09:37:25.920Z
Learning: Repo: storybookjs/storybook — In code/core/src/components/components/tooltip/WithTooltip.tsx, the legacy WithTooltip implementation is intentionally reintroduced for backward compatibility and is deprecated; maintainers (per Sidnioulz) do not want maintenance or improvements on it. Prefer WithTooltipNew/Popover; avoid suggesting changes to WithTooltip.* going forward.

Applied to files:

  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/no-stories-of.md
  • code/lib/eslint-plugin/docs/rules/no-renderer-packages.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
  • code/lib/eslint-plugin/docs/rules/meta-satisfies-type.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
  • docs/configure/integration/eslint-plugin.mdx
📚 Learning: 2025-11-28T14:50:24.889Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-28T14:50:24.889Z
Learning: Applies to code/**/*.{test,spec}.{ts,tsx,js,jsx} : Write meaningful unit tests that actually import and call the functions being tested

Applied to files:

  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
📚 Learning: 2025-11-24T17:49:31.838Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .cursorrules:0-0
Timestamp: 2025-11-24T17:49:31.838Z
Learning: Applies to **/*.{test,spec}.{ts,tsx} : Follow the spy mocking rules defined in `.cursor/rules/spy-mocking.mdc` for consistent mocking patterns with Vitest

Applied to files:

  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
📚 Learning: 2025-11-24T17:49:59.279Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .cursor/rules/spy-mocking.mdc:0-0
Timestamp: 2025-11-24T17:49:59.279Z
Learning: Applies to **/*.test.{ts,tsx,js,jsx} : Avoid inline mock implementations within test cases in Vitest tests

Applied to files:

  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/no-renderer-packages.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/context-in-play-function.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
📚 Learning: 2025-11-24T17:49:59.279Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .cursor/rules/spy-mocking.mdc:0-0
Timestamp: 2025-11-24T17:49:59.279Z
Learning: Applies to **/*.test.{ts,tsx,js,jsx} : Avoid mock implementations outside of `beforeEach` blocks in Vitest tests

Applied to files:

  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/context-in-play-function.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
📚 Learning: 2025-11-24T17:49:59.279Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .cursor/rules/spy-mocking.mdc:0-0
Timestamp: 2025-11-24T17:49:59.279Z
Learning: Applies to **/*.test.{ts,tsx,js,jsx} : Document complex mock behaviors in Vitest tests

Applied to files:

  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
📚 Learning: 2025-11-24T17:49:59.279Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .cursor/rules/spy-mocking.mdc:0-0
Timestamp: 2025-11-24T17:49:59.279Z
Learning: Applies to **/*.test.{ts,tsx,js,jsx} : Avoid mocking without the `spy: true` option in Vitest tests

Applied to files:

  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
📚 Learning: 2025-11-24T17:49:59.279Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .cursor/rules/spy-mocking.mdc:0-0
Timestamp: 2025-11-24T17:49:59.279Z
Learning: Applies to **/*.test.{ts,tsx,js,jsx} : Avoid mocking only a subset of required dependencies in Vitest tests

Applied to files:

  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
  • code/lib/eslint-plugin/docs/rules/use-storybook-expect.md
📚 Learning: 2025-11-24T17:49:59.279Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .cursor/rules/spy-mocking.mdc:0-0
Timestamp: 2025-11-24T17:49:59.279Z
Learning: Applies to **/*.test.{ts,tsx,js,jsx} : Implement mock behaviors in `beforeEach` blocks in Vitest tests

Applied to files:

  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
  • code/lib/eslint-plugin/docs/rules/await-interactions.md
📚 Learning: 2025-11-28T14:50:24.889Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-28T14:50:24.889Z
Learning: Applies to code/**/*.{ts,tsx,js,jsx} : Export functions that need to be tested from their modules

Applied to files:

  • code/lib/eslint-plugin/docs/rules/use-storybook-testing-library.md
📚 Learning: 2025-11-05T09:36:55.944Z
Learnt from: Sidnioulz
Repo: storybookjs/storybook PR: 32458
File: code/core/src/components/components/Tabs/Tabs.stories.tsx:222-227
Timestamp: 2025-11-05T09:36:55.944Z
Learning: Repo: storybookjs/storybook PR: 32458 — In code/core/src/components/components/Button/Button.tsx (React/TypeScript), ButtonProps includes ariaLabel?: string | false and the component maps it to the DOM aria-label. Convention: ariaLabel is mandatory on all Button usages — provide a descriptive string for icon-only buttons; set ariaLabel=false when the button’s children already serve as the accessible name. Do not suggest using a raw aria-label prop on Button call sites.

Applied to files:

  • code/lib/eslint-plugin/docs/rules/csf-component.md
📚 Learning: 2025-09-29T13:20:23.346Z
Learnt from: mrginglymus
Repo: storybookjs/storybook PR: 32556
File: code/core/package.json:309-313
Timestamp: 2025-09-29T13:20:23.346Z
Learning: The `fast-printf` dependency in Storybook's core package is bundled into the final distribution during the build process, so it should remain in devDependencies rather than being moved to dependencies, following the same pattern as other bundled dependencies like `open`.

Applied to files:

  • code/lib/eslint-plugin/docs/rules/no-renderer-packages.md
  • code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
📚 Learning: 2025-09-17T07:31:04.432Z
Learnt from: ndelangen
Repo: storybookjs/storybook PR: 32484
File: code/core/package.json:326-326
Timestamp: 2025-09-17T07:31:04.432Z
Learning: In Storybook's core package, dependencies like `open` are bundled into the final distribution during the build process, so they should remain in devDependencies rather than being moved to dependencies. End users don't need these packages as separate runtime dependencies since they're included in the bundled code.

Applied to files:

  • code/lib/eslint-plugin/docs/rules/no-renderer-packages.md
  • code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
📚 Learning: 2025-11-24T17:49:59.279Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .cursor/rules/spy-mocking.mdc:0-0
Timestamp: 2025-11-24T17:49:59.279Z
Learning: Applies to **/*.test.{ts,tsx,js,jsx} : Each mock implementation should return a Promise for async functions in Vitest

Applied to files:

  • code/lib/eslint-plugin/docs/rules/await-interactions.md
📚 Learning: 2025-11-28T14:50:24.889Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-28T14:50:24.889Z
Learning: Applies to code/{addons,frameworks}/**/README.md : Include code examples in addon/framework documentation for significant changes

Applied to files:

  • code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
📚 Learning: 2025-11-28T14:50:24.889Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-28T14:50:24.889Z
Learning: Applies to README.md : Update relevant README files for significant code changes

Applied to files:

  • code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md
📚 Learning: 2025-09-18T20:51:06.618Z
Learnt from: Sidnioulz
Repo: storybookjs/storybook PR: 32458
File: code/core/src/viewport/components/Tool.tsx:38-39
Timestamp: 2025-09-18T20:51:06.618Z
Learning: The useGlobals hook from storybook/manager-api returns a tuple where the third element (storyGlobals) is typed as Globals, not Globals | undefined. This means TypeScript guarantees it's always defined, making the `in` operator safe to use without additional null checks.

Applied to files:

  • code/lib/eslint-plugin/docs/rules/meta-satisfies-type.md
📚 Learning: 2025-09-18T20:51:06.618Z
Learnt from: Sidnioulz
Repo: storybookjs/storybook PR: 32458
File: code/core/src/viewport/components/Tool.tsx:38-39
Timestamp: 2025-09-18T20:51:06.618Z
Learning: In viewport tool code, when using the `useGlobals` hook from storybook/manager-api, the third returned value `storyGlobals` is guaranteed by TypeScript to be defined (not undefined/null), making the `in` operator safe to use without additional null checks.

Applied to files:

  • code/lib/eslint-plugin/docs/rules/meta-satisfies-type.md
📚 Learning: 2025-11-28T14:50:24.889Z
Learnt from: CR
Repo: storybookjs/storybook PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-11-28T14:50:24.889Z
Learning: Applies to **/*.{ts,tsx} : Enable TypeScript strict mode

Applied to files:

  • docs/configure/integration/eslint-plugin.mdx
🪛 LanguageTool
code/lib/eslint-plugin/docs/rules/csf-component.md

[style] ~11-~11: Consider using a more concise synonym.
Context: ...is optional, but configuring it unlocks a variety of features in Storybook, including automa...

(A_VARIETY_OF)

code/lib/eslint-plugin/docs/rules/no-uninstalled-addons.md

[grammar] ~11-~11: Ensure spelling is correct
Context: ...# Rule Details This rule checks if all addons registered in .storybook/main.js|ts a...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[style] ~17-~17: As an alternative to the over-used intensifier ‘very’, consider replacing this phrase.
Context: ...Location` option](#configure). Another very important side note: your ESLint config must allo...

(EN_WEAK_ADJECTIVE)


[grammar] ~84-~84: Ensure spelling is correct
Context: ... ignore You can also ignore specific addons by providing an ignore array in the opt...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🪛 markdownlint-cli2 (0.18.1)
code/lib/eslint-plugin/docs/rules/default-exports.md

33-33: Bare URL used

(MD034, no-bare-urls)

code/lib/eslint-plugin/docs/rules/meta-satisfies-type.md

59-59: Bare URL used

(MD034, no-bare-urls)

🔇 Additional comments (26)
code/lib/eslint-plugin/docs/rules/no-redundant-story-name.md (1)

32-32: Clear documentation improvements.

The grammatical and stylistic refinements enhance readability: using "ensure" over "make sure," correcting "regardless if" to "regardless of whether," and restructuring the sentence for better flow. These changes maintain clarity and align with documentation best practices.

code/lib/eslint-plugin/docs/rules/context-in-play-function.md (2)

67-67: Capitalization aligns with Storybook brand conventions.

The change from "storybook rules" to "Storybook rules" correctly standardizes the product name. The line also includes a link to the ESLint plugin override documentation—ensure this link resolves correctly as part of the broken-links fixes mentioned in the PR.


16-16: Verify import paths in code examples align with PR objectives.

The PR summary mentions updating import paths from @storybook/test to storybook/test. The code examples in this file still import from @storybook/testing-library (lines 16, 28, 42, 54), which differs from both paths mentioned. Confirm whether these imports should be updated or if this file is intentionally excluded from import-path changes.

Also applies to: 28-28, 42-42, 54-54

code/lib/eslint-plugin/docs/rules/meta-satisfies-type.md (1)

11-13: Editorial improvements enhance clarity.

The rewording on lines 11–13 improves the explanation of the rule and adds helpful code formatting with backticks around satisfies. The expanded rationale clearly explains why satisfies is preferred over type annotations or assertions. Aligns well with the PR objectives to refine documentation wording.

code/lib/eslint-plugin/docs/rules/no-title-property-in-meta.md (2)

33-33: Wording refinement improves directness.

The change from "turn this rule off" to "turn off this rule" is a minor but meaningful improvement that makes the instruction more direct and consistent with ESLint documentation style.


11-11: CSF 3.0 documentation link is valid.

The URL points to the official Storybook blog post about CSF 3.0, and the link is working correctly. The wording refinement from "if you don't specify one" to "if you don't define it" improves clarity.

code/lib/eslint-plugin/docs/rules/hierarchy-separator.md (2)

11-11: Grammatical improvement—tense adjustment is appropriate.

The change to present perfect tense ("has been removed") correctly conveys that the removal occurred in the past and remains in effect, improving clarity and consistency with standard documentation conventions.


33-33: GitHub migration link is valid.

The link to https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#removed-hierarchy-separators is accessible and the anchor exists in the current next branch.

code/lib/eslint-plugin/docs/rules/default-exports.md (1)

33-33: Capitalization and wording aligned with documentation standards.

The updates to "Storybook rules" and the refined phrasing improve consistency with the PR's objective to standardize documentation. No concerns with these changes.

code/lib/eslint-plugin/docs/rules/story-exports.md (1)

11-11: Minor wording and capitalization improvements.

The change from "describe" to "represent" more precisely conveys the role of named exports, and the capitalization standardization aligns with the PR's documentation updates.

Also applies to: 37-37

code/lib/eslint-plugin/docs/rules/no-stories-of.md (1)

11-11: Verify the storiesOf API has been removed (not just deprecated).

The change from "deprecated" to "removed" is a factual clarification. Please confirm that storiesOf has been completely removed from the codebase, as opposed to remaining deprecated for backward compatibility.

code/lib/eslint-plugin/docs/rules/csf-component.md (2)

11-11: Typo fix and grammar improvement approved.

The correction of "resonable" to "reasonable" and the addition of the comma for clarity ("and, in CSF3") are solid improvements.


36-36: Documentation URL slug is correct.

The slug has been properly updated to "arg-types" which matches the current Storybook documentation URL for automatic argType inference.

code/lib/eslint-plugin/docs/rules/use-storybook-expect.md (4)

26-27: Code examples are clear and well-commented.

The corrected import path (storybook/test) is highlighted clearly, legacy support is noted, and comments explain the browser-compatibility rationale. Examples effectively demonstrate the rule's intent.

Also applies to: 32-32


39-39: Clarified rule scope and capitalization.

The guidance clearly restricts the rule to story files and references the override documentation. Capitalization of "Storybook" aligns with brand conventions.

@nx-cloud
Copy link

nx-cloud bot commented Dec 23, 2025

View your CI Pipeline Execution ↗ for commit dc4e797

Command Status Duration Result
nx run-many --targets compile ✅ Succeeded 33s View ↗

☁️ Nx Cloud last updated this comment at 2025-12-23 15:02:40 UTC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:docs Run the CI jobs for documentation checks only. documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants