eslint-config-agent 3.0.4 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/README.md +592 -26
  3. package/configs/base-plugins.js +32 -0
  4. package/configs/config-files.js +19 -3
  5. package/configs/examples.js +12 -1
  6. package/configs/javascript.js +12 -4
  7. package/configs/length-rule-scope.js +27 -0
  8. package/configs/overrides.js +3 -14
  9. package/configs/test-files.js +40 -1
  10. package/configs/tsx.js +10 -0
  11. package/configs/typescript.js +44 -2
  12. package/exports/ddd.d.ts +10 -0
  13. package/exports/ddd.js +1 -3
  14. package/exports/incremental.d.ts +11 -0
  15. package/exports/incremental.js +39 -0
  16. package/exports/recommended-incremental.d.ts +11 -0
  17. package/exports/recommended-incremental.js +46 -0
  18. package/exports/recommended.d.ts +14 -0
  19. package/exports/recommended.js +110 -0
  20. package/exports/to-warnings.d.ts +20 -0
  21. package/exports/to-warnings.js +41 -0
  22. package/index.d.ts +18 -0
  23. package/index.js +883 -7
  24. package/package.json +46 -17
  25. package/plugins/index.js +6 -0
  26. package/rules/index.js +20 -22
  27. package/rules/no-inline-union-types/index.js +8 -6
  28. package/rules/no-process-env-properties/index.js +4 -4
  29. package/rules/no-record-literal-types/index.js +3 -3
  30. package/rules/plugin/import/index.js +41 -0
  31. package/rules/plugin/index.js +0 -2
  32. package/rules/plugin/n/index.js +16 -2
  33. package/rules/plugin/n/no-process-env/index.js +4 -4
  34. package/rules/plugin/react/index.js +150 -2
  35. package/rules/plugin/typescript-eslint/index.js +406 -0
  36. package/rules/require-spec-file-tsx/README.md +57 -0
  37. package/rules/require-spec-file-tsx/helpers.js +93 -0
  38. package/rules/require-spec-file-tsx/index.js +109 -0
  39. package/rules/plugin/jsx-a11y/index.js +0 -3
