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
warningnumberYes—Warning threshold
errornumberYes—Error 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
warningnumberYes—Warning threshold for frontmatter
errornumberYes—Error 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
warningnumberYes—Warning threshold for aggregate frontmatter
errornumberYes—Error 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.