Skip to content

Introduce crates as plugins - #266

Merged
jackh726 merged 3 commits into
mainfrom
pm-crate-plugin
Jul 22, 2026
Merged

Introduce crates as plugins#266
jackh726 merged 3 commits into
mainfrom
pm-crate-plugin

Conversation

@jackh726

Copy link
Copy Markdown
Contributor

What does this PR do?

Part of the registry-centric plugins RFD.

  • Crates now load as first-class plugins via [[plugins]] chained references, built from [package.metadata.symposium] and/or SYMPOSIUM.toml merged over crate defaults, expanded recursively with cycle/diamond detection.
  • Retired source = "crate" skill groups and the crate-metadata redirect schema (replaced by the chained references above).
  • Custom predicates are now a boolean gate only; the SDK witness API is kept but marked FIXME for future plugin/component field-setting.
  • Simplified skill origin to a hash of the SKILL.md's on-disk path (removed SkillOrigin, OriginSeed, PluginSource::None; made canonical required).
  • Removed the vestigial ParsedPlugin.source_name field and the dead WORKSPACE_SOURCE_NAME const.
  • Updated design docs, references, and code comments to match.
Disclosure questions

AI disclosure.

  • The AI tool authored large parts of the code

jackh726 added 3 commits July 21, 2026 22:45
Retires source = "crate" skill groups and the crate-metadata redirect schema. A crate is now loaded as a first-class plugin from its [package.metadata.symposium] and/or SYMPOSIUM.toml, merged over the crate defaults by load_crate_manifest and reached through a [[plugins]] source.cargo chained reference; expansion recurses with hyphen/underscore-insensitive cycle and diamond detection. Custom predicates become a boolean gate only; the SDK witness API is kept but marked with a FIXME for future plugin/component field-setting. Refreshes the crate-author and predicate references.
Removes SkillOrigin, OriginSeed, and PluginSource::None, and makes ParsedPlugin.canonical required. A skill's install identity is now the hash of its on-disk SKILL.md path; canonical is used only to key chained-plugin cycle detection. Also drops the now-vestigial ParsedPlugin.source_name field and the dead WORKSPACE_SOURCE_NAME const, and brings the design docs and code comments in line with the new origin model.
@jackh726 jackh726 changed the title Pm crate plugin Introduce crates as plugins Jul 22, 2026
@jackh726
jackh726 added this pull request to the merge queue Jul 22, 2026
Merged via the queue into main with commit ff70fc9 Jul 22, 2026
7 checks passed
@jackh726
jackh726 deleted the pm-crate-plugin branch July 22, 2026 18:45
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