package/CHANGELOG.md CHANGED
@@ -4,6 +4,164 @@ All notable changes to this project will be documented in this file. See [Conven
4
4
 
5
5
 
6
6
 
7
+ ## [3.1.0](https://github.com/tupe12334/eslint-config-agent/compare/v3.0.5...v3.1.0) (2026-07-02)
8
+
9
+ ### Features
10
+
11
+ * **config:** enable @typescript-eslint/explicit-function-return-type for .ts ([#257](https://github.com/tupe12334/eslint-config-agent/issues/257)) ([7469e06](https://github.com/tupe12334/eslint-config-agent/commit/7469e06503157f838071cbdaa8216065ccce9975)), closes [#255](https://github.com/tupe12334/eslint-config-agent/issues/255)
12
+ * **config:** enable @typescript-eslint/method-signature-style in the shared rule set ([#313](https://github.com/tupe12334/eslint-config-agent/issues/313)) ([e261d06](https://github.com/tupe12334/eslint-config-agent/commit/e261d06e8724702fb763a11e24f922d51156a66c))
13
+ * **config:** enable @typescript-eslint/no-misused-promises in the shared rule set ([#285](https://github.com/tupe12334/eslint-config-agent/issues/285)) ([0fba9f0](https://github.com/tupe12334/eslint-config-agent/commit/0fba9f0ecabe89368cb1ffa6dcd2c6e983815472))
14
+ * **config:** enable @typescript-eslint/no-mixed-enums in the shared rule set ([#317](https://github.com/tupe12334/eslint-config-agent/issues/317)) ([51ee52b](https://github.com/tupe12334/eslint-config-agent/commit/51ee52b991516730db6bb3a9c5014a3a780af911))
15
+ * **config:** enable @typescript-eslint/no-unnecessary-condition in the shared rule set ([#352](https://github.com/tupe12334/eslint-config-agent/issues/352)) ([d8449f5](https://github.com/tupe12334/eslint-config-agent/commit/d8449f57600a60afd37e35a171e772371583219b)), closes [#351](https://github.com/tupe12334/eslint-config-agent/issues/351)
16
+ * **config:** enable @typescript-eslint/no-use-before-define in the shared rule set ([#338](https://github.com/tupe12334/eslint-config-agent/issues/338)) ([4079061](https://github.com/tupe12334/eslint-config-agent/commit/407906131981054bddb05fbfc531bf54839484e9)), closes [#337](https://github.com/tupe12334/eslint-config-agent/issues/337)
17
+ * **config:** enable @typescript-eslint/prefer-enum-initializers ([#289](https://github.com/tupe12334/eslint-config-agent/issues/289)) ([630f36f](https://github.com/tupe12334/eslint-config-agent/commit/630f36fa6c79b8cbfed1187cb4192b7118b786dd))
18
+ * **config:** enable @typescript-eslint/prefer-optional-chain for .ts/.tsx files ([#260](https://github.com/tupe12334/eslint-config-agent/issues/260)) ([45d6423](https://github.com/tupe12334/eslint-config-agent/commit/45d6423d18a4778aed6f5391c8fe12f02b1f31e2))
19
+ * **config:** enable consistent-return in the shared rule set ([#331](https://github.com/tupe12334/eslint-config-agent/issues/331)) ([4f7f522](https://github.com/tupe12334/eslint-config-agent/commit/4f7f5221e17b031efd2ca1a96202ca40de8ad88b))
20
+ * **config:** enable logical-assignment-operators in the shared rule set ([#295](https://github.com/tupe12334/eslint-config-agent/issues/295)) ([5cec4f8](https://github.com/tupe12334/eslint-config-agent/commit/5cec4f87a32817fa005488deb39fb773a09c4690))
21
+ * **config:** enable n/prefer-node-protocol in the shared rule set ([#291](https://github.com/tupe12334/eslint-config-agent/issues/291)) ([cc8c47a](https://github.com/tupe12334/eslint-config-agent/commit/cc8c47a621f5d71f5847d35d3ce69f4f9c043070))
22
+ * **config:** enable no-alert in the shared rule set ([#297](https://github.com/tupe12334/eslint-config-agent/issues/297)) ([f7cc412](https://github.com/tupe12334/eslint-config-agent/commit/f7cc4129f40e59669f284e0f683186992f4bb937))
23
+ * **config:** enable no-constant-binary-expression in the shared rule set ([#354](https://github.com/tupe12334/eslint-config-agent/issues/354)) ([310deb6](https://github.com/tupe12334/eslint-config-agent/commit/310deb6b0f08c0872b810a0c4c31020b34603352))
24
+ * **config:** enable no-constructor-return in the shared rule set ([#332](https://github.com/tupe12334/eslint-config-agent/issues/332)) ([79357a3](https://github.com/tupe12334/eslint-config-agent/commit/79357a3a699c6bd66287c2f8a02d66ee7bf93716))
25
+ * **config:** enable no-debugger in the shared rule set ([#254](https://github.com/tupe12334/eslint-config-agent/issues/254)) ([d941604](https://github.com/tupe12334/eslint-config-agent/commit/d941604ecb43ba02cd570af9d49f3f7861791f39))
26
+ * **config:** enable no-extend-native in the shared rule set ([#330](https://github.com/tupe12334/eslint-config-agent/issues/330)) ([138006b](https://github.com/tupe12334/eslint-config-agent/commit/138006b480e69752e16e2c80f34c675ab0b9c594))
27
+ * **config:** enable no-new-wrappers in the shared rule set ([#125](https://github.com/tupe12334/eslint-config-agent/issues/125)) ([2cdc1c2](https://github.com/tupe12334/eslint-config-agent/commit/2cdc1c2143b288c38e41cbad0c2267522b6d912d)), closes [#124](https://github.com/tupe12334/eslint-config-agent/issues/124)
28
+ * **config:** enable no-script-url in the shared rule set ([#251](https://github.com/tupe12334/eslint-config-agent/issues/251)) ([18147fc](https://github.com/tupe12334/eslint-config-agent/commit/18147fc5c5a6e37177f8c1c0599250a0b816c255)), closes [#250](https://github.com/tupe12334/eslint-config-agent/issues/250)
29
+ * **config:** enable no-sequences in the shared rule set ([#267](https://github.com/tupe12334/eslint-config-agent/issues/267)) ([6d45085](https://github.com/tupe12334/eslint-config-agent/commit/6d450854eac3cba29f6fb6715fd4477954c48666)), closes [#81](https://github.com/tupe12334/eslint-config-agent/issues/81)
30
+ * **config:** enable no-undef-init in the shared rule set ([#344](https://github.com/tupe12334/eslint-config-agent/issues/344)) ([8521b73](https://github.com/tupe12334/eslint-config-agent/commit/8521b73062acd82e608088dcb2541dde509fb5b0)), closes [#343](https://github.com/tupe12334/eslint-config-agent/issues/343)
31
+ * **config:** enable no-unmodified-loop-condition in the shared rule set ([#96](https://github.com/tupe12334/eslint-config-agent/issues/96)) ([acd21b7](https://github.com/tupe12334/eslint-config-agent/commit/acd21b7940ea8b675f207da464d198c631a9ddde)), closes [#95](https://github.com/tupe12334/eslint-config-agent/issues/95)
32
+ * **config:** enable no-unreachable-loop in the shared rule set ([#274](https://github.com/tupe12334/eslint-config-agent/issues/274)) ([a18fcf2](https://github.com/tupe12334/eslint-config-agent/commit/a18fcf271a05ec9aa3865b220feaf23b59257863)), closes [#87](https://github.com/tupe12334/eslint-config-agent/issues/87)
33
+ * **config:** enable no-useless-call in the shared rule set ([#301](https://github.com/tupe12334/eslint-config-agent/issues/301)) ([3edf7aa](https://github.com/tupe12334/eslint-config-agent/commit/3edf7aaf1e553342892ef42382bb8acc7e8ab37e))
34
+ * **config:** enable no-useless-constructor in the shared rule set ([#312](https://github.com/tupe12334/eslint-config-agent/issues/312)) ([76808e2](https://github.com/tupe12334/eslint-config-agent/commit/76808e2ee038d5ba6094b75e6bc0ecb456a279ae)), closes [#311](https://github.com/tupe12334/eslint-config-agent/issues/311)
35
+ * **config:** enable no-useless-rename in the shared rule set ([#336](https://github.com/tupe12334/eslint-config-agent/issues/336)) ([f1fa2e4](https://github.com/tupe12334/eslint-config-agent/commit/f1fa2e41a4fd467b601c194b3f860c4c50c3848e)), closes [#113](https://github.com/tupe12334/eslint-config-agent/issues/113)
36
+ * **config:** enable prefer-named-capture-group in the shared rule set ([#308](https://github.com/tupe12334/eslint-config-agent/issues/308)) ([75877f9](https://github.com/tupe12334/eslint-config-agent/commit/75877f9bde9614a3c311343f11a5b55fbf31cb28))
37
+ * **config:** enable react/jsx-no-useless-fragment in the shared rule set ([#272](https://github.com/tupe12334/eslint-config-agent/issues/272)) ([de076fc](https://github.com/tupe12334/eslint-config-agent/commit/de076fc52107878dca23cfa491ef19a48a99be6d)), closes [#271](https://github.com/tupe12334/eslint-config-agent/issues/271)
38
+ * **config:** enable react/self-closing-comp in the shared rule set ([#269](https://github.com/tupe12334/eslint-config-agent/issues/269)) ([20d15b6](https://github.com/tupe12334/eslint-config-agent/commit/20d15b6891ea88df2df2b31d75b0a70ce1b88587))
39
+ * **config:** enable yoda rule in the shared rule set ([#273](https://github.com/tupe12334/eslint-config-agent/issues/273)) ([b7ebd29](https://github.com/tupe12334/eslint-config-agent/commit/b7ebd29351475549581c72ec09f55dc968abcf54)), closes [#61](https://github.com/tupe12334/eslint-config-agent/issues/61)
40
+ * **react:** enable react/hook-use-state in the shared rule set ([#319](https://github.com/tupe12334/eslint-config-agent/issues/319)) ([bb23979](https://github.com/tupe12334/eslint-config-agent/commit/bb23979d479e0af64b4eba550b30a7c6aa2bf7bb))
41
+ * **react:** enable react/jsx-key in the shared rule set ([#342](https://github.com/tupe12334/eslint-config-agent/issues/342)) ([297c706](https://github.com/tupe12334/eslint-config-agent/commit/297c7067cdb1ed9db5a2065e53b60885420dbddb))
42
+ * **react:** enable react/no-object-type-as-default-prop in the shared rule set ([#323](https://github.com/tupe12334/eslint-config-agent/issues/323)) ([4d43920](https://github.com/tupe12334/eslint-config-agent/commit/4d439201b343cf9aebb3c702a2d99b74b723ab71))
43
+
44
+ ### Bug Fixes
45
+
46
+ * **ci:** publish directly from scheduled-release.yml ([#356](https://github.com/tupe12334/eslint-config-agent/issues/356)) ([ac2db7b](https://github.com/tupe12334/eslint-config-agent/commit/ac2db7b9e911d58fd422e0d5461a8f4b1ec0efea))
47
+ * **config:** disable prefer-nullish-coalescing to resolve ?? contradiction ([#321](https://github.com/tupe12334/eslint-config-agent/issues/321)) ([13a18d4](https://github.com/tupe12334/eslint-config-agent/commit/13a18d48068448289f36698a7e000f4252ef309a))
48
+ * publish rule helper modules, not just index.js ([#270](https://github.com/tupe12334/eslint-config-agent/issues/270)) ([4e81453](https://github.com/tupe12334/eslint-config-agent/commit/4e81453914fc4e1bd8ca048ba03054a272b168e3))
49
+ * **recommended:** downgrade max-lines rules from error to warn ([#335](https://github.com/tupe12334/eslint-config-agent/issues/335)) ([b69ccb3](https://github.com/tupe12334/eslint-config-agent/commit/b69ccb34ede4f7ede1a49d72b1e35ab52d2e9023)), closes [#85](https://github.com/tupe12334/eslint-config-agent/issues/85)
50
+ * **recommended:** keep process.env property guard in the relaxed preset ([#281](https://github.com/tupe12334/eslint-config-agent/issues/281)) ([a99f00c](https://github.com/tupe12334/eslint-config-agent/commit/a99f00c13639c191650c8c7f15df3e84bd969b46))
51
+ * **ts:** disable no-throw-literal for TS files; let only-throw-error handle it ([#299](https://github.com/tupe12334/eslint-config-agent/issues/299)) ([c0c9b28](https://github.com/tupe12334/eslint-config-agent/commit/c0c9b28afc2436573e90b87316415569f3e44ff7))
52
+
53
+ ## [3.0.5](https://github.com/tupe12334/eslint-config-agent/compare/v3.0.4...v3.0.5) (2026-06-24)
54
+
55
+ ### Features
56
+
57
+ * **config:** disallow chained assignment (no-multi-assign) ([#68](https://github.com/tupe12334/eslint-config-agent/issues/68)) ([aec7bc4](https://github.com/tupe12334/eslint-config-agent/commit/aec7bc49a9a6af530b8ae85b5d36561fbd80d843))
58
+ * **config:** disallow nested ternaries (no-nested-ternary) ([#19](https://github.com/tupe12334/eslint-config-agent/issues/19)) ([d6d2d1c](https://github.com/tupe12334/eslint-config-agent/commit/d6d2d1c774a448524676a4ec2a416517686804f2)), closes [#18](https://github.com/tupe12334/eslint-config-agent/issues/18)
59
+ * **config:** disallow unneeded ternaries (no-unneeded-ternary) ([#29](https://github.com/tupe12334/eslint-config-agent/issues/29)) ([98ccce0](https://github.com/tupe12334/eslint-config-agent/commit/98ccce00f1c5cae059142ad7bb254262f6f2ed7c)), closes [#28](https://github.com/tupe12334/eslint-config-agent/issues/28)
60
+ * **config:** disallow var declarations (no-var) ([#31](https://github.com/tupe12334/eslint-config-agent/issues/31)) ([35d1d87](https://github.com/tupe12334/eslint-config-agent/commit/35d1d87f9b948878c931d26d743d441fabd3d40d)), closes [#30](https://github.com/tupe12334/eslint-config-agent/issues/30)
61
+ * **config:** disallow var in shared rule set (no-var) ([#46](https://github.com/tupe12334/eslint-config-agent/issues/46)) ([c27d075](https://github.com/tupe12334/eslint-config-agent/commit/c27d0751df9649826ddafea571ea2d22943b5514)), closes [#30](https://github.com/tupe12334/eslint-config-agent/issues/30)
62
+ * **config:** enable @typescript-eslint/consistent-type-exports ([#188](https://github.com/tupe12334/eslint-config-agent/issues/188)) ([62ac247](https://github.com/tupe12334/eslint-config-agent/commit/62ac247c4c707d43a3a6f3bff39ac85c27c6545a)), closes [#187](https://github.com/tupe12334/eslint-config-agent/issues/187)
63
+ * **config:** enable @typescript-eslint/consistent-type-imports ([#110](https://github.com/tupe12334/eslint-config-agent/issues/110)) ([f6a8f5d](https://github.com/tupe12334/eslint-config-agent/commit/f6a8f5d64255270ce7aa6ecf585cad44ee0bd96f)), closes [#109](https://github.com/tupe12334/eslint-config-agent/issues/109)
64
+ * **config:** enable @typescript-eslint/no-import-type-side-effects ([#210](https://github.com/tupe12334/eslint-config-agent/issues/210)) ([e26bb0a](https://github.com/tupe12334/eslint-config-agent/commit/e26bb0aae392ca824664feb35e614662af99bffb))
65
+ * **config:** enable @typescript-eslint/no-loop-func in the shared rule set ([#236](https://github.com/tupe12334/eslint-config-agent/issues/236)) ([e65a589](https://github.com/tupe12334/eslint-config-agent/commit/e65a5899d36da42d2ff539527573e4540a08f2e8)), closes [#235](https://github.com/tupe12334/eslint-config-agent/issues/235)
66
+ * **config:** enable @typescript-eslint/no-non-null-assertion ([#173](https://github.com/tupe12334/eslint-config-agent/issues/173)) ([4c31365](https://github.com/tupe12334/eslint-config-agent/commit/4c31365b80a3d84bc39bf91ec92d612359d871df))
67
+ * **config:** enable @typescript-eslint/no-shadow in the shared rule set ([#184](https://github.com/tupe12334/eslint-config-agent/issues/184)) ([977fa60](https://github.com/tupe12334/eslint-config-agent/commit/977fa60c3858d085914d0a2d144c43e1b82f9106))
68
+ * **config:** enable @typescript-eslint/promise-function-async in the shared rule set ([#191](https://github.com/tupe12334/eslint-config-agent/issues/191)) ([6297f62](https://github.com/tupe12334/eslint-config-agent/commit/6297f62521c29a924782284bd5bf1db7ff7beb53))
69
+ * **config:** enable @typescript-eslint/require-array-sort-compare ([#135](https://github.com/tupe12334/eslint-config-agent/issues/135)) ([6eaf1f6](https://github.com/tupe12334/eslint-config-agent/commit/6eaf1f6ee7f2fc3d10cadca0810a8d67f5230963)), closes [Array#sort](https://github.com/tupe12334/Array/issues/sort) [#134](https://github.com/tupe12334/eslint-config-agent/issues/134)
70
+ * **config:** enable @typescript-eslint/return-await in the shared rule set ([#232](https://github.com/tupe12334/eslint-config-agent/issues/232)) ([2f1e4b6](https://github.com/tupe12334/eslint-config-agent/commit/2f1e4b6c7fd8a075b3fea80a99cca3bd3f298235)), closes [#231](https://github.com/tupe12334/eslint-config-agent/issues/231)
71
+ * **config:** enable @typescript-eslint/switch-exhaustiveness-check ([#102](https://github.com/tupe12334/eslint-config-agent/issues/102)) ([2125c0c](https://github.com/tupe12334/eslint-config-agent/commit/2125c0c796451381bcdb38b33ab7ab100df637fa)), closes [#101](https://github.com/tupe12334/eslint-config-agent/issues/101)
72
+ * **config:** enable array-callback-return in the shared rule set ([#74](https://github.com/tupe12334/eslint-config-agent/issues/74)) ([e647cc7](https://github.com/tupe12334/eslint-config-agent/commit/e647cc7cf9619bb18d204b7925a79d2390f5d492)), closes [#73](https://github.com/tupe12334/eslint-config-agent/issues/73)
73
+ * **config:** enable default-case-last in the shared rule set ([#225](https://github.com/tupe12334/eslint-config-agent/issues/225)) ([fb6f26a](https://github.com/tupe12334/eslint-config-agent/commit/fb6f26a8ef00953c5b56d3dd71397dc8ecb40fa8)), closes [#55](https://github.com/tupe12334/eslint-config-agent/issues/55)
74
+ * **config:** enable default-param-last in the shared rule set ([#167](https://github.com/tupe12334/eslint-config-agent/issues/167)) ([7c43c05](https://github.com/tupe12334/eslint-config-agent/commit/7c43c053620019917754b9aab810027b3a9032f8)), closes [#166](https://github.com/tupe12334/eslint-config-agent/issues/166)
75
+ * **config:** enable import/no-empty-named-blocks ([#70](https://github.com/tupe12334/eslint-config-agent/issues/70)) ([a939fb2](https://github.com/tupe12334/eslint-config-agent/commit/a939fb21aea9c3cbe623545fd264b20c717462b9)), closes [#69](https://github.com/tupe12334/eslint-config-agent/issues/69)
76
+ * **config:** enable import/no-useless-path-segments in the shared rule set ([#229](https://github.com/tupe12334/eslint-config-agent/issues/229)) ([2b2c076](https://github.com/tupe12334/eslint-config-agent/commit/2b2c076faf28c0ef650f8ec6f8f77598735ddfd4)), closes [#207](https://github.com/tupe12334/eslint-config-agent/issues/207)
77
+ * **config:** enable no-await-in-loop in the shared rule set ([#239](https://github.com/tupe12334/eslint-config-agent/issues/239)) ([59325f6](https://github.com/tupe12334/eslint-config-agent/commit/59325f6a6b7ec0bec4e0038ef3ecaf134e42a4fc)), closes [#237](https://github.com/tupe12334/eslint-config-agent/issues/237)
78
+ * **config:** enable no-console (allow warn/error) in the shared rule set ([#163](https://github.com/tupe12334/eslint-config-agent/issues/163)) ([cfcb2c5](https://github.com/tupe12334/eslint-config-agent/commit/cfcb2c5dd123a5857e4b92f2df7c5fea4d7cc095)), closes [#162](https://github.com/tupe12334/eslint-config-agent/issues/162)
79
+ * **config:** enable no-else-return in the shared rule set ([#38](https://github.com/tupe12334/eslint-config-agent/issues/38)) ([6f208d9](https://github.com/tupe12334/eslint-config-agent/commit/6f208d91b7e56373bd424324558fdf1fffdaaed7)), closes [#37](https://github.com/tupe12334/eslint-config-agent/issues/37)
80
+ * **config:** enable no-eval and no-implied-eval in the shared rule set ([#243](https://github.com/tupe12334/eslint-config-agent/issues/243)) ([bc1a168](https://github.com/tupe12334/eslint-config-agent/commit/bc1a16854df90869ff0908fd51be8458c872ca54)), closes [#174](https://github.com/tupe12334/eslint-config-agent/issues/174)
81
+ * **config:** enable no-extra-bind in the shared rule set ([#258](https://github.com/tupe12334/eslint-config-agent/issues/258)) ([c7a0abd](https://github.com/tupe12334/eslint-config-agent/commit/c7a0abd884cf17404ede21efb520169872cf99aa))
82
+ * **config:** enable no-lonely-if in the shared rule set ([#226](https://github.com/tupe12334/eslint-config-agent/issues/226)) ([9fea18a](https://github.com/tupe12334/eslint-config-agent/commit/9fea18a6f13b2b124e1380fa136bc9a54715326c)), closes [#53](https://github.com/tupe12334/eslint-config-agent/issues/53)
83
+ * **config:** enable no-new-func in the shared rule set ([#145](https://github.com/tupe12334/eslint-config-agent/issues/145)) ([f836525](https://github.com/tupe12334/eslint-config-agent/commit/f8365251939398a2bc60ffabdade1728a407373f)), closes [#144](https://github.com/tupe12334/eslint-config-agent/issues/144)
84
+ * **config:** enable no-object-constructor in the shared rule set ([#129](https://github.com/tupe12334/eslint-config-agent/issues/129)) ([dc37848](https://github.com/tupe12334/eslint-config-agent/commit/dc37848def7bb18b8743363c337a8e76e49dde35)), closes [#128](https://github.com/tupe12334/eslint-config-agent/issues/128)
85
+ * **config:** enable no-promise-executor-return in the shared rule set ([#137](https://github.com/tupe12334/eslint-config-agent/issues/137)) ([5d595d0](https://github.com/tupe12334/eslint-config-agent/commit/5d595d081ec051aee644b659b088691684e7368b))
86
+ * **config:** enable no-return-assign (always) in the shared rule set ([#206](https://github.com/tupe12334/eslint-config-agent/issues/206)) ([d76ce90](https://github.com/tupe12334/eslint-config-agent/commit/d76ce90a35c38ab149f2f4ed8738e8da4b8bd1c3)), closes [#205](https://github.com/tupe12334/eslint-config-agent/issues/205)
87
+ * **config:** enable no-self-compare in the shared rule set ([#84](https://github.com/tupe12334/eslint-config-agent/issues/84)) ([59f1c94](https://github.com/tupe12334/eslint-config-agent/commit/59f1c946b8a7bfa5f16323c2b0091d5d5065e7ae)), closes [#83](https://github.com/tupe12334/eslint-config-agent/issues/83)
88
+ * **config:** enable no-template-curly-in-string in the shared rule set ([#78](https://github.com/tupe12334/eslint-config-agent/issues/78)) ([94e8ce4](https://github.com/tupe12334/eslint-config-agent/commit/94e8ce4d55d550c97b9191bdb5c732efaf78cc41)), closes [#77](https://github.com/tupe12334/eslint-config-agent/issues/77)
89
+ * **config:** enable no-throw-literal in the shared rule set ([#155](https://github.com/tupe12334/eslint-config-agent/issues/155)) ([75bd1ac](https://github.com/tupe12334/eslint-config-agent/commit/75bd1acf75d0618bfc777b40f0bc4b4935dc7384)), closes [#154](https://github.com/tupe12334/eslint-config-agent/issues/154)
90
+ * **config:** enable no-unsafe-optional-chaining in the shared rule set ([#249](https://github.com/tupe12334/eslint-config-agent/issues/249)) ([f7e1a06](https://github.com/tupe12334/eslint-config-agent/commit/f7e1a06f91ae572ef07e1e2642e14d6907609a86))
91
+ * **config:** enable no-useless-assignment in the shared rule set ([#182](https://github.com/tupe12334/eslint-config-agent/issues/182)) ([c5faa6b](https://github.com/tupe12334/eslint-config-agent/commit/c5faa6b7c11d615f51d293301bdec7c9d56568d6))
92
+ * **config:** enable no-useless-computed-key in the shared rule set ([#131](https://github.com/tupe12334/eslint-config-agent/issues/131)) ([e0016b9](https://github.com/tupe12334/eslint-config-agent/commit/e0016b962348cb1862435f249b93eab04f3803e4)), closes [#130](https://github.com/tupe12334/eslint-config-agent/issues/130)
93
+ * **config:** enable no-useless-concat in the shared rule set ([#171](https://github.com/tupe12334/eslint-config-agent/issues/171)) ([704c7ab](https://github.com/tupe12334/eslint-config-agent/commit/704c7abdb325920061224b59a21de0f6bf8433e8)), closes [#170](https://github.com/tupe12334/eslint-config-agent/issues/170)
94
+ * **config:** enable no-useless-return in the shared rule set ([#127](https://github.com/tupe12334/eslint-config-agent/issues/127)) ([61e26da](https://github.com/tupe12334/eslint-config-agent/commit/61e26da426cdf4d069eac34f0d9db66d9e6b1a62))
95
+ * **config:** enable operator-assignment in the shared rule set ([#242](https://github.com/tupe12334/eslint-config-agent/issues/242)) ([d5bf32b](https://github.com/tupe12334/eslint-config-agent/commit/d5bf32bb8a906996b6ec3f2cccb88c3621f392f0)), closes [#240](https://github.com/tupe12334/eslint-config-agent/issues/240)
96
+ * **config:** enable prefer-object-has-own in the shared rule set ([#133](https://github.com/tupe12334/eslint-config-agent/issues/133)) ([79382a2](https://github.com/tupe12334/eslint-config-agent/commit/79382a236b4399f96dd87cbc3675768863fccd7c))
97
+ * **config:** enable prefer-object-spread in the shared rule set ([#139](https://github.com/tupe12334/eslint-config-agent/issues/139)) ([1f039ac](https://github.com/tupe12334/eslint-config-agent/commit/1f039ac0cae4492d7e5d67f58a1d445cc31f1a89)), closes [#138](https://github.com/tupe12334/eslint-config-agent/issues/138)
98
+ * **config:** enable prefer-regex-literals in the shared rule set ([#169](https://github.com/tupe12334/eslint-config-agent/issues/169)) ([0f513e0](https://github.com/tupe12334/eslint-config-agent/commit/0f513e01f8460f2989981e86b5913031fec43f98))
99
+ * **config:** enable radix in the shared rule set ([#224](https://github.com/tupe12334/eslint-config-agent/issues/224)) ([51f5669](https://github.com/tupe12334/eslint-config-agent/commit/51f5669e93dd7f8a6d367bc9ba3601d75d92daf8)), closes [#44](https://github.com/tupe12334/eslint-config-agent/issues/44)
100
+ * **config:** enable react/jsx-no-constructed-context-values in the shared rule set ([#245](https://github.com/tupe12334/eslint-config-agent/issues/245)) ([9bd0442](https://github.com/tupe12334/eslint-config-agent/commit/9bd04427494e28b96718db475ed1f65e11cbfce6)), closes [#244](https://github.com/tupe12334/eslint-config-agent/issues/244)
101
+ * **config:** enable react/jsx-no-leaked-render in the shared rule set ([#180](https://github.com/tupe12334/eslint-config-agent/issues/180)) ([80cf43d](https://github.com/tupe12334/eslint-config-agent/commit/80cf43da2ec66df1528de20bdcd5873baf3c5dbe)), closes [#179](https://github.com/tupe12334/eslint-config-agent/issues/179)
102
+ * **config:** enable react/no-array-index-key in the shared rule set ([#214](https://github.com/tupe12334/eslint-config-agent/issues/214)) ([e6c3a19](https://github.com/tupe12334/eslint-config-agent/commit/e6c3a19d58eb3c99955f683f229b05a1c5bc489b)), closes [#213](https://github.com/tupe12334/eslint-config-agent/issues/213)
103
+ * **config:** enable react/no-danger in the shared rule set ([#262](https://github.com/tupe12334/eslint-config-agent/issues/262)) ([5dc8ecd](https://github.com/tupe12334/eslint-config-agent/commit/5dc8ecd86851c4a2b62e351b5a32dcfbe7803347))
104
+ * **config:** enable unused-imports/no-unused-imports in the shared rule set ([#204](https://github.com/tupe12334/eslint-config-agent/issues/204)) ([1c772c8](https://github.com/tupe12334/eslint-config-agent/commit/1c772c8052b48905c228da5685d066119ab69b85)), closes [#203](https://github.com/tupe12334/eslint-config-agent/issues/203)
105
+ * **config:** enforce strict equality (eqeqeq) in shared config ([#11](https://github.com/tupe12334/eslint-config-agent/issues/11)) ([77f1de4](https://github.com/tupe12334/eslint-config-agent/commit/77f1de40d307af46f28d0651da551048405503ea))
106
+ * **config:** integrate unicorn.configs.all and remove duplicate rules ([#263](https://github.com/tupe12334/eslint-config-agent/issues/263)) ([d3c857a](https://github.com/tupe12334/eslint-config-agent/commit/d3c857aca843e295a95ece3611d04884a9dffe91))
107
+ * **config:** lint .mjs/.cjs files with the JavaScript rule set ([#192](https://github.com/tupe12334/eslint-config-agent/issues/192)) ([17d1034](https://github.com/tupe12334/eslint-config-agent/commit/17d10346e7ad7843f8d5759f57cf859de7ff56d9)), closes [#189](https://github.com/tupe12334/eslint-config-agent/issues/189)
108
+ * **config:** name the top-level flat-config blocks ([#150](https://github.com/tupe12334/eslint-config-agent/issues/150)) ([8851b0f](https://github.com/tupe12334/eslint-config-agent/commit/8851b0fd123401cb1dfee28b5aae22326d1da3d4)), closes [#149](https://github.com/tupe12334/eslint-config-agent/issues/149)
109
+ * **config:** relax noisy eslint-plugin-security rules for test files ([#141](https://github.com/tupe12334/eslint-config-agent/issues/141)) ([1f4c80f](https://github.com/tupe12334/eslint-config-agent/commit/1f4c80f12b83d68f7e2e95d2b3b3367e62c501d6)), closes [#140](https://github.com/tupe12334/eslint-config-agent/issues/140)
110
+ * **config:** report unused eslint-disable directives ([#13](https://github.com/tupe12334/eslint-config-agent/issues/13)) ([96b3216](https://github.com/tupe12334/eslint-config-agent/commit/96b3216afc11b01ab0c97c02dae1f65956d7e478)), closes [#12](https://github.com/tupe12334/eslint-config-agent/issues/12)
111
+ * **config:** require const for never-reassigned bindings (prefer-const) ([#27](https://github.com/tupe12334/eslint-config-agent/issues/27)) ([ad757b8](https://github.com/tupe12334/eslint-config-agent/commit/ad757b836dfb6eb753a33a29bce327aba2c6f7be))
112
+ * **config:** require object literal shorthand (object-shorthand) ([#52](https://github.com/tupe12334/eslint-config-agent/issues/52)) ([30b3f74](https://github.com/tupe12334/eslint-config-agent/commit/30b3f7455dc5de4e4e2f8baf1f86278bd7579058))
113
+ * **config:** require spec files for .tsx/.jsx components ([#66](https://github.com/tupe12334/eslint-config-agent/issues/66)) ([1f26525](https://github.com/tupe12334/eslint-config-agent/commit/1f26525f8f760576f883c94efd36dba3c2afa268)), closes [#65](https://github.com/tupe12334/eslint-config-agent/issues/65)
114
+ * **config:** require template literals over string concatenation (prefer-template) ([#35](https://github.com/tupe12334/eslint-config-agent/issues/35)) ([e7a8448](https://github.com/tupe12334/eslint-config-agent/commit/e7a8448dc742e225101da75ed54e4fff92ca9eaf)), closes [#34](https://github.com/tupe12334/eslint-config-agent/issues/34)
115
+ * enable prefer-const in the shared rule set ([#39](https://github.com/tupe12334/eslint-config-agent/issues/39)) ([c8ca460](https://github.com/tupe12334/eslint-config-agent/commit/c8ca460b1bdb40b3d5f63bfcba534fda766805c4)), closes [#26](https://github.com/tupe12334/eslint-config-agent/issues/26)
116
+ * **exports:** add recommended-incremental (relaxed + warn-level) preset ([#143](https://github.com/tupe12334/eslint-config-agent/issues/143)) ([1894f3c](https://github.com/tupe12334/eslint-config-agent/commit/1894f3ce16c06f5a8cf41a4266322c2ad0f88dc4)), closes [package.json#exports](https://github.com/tupe12334/package.json/issues/exports) [#142](https://github.com/tupe12334/eslint-config-agent/issues/142)
117
+ * **exports:** add relaxed `recommended` preset for incremental adoption ([#43](https://github.com/tupe12334/eslint-config-agent/issues/43)) ([5dd2b84](https://github.com/tupe12334/eslint-config-agent/commit/5dd2b842812aec50dffe2c79424f8ddb1f851a6a)), closes [#42](https://github.com/tupe12334/eslint-config-agent/issues/42)
118
+ * **exports:** publish the toWarnings severity-downgrade helper ([#230](https://github.com/tupe12334/eslint-config-agent/issues/230)) ([1946f47](https://github.com/tupe12334/eslint-config-agent/commit/1946f4706c5bcaed03a96df44650d84a9cde82a6)), closes [#222](https://github.com/tupe12334/eslint-config-agent/issues/222)
119
+ * **import:** add no-duplicates and no-mutable-exports rules ([#15](https://github.com/tupe12334/eslint-config-agent/issues/15)) ([ce09d3c](https://github.com/tupe12334/eslint-config-agent/commit/ce09d3c53630820e169ee660f6b9097ed7915eb6)), closes [#14](https://github.com/tupe12334/eslint-config-agent/issues/14)
120
+ * **import:** detect circular dependencies (import/no-cycle, no-self-import) ([#23](https://github.com/tupe12334/eslint-config-agent/issues/23)) ([8177869](https://github.com/tupe12334/eslint-config-agent/commit/8177869ebb0369d221cd198bb0ad0a69de7995b1)), closes [#20](https://github.com/tupe12334/eslint-config-agent/issues/20)
121
+ * **import:** enable import/no-cycle rule ([#22](https://github.com/tupe12334/eslint-config-agent/issues/22)) ([06b49aa](https://github.com/tupe12334/eslint-config-agent/commit/06b49aae0baaf3b1f0ea4412c7d60e8d59496603)), closes [#21](https://github.com/tupe12334/eslint-config-agent/issues/21)
122
+ * **incremental:** add one-import warn-level adoption preset ([#112](https://github.com/tupe12334/eslint-config-agent/issues/112)) ([347bcce](https://github.com/tupe12334/eslint-config-agent/commit/347bcce6a0330c494eaf25bec418f9f148f8b5ee)), closes [#111](https://github.com/tupe12334/eslint-config-agent/issues/111)
123
+ * **recommended:** relax jsdoc/require-jsdoc in the recommended preset ([#146](https://github.com/tupe12334/eslint-config-agent/issues/146)) ([b75a9ba](https://github.com/tupe12334/eslint-config-agent/commit/b75a9ba704ba933dbf530accad17d8741fc0095e)), closes [#91](https://github.com/tupe12334/eslint-config-agent/issues/91)
124
+ * **recommended:** relax jsx-classname/require-classname for adoption ([#94](https://github.com/tupe12334/eslint-config-agent/issues/94)) ([7a5b719](https://github.com/tupe12334/eslint-config-agent/commit/7a5b719cbc718addcea6de84803c0adda73f728e))
125
+ * **require-spec-file-tsx:** exempt error/exception files like ddd does ([#118](https://github.com/tupe12334/eslint-config-agent/issues/118)) ([aa8d2b8](https://github.com/tupe12334/eslint-config-agent/commit/aa8d2b8b955b63c95f29f274e1775287d0130377)), closes [#117](https://github.com/tupe12334/eslint-config-agent/issues/117)
126
+ * **rules:** enable no-param-reassign in shared config ([#17](https://github.com/tupe12334/eslint-config-agent/issues/17)) ([a63d32f](https://github.com/tupe12334/eslint-config-agent/commit/a63d32f08927a0c4792cd702703186e9cf4d1d65)), closes [#16](https://github.com/tupe12334/eslint-config-agent/issues/16)
127
+ * **types:** ship .d.ts declarations for all entry points ([#148](https://github.com/tupe12334/eslint-config-agent/issues/148)) ([d62682d](https://github.com/tupe12334/eslint-config-agent/commit/d62682d748744b3f885b45ae5fe31cf7c793a11c)), closes [#147](https://github.com/tupe12334/eslint-config-agent/issues/147)
128
+
129
+ ### Bug Fixes
130
+
131
+ * apply TypeScript config to .mts and .cts files ([#7](https://github.com/tupe12334/eslint-config-agent/issues/7)) ([f131c31](https://github.com/tupe12334/eslint-config-agent/commit/f131c312cb09686a00fee7462e57885ac6926a27)), closes [#6](https://github.com/tupe12334/eslint-config-agent/issues/6)
132
+ * **config:** enforce unicorn/prevent-abbreviations and fix all violations ([674e05e](https://github.com/tupe12334/eslint-config-agent/commit/674e05e815b34429989142f4cc47134bfe6a4de9))
133
+ * **config:** make build-output ignores recursive for monorepos ([#50](https://github.com/tupe12334/eslint-config-agent/issues/50)) ([6405b04](https://github.com/tupe12334/eslint-config-agent/commit/6405b0402fb2731daa8670cd6291b2df6d944bcc)), closes [#49](https://github.com/tupe12334/eslint-config-agent/issues/49)
134
+ * **config:** match nested config files in monorepos ([#217](https://github.com/tupe12334/eslint-config-agent/issues/217)) ([b1cbe5f](https://github.com/tupe12334/eslint-config-agent/commit/b1cbe5f357c1f3c4abe62cc6588314db4975da30)), closes [#189](https://github.com/tupe12334/eslint-config-agent/issues/189) [#216](https://github.com/tupe12334/eslint-config-agent/issues/216)
135
+ * **config:** set eslint-plugin-react version detect for tsx/ts ([#9](https://github.com/tupe12334/eslint-config-agent/issues/9)) ([bc9bc35](https://github.com/tupe12334/eslint-config-agent/commit/bc9bc3597662dd5082a90c8acef4e742ece92a99)), closes [#8](https://github.com/tupe12334/eslint-config-agent/issues/8)
136
+ * expose ./package.json in exports map ([#156](https://github.com/tupe12334/eslint-config-agent/issues/156)) ([a6cf0c1](https://github.com/tupe12334/eslint-config-agent/commit/a6cf0c169dfa589788501d8bfe4867816a4582d2)), closes [#151](https://github.com/tupe12334/eslint-config-agent/issues/151)
137
+ * **jsdoc:** enforce JSDoc on ClassDeclaration in TypeScript files ([#2](https://github.com/tupe12334/eslint-config-agent/issues/2)) ([d96eae6](https://github.com/tupe12334/eslint-config-agent/commit/d96eae6ece77b6c7c6e784a92b9965df40065935)), closes [#1](https://github.com/tupe12334/eslint-config-agent/issues/1)
138
+ * **no-inline-union-types:** flag non-literal unions in interface/class properties ([#122](https://github.com/tupe12334/eslint-config-agent/issues/122)) ([b876b52](https://github.com/tupe12334/eslint-config-agent/commit/b876b52228a3e48677c19a9810c96345f88b2777))
139
+ * **recommended:** relax custom/require-spec-file-tsx in the recommended preset ([#221](https://github.com/tupe12334/eslint-config-agent/issues/221)) ([4b30010](https://github.com/tupe12334/eslint-config-agent/commit/4b3001063e644a07ff310f57525129e418b55fdd))
140
+ * require JSDoc on class declarations ([#3](https://github.com/tupe12334/eslint-config-agent/issues/3)) ([1a5de3f](https://github.com/tupe12334/eslint-config-agent/commit/1a5de3f36d7823d1dae636fefc21be2e4a64e5b0)), closes [#1](https://github.com/tupe12334/eslint-config-agent/issues/1)
141
+ * **test:** correct edge-cases baseline so `pnpm test` passes ([#234](https://github.com/tupe12334/eslint-config-agent/issues/234)) ([8b41a72](https://github.com/tupe12334/eslint-config-agent/commit/8b41a7286e80c765a211b0f3230c6f6e2a6c7990)), closes [#233](https://github.com/tupe12334/eslint-config-agent/issues/233)
142
+ * **test:** exclude recommended-preset fixtures from comprehensive runner ([#80](https://github.com/tupe12334/eslint-config-agent/issues/80)) ([2602277](https://github.com/tupe12334/eslint-config-agent/commit/26022772f6c057a280d22630980ba17eb4752807)), closes [#79](https://github.com/tupe12334/eslint-config-agent/issues/79)
143
+
144
+ ## [Unreleased]
145
+
146
+ ### Features
147
+
148
+ * **presets:** add relaxed `recommended` preset for incremental adoption (#43), with follow-up relaxations of `jsx-classname/require-classname` (#94), `custom/require-spec-file-tsx` (#221), and `jsdoc/require-jsdoc` (#146)
149
+ * **presets:** add `recommended-incremental` (relaxed + warn-level) preset (#143) and a `one-import` warn-level adoption preset (#112)
150
+ * **types:** ship `.d.ts` declarations for all entry points (#148)
151
+ * **exports:** publish the `toWarnings` severity-downgrade helper (#230) and guard the public exports surface against drift (#76)
152
+ * **config:** lint `.mjs`/`.cjs` files with the JavaScript rule set (#192) and match nested config files in monorepos (#217)
153
+ * **config:** require spec files for `.tsx`/`.jsx` components (#66), exempting error/exception files (#118)
154
+ * **config:** name the top-level flat-config blocks (#150, #84)
155
+ * **config:** enable a large batch of additional core, TypeScript, import, React, and stylistic rules in the shared rule set — including `prefer-const`, `no-var`, `object-shorthand`, `prefer-template`, `no-else-return`, `no-lonely-if`, `no-unneeded-ternary`, `no-multi-assign`, `no-return-assign`, `operator-assignment`, `radix`, `default-case-last`, `default-param-last`, `array-callback-return`, `no-await-in-loop`, `no-eval`/`no-implied-eval`, `no-new-func`, `no-throw-literal`, `no-console` (allow warn/error), `no-self-compare`, `no-template-curly-in-string`, `no-promise-executor-return`, `no-useless-return`/`no-useless-concat`/`no-useless-assignment`/`no-useless-computed-key`, `no-object-constructor`, `prefer-object-spread`, `prefer-object-has-own`, `prefer-regex-literals`, `unused-imports/no-unused-imports`, `import/no-useless-path-segments`/`import/no-empty-named-blocks`, `react/jsx-no-leaked-render`/`react/jsx-no-constructed-context-values`/`react/no-array-index-key`, and the TypeScript-aware `consistent-type-imports`/`consistent-type-exports`/`no-import-type-side-effects`/`no-shadow`/`no-loop-func`/`no-non-null-assertion`/`promise-function-async`/`return-await`/`require-array-sort-compare`/`switch-exhaustiveness-check`/`no-unsafe-optional-chaining` (#27, #29, #31, #35, #38, #39, #52, #68, #70, #74, #78, #84, #102, #110, #127, #129, #131, #133, #135, #137, #139, #145, #155, #163, #167, #169, #171, #173, #180, #182, #184, #188, #191, #204, #206, #210, #214, #224, #225, #226, #229, #232, #236, #239, #242, #243, #245, #249)
156
+ * **config:** relax noisy `eslint-plugin-security` rules for test files (#141) and ignore `storybook-static`/`.turbo` build output (#106)
157
+ * **docs:** document the bundled custom rules, the `ddd` entry point, type-aware project service requirement, ESLint 10 incompatibility, TypeScript >=4.8.4 optional peer, and `prefer-template` (#36, #90, #98, #104, #116, #120, #165, #215)
158
+
159
+ ### Bug Fixes
160
+
161
+ * **no-inline-union-types:** flag non-literal unions in interface/class properties (#122)
162
+ * **exports:** expose `./package.json` in the exports map (#156)
163
+ * **test:** correct the edge-cases baseline so `pnpm test` passes (#234) and exclude recommended-preset fixtures from the comprehensive runner (#80)
164
+
7
165
  ## [3.0.4](https://github.com/tupe12334/eslint-config-agent/compare/v3.0.3...v3.0.4) (2026-06-03)
8
166
 
9
167
  ### Bug Fixes