Repository navigation
docs(adr): record why the skill supply chain stays deferred - #84
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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--skillsalready reads. No new code anywhere.The catch, recorded
pnpm installruns code; a skill persuades a model that already holds your tools. Containment (fix(skills): make the read confinement real — a symlink could leave the directory #81) bounds what a read can reach, not what the model then does.skills.trust.jsonalready pins a content hash per skill; only a source is missing, and a source is useless without a fetcher.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/anddocs/architecture.mdmeans the siblingadaptive-mcprepo'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 test371 passed / 6 skipped, and the docs guards (relative links resolve, citedsrc/paths exist) pass.