agent-hooks-invalid-schema
Hook configuration in agents.json violates schema requirements
$ npx -y skills add pdugan20/claudelint --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Hook configuration in agents.json violates schema requirements
Agent definition
agent-hooks-invalid-schema.mddescription: "Hook configuration in agents.json violates schema requirements"
agent-hooks-invalid-schema
<RuleHeader description="Hook configuration in agents.json violates schema requirements" severity="error" :fixable="false" :configurable="false" category="Agents" />
Rule Details
This rule checks that hooks declared in agents.json have the correct structure and all required fields. Hook objects must include valid event names (e.g., PreToolUse, PostToolUse, SessionStart, TaskCompleted) and properly structured matchers. Validation is performed by AgentsValidator.validateFrontmatter() using the shared validateSettingsHooks() utility. Invalid hook schemas cause runtime failures when the agent framework attempts to register event handlers.
Incorrect
Hook with missing required command field
{
"hooks": {
"PreToolUse": [
{ "matcher": "Bash" }
]
}
}Hook with invalid event name
{
"hooks": {
"OnStart": [
{ "matcher": ".*", "command": "echo hi" }
]
}
}Correct
Properly structured hook with all required fields
{
"hooks": {
"PreToolUse": [
{ "matcher": "Bash", "command": "echo pre-check" }
]
}
}How To Fix
Ensure each hook entry has a valid event name key (PreToolUse, PostToolUse, PostToolUseFailure, PermissionRequest, UserPromptSubmit, Notification, Stop, SubagentStart, SubagentStop, PreCompact, SessionStart, SessionEnd, TeammateIdle, or TaskCompleted) and that each matcher object includes the required fields.
Options
This rule does not have any configuration options.
Related Rules
- [`agent-hooks`](/rules/agents/agent-hooks)
- [`hooks-invalid-event`](/rules/hooks/hooks-invalid-event)
Resources
- [Rule Implementation](https://github.com/pdugan20/claudelint/blob/main/src/rules/agents/agent-hooks-invalid-schema.ts)
- [Rule Tests](https://github.com/pdugan20/claudelint/blob/main/tests/rules/agents/agent-hooks-invalid-schema.test.ts)
Version
Available since: v0.2.0
Read more
description: "Hook configuration in agents.json violates schema requirements"
agent-hooks-invalid-schema
<RuleHeader description="Hook configuration in agents.json violates schema requirements" severity="error" :fixable="false" :configurable="false" category="Agents" />
Rule Details
This rule checks that hooks declared in agents.json have the correct structure and all required fields. Hook objects must include valid event names (e.g., PreToolUse, PostToolUse, SessionStart, TaskCompleted) and properly structured matchers. Validation is performed by AgentsValidator.validateFrontmatter() using the shared validateSettingsHooks() utility. Invalid hook schemas cause runtime failures when the agent framework attempts to register event handlers.
Incorrect
Hook with missing required command field
{
"hooks": {
"PreToolUse": [
{ "matcher": "Bash" }
]
}
}Hook with invalid event name
{
"hooks": {
"OnStart": [
{ "matcher": ".*", "command": "echo hi" }
]
}
}Correct
Properly structured hook with all required fields
{
"hooks": {
"PreToolUse": [
{ "matcher": "Bash", "command": "echo pre-check" }
]
}
}How To Fix
Ensure each hook entry has a valid event name key (PreToolUse, PostToolUse, PostToolUseFailure, PermissionRequest, UserPromptSubmit, Notification, Stop, SubagentStart, SubagentStop, PreCompact, SessionStart, SessionEnd, TeammateIdle, or TaskCompleted) and that each matcher object includes the required fields.
Options
This rule does not have any configuration options.
Related Rules
- [`agent-hooks`](/rules/agents/agent-hooks)
- [`hooks-invalid-event`](/rules/hooks/hooks-invalid-event)
Resources
- [Rule Implementation](https://github.com/pdugan20/claudelint/blob/main/src/rules/agents/agent-hooks-invalid-schema.ts)
- [Rule Tests](https://github.com/pdugan20/claudelint/blob/main/tests/rules/agents/agent-hooks-invalid-schema.test.ts)
Version
Available since: v0.2.0
A linter for Claude Code projects. Validates CLAUDE.md files, skills, settings, hooks, MCP servers, plugins, and more.
Repo: pdugan20/claudelint
Other agents on claudelint.
- claude-md-optimizer
Use this agent when the user wants to autonomously validate and optimize their CLAUDE.md files. This agent runs claudelint validation, analyzes results, and makes targeted improvements to reduce file size, fix import issues, remove generic content, and improve organization.
Open agent - agent-body-too-short
Agent body content should meet minimum length requirements
Open agent - agent-description
Agent description must be at least 10 characters
Open agent - agent-disallowed-tools
Agent disallowedTools must be an array of tool names
Open agent - agent-events
Agent events must be an array with maximum 3 event names
Open agent - agent-hooks
Agent hooks must be an object with event name keys
Open agent

