Skip to content

docs(adr): record why the skill supply chain stays deferred - #84

Merged
kemalelmizan merged 1 commit into
mainfrom
docs/adr-skill-supply-chain
Oct 19, 2026
Merged

kemalelmizan merged 1 commit into
mainfrom
docs/adr-skill-supply-chain

Conversation

@kemalelmizan

Copy link
Copy Markdown
Contributor

What

The pros and cons of fetching skills existed only in conversation. This records them as an ADR — docs/adr/004-skill-supply-chain.md — and points the catalogue and the gap backlog at it, so #78 stops reading like planned work.

The decision has settled, which is what makes it an ADR rather than a note.

The decision

This host does not fetch skills. It searches directories the operator supplies, and sharing is by declaration: a git submodule, a symlink, or an npm package — all of which end in a directory --skills already reads. No new code anywhere.

The catch, recorded

Also recorded

Alternatives considered (a git-pinned fetch, an HTTP index with per-file hashes, fetch-latest), and the conditions for revisiting with a preference order: npm package → submodule → bespoke fetcher, and fetched ⇒ quarantined regardless of directory if it ever happens.

A collision fixed on the way

Every existing bare "ADR-004" in src/ and docs/architecture.md means the sibling adaptive-mcp repo's ADR-004 (the host-versus-library split), so this repo's next free number lands on the same identifier. The ADR index now says so once, rather than leaving a dozen references ambiguous.

Docs-only: pnpm test 371 passed / 6 skipped, and the docs guards (relative links resolve, cited src/ paths exist) pass.

The pros and cons of fetching skills lived only in a conversation. This puts them
where they will be found: an ADR, because the decision has settled — this host does
not fetch, and sharing is by declaration.

The reasoning in one line: fetching would make content arrive without the operator
act that the *declared* trust default rests on (`src/skill-trust.ts` trusts the
operator's own trees precisely because nothing gets there without them), so a fetcher
is not an added feature but a redesign of a decision made a day earlier. Two smaller
findings are recorded with it: a hash pinned on first fetch defends against silent
change but not against a bad first version, and the "lockfile" the issue asks for is
mostly `skills.trust.json` already — only a *source* is missing, and a source has no
use without a fetcher.

The catalogue and the gap backlog now point at it instead of implying planned work.

One collision fixed on the way: every existing bare "ADR-004" in `src/` and
`docs/architecture.md` means the **sibling** `adaptive-mcp` repo's ADR-004 (the
host-versus-library split), so this repo's first free number lands on the same
identifier. The ADR index says so once, rather than leaving twelve references
ambiguous.
@kemalelmizan
kemalelmizan merged commit 9e71327 into main Oct 19, 2026
2 checks passed
@kemalelmizan
kemalelmizan deleted the docs/adr-skill-supply-chain branch October 19, 2026 04:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant