Skip to content

chore: normalize package keywords and main JSDoc across _tools/eslint/rules/* outliers - #16384

Draft
Planeshifter wants to merge 6 commits into
developfrom
claude/cool-johnson-jkga0t
Draft

Planeshifter wants to merge 6 commits into
developfrom
claude/cool-johnson-jkga0t

Conversation

@Planeshifter

Copy link
Copy Markdown
Member

Description

What is the purpose of this pull request?

This pull request:

  • brings six _tools/eslint/rules packages in line with the conventions followed by nearly all of the namespace's 125 rule packages. Only package metadata and JSDoc change; rule behavior does not.

Namespace summary. 125 members, none autogenerated. 24 features analyzed: structural features (file tree, package.json keys, scripts, directories, keywords, README sections) and semantic features (lib/main.js section layout, rule object shape, meta/docs keys, main signature and JSDoc tags, report style, dependencies). 23 had a clear majority (≥75%). One did not and was excluded: meta key set, where the most common pattern covers only 67.2%.

_tools/eslint/rules/eol-open-bracket-spacing

Removes @private from the JSDoc of main. main is exported as the rule's create method, and 123 of 125 rules (98.4%) leave this tag off.

_tools/eslint/rules/line-closing-bracket-spacing

Same fix as eol-open-bracket-spacing, of which this package is a near copy: removes @private from main (absent in 98.4% of rules).

_tools/eslint/rules/jsdoc-private-annotation

Adds the namespace keyword plugin after rule (present in 121 of 125 rules, 96.8%).

_tools/eslint/rules/jsdoc-require-throws-tags

Adds the namespace keyword plugin after rule (96.8%).

_tools/eslint/rules/no-unnecessary-nested-functions

Adds the namespace keywords custom (99.2%), rules (98.4%), and plugin (96.8%) in their usual order.

_tools/eslint/rules/tsdoc-declarations-doctest

Adds the namespace keywords rules (98.4%) and plugin (96.8%) in their usual order.

Related Issues

Does this pull request have any related issues?

None.

Reference Packages

Did the content of this pull request follow one or more existing packages? Answering is optional.

This pull request followed these packages:

  • the other _tools/eslint/rules/* packages, which form the majority pattern (e.g., _tools/eslint/rules/jsdoc-doctest, _tools/eslint/rules/no-builtin-math).

What carried over from the reference(s)?

  • package.json keyword set and order; JSDoc tag set on main.

What differed, or what did you have to work out yourself?

  • Nothing. Each change copies the majority form.

Questions

Any questions for reviewers of this pull request?

No.

Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

Validation. Features were extracted from every package's files and lib/main.js. Each candidate fix was then checked by three separate reviews: semantic (is the deviation intentional?), cross-reference (do tests, examples, or tooling depend on the deviating state?), and structural (does the majority pattern apply?). All six packages were confirmed as drift by all three. The jsdoc-private-annotation rule does not flag main without @private, because main is assigned to create. The edited package.json files parse as valid JSON.

Deliberately excluded:

  • test/fixtures/unvalidated.js, missing in 6 packages: adding it would require test changes.
  • bin: {}, missing in 3 packages: present in only about 9% of packages repo-wide.
  • __stdlib__ in tsdoc-declarations-doctest: intentional environment metadata.
  • no // MODULES // section in 18 rules: these rules have no require calls.
  • a different context.report style in the doctest, jsdoc-doctest, and tsdoc-declarations-doctest rules: changing it would change behavior.
  • meta key set: no clear majority.

Checklist

Please ensure the following tasks are completed before submitting this pull request.

AI Assistance

When authoring the changes proposed in this PR, did you use any kind of AI assistance?

  • Yes
  • No

If you answered "yes" above, how did you use AI assistance?

  • Code generation (e.g., when writing an implementation or fixing a bug)
  • Test/benchmark generation
  • Documentation (including examples)
  • Research and understanding

Disclosure

If you answered "yes" to using AI assistance, please provide a short disclosure indicating how you used AI assistance. This helps reviewers determine how much scrutiny to apply when reviewing your contribution. Example disclosures: "This PR was written primarily by Claude Code." or "I consulted ChatGPT to understand the codebase, but the proposed changes were fully authored manually by myself.".

This PR was written primarily by Claude Code, through an automated check that compares packages in a namespace against their siblings.


@stdlib-js/reviewers


Generated by Claude Code

…/rules/eol-open-bracket-spacing`

Removed `@private` from the JSDoc of `main`, which is exported as the rule's `create` method; absent in 123 of 125 sibling rules (98.4%).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017wWD7ATC5tezitwdtcJwPh
…/rules/line-closing-bracket-spacing`

Removed `@private` from the JSDoc of `main`, which is exported as the rule's `create` method; absent in 123 of 125 sibling rules (98.4%).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017wWD7ATC5tezitwdtcJwPh
…vate-annotation`

Added namespace keyword `plugin` (present in 121 of 125 sibling rules, 96.8%).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017wWD7ATC5tezitwdtcJwPh
…uire-throws-tags`

Added namespace keyword `plugin` (present in 121 of 125 sibling rules, 96.8%).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017wWD7ATC5tezitwdtcJwPh
…cessary-nested-functions`

Added namespace keywords `custom` (124 of 125 siblings, 99.2%), `rules` (123 of 125, 98.4%), and `plugin` (121 of 125, 96.8%).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017wWD7ATC5tezitwdtcJwPh
…eclarations-doctest`

Added namespace keywords `rules` (123 of 125 siblings, 98.4%) and `plugin` (121 of 125, 96.8%).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017wWD7ATC5tezitwdtcJwPh
@stdlib-bot stdlib-bot added the Tools Issue or pull request related to project tooling. label Oct 30, 2026

This branch has not been deployed

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

Labels

Tools Issue or pull request related to project tooling.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants