Skip to content

Update registry RFDs to match current plan - #272

Merged
jackh726 merged 5 commits into
mainfrom
registry-rfd-update
Aug 13, 2026
Merged

Update registry RFDs to match current plan#272
jackh726 merged 5 commits into
mainfrom
registry-rfd-update

Conversation

@jackh726

@jackh726 jackh726 commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

This first merges in #257, #258, and #259. Then, it subsequently updates all the RFD details from those and the main one with the current "ideal" state from all my implementation work (landed and expected).

Disclosure questions

AI disclosure.

  • The AI tool authored large parts of the code

nikomatsakis and others added 5 commits August 4, 2026 19:32
Defines what a plugin is from scratch: every directory is a valid plugin,
Symposium.toml structure, defaults (skills/ and .agents/skills/ discovery),
predicates (workspace(), used(), depends-on(), shell(), etc.), the
[depends-on] shorthand, chained plugins, and installed vs. active states.

Co-authored-by: Claude <claude@anthropic.com>
PM interface: JSON-RPC over stdio protocol, package-id tuples, four
operations (resolve/search/fetch/list-deps), error handling, cache layout.
Only path PM is built-in; cargo/git/recommendations are separate binaries.

Cargo PM: resolve schema using cargo's dependency format, fetch via cargo
toolchain, list-deps from Cargo.lock, plugin detection in crates.

Discovery & sync: the two-phase algorithm (list-deps on all PMs, then
search on all PMs for each dep), prompt UX, auto-install config,
hook-triggered notification, debouncing.

Co-authored-by: Claude <claude@anthropic.com>
Covers symposium use/remove/status commands, config file format
([[plugins]] and [[workspace-plugins]] with source.<pm> syntax),
global vs. workspace-local scoping (local installs don't modify
workspace files), version updates via sync, and interaction with
discovery.

Co-authored-by: Claude <claude@anthropic.com>
…o work

The sub-RFDs describe several things differently from how the design has
settled. This brings them in line, so the documents read as the design rather
than as a proposal with amendments.

The substantive changes:

- A PM answers with a plugin *manifest*, not just a directory. That is what
  lets it synthesize a plugin for a package with no manifest, or translate one
  from another ecosystem's format, without Symposium learning that ecosystem's
  conventions.
- `resolve` folds into `load_plugin`. A `[[plugins]] source.cargo` reference is
  resolved by loading the named id; a separate lowering step bought nothing.
- `search` takes a query string rather than a package-id tuple, since a search
  is by definition not yet an identity.
- Each PM owns its own cache and reports where content landed, rather than
  Symposium handing out destination slots.
- `path` and `git` are built in, since both only read local directories.
- Trust and validation are Symposium's, keyed on the instance an offer came
  from. A PM cannot make itself trusted by what it returns.
- The cargo PM reports where the workspace is, never what it contains, because
  the workspace is a trust root whose policy core owns.

Also drops progress annotations. An RFD describes the design; what exists is
git's business, and status in a design document goes stale immediately.
@jackh726
jackh726 added this pull request to the merge queue Aug 13, 2026
Merged via the queue into main with commit 7485089 Aug 13, 2026
7 checks passed
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.

2 participants