github agent-sh/agnix v0.10.0

latest releases: v0.17.0, v0.16.6, v0.16.5...
one month ago

Performance

  • Auto-fix span finding - Replaced 8 dynamic Regex::new() calls with byte-level scanning in auto-fix helpers, eliminating regex compilation overhead entirely (closes #325)

Added

  • Website automation - generate-docs-rules.py now generates website/src/data/siteData.json with dynamic stats (rule count, category count, autofix count, tool list); landing page and JSON-LD import generated data instead of hardcoding; release.yml version-docs job auto-cuts versioned docs on release
  • GEMINI.md categorization - categorize_layer() now recognizes GEMINI.md and GEMINI.local.md files as LayerType::GeminiMd for accurate XP-006 layer categorization
  • Codex CLI support - 3 new validation rules (CDX-001, CDX-002, CDX-003) for .codex/config.toml configuration files
  • Cline support - 3 new validation rules (CLN-001, CLN-002, CLN-003) for .clinerules configuration
  • OpenCode support - 3 new validation rules (OC-001, OC-002, OC-003) for opencode.json configuration
  • GEMINI.md support - 3 new validation rules (GM-001, GM-002, GM-003) for GEMINI.md files
  • CC-HK-013: async field only valid on command hooks (error)
  • CC-HK-014: once field only meaningful in skill/agent frontmatter (warning)
  • CC-HK-015: model field only valid on prompt/agent hooks (warning)
  • CC-HK-016: Unknown hook type validation, recognizes agent type (error)
  • CC-HK-017: Prompt/agent hooks missing $ARGUMENTS reference (warning)
  • CC-HK-018: Matcher on UserPromptSubmit/Stop events silently ignored (info)
  • CC-AG-008: Validate memory scope is user, project, or local
  • CC-AG-009: Validate tool names in agent tools list
  • CC-AG-010: Validate tool names in agent disallowedTools list
  • CC-AG-011: Validate hooks object schema in agent frontmatter
  • CC-AG-012: Warn on permissionMode: bypassPermissions usage
  • CC-AG-013: Validate skill name format in agent skills array
  • MCP-009: Validate command is present for stdio MCP servers (HIGH)
  • MCP-010: Validate url is present for http/sse MCP servers (HIGH)
  • MCP-011: Validate MCP server type is one of stdio, http, sse (HIGH)
  • MCP-012: Warn when SSE transport is used (deprecated in favor of Streamable HTTP) with auto-fix (MEDIUM)
  • CC-SK-010: Validate hooks in skill frontmatter follow settings.json schema
  • CC-SK-011: Detect unreachable skills (user-invocable=false + disable-model-invocation=true)
  • CC-SK-012: Warn when argument-hint is set but body never references $ARGUMENTS
  • CC-SK-013: Warn when context=fork is used with reference-only content (no imperative verbs)
  • CC-SK-014: Validate disable-model-invocation is boolean, not string "true"
  • CC-SK-015: Validate user-invocable is boolean, not string "true"/"false"
  • CC-PL-007: Validate component paths are relative (no absolute paths or .. traversal) with safe auto-fix (HIGH)
  • CC-PL-008: Detect component paths pointing inside .claude-plugin/ directory (HIGH)
  • CC-PL-009: Validate author.name is non-empty when author object present (MEDIUM)
  • CC-PL-010: Validate homepage is a valid http/https URL when present (MEDIUM)
  • COP-005: Validate excludeAgent field contains valid agent identifiers
  • COP-006: Warn when global Copilot instruction file exceeds ~4000 characters
  • CUR-007: Warn when alwaysApply: true is set alongside globs (redundant) with safe auto-fix
  • CUR-008: Detect alwaysApply as quoted string instead of boolean (HIGH)
  • CUR-009: Warn when agent-requested rule has no description
  • CC-MEM-011: Validate .claude/rules frontmatter description field
  • CC-MEM-012: Validate .claude/rules frontmatter globs field format
  • Fix metadata (autofix, fix_safety) for all rules in rules.json
  • Fix metadata schema validation parity test
  • Autofix count parity test (rules.json vs VALIDATION-RULES.md)
  • Context-aware completions documented in all editor READMEs
  • --fix-safe flag documented in README.md usage section
  • [files] configuration section for custom file inclusion/exclusion patterns
    • include_as_memory glob patterns validate files as CLAUDE.md-like instruction files
    • include_as_generic glob patterns validate files as generic markdown
    • exclude glob patterns skip files from validation entirely
    • Priority: exclude > include_as_memory > include_as_generic > built-in detection

Changed

  • Actionable diagnostic suggestions - All parse error diagnostics now include actionable suggestions (AS-016, CC-HK-012, MCP-007, CC-AG-007, CC-PL-006, CDX-000, file-level errors); improved 4 generic suggestions with concrete guidance (MCP-003 lists valid JSON Schema types, MCP-006 warns about self-reported annotations, AGM-001/GM-001 specify common markdown issues)
  • Website landing page - Updated stats (145 rules, 2400+ tests, 10+ tools), added Cline/OpenCode/Gemini CLI/Roo Code/Kiro CLI to tools grid, visual redesign with Outfit font, syntax-highlighted terminal, scroll reveal animations, and open-ended "And many more" tool card
  • Auto-fix implementations added for 8 rules: CC-SK-011 (unsafe), CC-HK-013 (safe), CC-HK-015 (safe), CC-HK-018 (safe), CUR-008 (safe), COP-005 (unsafe), CC-AG-008 (unsafe), MCP-011 (unsafe)
  • Auto-fix pack 2: 8 additional rules with unsafe auto-fixes: CC-SK-005, CC-AG-012, CUR-002, COP-002, CDX-001, CDX-002, OC-001, CC-HK-016
  • Auto-fix table in VALIDATION-RULES.md expanded from 7 to 48 rules with safety classification
  • Auto-fixable count updated to 48 rules (33%)
  • Generated website rule pages now include Auto-Fix metadata
  • Website rules index table includes Auto-Fix column
  • generate-docs-rules.py renders fix metadata with strict validation
  • Collapsed nested if patterns using Rust let-chains (stable since 1.87), removing stale #[allow(clippy::collapsible_if)] annotations
  • Moved #[allow(dead_code)] from module-level to method-level in telemetry stub for precision

Don't miss a new agnix release

NewReleases is sending notifications on new releases.