Skip to content

Conversation

@mheob
Copy link
Owner

@mheob mheob commented Dec 6, 2025

Summary

Update dependencies across packages and improve ESLint/Prettier configurations for better developer experience.

Changes

  • Update pnpm from 10.23.0 to 10.24.0
  • Update ESLint plugins and related dependencies to latest versions
  • Reorder pnpm-workspace.yaml sort keys to place catalog-related fields in a more logical position
  • Import prettier-plugin-toml directly instead of using string reference
  • Fix markdown files glob pattern from **/*.md to *.md
  • Fix typos in changelog files
  • Update cspell configuration and dictionary

Motivation

  • Keep dependencies up to date for security and compatibility
  • Improve code organization and type safety in configuration files
  • Fix incorrect glob patterns that may cause unexpected behavior

Summary by CodeRabbit

  • New Features

    • Added new linting rule options and extended rule configurations to improve static checks.
  • Bug Fixes

    • Fixed multiple typographical errors across changelogs and docs.
  • Chores

    • Bumped package manager and workspace dependency versions; added/updated changeset entries and formatting/config improvements.
  • Documentation

    • Enhanced PR guidance text and updated project docs and config metadata for clarity.

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

mheob added 2 commits December 6, 2025 11:16
- Reorder pnpm-workspace.yaml catalog sort keys
- Import prettier-plugin-toml directly
- Fix markdown files glob pattern
- Bump pnpm from 10.23.0 to 10.24.0
- Update ESLint plugins and related dependencies
- Fix typos in changelog files
- Update cspell configuration and dictionary
@mheob mheob added prettier 🎨 Belongs to prettier config eslint 🚨 Belongs to ESLint config deps 📦 labels Dec 6, 2025
@changeset-bot
Copy link

changeset-bot bot commented Dec 6, 2025

🦋 Changeset detected

Latest commit: c841591

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@mheob/eslint-config Minor
@mheob/prettier-config Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link

vercel bot commented Dec 6, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
eslint-config Ready Ready Preview Comment Dec 6, 2025 10:40am

@coderabbitai
Copy link

coderabbitai bot commented Dec 6, 2025

Walkthrough

Updates dependency pins and workspace tooling versions, adds/edits changeset entries, refines Prettier and ESLint config (including type additions), adjusts pnpm-workspace.yaml sorting and onlyBuiltDependencies, and fixes changelog/spelling and documentation text.

Changes

Cohort / File(s) Summary
Changesets
.changeset/bright-trees-flow.md, .changeset/short-spoons-notice.md, .changeset/warm-clouds-dance.md
Adds changeset entries bumping @mheob/eslint-config and @mheob/prettier-config with notes about dependency/version updates and config improvements.
Prettier config
packages/prettier-config/src/index.ts, packages/prettier-config/CHANGELOG.md
Replaces string plugin reference with import pluginToml from 'prettier-plugin-toml'; expands glob patterns to recursive matches and adds Markdown override; fixes changelog typo.
ESLint config types & rules
packages/eslint-config/src/typegen.d.ts
Introduces new rule entries jsdoc/require-rejects and test/consistent-each-for with corresponding types (JsdocRequireRejects, TestConsistentEachFor); adds ts/no-unused-private-class-members and vue/no-duplicate-class-names; extends JsdocCheckIndentation and ReactNoUselessFragment with new optional fields.
Versions & metadata
packages/eslint-config/src/cli/versions-map.generated.ts, packages/eslint-config/src/configs/astro.ts
Updates several dependency version pins in generated versions map; adds cspell words comment for Astro config.
YAML key sorting
packages/eslint-config/src/configs/sort.ts
Moves catalogMode, catalog, catalogs earlier in pnpm-workspace.yaml key ordering and removes duplicate later entries.
Workspace & package metadata
pnpm-workspace.yaml, package.json, CLAUDE.md
Reinstates onlyBuiltDependencies (esbuild, unrs-resolver); updates many catalog dependency version pins; bumps packageManager pnpm version to 10.24.0 (root package.json and CLAUDE.md).
Spellchecks & docs
packages/*/CHANGELOG.md, .claude/commands/create-pr.md, .cspell.json, packages/eslint-config/CHANGELOG.md, packages/commitlint-config/CHANGELOG.md
Multiple changelog typo fixes; richer PR creation guidance (emoji examples, gh CLI recommendation); cspell updates (new words, ignorePaths, imports, languages).

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

  • Focus review areas:
    • packages/eslint-config/src/typegen.d.ts — new rule/type declarations and compatibility with existing rule consumers.
    • packages/eslint-config/src/configs/sort.ts — verify YAML sorting order and that no duplicate handling remains.
    • pnpm-workspace.yaml — confirm version pins and reintroduced onlyBuiltDependencies are intentional and consistent.
    • packages/prettier-config/src/index.ts — ensure plugin import resolves in build/test environments.

Possibly related PRs

Suggested labels

Configuration changes

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: updating dependencies and configurations for eslint and prettier packages, which is reflected across multiple file changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch update-deps

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between efd00c7 and c841591.

📒 Files selected for processing (2)
  • .claude/commands/create-pr.md (1 hunks)
  • packages/prettier-config/src/index.ts (3 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • packages/prettier-config/src/index.ts
  • .claude/commands/create-pr.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@claude
Copy link

claude bot commented Dec 6, 2025

Pull Request Review

I've reviewed PR #334 and overall this is a well-structured update that improves configuration quality and keeps dependencies current. Here's my detailed feedback:

✅ Strengths

  1. Good Changesets: The changesets are well-documented with clear descriptions of what changed and why
  2. Logical Improvements: The configuration changes improve type safety and correctness
  3. Appropriate Versioning: Correct use of minor/patch versions according to semver
  4. Typo Fixes: Good catch on fixing typos in CHANGELOG files ("deoendencies" → "dependencies", "espacially" → "especially")

🔍 Code Quality Review

Prettier Configuration (packages/prettier-config/src/index.ts:3,6)

Good:

  • Importing prettier-plugin-toml directly provides better type safety
  • This is a clear improvement over string references

Potential Issue:

  • The markdown glob pattern change from **/*.md to *.md significantly narrows the scope
  • *.md only matches markdown files in the root directory
  • **/*.md matches markdown files in all subdirectories (which is usually desired)

Question: Is this intentional? Most projects have markdown files in subdirectories (e.g., docs/*.md, packages/*/README.md). If this is intentional for this monorepo structure, consider documenting why in a comment.

ESLint Sort Configuration (packages/eslint-config/src/configs/sort.ts:160-162)

Good:

  • Moving catalog-related fields together makes logical sense
  • The new ordering groups dependency catalog configuration with other dependency management fields

Minor: The ordering looks reasonable, though catalogMode might make more sense after catalog and catalogs rather than before (since mode typically configures behavior of a feature). But this is subjective.

Astro Configuration (packages/eslint-config/src/configs/astro.ts:1)

Good:

  • Adding cspell ignore comment for legitimate Astro-specific terms
  • Keeps the codebase clean from false-positive spell check warnings

🔒 Security Considerations

No security concerns identified:

  • Dependency updates appear routine
  • No changes to authentication, authorization, or data handling
  • Configuration changes don't introduce vulnerabilities

⚡ Performance Considerations

No performance concerns:

  • Dependency updates include bug fixes and likely performance improvements
  • Configuration changes are build-time only
  • No runtime performance impact

🐛 Potential Issues

  1. Critical: Markdown glob pattern (packages/prettier-config/src/index.ts:25)

    • Changing from **/*.md to *.md will stop formatting markdown files in subdirectories
    • This could be breaking for consumers of this package
    • Recommend testing this change or reverting to **/*.md
  2. Minor: pnpm version alignment

    • CLAUDE.md updated to 10.24.0 ✓
    • package.json updated to 10.24.0 ✓
    • Both files are in sync, good!
  3. Documentation: .claude/commands/create-pr.md

    • The change from eslint to eslint :rotating_light: adds emojis
    • Ensure GitHub labels actually use these emoji names or this won't work as expected

📝 Suggestions

  1. Test the markdown glob pattern change - Run prettier on the codebase to verify it still formats all intended markdown files
  2. Consider documenting the markdown pattern reasoning - If *.md is intentional, add a comment explaining why
  3. Verify GitHub label names - Check that labels include emoji syntax as written in the create-pr command

📊 Stats

  • Files changed: 17
  • Dependencies updated: ~20+
  • Changesets created: 3 (appropriate for the changes)
  • Breaking changes: Potentially 1 (markdown glob pattern if unintentional)

🎯 Recommendation

Conditional Approval - This is good work, but please verify/address the markdown glob pattern change before merging. If that change is intentional and tested, this is ready to merge.

Copy link

@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: 2

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a8eba33 and efd00c7.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (16)
  • .changeset/bright-trees-flow.md (1 hunks)
  • .changeset/short-spoons-notice.md (1 hunks)
  • .changeset/warm-clouds-dance.md (1 hunks)
  • .claude/commands/create-pr.md (1 hunks)
  • .cspell.json (4 hunks)
  • CLAUDE.md (1 hunks)
  • package.json (1 hunks)
  • packages/commitlint-config/CHANGELOG.md (1 hunks)
  • packages/eslint-config/CHANGELOG.md (5 hunks)
  • packages/eslint-config/src/cli/versions-map.generated.ts (1 hunks)
  • packages/eslint-config/src/configs/astro.ts (1 hunks)
  • packages/eslint-config/src/configs/sort.ts (1 hunks)
  • packages/eslint-config/src/typegen.d.ts (10 hunks)
  • packages/prettier-config/CHANGELOG.md (1 hunks)
  • packages/prettier-config/src/index.ts (2 hunks)
  • pnpm-workspace.yaml (3 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
package.json

📄 CodeRabbit inference engine (CLAUDE.md)

Ensure Node version compatibility with ^22.12.0 || ^24.0.0 in package.json

Files:

  • package.json
**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/any-inside-generic-functions.mdc)

Using any is acceptable inside generic function bodies when TypeScript cannot match runtime logic to type logic, but should be used sparingly outside of generic functions

Do not use default exports unless explicitly required by the framework. Use named exports instead for TypeScript and TSX files.

**/*.{ts,tsx}: Use TypeScript for all code. Prefer interface over type for object shapes.
Follow the ESLint rules.
Use 'function' keyword for pure functions.
Follow file structure: Exported component, subcomponents, helpers, static content, types.
Avoid unnecessary curly braces in conditional statements.
For single-line statements in conditionals, omit curly braces.
Use concise, one-line syntax for simple conditional statements (e.g., if (condition) doSomething()).
Handle errors and edge cases at the beginning of functions.
Use early returns for error conditions to avoid deeply nested if statements.
Place the happy path last in the function for improved readability.
Avoid unnecessary else statements; use if-return pattern instead.
Use guard clauses to handle preconditions and invalid states early.
Implement proper error logging and user-friendly error messages.
Consider using custom error types or error factories for consistent error handling.
Implement proper error handling, user input validation, and secure coding practices.
Provide clear and concise comments for complex logic.
Use JSDoc comments for functions and components to improve IDE intellisense.

**/*.{ts,tsx}: Proactively use discriminated unions to model data that can be in one of a few different shapes, such as when sending events between environments
Use switch statements to handle the results of discriminated unions by switching on the discriminator property
Use discriminated unions to prevent the 'bag of optionals' problem by modeling states as distinct union types rather than interfaces with optional fields

**/*.{ts,tsx}: Do not introduce new enums into the codebase. Retain existing enums.
I...

Files:

  • packages/eslint-config/src/configs/astro.ts
  • packages/eslint-config/src/configs/sort.ts
  • packages/eslint-config/src/cli/versions-map.generated.ts
  • packages/prettier-config/src/index.ts
  • packages/eslint-config/src/typegen.d.ts
pnpm-workspace.yaml

📄 CodeRabbit inference engine (CLAUDE.md)

Configure pnpm workspaces in pnpm-workspace.yaml

Files:

  • pnpm-workspace.yaml
🧠 Learnings (38)
📓 Common learnings
Learnt from: mheob
Repo: mheob/config PR: 270
File: packages/eslint-config/package.json:39-78
Timestamp: 2025-05-28T11:00:09.943Z
Learning: The maintainer mheob is confident in managing non-major dependency updates for mheob/eslint-config and assesses compatibility before merging. They don't need detailed warnings about potential breaking changes in patch/minor version updates.
Learnt from: mheob
Repo: mheob/config PR: 226
File: packages/eslint-config/package.json:19-19
Timestamp: 2025-01-25T11:21:36.981Z
Learning: In the `mheob/config` repository, version bumps are handled through a separate workflow task, not directly in the PRs.
Learnt from: CR
Repo: mheob/config PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:45:01.047Z
Learning: Use pnpm10.22.0 as the package manager for the monorepo
Learnt from: mheob
Repo: mheob/config PR: 270
File: package.json:39-39
Timestamp: 2025-05-28T10:57:56.336Z
Learning: The upgrade of `cspell` from version `8.x` to `9.x` in the mheob/config repository is acceptable and doesn't introduce breaking changes for their specific usage, even though it's a major version bump.
📚 Learning: 2025-11-26T17:45:01.047Z
Learnt from: CR
Repo: mheob/config PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:45:01.047Z
Learning: Create changesets for user-facing changes in packages

Applied to files:

  • packages/commitlint-config/CHANGELOG.md
  • .changeset/short-spoons-notice.md
  • .changeset/warm-clouds-dance.md
  • pnpm-workspace.yaml
  • .changeset/bright-trees-flow.md
  • packages/prettier-config/CHANGELOG.md
📚 Learning: 2025-05-28T11:00:09.943Z
Learnt from: mheob
Repo: mheob/config PR: 270
File: packages/eslint-config/package.json:39-78
Timestamp: 2025-05-28T11:00:09.943Z
Learning: The maintainer mheob is confident in managing non-major dependency updates for mheob/eslint-config and assesses compatibility before merging. They don't need detailed warnings about potential breaking changes in patch/minor version updates.

Applied to files:

  • packages/commitlint-config/CHANGELOG.md
  • packages/eslint-config/CHANGELOG.md
  • .changeset/warm-clouds-dance.md
  • packages/eslint-config/src/cli/versions-map.generated.ts
  • .changeset/bright-trees-flow.md
  • packages/prettier-config/CHANGELOG.md
📚 Learning: 2025-05-28T10:57:56.336Z
Learnt from: mheob
Repo: mheob/config PR: 270
File: package.json:39-39
Timestamp: 2025-05-28T10:57:56.336Z
Learning: The upgrade of `cspell` from version `8.x` to `9.x` in the mheob/config repository is acceptable and doesn't introduce breaking changes for their specific usage, even though it's a major version bump.

Applied to files:

  • .changeset/short-spoons-notice.md
  • .cspell.json
  • packages/eslint-config/CHANGELOG.md
  • .changeset/warm-clouds-dance.md
  • .changeset/bright-trees-flow.md
📚 Learning: 2025-10-21T05:24:57.572Z
Learnt from: mheob
Repo: mheob/config PR: 313
File: .changeset/funny-sloths-live.md:1-2
Timestamp: 2025-10-21T05:24:57.572Z
Learning: In the mheob/config repository, empty changeset files (containing only `---\n---`) are acceptable and used intentionally for documentation-only changes that don't require version bumps.

Applied to files:

  • .changeset/short-spoons-notice.md
  • packages/eslint-config/CHANGELOG.md
  • .changeset/warm-clouds-dance.md
  • .changeset/bright-trees-flow.md
📚 Learning: 2025-11-26T17:45:01.047Z
Learnt from: CR
Repo: mheob/config PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:45:01.047Z
Learning: Applies to prettier.config.mjs : Configure root Prettier configuration in prettier.config.mjs

Applied to files:

  • .changeset/short-spoons-notice.md
  • packages/prettier-config/src/index.ts
📚 Learning: 2025-11-26T17:46:01.626Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/naming-conventions.mdc:0-0
Timestamp: 2025-11-26T17:46:01.626Z
Learning: Applies to **/*.{ts,tsx} : Use file extensions: `.config.ts`, `.test.ts`, `.context.tsx`, `.type.ts`, `.hook.ts` as appropriate

Applied to files:

  • .changeset/short-spoons-notice.md
  • .cspell.json
  • packages/prettier-config/src/index.ts
  • packages/eslint-config/src/typegen.d.ts
📚 Learning: 2025-11-26T17:45:01.047Z
Learnt from: CR
Repo: mheob/config PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:45:01.047Z
Learning: Use pnpm10.22.0 as the package manager for the monorepo

Applied to files:

  • package.json
  • CLAUDE.md
  • pnpm-workspace.yaml
📚 Learning: 2025-11-26T17:45:01.047Z
Learnt from: CR
Repo: mheob/config PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:45:01.047Z
Learning: Applies to package.json : Ensure Node version compatibility with ^22.12.0 || ^24.0.0 in package.json

Applied to files:

  • package.json
  • CLAUDE.md
  • .changeset/warm-clouds-dance.md
  • packages/eslint-config/src/cli/versions-map.generated.ts
  • pnpm-workspace.yaml
📚 Learning: 2025-11-26T17:45:41.858Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/installing-libraries.mdc:0-0
Timestamp: 2025-11-26T17:45:41.858Z
Learning: When installing libraries, use package manager commands (pnpm add, yarn add, npm install) rather than manually editing package.json to ensure you get the latest versions, accounting for the knowledge cutoff of training data

Applied to files:

  • package.json
📚 Learning: 2025-06-12T17:41:36.115Z
Learnt from: mheob
Repo: mheob/config PR: 276
File: packages/eslint-config/src/typegen.d.ts:2217-2223
Timestamp: 2025-06-12T17:41:36.115Z
Learning: The file `packages/eslint-config/src/typegen.d.ts` should be ignored in code reviews and related automated checks.

Applied to files:

  • packages/eslint-config/src/configs/astro.ts
  • .cspell.json
  • packages/prettier-config/src/index.ts
  • packages/eslint-config/src/typegen.d.ts
📚 Learning: 2025-11-26T17:45:01.047Z
Learnt from: CR
Repo: mheob/config PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:45:01.047Z
Learning: Applies to eslint.config.ts : Configure root ESLint configuration in eslint.config.ts

Applied to files:

  • packages/eslint-config/src/configs/astro.ts
  • .cspell.json
  • packages/prettier-config/src/index.ts
  • packages/eslint-config/src/typegen.d.ts
📚 Learning: 2025-11-26T17:45:20.305Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/default-typescript.mdc:0-0
Timestamp: 2025-11-26T17:45:20.305Z
Learning: Applies to **/*.{ts,tsx} : Use JSDoc comments for functions and components to improve IDE intellisense.

Applied to files:

  • packages/eslint-config/src/configs/astro.ts
  • packages/prettier-config/src/index.ts
  • packages/eslint-config/src/typegen.d.ts
📚 Learning: 2025-11-26T17:45:20.305Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/default-typescript.mdc:0-0
Timestamp: 2025-11-26T17:45:20.305Z
Learning: Applies to **/*.{ts,tsx} : Follow the ESLint rules.

Applied to files:

  • packages/eslint-config/src/configs/astro.ts
  • .cspell.json
  • packages/prettier-config/src/index.ts
  • packages/eslint-config/src/typegen.d.ts
📚 Learning: 2025-11-26T17:45:50.911Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/jsdoc-comments.mdc:0-0
Timestamp: 2025-11-26T17:45:50.911Z
Learning: Applies to **/*.{ts,tsx} : Use JSDoc comments to annotate functions and types in TypeScript files

Applied to files:

  • packages/eslint-config/src/configs/astro.ts
  • packages/eslint-config/src/typegen.d.ts
📚 Learning: 2025-06-24T23:14:47.194Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/default-typescript.mdc:0-0
Timestamp: 2025-06-24T23:14:47.194Z
Learning: In TypeScript codebases (files matching **/*.{ts,tsx}), provide clear and concise comments for complex logic, and use JSDoc comments for functions and components to improve IDE intellisense.

Applied to files:

  • packages/eslint-config/src/configs/astro.ts
  • packages/eslint-config/src/typegen.d.ts
📚 Learning: 2025-11-26T17:46:01.626Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/naming-conventions.mdc:0-0
Timestamp: 2025-11-26T17:46:01.626Z
Learning: Applies to **/*.{ts,tsx} : Avoid magic numbers and define constants

Applied to files:

  • packages/eslint-config/src/configs/astro.ts
📚 Learning: 2025-11-26T17:46:01.626Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/naming-conventions.mdc:0-0
Timestamp: 2025-11-26T17:46:01.626Z
Learning: Applies to **/*.{ts,tsx} : Use complete words instead of abbreviations and correct spelling, except for standard abbreviations (API, URL, etc.) and well-known abbreviations: `i`, `j` for loops; `idx` for index; `err` for errors; `ctx` for contexts; `req`, `res`, `next` for middleware parameters; `props` for properties; `utils` for utilities

Applied to files:

  • packages/eslint-config/src/configs/astro.ts
  • .cspell.json
📚 Learning: 2025-11-26T17:46:19.946Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/return-types.mdc:0-0
Timestamp: 2025-11-26T17:46:19.946Z
Learning: Applies to **/*.{ts,tsx} : Declare return types for top-level module functions in TypeScript to help future AI assistants understand the function's purpose

Applied to files:

  • packages/eslint-config/src/configs/astro.ts
📚 Learning: 2025-11-26T17:45:20.305Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/default-typescript.mdc:0-0
Timestamp: 2025-11-26T17:45:20.305Z
Learning: Applies to **/*.{ts,tsx} : Follow file structure: Exported component, subcomponents, helpers, static content, types.

Applied to files:

  • .cspell.json
  • packages/prettier-config/src/index.ts
📚 Learning: 2025-11-26T17:45:01.047Z
Learnt from: CR
Repo: mheob/config PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:45:01.047Z
Learning: Applies to commitlint.config.js : Configure commitlint rules in commitlint.config.js

Applied to files:

  • packages/eslint-config/CHANGELOG.md
  • packages/prettier-config/src/index.ts
  • packages/eslint-config/src/typegen.d.ts
📚 Learning: 2025-01-25T11:21:36.981Z
Learnt from: mheob
Repo: mheob/config PR: 226
File: packages/eslint-config/package.json:19-19
Timestamp: 2025-01-25T11:21:36.981Z
Learning: In the `mheob/config` repository, version bumps are handled through a separate workflow task, not directly in the PRs.

Applied to files:

  • packages/eslint-config/CHANGELOG.md
  • .changeset/warm-clouds-dance.md
  • .changeset/bright-trees-flow.md
📚 Learning: 2025-11-26T17:45:01.047Z
Learnt from: CR
Repo: mheob/config PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:45:01.047Z
Learning: Maintain backward compatibility in configuration package changes where possible

Applied to files:

  • packages/eslint-config/CHANGELOG.md
📚 Learning: 2025-11-26T17:45:01.047Z
Learnt from: CR
Repo: mheob/config PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:45:01.047Z
Learning: Applies to pnpm-workspace.yaml : Configure pnpm workspaces in pnpm-workspace.yaml

