← 返回 Skills 市场
charlie-morrison

ESLint Flat Config Validator

作者 charlie-morrison · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
69
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install eslint-flat-config-validator
功能描述
Validate ESLint v9+ flat config files (JSON-exported) for structural correctness, language options, rules configuration, plugin hygiene, file patterns, and b...
使用说明 (SKILL.md)

ESLint Flat Config Validator

Validate ESLint v9+ flat configuration files exported as JSON for structural correctness, language options, rules configuration, plugin setup, file/ignore patterns, and best practices. Uses pure Python 3 stdlib (json, argparse, re, os, sys) -- no external dependencies.

Since ESLint flat configs are JS/MJS/CJS (eslint.config.js), the validator works with JSON-exported snapshots. Export your config first:

node -e "import('./eslint.config.js').then(m => console.log(JSON.stringify(m.default)))" > eslint.config.json

Then validate the JSON output.

Commands

validate -- Comprehensive validation with all rules and summary

python3 scripts/eslint_flat_config_validator.py validate eslint.config.json
python3 scripts/eslint_flat_config_validator.py validate eslint.config.json --strict
python3 scripts/eslint_flat_config_validator.py validate eslint.config.json --format json

lint -- Run all rules

python3 scripts/eslint_flat_config_validator.py lint eslint.config.json
python3 scripts/eslint_flat_config_validator.py lint eslint.config.json --format summary

rules -- Check rules configuration

python3 scripts/eslint_flat_config_validator.py rules eslint.config.json
python3 scripts/eslint_flat_config_validator.py rules eslint.config.json --format json

plugins -- Check plugin configuration

python3 scripts/eslint_flat_config_validator.py plugins eslint.config.json
python3 scripts/eslint_flat_config_validator.py plugins eslint.config.json --format json

Flags

Flag Description
--strict Treat warnings as errors -- exit code 1 (CI-friendly)
--format text Human-readable output (default)
--format json Machine-readable JSON
--format summary Compact summary with counts

Validation Rules (25)

Structure (5)

Rule Severity Description
S1 error File not found or unreadable
S2 error Empty config (empty array or no objects)
S3 error JSON syntax errors
S4 error Not an array (flat config must be an array of config objects)
S5 warning Unknown top-level keys in config objects (valid: files, ignores, languageOptions, linterOptions, plugins, processor, rules, settings, name)

Language Options (5)

Rule Severity Description
L1 error Invalid ecmaVersion (must be number >= 3 or "latest")
L2 error Invalid sourceType (must be "module", "script", or "commonjs")
L3 warning Invalid parser value (should be object with parse/parseForESTree, warn if string)
L4 error globals with invalid values (only "readonly"/"writable"/"off" or true/false/"readable")
L5 info Missing ecmaVersion (defaults to "latest" in ESLint v9)

Rules (5)

Rule Severity Description
R1 error Unknown severity (must be "off"/0, "warn"/1, "error"/2)
R2 warning Rules with deprecated names
R3 warning Conflicting rules (e.g., indent + @typescript-eslint/indent)
R4 info Empty rules object
R5 error Rule config not array or severity (must be severity or [severity, ...options])

Plugins (3)

Rule Severity Description
P1 info Empty plugins object
P2 error Plugin value not object (plugin values should be plugin objects)
P3 warning Duplicate plugin key across config objects

Files/Ignores (4)

Rule Severity Description
F1 info Missing files pattern in non-global config (config without files/ignores applies globally)
F2 error Invalid glob patterns (empty string)
F3 error files as string instead of array
F4 error ignores as string instead of array

Best Practices (3)

Rule Severity Description
X1 warning No rules defined in any config object
X2 warning Many config objects (>20) suggest consolidation
X3 info Missing "name" property (recommended in v9 for debugging)

Exit Codes

Code Meaning
0 No errors (warnings allowed unless --strict)
1 Errors found (or warnings in --strict mode)
2 File not found / parse error

CI Integration

# GitHub Actions
- name: Validate ESLint flat config
  run: |
    node -e "import('./eslint.config.js').then(m => console.log(JSON.stringify(m.default)))" > /tmp/eslint.config.json
    python3 scripts/eslint_flat_config_validator.py validate /tmp/eslint.config.json --strict --format json

