Files
holocron/docs/adr/0009-agent-audit-field-inventory-reference.md
Defame1297 05bb9d6e9f docs(adr): triage, rewrite, and renumber ADRs for clean slate
Complete ADR refactoring for issue #15:

## Changes

1. **Triage archival** — deleted chunk-era ADRs (0001–0003, 0006–0011, 0013); kept active decisions (0004, 0005, 0012, 0014+)
2. **ADR-0004 rewrite** — now reflects plugin-based skill distribution (`plugins/<name>/skills/` + `claude plugin install`) instead of monolithic `.agents/skills/` deployment
3. **Renumber to 0001–0009** — sequential clean slate after archival; all cross-references updated
4. **Content audit** — verified all 9 remaining ADRs for alignment with plugin model, removed stale chunk/deployment language

Kept ADRs: 0001–0009
- 0001: Skills distributed via plugins
- 0002: Two-tier CLAUDE.md (always-on + on-demand)
- 0003: AGENTS.md as provider-agnostic entry point
- 0004: INFO finding level in skill-audit
- 0005: agent-author dual provider scaffold
- 0006: Plugin version parity (version in both manifests)
- 0007: Gitea as exclusive issue tracker
- 0008: agent-audit single-file invocation
- 0009: agent-audit field inventory reference

All decisions are active and aligned with current repository state (marketplace/plugin model).

Closes #15 (ADR section of acceptance criteria)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-07-04 17:18:04 +00:00

1.7 KiB

agent-audit reads field lists from a reference file, not hardcoded script arrays

agent-audit's validate.sh checks for Claude Code-only fields in Copilot files and silently-ignored fields in plugin agents. Rather than hardcoding those field lists in the script, the script reads references/field-inventory.md at runtime. This keeps field list maintenance decoupled from script logic and preserves a provenance chain back to the research corpus that sourced the lists.

Considered options

Hardcode in validate.sh (rejected) — field lists live as literal arrays in the bash/python script. Rejected because: (1) the lists came from research docs (claude-code-plugins/agent-definition.md and github-copilot-plugins/agent-definition.md) and should maintain a provenance chain back to those sources via source_keys frontmatter; (2) both provider APIs evolve — updating a structured markdown file is lower friction than editing a script and less likely to introduce bugs; (3) it breaks the bidirectional reference principle already established for this repo, where research-derived content carries explicit source attribution.

Consequences

  • validate.sh must parse references/field-inventory.md to extract field lists — the file format must be machine-parseable (section headings the script can grep, or a simple list structure).
  • field-inventory.md carries source_keys frontmatter referencing claude-code-plugins-docs and github-custom-agents-configuration slugs.
  • The script exits with a clear error if references/field-inventory.md is not found — fail-fast, not silent.
  • Field list updates (new provider field, deprecated field) require only editing field-inventory.md; no script change needed.