agent-tools
Agent tools must be an array of tool names, cannot be used with disallowed-tools
Rule Details
This rule enforces two constraints on the tools field in agent markdown frontmatter. First, tools must be a valid array of strings representing tool names the agent is allowed to use. Second, tools and disallowedTools are mutually exclusive -- specifying both is an error. Array validation is delegated to AgentFrontmatterSchema.shape.tools, while cross-field validation uses AgentFrontmatterWithRefinements. This prevents conflicting tool access configurations.
Incorrect
Tools as a single string instead of array
---
name: code-agent
description: Writes and edits code
tools: Bash
---Both tools and disallowedTools specified
---
name: code-agent
description: Writes and edits code
tools:
- Bash
- Edit
disallowedTools:
- Write
---Correct
Tools as a valid array of tool names
---
name: code-agent
description: Writes and edits code
tools:
- Bash
- Edit
- Read
---Using disallowedTools alone (without tools)
---
name: safe-agent
description: Agent with restricted access
disallowedTools:
- Bash
---How To Fix
Ensure tools is a YAML array of strings. If you need to restrict certain tools, use either tools (allowlist) or disallowedTools (blocklist), but not both.
Options
This rule does not have any configuration options.
Related Rules
Resources
Version
Available since: v0.2.0