Applied to files:

  • CLAUDE.md
  • packages/eslint-config/src/configs/sort.ts
  • pnpm-workspace.yaml
  • .changeset/bright-trees-flow.md
📚 Learning: 2025-11-26T17:45:01.047Z
Learnt from: CR
Repo: mheob/config PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:45:01.047Z
Learning: Applies to turbo.json : Configure Turborepo pipeline in turbo.json

Applied to files:

  • CLAUDE.md
📚 Learning: 2025-06-24T23:15:00.345Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/installing-libraries.mdc:0-0
Timestamp: 2025-06-24T23:15:00.345Z
Learning: When installing libraries in JavaScript or TypeScript projects (such as those containing .ts or .tsx files), do not manually select package versions based on your own knowledge or training data, as it may be outdated. Instead, use a package manager command (such as 'pnpm add', 'yarn add', or 'npm install') to fetch and install the latest version of the library, ensuring up-to-date dependencies.

Applied to files:

  • CLAUDE.md
📚 Learning: 2024-12-11T10:36:23.225Z
Learnt from: mheob
Repo: mheob/config PR: 217
File: packages/eslint-config/package.json:69-70
Timestamp: 2024-12-11T10:36:23.225Z
Learning: In the `packages/eslint-config/package.json`, the project uses `svelte@^5.x.x (beta)`, and the user is comfortable using Svelte v5 (beta). Do not flag the usage of Svelte v5 (beta) as a potential issue in future code reviews for this project.

Applied to files:

  • packages/eslint-config/src/cli/versions-map.generated.ts
  • pnpm-workspace.yaml
📚 Learning: 2025-11-26T17:45:01.047Z
Learnt from: CR
Repo: mheob/config PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-11-26T17:45:01.047Z
Learning: Automatically lint all files with ESLint on commit using lint-staged

Applied to files:

  • pnpm-workspace.yaml
📚 Learning: 2025-06-24T23:14:59.895Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/import-type.mdc:0-0
Timestamp: 2025-06-24T23:14:59.895Z
Learning: In TypeScript files (*.ts, *.tsx), prefer using top-level 'import type' statements rather than inline 'import { type ... }' to avoid issues where type imports are not properly erased in certain environments.

Applied to files:

  • packages/prettier-config/src/index.ts
