-
-
Notifications
You must be signed in to change notification settings - Fork 9.8k
Docs: Fix ESLint docs and broken links in the rules settings #33389
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: next
Are you sure you want to change the base?
Conversation
📝 WalkthroughWalkthroughDocumentation updates across ESLint plugin rule files and the ESLint integration guide: standardized capitalization to "Storybook", replaced deprecated/internal import paths with Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
📜 Recent review detailsConfiguration used: Organization UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ 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)
Comment |
There was a problem hiding this 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
📒 Files selected for processing (16)
code/lib/eslint-plugin/docs/rules/await-interactions.mdcode/lib/eslint-plugin/docs/rules/context-in-play-function.mdcode/lib/eslint-plugin/docs/rules/csf-component.mdcode/lib/eslint-plugin/docs/rules/default-exports.mdcode/lib/eslint-plugin/docs/rules/hierarchy-separator.mdcode/lib/eslint-plugin/docs/rules/meta-satisfies-type.mdcode/lib/eslint-plugin/docs/rules/no-redundant-story-name.mdcode/lib/eslint-plugin/docs/rules/no-renderer-packages.mdcode/lib/eslint-plugin/docs/rules/no-stories-of.mdcode/lib/eslint-plugin/docs/rules/no-title-property-in-meta.mdcode/lib/eslint-plugin/docs/rules/no-uninstalled-addons.mdcode/lib/eslint-plugin/docs/rules/prefer-pascal-case.mdcode/lib/eslint-plugin/docs/rules/story-exports.mdcode/lib/eslint-plugin/docs/rules/use-storybook-expect.mdcode/lib/eslint-plugin/docs/rules/use-storybook-testing-library.mddocs/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.mdcode/lib/eslint-plugin/docs/rules/no-title-property-in-meta.mdcode/lib/eslint-plugin/docs/rules/use-storybook-testing-library.mdcode/lib/eslint-plugin/docs/rules/no-stories-of.mdcode/lib/eslint-plugin/docs/rules/csf-component.mdcode/lib/eslint-plugin/docs/rules/no-renderer-packages.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/lib/eslint-plugin/docs/rules/no-uninstalled-addons.mdcode/lib/eslint-plugin/docs/rules/prefer-pascal-case.mdcode/lib/eslint-plugin/docs/rules/default-exports.mdcode/lib/eslint-plugin/docs/rules/context-in-play-function.mdcode/lib/eslint-plugin/docs/rules/meta-satisfies-type.mdcode/lib/eslint-plugin/docs/rules/hierarchy-separator.mdcode/lib/eslint-plugin/docs/rules/use-storybook-expect.mddocs/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.mdcode/lib/eslint-plugin/docs/rules/no-title-property-in-meta.mdcode/lib/eslint-plugin/docs/rules/use-storybook-testing-library.mdcode/lib/eslint-plugin/docs/rules/no-stories-of.mdcode/lib/eslint-plugin/docs/rules/csf-component.mdcode/lib/eslint-plugin/docs/rules/no-renderer-packages.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/lib/eslint-plugin/docs/rules/no-uninstalled-addons.mdcode/lib/eslint-plugin/docs/rules/prefer-pascal-case.mdcode/lib/eslint-plugin/docs/rules/default-exports.mdcode/lib/eslint-plugin/docs/rules/context-in-play-function.mdcode/lib/eslint-plugin/docs/rules/meta-satisfies-type.mdcode/lib/eslint-plugin/docs/rules/hierarchy-separator.mdcode/lib/eslint-plugin/docs/rules/use-storybook-expect.mddocs/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.mdcode/lib/eslint-plugin/docs/rules/no-title-property-in-meta.mdcode/lib/eslint-plugin/docs/rules/use-storybook-testing-library.mdcode/lib/eslint-plugin/docs/rules/no-stories-of.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/lib/eslint-plugin/docs/rules/no-uninstalled-addons.mdcode/lib/eslint-plugin/docs/rules/default-exports.mdcode/lib/eslint-plugin/docs/rules/context-in-play-function.mdcode/lib/eslint-plugin/docs/rules/use-storybook-expect.mddocs/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.mdcode/lib/eslint-plugin/docs/rules/use-storybook-testing-library.mdcode/lib/eslint-plugin/docs/rules/no-renderer-packages.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/lib/eslint-plugin/docs/rules/default-exports.mdcode/lib/eslint-plugin/docs/rules/context-in-play-function.mdcode/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.mdcode/lib/eslint-plugin/docs/rules/use-storybook-testing-library.mdcode/lib/eslint-plugin/docs/rules/no-uninstalled-addons.mdcode/lib/eslint-plugin/docs/rules/default-exports.mddocs/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.mdcode/lib/eslint-plugin/docs/rules/use-storybook-testing-library.mdcode/lib/eslint-plugin/docs/rules/no-renderer-packages.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/lib/eslint-plugin/docs/rules/default-exports.mdcode/lib/eslint-plugin/docs/rules/context-in-play-function.mdcode/lib/eslint-plugin/docs/rules/meta-satisfies-type.mdcode/lib/eslint-plugin/docs/rules/use-storybook-expect.mddocs/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.mdcode/lib/eslint-plugin/docs/rules/use-storybook-testing-library.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/lib/eslint-plugin/docs/rules/prefer-pascal-case.mdcode/lib/eslint-plugin/docs/rules/context-in-play-function.mdcode/lib/eslint-plugin/docs/rules/use-storybook-expect.mddocs/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.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/lib/eslint-plugin/docs/rules/no-uninstalled-addons.mdcode/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.mdcode/lib/eslint-plugin/docs/rules/no-renderer-packages.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/lib/eslint-plugin/docs/rules/no-uninstalled-addons.mdcode/lib/eslint-plugin/docs/rules/hierarchy-separator.mdcode/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.mdcode/lib/eslint-plugin/docs/rules/no-stories-of.mdcode/lib/eslint-plugin/docs/rules/no-renderer-packages.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/lib/eslint-plugin/docs/rules/no-uninstalled-addons.mdcode/lib/eslint-plugin/docs/rules/meta-satisfies-type.mdcode/lib/eslint-plugin/docs/rules/use-storybook-expect.mddocs/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.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/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.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/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.mdcode/lib/eslint-plugin/docs/rules/no-renderer-packages.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/lib/eslint-plugin/docs/rules/context-in-play-function.mdcode/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.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/lib/eslint-plugin/docs/rules/context-in-play-function.mdcode/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.mdcode/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.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/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.mdcode/lib/eslint-plugin/docs/rules/await-interactions.mdcode/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.mdcode/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.mdcode/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.mdcode/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/testtostorybook/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 whysatisfiesis 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
nextbranch.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
storiesOfhas 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.
|
View your CI Pipeline Execution ↗ for commit dc4e797
☁️ Nx Cloud last updated this comment at |
Closes #
What I did
This pull request updates and fixes broken links in the ESlint rules and docs.
What was done:
Checklist for Contributors
Testing
The changes in this PR are covered in the following automated tests:
Manual testing
This section is mandatory for all contributions. If you believe no manual test is necessary, please state so explicitly. Thanks!
Documentation
MIGRATION.MD
Checklist for Maintainers
When this PR is ready for testing, make sure to add
ci:normal,ci:mergedorci:dailyGH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found incode/lib/cli-storybook/src/sandbox-templates.tsMake 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/coreteam 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
✏️ Tip: You can customize this high-level summary in your review settings.