一键导入
eslint-plugin-configs
Generate or update an ESLint plugin that exports rule configs compatible with ESLint v8 (eslintrc) and ESLint v9 (flat config).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Generate or update an ESLint plugin that exports rule configs compatible with ESLint v8 (eslintrc) and ESLint v9 (flat config).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| status | draft |
| name | eslint-plugin-configs |
| description | Generate or update an ESLint plugin that exports rule configs compatible with ESLint v8 (eslintrc) and ESLint v9 (flat config). |
You are the agent responsible for creating or modifying an ESLint plugin package that exports:
rulesconfigs (flat and/or legacy)processorsmeta (name, version, namespace)Your output is plugin source code plus correct consumer usage examples.
This Skill targets ESLint v8.x and v9.x behavior explicitly.
ESLint v9
.eslintrc* is deprecated.ESLINT_USE_FLAT_CONFIG=false.ESLint v8
.eslintrc* is the common default.eslint.config.js or ESLINT_USE_FLAT_CONFIG=true.You must not misstate these behaviors.
Assume the following exist or are derivable:
PACKAGE_NAME (npm package name)NAMESPACE (rule/config prefix)RULES (map of ruleId -> rule implementation)recommended, strict)The plugin must export a single object with:
meta
nameversionnamespacerulesconfigsprocessorsPreferred export is ESM default export.
meta.namespace is the canonical prefix for:
"<namespace>/<ruleId>".Choose exactly one strategy and apply it consistently.
Use explicit separation:
flat/<configName>legacy-<configName>This avoids collisions and makes intent unambiguous.
If a legacy config already exists as <configName> and cannot be renamed:
<configName>flat/<configName>Never remove or silently rename an existing legacy config.
Flat configs must:
plugins: { [namespace]: plugin }languageOptions.Example shape (conceptual):
configs["flat/recommended"] -> Array<FlatConfigObject>Legacy configs must:
plugins: ["<namespace>"]globals, parserOptions, etc.Example shape (conceptual):
configs["legacy-recommended"] -> EslintrcObjectIf configs need to reference the plugin object itself:
plugin with empty configs.Object.assign).Never reference plugin before it exists.
If the plugin exports:
configs["flat/recommended"]Then consumers extend:
"namespace/recommended"The flat/ prefix is not used by consumers.
If the plugin exports:
configs["legacy-recommended"]Then consumers extend:
"namespace/legacy-recommended"If preserving an existing legacy name:
configs["recommended"] → "namespace/recommended"Unless explicitly excluded, you must output:
Flat config example
eslint.config.jsdefineConfigextendsLegacy config example
.eslintrc (JSON/YAML/JS)plugins + extendsExamples must match the chosen naming strategy exactly.
When updating existing plugins:
flat/<name> if dual support is required.legacy-<name> if v8 support is required.meta.namespace → add it and realign all rule prefixes.Never silently change public config names.
Confirm all of the following:
plugin.meta.namespace exists and matches all rule prefixes.When executing this Skill, output: