agentleFS
claude-worldclaude-world/director-mode-lite/skills/agent-check/SKILL.md

agent-check

Skill80 starsChanged 8 months agoMITView on GitHub

Validate custom agent file format and structure. Use after creating or editing an agent, before committing agent changes, or when an agent fails to load.

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 0 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Add missing color field (default: cyan)

    line 147
  2. Very specific:

    Add missing model field (default: inherit)

    line 148
  3. Very specific:

    Remove plugin-ignored fields (hooks, mcpServers, permissionMode, initialPrompt) or flag for review

    line 149
  4. Very specific:

    Remove forkContext and other unknown fields

    line 150

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Agent File Validator

Validate agent files in .claude/agents/ for correct format against the official Claude Code spec (plus Director Mode conventions).


Validation Target

  • With argument: validate specific file
  • Without: validate all .claude/agents/*.md

Required Frontmatter

---
name: agent-name          # Required: lowercase, hyphenated, 3-50 chars
description: >            # Required: 10-5000 chars, include triggering conditions + <example> blocks
  Use this agent when [conditions]. Examples:
  <example>
  Context: [situation]
  user: "[request]"
  assistant: "[response using this agent]"
  </example>
color: cyan               # Required by Director Mode convention (CI-enforced); OPTIONAL per official spec
model: sonnet             # Required by Director Mode convention (CI-enforced); OPTIONAL per official spec.
                          #   Valid: fable, opus, sonnet, haiku, inherit, default, best, sonnet[1m], opus[1m]
                          #   (or a full model ID). inherit is the recommended default. NOT opusplan.
effort: medium            # Optional: low, medium, high, xhigh, max
tools:                    # Optional: YAML list (omit = all tools available)
  - Read
  - Write
  - Grep
disallowedTools:          # Optional: explicit tool blocking
  - NotebookEdit
maxTurns: 20              # Optional: max agentic turns (positive integer)
skills:                    # Optional: preloaded skill names (list, at most 32)
  - linked-skill
memory: project            # Optional: one of user, project, local
background: false          # Optional: true keeps the agent in the background (boolean)
isolation: worktree        # Optional: run the agent in an isolated git worktree
omitClaudeMd: false        # Optional (2.1.271+): true starts without CLAUDE.md files
autoCompactWindow: 200000  # Optional (2.1.296+): integer, 100000-1000000
---

Valid Tools

Read, Write, Edit, Bash, Grep, Glob, Agent (Task = legacy alias),
Skill, WebFetch, WebSearch, TodoWrite, NotebookEdit, AskUserQuestion
(TodoWrite is only offered on older models unless CLAUDE_CODE_ENABLE_TODO_TOOLS=1;
list an MCP server as mcp__<whole server name>__*)

Valid Colors

red, blue, green, yellow, purple, orange, pink, cyan

Valid Models

sonnet, opus, haiku, fable, inherit, sonnet[1m], opus[1m], or a full model ID
(claude-opus-5-5). inherit recommended. Not default, best, or opusplan (/model values).

Ignored for plugin subagents (WARN if present)

hooks           # Honored in .claude/agents/; ignored when loaded from a plugin
mcpServers      # Honored in .claude/agents/; ignored when loaded from a plugin
permissionMode  # Honored in .claude/agents/; ignored when loaded from a plugin
initialPrompt   # Main-session agents only; ignored when loaded from a plugin

Director Mode ships its agents as a plugin too, so its catalog omits them. forkContext is not an official field: flag it as unknown.


Validation Checklist

Required Fields

  • name exists (lowercase, hyphenated; official limit 256 chars, no :, no leading -)
  • description exists (10-5000 chars, recommend 200-1000 with <example> blocks)
  • color is set (valid color name) — required by Director Mode convention, optional per spec
  • model is set (valid value below) — required by Director Mode convention, optional per spec

Optional Fields (official)

  • tools are valid tool names, YAML list format (omit = all tools available)
  • disallowedTools are valid tool names
  • effort is one of: low, medium, high, xhigh, max
  • maxTurns is a positive integer
  • skills is a list of skill names (references existing skills)
  • memory is one of: user, project, local
  • background and omitClaudeMd are boolean
  • isolation is worktree
  • autoCompactWindow is an integer from 100000 to 1000000
  • experimental holds only cacheTtl: 5m | 1h
  • model is valid: sonnet, opus, haiku, fable, inherit, sonnet[1m], opus[1m], or a full model ID

Plugin-Ignored / Unknown Fields (WARN, do not silently accept)

  • Warn on hooks, mcpServers, permissionMode, initialPrompt — ignored for plugin subagents
  • Flag any other field outside the official list (for example forkContext): Claude Code ignores it silently

Content Structure

  • # Agent Name heading
  • ## Activation section
  • Process/workflow description
  • Output format definition

Format Rules

  • tools uses YAML list format (not [Read, Write] bracket array) — Director Mode / CI house rule
  • No duplicate tools in list
  • All tools are valid tool names

Output Format

## Agent Validation Report

### Files Checked
| File | Status | Issues |
|------|--------|--------|
| code-reviewer.md | OK | None |
| my-agent.md | WARN | Missing color, model |

### Summary
- Total: [N]
- Valid: [N]
- Needs fixes: [N]

Auto-Fix

  • Convert bracket array tools to YAML list format
  • Convert string skills to YAML list
  • Add missing color field (default: cyan)
  • Add missing model field (default: inherit)
  • Remove plugin-ignored fields (hooks, mcpServers, permissionMode, initialPrompt) or flag for review
  • Remove forkContext and other unknown fields
  • Replace default, best, or opusplan model values with a supported value
  • Remove invalid tools
  • Add recommended sections

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.