Nodemon Config Validator

Other

Validate nodemon config files (nodemon.json, .nodemonrc, package.json#nodemonConfig) for watch settings, ignore patterns, exec conflicts, and best practices. Use when validating Node.js development configs, auditing watch setups, or linting nodemon configuration.

Install

openclaw skills install nodemon-config-validator

Nodemon Config Validator

Validate nodemon.json, .nodemonrc, .nodemonrc.json, and package.json#nodemonConfig for watch performance issues, ignore patterns, exec conflicts, delay settings, and best practices. Supports text, JSON, and summary output formats with CI-friendly exit codes.

Commands

# Full validation (all 22+ rules)
python3 scripts/nodemon_config_validator.py validate nodemon.json

# Quick syntax-only check (structure rules only)
python3 scripts/nodemon_config_validator.py check .nodemonrc

# Explain config in human-readable form
python3 scripts/nodemon_config_validator.py explain nodemon.json

# Suggest improvements
python3 scripts/nodemon_config_validator.py suggest package.json

# JSON output (CI-friendly)
python3 scripts/nodemon_config_validator.py validate nodemon.json --format json

# Summary only (pass/fail + counts)
python3 scripts/nodemon_config_validator.py validate nodemon.json --format summary

# Strict mode (warnings become errors)
python3 scripts/nodemon_config_validator.py validate nodemon.json --strict

Rules (22+)

#CategorySeverityRule
S1StructureErrorFile not found or unreadable
S2StructureErrorEmpty config
S3StructureErrorInvalid JSON syntax
S4StructureWarningUnknown top-level keys
S5StructureWarningBoth nodemon.json and .nodemonrc present (conflict)
W1WatchWarningEmpty watch array
W2WatchInfoWatch path uses absolute path (portability)
W3WatchErrorWatching node_modules (severe performance issue)
W4WatchInfoNo watch or ext specified (relying on defaults)
E1ExtensionsWarningEmpty ext string
E2ExtensionsWarningWatching too many extensions (>10, performance)
E3ExtensionsInfoMissing common extensions for detected project type
I1IgnoreWarningEmpty ignore array
I2IgnoreInfonode_modules not explicitly ignored
I3IgnoreWarningOverly broad ignore patterns (e.g. "*")
X1ExecWarningexec command with shell injection risk
X2ExecWarningBoth exec and script specified (conflict)
X3ExecInfoexecMap with unusual/unknown extension
D1DelayWarningDelay too low (<100ms, rapid restarts)
D2DelayWarningDelay too high (>10000ms, slow feedback)
B1Best PracticesInfoverbose not set (useful for debugging)
B2Best PracticesWarningNo ignore patterns at all

Output Formats

  • text (default): Human-readable with severity icons
  • json: Machine-parseable JSON array of findings
  • summary: Pass/fail with error/warning/info counts

Exit Codes

  • 0: No errors (warnings/infos only or clean)
  • 1: One or more errors found
  • 2: File not found or invalid input

Requirements

  • Python 3.8+
  • No external dependencies (pure stdlib)