Skip to content

Config Schema

Reference for .skills-lint.config.json.

Top-Level

FieldTypeRequiredDescription
patternsstring[]YesGlob patterns for skill files
rulesobjectYesRule config (see below)
overridesobject[]NoPer-file overrides (applies to token-limit only)
cachebooleanNoEnable token-count caching (default: true, see Caching)

rules.token-limit.models.<name>

Model name must be one of: gpt-5, gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-4, gpt-3.5-turbo.

FieldTypeRequiredDefaultDescription
warningnumberYesWarning threshold
errornumberYesError threshold
encodingstringNoAutoEncoding override

rules.frontmatter-limit (optional)

Counts tokens in just the YAML frontmatter of each file. Same models schema as token-limit — no per-file overrides.

rules.frontmatter-limit.models.<name>

Model name must be one of: gpt-5, gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-4, gpt-3.5-turbo.

FieldTypeRequiredDefaultDescription
warningnumberYesWarning threshold for frontmatter
errornumberYesError threshold for frontmatter
encodingstringNoAutoEncoding override

Omit the entire frontmatter-limit key to disable the rule. Files without frontmatter are skipped.

rules.skill-index-budget (optional)

Aggregates YAML frontmatter from all discovered SKILL.md files and checks the combined token count per model. Same schema as token-limit — no per-file overrides.

rules.skill-index-budget.models.<name>

Model name must be one of: gpt-5, gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-4, gpt-3.5-turbo.

FieldTypeRequiredDefaultDescription
warningnumberYesWarning threshold for aggregate frontmatter
errornumberYesError threshold for aggregate frontmatter
encodingstringNoAutoEncoding override

Omit the entire skill-index-budget key to disable the rule. Skipped when using --file.

rules.skill-structure (optional)

Validates the structure of each SKILL.md file: frontmatter presence, name and description fields, and non-empty body.

ValueBehavior
trueRule is enabled
false or absentRule is skipped

Runs in both aggregate and --file modes.

rules.unique-name (optional)

Checks that no two skill files share the same name in their frontmatter.

ValueBehavior
trueRule is enabled
false or absentRule is skipped

Skipped when using --file.

rules.unique-description (optional)

Checks that no two skill files share the same description in their frontmatter.

ValueBehavior
trueRule is enabled
false or absentRule is skipped

Skipped when using --file.

overrides[]

FieldTypeRequiredDescription
filesstring[]YesExact file paths
rulesobjectYesSame structure as top-level rules

Override fields are optional — unspecified fields inherit from global config.

Minimal

json
{
  "patterns": ["./skills/**/*.md"],
  "rules": {
    "token-limit": {
      "models": {
        "gpt-4o": { "warning": 8000, "error": 16000 }
      }
    }
  }
}

Full

json
{
  "patterns": ["./.github/**/SKILL.md"],
  "rules": {
    "token-limit": {
      "models": {
        "gpt-4o": { "warning": 8000, "error": 16000 },
        "gpt-4": { "warning": 2000, "error": 4000 }
      }
    },
    "frontmatter-limit": {
      "models": {
        "gpt-4o": { "warning": 1000, "error": 2000 },
        "gpt-4": { "warning": 500, "error": 1000 }
      }
    },
    "skill-index-budget": {
      "models": {
        "gpt-4o": { "warning": 2000, "error": 4000 },
        "gpt-4": { "warning": 1000, "error": 2000 }
      }
    },
    "skill-structure": true,
    "unique-name": true,
    "unique-description": true
  },
  "overrides": [
    {
      "files": [".github/skills/large-skill/SKILL.md"],
      "rules": {
        "token-limit": {
          "models": {
            "gpt-4o": { "warning": 16000, "error": 32000 }
          }
        }
      }
    }
  ]
}

Released under the MIT License.