Skip to content

docs(rfcs): add RFC 0001 — plugin architecture for custom agents#105

Merged
PAMulligan merged 1 commit into
mainfrom
79-rfc-plugin-architecture-for-custom-agents-v200
Jun 20, 2026
Merged

docs(rfcs): add RFC 0001 — plugin architecture for custom agents#105
PAMulligan merged 1 commit into
mainfrom
79-rfc-plugin-architecture-for-custom-agents-v200

Conversation

@PAMulligan

Copy link
Copy Markdown
Collaborator

Summary

RFC 0001 — the design doc for the v2.0.0 plugin architecture for custom agents (#79), the milestone's highest-risk item. Per the issue, this is committed before implementation and must be reviewed and accepted first.

docs/rfcs/ is established here (this is the first RFC), with a short process + index README.

Grounded in what already exists

Aurelius already ships a v1 local plugin system (manifest schema, four CLIs, transitive semver dependency resolution, management-lifecycle hooks, installed.json) — see docs/guides/agent-plugins.md. It deliberately deferred the riskiest concerns as non-goals: sandboxing, distribution, runtime hooks. The RFC ratifies that foundation and designs the v2 evolution rather than reinventing it.

What the RFC covers (acceptance criteria)

  • Committed under docs/rfcs/0001-plugin-architecture.md
  • Plugin discovery — local scan, installed-state provenance, remote sources (git/tarball/registry), a lockfile for reproducible offline installs
  • Manifest format — reaffirms the strict v1 schema and adds optional, backward-compatible v2 fields (compatibility/engines, capabilities, integrity, signature, distribution metadata)
  • Lifecycle hooks — separates management hooks (exist) from harness settings.json hooks (operator-consented); no invocation-time hooks (Claude Code can't fire them)
  • Sandboxing — a default-deny trust model (untrusted / trusted / verified): untrusted plugins run no install hooks, get tools intersected against an allow-list, and cannot use bypassPermissions; integrity via sha256, signatures for the verified tier; honest about bash not being a real sandbox
  • Versioning — semver + framework compatibility range; single installed version
  • Distribution — phased local → remote (mandatory integrity) → curated registry (publish + signing)
  • Compatibility with the built-in agents — shared .claude/agents/ namespace, reserved built-in names / no silent shadowing, built-ins as versioned dependencies via a generated agents.catalog.json, identical frontmatter contract; the model is count-independent (the "48 vs 56" delta is irrelevant)

Plus security-threats table, a phased migration that never breaks v1 plugins, alternatives, and open questions for reviewers.

Status

Proposed. Acceptance is recorded in §14 on maintainer approval; no implementation beyond the shipped v1 tooling should merge until then. This satisfies "reviewed and accepted before any implementation work starts."

Note: the issue references the "built-in 48 agents"; the catalog is 56 today. The RFC's compatibility model keys off agent names + versions, not a count, and notes the delta explicitly.

Refs #79

The v2.0.0 plugin architecture is the highest-risk milestone item, so this RFC
designs it before implementation (#79).

- docs/rfcs/0001-plugin-architecture.md: discovery, manifest, lifecycle hooks,
  sandboxing/trust model, versioning, and distribution, grounded in the shipped
  v1 local system (manifest schema + four CLIs)
- Defines compatibility with the built-in agents: shared namespace, reserved
  names / no silent shadowing, built-ins as versioned dependencies, uniform
  frontmatter contract
- docs/rfcs/README.md: establishes the RFC process + index
- Status: Proposed — must be reviewed and accepted before implementation begins

Refs #79

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@PAMulligan PAMulligan linked an issue Jun 20, 2026 that may be closed by this pull request
4 tasks
@PAMulligan PAMulligan self-assigned this Jun 20, 2026
@PAMulligan PAMulligan added enhancement New feature or request pipeline Figma/Canva-to-React conversion pipeline react React-specific functionality labels Jun 20, 2026
@PAMulligan PAMulligan moved this from Todo to In Progress in PMDS Open Source Roadmap Jun 20, 2026
@PAMulligan PAMulligan moved this from In Progress to Done in PMDS Open Source Roadmap Jun 20, 2026
@PAMulligan PAMulligan added this to the v2.0.0 milestone Jun 20, 2026
@PAMulligan PAMulligan merged commit 6ee08fb into main Jun 20, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request pipeline Figma/Canva-to-React conversion pipeline react React-specific functionality

Projects

Development

Successfully merging this pull request may close these issues.

RFC: plugin architecture for custom agents (v2.0.0)

1 participant