Example Output

eslint.config validate — eslint.config.json
============================================
[ERROR  ] S5: Unknown top-level key in config object #2: 'env'
         'env' is not valid in flat config. Valid keys: files, ignores, languageOptions, linterOptions, plugins, processor, rules, settings, name
[ERROR  ] R1: Invalid rule severity for 'no-unused-vars': 'on'
         Severity must be 'off'/0, 'warn'/1, or 'error'/2.
[WARNING] R2: Deprecated rule 'no-buffer-constructor' in config object #1
         This rule was deprecated in ESLint v7. Remove it or replace with the recommended alternative.
[WARNING] X1: No rules defined in any config object
         At least one config object should define rules for ESLint to enforce anything.
[INFO   ] X3: Config object #3 missing 'name' property
         Adding a name helps identify config objects in ESLint's debug output and error messages.

Result: INVALID
Summary: 2 error(s), 2 warning(s), 1 info
安全使用建议
This skill is coherent and appears to do what it says: it validates a JSON-exported ESLint flat config using a bundled Python script. Before running it: 1) inspect or trust the eslint.config.js you will import — the node export command executes that file and could run arbitrary JS (access env vars, network, or perform side effects) if the config contains such code; 2) if the config is untrusted, export it in an isolated environment (ephemeral container, CI runner, or VM) before validating; 3) you can also manually produce the JSON snapshot and pass it to the Python script to avoid re-executing project code; 4) optionally review the included Python script (it's standard-library-only) if you want to audit exactly what checks are performed.
功能分析
Type: OpenClaw Skill Name: eslint-flat-config-validator Version: 1.0.0 The skill is a legitimate utility for validating ESLint v9+ flat configuration files exported as JSON. The Python script `scripts/eslint_flat_config_validator.py` uses only standard libraries to perform structural and rule-based checks, with no evidence of network access, shell execution, or data exfiltration. The instructions in `SKILL.md` are consistent with the tool's purpose and do not contain any prompt injection or malicious directives.
能力评估
Purpose & Capability
Name/description match the included Python validator. The skill requires no extra binaries, env vars, or unrelated permissions; the provided script and SKILL.md behavior are coherent with an ESLint flat-config validator.
Instruction Scope
SKILL.md instructs users to export their eslint.config.js to JSON using a Node import, then run the included Python script to validate that JSON. The Python script appears to only read the provided JSON and run static checks (no network, subprocess, or extraneous file reads). Caveat: the node export command will execute the user's eslint.config.js (this is necessary to obtain the config object) so that step can run arbitrary JS present in the config file; this is expected but worth noting.
Install Mechanism
No install spec (instruction-only). The package includes a single Python script that uses only the stdlib; there are no downloads, external package installs, or archive extraction instructions.
Credentials
The skill requests no credentials or env vars and the validator script doesn't appear to read environment secrets. The only proportionality concern is that exporting the config via the recommended node import will execute eslint.config.js — that execution could access env vars or perform side effects if the config contains code. This is an inherent consequence of evaluating JS config files, not a behavior introduced by the skill itself.
Persistence & Privilege
The skill is not always:true, does not persist or modify other agent/system settings, and does not request elevated privileges or long-lived presence.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install eslint-flat-config-validator
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /eslint-flat-config-validator 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release
元数据
Slug eslint-flat-config-validator
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

ESLint Flat Config Validator 是什么?

Validate ESLint v9+ flat config files (JSON-exported) for structural correctness, language options, rules configuration, plugin hygiene, file patterns, and b... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 69 次。

如何安装 ESLint Flat Config Validator?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install eslint-flat-config-validator」即可一键安装,无需额外配置。

ESLint Flat Config Validator 是免费的吗?

是的,ESLint Flat Config Validator 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

ESLint Flat Config Validator 支持哪些平台?

ESLint Flat Config Validator 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 ESLint Flat Config Validator?

由 charlie-morrison(@charlie-morrison)开发并维护,当前版本 v1.0.0。

💬 留言讨论