Rules / Format and vendor rules

missing-frontmatter

A file that needs frontmatter has none.

error by default Format and vendor rules Inline suppression allowed

Source: Claude Code docs: Skills (code.claude.com), read 14 October 2026.

On GitHub: the rule doc and the tests.

All rules73

What it catches#

A file that needs frontmatter has none.

A file that tools only use through its frontmatter and has none: a SKILL.md, a Claude Code subagent in .claude/agents/, a Cursor .mdc rule, or a memory topic file. The severity depends on what the file loses: error for skills and subagents, warning for Cursor rules (they still work when @-mentioned), note for memory topics.

Why it matters#

Skills and subagents need name and description to be listed; Cursor rules need it to know when to apply. Without it the file is skipped or only used when mentioned by hand.

Bad example#

# Database migrations

When the user asks for a schema change:

1. Write the migration in `db/migrations/`.
2. Run `make migrate-dry-run` and show the plan.

Saved as .claude/skills/db-migrate/SKILL.md. Claude Code lists it under the folder name with "Database migrations" as its description, which is too little to pick it for a request like "add a column to users". Codex, Cursor, Copilot and Gemini CLI require name and description and skip the file.

Good example#

---
name: db-migrate
description: Write and dry-run a database migration. Use when asked to add, rename or drop a column or table.
---

# Database migrations

When the user asks for a schema change:

1. Write the migration in `db/migrations/`.
2. Run `make migrate-dry-run` and show the plan.

How to fix#

Add a --- block on line 1. Skills and subagents need name and description. A Cursor rule needs alwaysApply: true, globs or description to say when it applies. A memory topic file usually carries name, description and type.

Suppress or configure#

For one finding, put a comment on the line above it. The reason after -- is optional but worth writing:

<!-- asitis-disable-next-line missing-frontmatter -- why this one is fine -->

For a whole file:

<!-- asitis-disable-file missing-frontmatter -- why this file is an exception -->

For every file, turn it off or change its severity in .asitisrc.json:

{ "rules": { "missing-frontmatter": "off" } }

A .asitisrc.json overrides entry limits a change to some paths, and a baseline (asitis lint --format json --write-baseline) accepts today's findings so only new ones fail the build.

Source#

Claude Code docs: Skills, read on 14 October 2026.

This page is generated from the plugin's rule registry. Edit it on GitHub. False positive? Open an issue with the line it fired on.