Fixed
- pre-commit hooks skipped nearly every file agnix validates
(#1444,
#1445). Thefiles:pattern
in.pre-commit-hooks.yamlwas^(...)$-anchored with root-level entries, so
SKILL\.mdmatched only a repository-root SKILL.md - a skill at its normal
.claude/skills/<name>/SKILL.mdlocation, a nestedAGENTS.md, a plugin
manifest, or a scoped Copilot instruction file never reached agnix, and the
hook reported Passed with nothing validated. The pattern now covers
every tool-scoped path shapefile_types/detection.rsrecognizes: the
filename-based entries (SKILL.md, theCLAUDE.md/AGENTS.mdvariants,
GEMINI.md,plugin.json,mcp.json,*.mcp.json,mcp-*.json,
opencode.json{,c},gemini-extension.json, the.cursorrules,
.clinerules,.roorules/.roomodes/.rooignore, and.windsurfrules
legacy files) match at any depth via a shared(?:.*/)?prefix, and the
.claude,.github,.cursor,.codex,.gemini,.amp,.agents,
.roo,.windsurf, and.kirodirectory surfaces are enumerated -
including.cursor/rules/**/*.mdso CUR-020 can flag plain-markdown rules
Cursor silently ignores. Also covers plugin
hooks/hooks.jsonat any root, bareagents/directories (which detection
validates as agent configs,agents/README.mdincluded),.kiro/settings.json,
and the undottedcodex/requirements.tomlsystem surface - while deliberately
not matching.codex/requirements.toml, which Codex does not read. Verified
against the 149 concrete paths indetection.rs's own tests; the only
remaining exclusions are deliberate: detection's loose fallback arms outside a
tool directory (a baresettings.json,hooks.json,environment.json,
POWER.md, orrequirements.tomlanywhere), uppercase directory spellings,
and generic markdown. Verified end to end: a repo with a nested skill, a
package-level AGENTS.md, GEMINI.md, and a scoped instruction file - all
invisible to the old pattern - now produces their diagnostics through the
hook.