Update registry RFDs to match current plan - #272
Merged
Conversation
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.
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 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.