📚 Learning: 2025-06-24T23:14:47.194Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/default-typescript.mdc:0-0
Timestamp: 2025-06-24T23:14:47.194Z
Learning: In TypeScript codebases (files matching **/*.{ts,tsx}), optimize performance by reducing load times and improving rendering efficiency.

Applied to files:

  • packages/prettier-config/src/index.ts
📚 Learning: 2025-11-26T17:45:36.509Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/import-type.mdc:0-0
Timestamp: 2025-11-26T17:45:36.509Z
Learning: Applies to **/*.{ts,tsx} : Use top-level `import type` syntax when importing TypeScript types (e.g., `import type { User } from './user'`). Avoid inline `import { type ... }` syntax to ensure type imports are properly erased during transpilation in all environments.

Applied to files:

  • packages/prettier-config/src/index.ts
📚 Learning: 2025-11-26T17:45:10.940Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/default-exports.mdc:0-0
Timestamp: 2025-11-26T17:45:10.940Z
Learning: Applies to **/*.{ts,tsx} : Do not use default exports unless explicitly required by the framework. Use named exports instead for TypeScript and TSX files.

Applied to files:

  • packages/prettier-config/src/index.ts
📚 Learning: 2025-01-21T15:28:22.683Z
Learnt from: mheob
Repo: mheob/config PR: 223
File: packages/eslint-config/src/typegen.d.ts:680-682
Timestamp: 2025-01-21T15:28:22.683Z
Learning: For generated source files (like typegen.d.ts), it's acceptable to keep deprecated rules/content since modifications should be made to the generation source rather than the generated files directly.

Applied to files:

  • packages/eslint-config/src/typegen.d.ts
📚 Learning: 2025-01-21T15:28:16.959Z
Learnt from: mheob
Repo: mheob/config PR: 223
File: packages/eslint-config/src/typegen.d.ts:2973-2977
Timestamp: 2025-01-21T15:28:16.959Z
Learning: Auto-generated files like typegen.d.ts may contain seemingly duplicate or overlapping rules/definitions which should not be flagged as issues since they are machine-generated and not meant to be manually modified.

Applied to files:

  • packages/eslint-config/src/typegen.d.ts
📚 Learning: 2025-11-26T17:45:32.304Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/enums.mdc:0-0
Timestamp: 2025-11-26T17:45:32.304Z
Learning: Applies to **/*.{ts,tsx} : Do not introduce new enums into the codebase. Retain existing enums.

Applied to files:

  • packages/eslint-config/src/typegen.d.ts
📚 Learning: 2025-06-24T23:15:06.053Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/jsdoc-comments.mdc:0-0
Timestamp: 2025-06-24T23:15:06.053Z
Learning: In TypeScript files (*.ts, *.tsx), JSDoc comments should be used to annotate functions and types, but only when the function's behavior is not self-evident. Comments should be concise and leverage the JSDoc inline link tag to reference other functions and types within the same file.

Applied to files:

  • packages/eslint-config/src/typegen.d.ts
📚 Learning: 2025-06-24T23:15:07.222Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/jsdoc-comments.mdc:0-0
Timestamp: 2025-06-24T23:15:07.222Z
Learning: In TypeScript files (*.ts, *.tsx), JSDoc comments should be used to annotate functions and types, but only when the function's behavior is not self-evident. Comments should be concise, and the JSDoc inline link tag can be used to reference other functions and types within the same file.

Applied to files:

  • packages/eslint-config/src/typegen.d.ts
📚 Learning: 2025-11-26T17:45:50.911Z
Learnt from: CR
Repo: mheob/config PR: 0
File: .cursor/rules/jsdoc-comments.mdc:0-0
Timestamp: 2025-11-26T17:45:50.911Z
Learning: Applies to **/*.{ts,tsx} : Be concise in JSDoc comments and only provide JSDoc comments if the function's behaviour is not self-evident

Applied to files:

  • packages/eslint-config/src/typegen.d.ts
🧬 Code graph analysis (3)
.changeset/short-spoons-notice.md (2)
packages/eslint-config/src/configs/prettier.ts (1)
  • prettier (15-37)
packages/eslint-config/src/configs/toml.ts (1)
  • toml (15-54)
.changeset/warm-clouds-dance.md (2)
packages/eslint-config/src/cli/stages/update-eslint-files.ts (1)
  • updateEslintFiles (24-69)
packages/eslint-config/src/cli/stages/update-package-json.ts (1)
  • updatePackageJson (22-54)
packages/eslint-config/src/cli/versions-map.generated.ts (4)
packages/eslint-config/src/cli/stages/update-package-json.ts (1)
  • updatePackageJson (22-54)
packages/eslint-config/src/configs/nextjs.ts (2)
  • nextjs (22-63)
  • normalizeRules (6-10)
packages/eslint-config/src/utils/linting.ts (4)
  • i (64-84)
  • key (73-79)
  • renameRules (26-41)
  • renamePluginInConfigs (60-85)
packages/eslint-config/src/configs/react.ts (1)
  • react (35-217)
🪛 Biome (2.1.2)
.cspell.json

[error] 16-16: Expected an array, an object, or a literal but instead found ']'.

Expected an array, an object, or a literal here.

(parse)


[error] 57-57: Expected an array, an object, or a literal but instead found ']'.

Expected an array, an object, or a literal here.

(parse)

🪛 LanguageTool
.claude/commands/create-pr.md

[uncategorized] ~10-~10: The official name of this software platform is spelled with a capital “H”.
Context: ... - collect the available list from the github repository - multiple label are possi...

(GITHUB)

packages/eslint-config/CHANGELOG.md

[style] ~227-~227: Consider using a different verb for a more formal wording.
Context: ...pendencies, especially typescript and fix new issues ## 8.3.0 ### Minor Changes...

(FIX_RESOLVE)

🔇 Additional comments (18)
packages/prettier-config/CHANGELOG.md (1)

19-19: LGTM - Typo fix in changelog.

The correction from "deoendencies" to "dependencies" improves documentation accuracy.

CLAUDE.md (1)

8-8: LGTM - Package manager version documentation update.

The update to pnpm@10.24.0 correctly reflects the package manager version bump in package.json.

packages/eslint-config/src/configs/astro.ts (1)

1-2: LGTM - Appropriate spell-checker directive.

The cspell directive correctly excludes Astro-specific API names that are referenced in the rule configuration below.

packages/commitlint-config/CHANGELOG.md (1)

13-13: LGTM - Typo fix in changelog.

The correction from "deoendencies" to "dependencies" improves documentation accuracy.

package.json (1)

50-50: LGTM - Package manager version update.

The bump to pnpm@10.24.0 is a routine patch update consistent with the PR objectives.

.changeset/warm-clouds-dance.md (1)

1-6: LGTM - Changeset for dependency updates.

The changeset correctly declares patch updates for both packages with an appropriate description of the dependency maintenance work.

packages/eslint-config/src/cli/versions-map.generated.ts (1)

1-12: LGTM - Dependency version updates in generated file.

The version updates for ESLint plugins are all patch/minor bumps, which aligns with the PR's dependency update objectives. The changes maintain compatibility while incorporating bug fixes and improvements.

packages/eslint-config/src/configs/sort.ts (1)

160-162: LGTM! Logical grouping of catalog-related fields.

The relocation of catalogMode, catalog, and catalogs alongside other dependency-management fields (overrides, patchedDependencies, hoistPattern) improves the logical organization of the sorting configuration.

packages/prettier-config/src/index.ts (2)

3-6: LGTM! Improved type safety with direct plugin import.

Importing prettier-plugin-toml directly and using the imported symbol instead of a string literal provides better type safety and makes the dependency explicit.


25-25: Confirm this is intentional scoping for the shareable config package.

The glob pattern change from **/*.md to *.md appears to be intentional. This is a shareable prettier config package that uses conservative, top-level patterns. The root project's prettier.config.mjs explicitly overrides this with its own **/*.md pattern to recursively format all Markdown files in the repository. This design allows consumers of @mheob/prettier-config to apply their own scoping rules. No action needed.

.cspell.json (3)

12-15: LGTM! Appropriate additions to ignore paths.

Adding pnpm-lock.yaml and pnpm-workspace.yaml to the ignore paths is appropriate since these are auto-generated files that don't need spell-checking.


17-19: LGTM! Valid configuration additions.

The German dictionary import and language settings are properly configured for multi-language spell-checking support.


28-56: LGTM! Valid technical terms added to dictionary.

The new words (ecma, NVIM, turborepo, yoda) are all legitimate technical terms used in the codebase.

pnpm-workspace.yaml (2)

77-79: LGTM! Reinstated build dependencies configuration.

The onlyBuiltDependencies block has been properly reinstated with esbuild and unrs-resolver, which ensures these packages are built when needed.


8-75: LGTM! Dependency catalog updates aligned with PR objectives.

The catalog version updates are non-major dependency updates that align with the PR's objective to keep dependencies current for security and compatibility.

Based on learnings, the maintainer is confident in managing non-major dependency updates.

.changeset/bright-trees-flow.md (1)

1-7: LGTM! Changeset properly documents the sorting improvement.

The changeset accurately describes the reordering of catalog-related fields in the pnpm-workspace.yaml sorting configuration and correctly categorizes this as a minor change.

Based on learnings, changesets are created for user-facing changes in packages.

packages/eslint-config/CHANGELOG.md (1)

93-287: LGTM! Minor changelog text corrections.

The changelog corrections improve documentation accuracy and readability. These are appropriate maintenance updates to historical changelog entries.

packages/eslint-config/src/typegen.d.ts (1)

1397-1401: Skipping review of auto-generated file.

This file is auto-generated and should not be manually modified. Any changes should be made to the generation source instead. Based on learnings from previous reviews, this file is excluded from code review checks.

Also applies to: 4862-4866, 5088-5089, 5208-5212, 5812-5816, 7244-7248, 10020-10024, 10529-10538, 15524-15528, 15954-15960

@sonarqubecloud
Copy link

sonarqubecloud bot commented Dec 6, 2025

@claude
Copy link

claude bot commented Dec 6, 2025

Pull Request Review

Summary

This PR updates dependencies and improves ESLint/Prettier configurations. Overall, the changes look good with some minor concerns about the glob pattern change.

Code Quality ✅

Strengths:

  • Proper use of changesets for version management
  • Well-documented changes in changeset files
  • Consistent code style maintained throughout
  • Type safety improvements (direct import of prettier-plugin-toml)

Areas of Concern:

  1. Glob Pattern Change in Prettier Config ⚠️

    In packages/prettier-config/src/index.ts:

    • Changed from *.md to **/*.md (line 25)
    • Changed from *.{yaml,yml} to **/*.{yaml,yml} (line 32)

    Issue: The changeset description says the opposite - it claims the pattern was changed FROM **/*.md TO *.md. However, the diff shows the change went FROM *.md TO **/*.md.

    Question: Which direction is correct? The **/* pattern will match files in all subdirectories, while * only matches files in the root. For a shared config package, **/* is typically the correct choice to format markdown/yaml files in all subdirectories.

    Recommendation: Either fix the changeset description or revert the glob patterns depending on the intended behavior.

  2. Dependency Updates

    All dependency updates appear reasonable:

    • pnpm: 10.23.0 → 10.24.0
    • ESLint plugins updated to latest stable versions
    • No major version bumps that could cause breaking changes

    The lockfile changes are extensive but expected for dependency updates.

Potential Bugs 🔍

  1. Glob Pattern Mismatch (see above) - This could cause unexpected behavior where markdown/yaml files aren't formatted as expected.

  2. Plugin Import Change

    The change from string reference to direct import in prettier config is good:

    - plugins: ['prettier-plugin-toml'],
    + plugins: [pluginToml],

    This provides better type safety and will fail at build time if the plugin is missing, rather than at runtime.

Performance Considerations ✅

No performance concerns identified:

  • Dependency updates include bug fixes and optimizations
  • No algorithmic changes that would impact performance
  • Configuration changes are compile-time only

Security Concerns ✅

No security issues identified:

  • Dependencies updated to latest versions (good for security patches)
  • No new dependencies with unknown provenance
  • No changes to code execution or data handling

Best Practices ✅

The PR follows project conventions well:

  • Uses changesets for version management (per CLAUDE.md)
  • Maintains backward compatibility (patch/minor bumps only)
  • Fixes typos in changelogs (deoendenciesdependencies)
  • Improves cspell configuration

Additional Notes

  1. pnpm-workspace.yaml sorting - The reordering of catalog fields is logical and improves readability by grouping related configuration together.

  2. ESLint type definitions - The typegen.d.ts updates add support for new rules from updated plugins, which is expected and correct.

  3. cspell improvements - Added new words and improved ignore patterns. Consider if pnpm-lock.yaml should really be ignored from spell checking as it's auto-generated.

Recommendation

Request Changes for the glob pattern discrepancy. Once clarified:

  • ✅ If **/* is correct: Update the changeset description
  • ✅ If * is correct: Revert the glob pattern changes in the code

All other changes look good and ready to merge once this is resolved.

@kodiakhq kodiakhq bot merged commit 6921a36 into main Dec 6, 2025
10 checks passed
@kodiakhq kodiakhq bot deleted the update-deps branch December 6, 2025 10:42
kodiakhq bot pushed a commit that referenced this pull request Dec 6, 2025
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.


# Releases
## @mheob/eslint-config@9.1.0

### Minor Changes

-   [#334](#334) ([@mheob](https://github.com/mheob)): Improve pnpm-workspace.yaml sorting

    Reorder `pnpm-workspace.yaml` sort keys to place catalog-related fields (`catalogMode`, `catalog`, `catalogs`) in a more logical position alongside other dependency management fields.

### Patch Changes

-   [#334](#334) ([@mheob](https://github.com/mheob)): Update all dependencies to their latest versions for improved compatibility and bug fixes.

## @mheob/prettier-config@3.5.0

### Minor Changes

-   [#332](#332) ([@mheob](https://github.com/mheob)): Improve Prettier configuration
    -   Import prettier-plugin-toml directly instead of using a string reference for better type safety and explicit dependency resolution
    -   Fix markdown files glob pattern from `**/*.md` to `*.md` to match files correctly

### Patch Changes

-   [#334](#334) ([@mheob](https://github.com/mheob)): Update all dependencies to their latest versions for improved compatibility and bug fixes.
mheob pushed a commit that referenced this pull request Dec 6, 2025
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

# Releases
## @mheob/eslint-config@9.1.0

### Minor Changes

-   [#334](#334) ([@mheob](https://github.com/mheob)): Improve pnpm-workspace.yaml sorting

    Reorder `pnpm-workspace.yaml` sort keys to place catalog-related fields (`catalogMode`, `catalog`, `catalogs`) in a more logical position alongside other dependency management fields.

### Patch Changes

-   [#334](#334) ([@mheob](https://github.com/mheob)): Update all dependencies to their latest versions for improved compatibility and bug fixes.

## @mheob/prettier-config@3.5.0

### Minor Changes

-   [#332](#332) ([@mheob](https://github.com/mheob)): Improve Prettier configuration
    -   Import prettier-plugin-toml directly instead of using a string reference for better type safety and explicit dependency resolution
    -   Fix markdown files glob pattern from `**/*.md` to `*.md` to match files correctly

### Patch Changes

-   [#334](#334) ([@mheob](https://github.com/mheob)): Update all dependencies to their latest versions for improved compatibility and bug fixes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

deps 📦 eslint 🚨 Belongs to ESLint config prettier 🎨 Belongs to prettier config

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants