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>
31 lines
1.7 KiB
Markdown
31 lines
1.7 KiB
Markdown
# 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.
|