Files
holocron/docs/adr/0007-provider-adapters-as-symlinks.md

1.3 KiB

Provider skill adapters are symlinks, not copies

Provider skill adapters — the mechanism that makes ~/.agents/skills/ visible to a provider that reads a different path — are implemented as symlinks, not file copies. This is a deliberate exception to ADR-0002 (copy-not-symlink), which applies to content files. Adapters are infrastructure, not content.

Why symlinks here: a provider adapter has no content of its own — it is purely a pointer to the canonical location. Copying would create a second source of truth and require install.sh to keep two directories in sync; any drift between them would be a silent bug. A symlink makes the relationship explicit and eliminates the sync problem entirely.

Why ADR-0002 still holds for content: ADR-0002's concern is that symlinks break if this repo moves. Provider adapters point to ~/.agents/skills/, not into this repo — they survive repo relocation without modification.

Each provider that cannot read ~/.agents/skills/ natively declares its adapter path in providers/<name>/provider-manifest.sh. install.sh discovers all provider manifests and creates the symlinks. A provider that reads ~/.agents/skills/ natively needs no entry. If the adapter target already exists as a real directory, install.sh emits a warning and leaves it intact rather than destroying user data.