feat: Worker portal Stage 6 — Plugin Studio (developer view)

Description

Land the Plugin Studio (Plugin Developer view): a UI for authoring + validating Plugin.toml manifests and previewing their panels/sections in the live composer before installing them into a jurisdiction's baseline. This is the path for jurisdictions to ship local plugins without touching canopy core.

Marketplace federation is out of v1 per #460; this issue is local plugin authoring only.

Acceptance Criteria

  • Template at services/canopy-web/templates/studio/plugin.html
  • Plugin authoring:
    • Manifest editor with live validation against the Stage 2 composability ADR's Plugin.toml schema (slug unique, semver, allowed_spans subset, required roles exist, programs known)
    • Preview pane: renders the plugin's panel/section against fixture data
    • Save + install: writes plugin to a jurisdiction-scoped plugin directory (path per Stage 2 ADR), composition loader picks it up on next render
  • Plugin uninstall: removes the plugin from the jurisdiction directory and from any composition referencing it
  • Gated to studio_admin role
  • Audit emitted on plugin install + uninstall
  • Playwright E2E: author → validate → preview → install → composition can reference → uninstall
  • axe-core WCAG 2.1 AA clean
  • CHANGELOG entry under === Added

Out of scope (deferred to v2)

  • Marketplace federation (publish plugin, browse marketplace, install from registry)
  • Plugin signing + verification

Blocked by

  • Stage 6 Studio live-mode issue merged

Context & References

Labels

type::feature, priority::medium, program::infrastructure, service::web, workflow::needs-spec, compliance::wcag-21-aa