Files
holocron/docs/adr/0006-plugin-version-parity.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

904 B

version field is present in both plugin manifests

Each plugin has two manifests: plugin.json (Copilot CLI) and .claude-plugin/plugin.json (Claude Code). Both tools support a version field. Prior to this decision, only the CC manifest carried version; the Copilot manifest omitted it.

We now require version in both manifests, always identical. A reader of plugin.json alone should be able to determine the plugin version without consulting the CC manifest. The plugin-author skill enforces this invariant on every create, update, and release operation.

Considered options

CC-only version (rejected) — version only in .claude-plugin/plugin.json; Copilot derives version from the git tag. Rejected because it makes plugin.json incomplete as a standalone descriptor and creates a class of drift where the two manifests disagree on version without any tooling catching it.