I’ve been using Claude Code daily for months and kept running into the same problem: my skills wouldn’t trigger, my hooks would silently fail, and I’d spend 20 minutes debugging before realizing it was a config issue. Some examples of things that bit me: Named a skill Review-Code instead of review-code . It never triggered. Zero error messages. Vercel’s research actually found skills invoke at 0% without correct syntax. Put a prompt hook on PreToolUse instead of Stop . Prompt hooks only work on Stop and SubagentStop events. Again, no error - just doesn’t work. Had “Be helpful and accurate” in my CLAUDE.md. Turns out this is wasted context - Claude already knows this, and generic instructions can actually decrease output quality. Forgot disable-model-invocation: true on a deploy skill. Claude could auto-trigger a deployment without me asking. So I built agnix
- a linter specifically for agent config files. It validates CLAUDE.md, SKILL.md, hooks (settings.json), agents, plugins, and MCP configs. 156 rules total, all derived from the official Claude Code docs, the Agent Skills spec, and prompt engineering research. Quick demo: $ npx agnix . CLAUDE.md:15:1 warning: Generic instruction ‘Be helpful and accurate’ [fixable] .claude/skills/review/SKILL.md:3:1 error: Invalid name ‘Review-Code’ [fixable] It also auto-fixes most issues: npx agnix --fix . The rules cover stuff like: Invalid hook events, missing matchers, script files that don’t exist Skill names, descriptions, dangerous auto-invocation patterns (like a deploy skill missing disable-model-invocation: true ) XML tag balance in your CLAUDE.md Plugin manifest structure It also validates cross-tool configs if your repo has Cursor rules, Copilot instructions, or AGENTS.md alongside your CLAUDE.md. This is where the really subtle bugs live - your CLAUDE.md says npm test but your AGENTS.md says pnpm test , or your Cursor rules allow unrestricted Bash while your CLAUDE.md restricts it. Good luck knowing which one actually takes precedence when you’re switching between tools. It’s open source (MIT/Apache-2.0), written in Rust, and has VS Code + JetBrains + Neovim + Zed extensions. Also works as a GitHub Action for CI. If you’re using Claude Code with any custom skills or hooks, try npx agnix . in your project and see what it finds. Especially if you also use Cursor or Copilot in the same repo - the cross-tool conflicts are the ones you’d never think to look for. GitHub: https://github.com/avifenesh/agnix submitted by /u/code_things
Originally posted by u/code_things on r/ClaudeCode
