skill_lint
Static lint of an agent instruction file: an Agent Skills SKILL.md (YAML frontmatter plus markdown body) or an AGENTS.md / CLAUDE.md style file. For skills, checks the frontmatter against the Agent Skills specification: name present, lowercase-hyphenated, at most 64 characters and free of reserved words; description present, at most 1,024 characters, with no XML tags, written in the third person and saying when to use the skill; license, compatibility, metadata and allowed-tools typed correctly; unknown keys. For both kinds, flags an empty or over-long body (over 500 lines or about 5,000 tokens), skipped heading levels, Windows backslash paths, referenced files missing from an optional sibling file list, references nested more than one folder deep, hidden or bidi characters, credentials (reported by pattern name and line, never echoed), and unsafe instructions such as curl piped to a shell, rm -rf on root or home, git --no-verify, --dangerously-* flags, bypassing permission prompts, sending ~/.ssh, ~/.aws or .env to a URL, and prompt-injection phrases; a match inside a negated or quoted sentence is downgraded to a warning. Text up to 300 KB, 512 KB request. The text is never executed, links are never fetched and referenced files are never read. Deterministic, no LLM.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"text": "<text>"
},
"name": "skill_lint"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | "skill" for a SKILL.md, "agents" for AGENTS.md / CLAUDE.md. "auto" treats the text as a skill when it opens with frontmatter containing name: or description:. | auto |
| text | Yes | The full file content. Max 300 KB (UTF-8). | |
| files | No | Optional: relative paths of the other files in the skill folder, e.g. ["scripts/fill.py", "references/api.md"]. Only the names are compared against references in the text; nothing is read. Omit to skip the missing-file check. |