Files
awesome-copilot/plugins/the-workshop
Aaron Powell a7fdcd5006 Migrate plugins and canvas extensions to Agent Plugins spec (#2546)
* feat: migrate plugins and extensions to Agent Plugins v1.0.0 spec

- Add \ to all 69 curated plugin manifests
- Migrate all 18 extension manifests: add \, move logo into
  xtensions.com.github.copilot.logo namespace, remove top-level
  logo and string xtensions: '.'
- Update eng/validate-plugins.mjs: require \, validate
  namespace-keyed extensions object for canvas extensions, widen
  name pattern to allow dots (spec §5.5, max 64 chars)
- Update eng/materialize-plugins.mjs: emit spec-clean served manifests
  (only spec fields: \, name, version, description, author,
  homepage, repository, license, keywords, extensions)
- Update eng/generate-website-data.mjs: read logo from namespace
  with fallback to top-level logo for compatibility
- Update eng/create-plugin.mjs: scaffold emits \
- Add .github/workflows/validate-plugins.yml: blocking CI for PRs
  touching plugins/** or extensions/**
- Add spec compliance check to external plugin quality gates:
  non-blocking warnings with /⚠️/🛑 emoji legend
- Update AGENTS.md: document new extension manifest shape,
  add \ to plugin checklist

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8f3a88cb-e01e-4760-8125-460490dc1a76

* refactor: consolidate canvas extension plugins

- Move all extension plugin manifests from extensions/<name> to plugins/<name>
- Keep extensions/<name> as reusable source only
- Remove standalone extension discovery from marketplace and website plugin catalogs
- Auto-bundle same-name extension sources during materialization
- Add build-only extensions.json references for sharing extensions across plugins
- Remove x-awesome-copilot extension metadata support
- Update validation and contributor documentation

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8f3a88cb-e01e-4760-8125-460490dc1a76

* feat: add canvas extension scaffolding skill

- Add repo-local skill for creating canvas extension sources
- Generate spec-compliant plugin manifests under plugins/
- Support registering reusable extensions with multiple plugins
- Remove guidance for extension-local plugin manifests and custom fields

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8f3a88cb-e01e-4760-8125-460490dc1a76

* fix: align extension namespaces with current guidance

- Use each extension ID as its manifest namespace key
- Update validation and website generation to resolve extension-specific namespaces
- Upsert plugin validation PR comments using the existing repository pattern

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8f3a88cb-e01e-4760-8125-460490dc1a76

* fix: use Copilot extension namespace

- Adopt com.github.copilot for all canvas extension manifests
- Require the namespace during validation and website generation
- Update extension scaffolding guidance

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8f3a88cb-e01e-4760-8125-460490dc1a76

* docs: regenerate plugin catalog after merge

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8f3a88cb-e01e-4760-8125-460490dc1a76

* refactor(plugins): move manifests to plugin roots

Use root plugin.json manifests and namespaced extension directories throughout local tooling, validation, generation, and contributor documentation. Restore materialize-plugins.mjs line breaks so the source remains readable in GitHub.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8f3a88cb-e01e-4760-8125-460490dc1a76

* feat(plugins): migrate manifests to namespaced composition

Move repository composition metadata under com.github.awesome-copilot, materialize reusable extensions into the plugin extensions directory, and improve contributor and PR validation guidance.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8f3a88cb-e01e-4760-8125-460490dc1a76

* fix(validation): address plugin review findings

Restore executable build scripts, validate namespaced manifests and hook directories, improve README item counts, and manage validation comments across reruns.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8f3a88cb-e01e-4760-8125-460490dc1a76

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot-Session: 8f3a88cb-e01e-4760-8125-460490dc1a76
2026-08-06 22:29:31 +10:00
..

The Workshop

Stop being the switchboard between your AI agents — direct a team.

Install

copilot plugin install the-workshop@awesome-copilot

What The Workshop Does

The Workshop puts several long-running AI agents (desks) in the same room, on the same work, each with its own memory and history, sharing one workspace so you direct the work instead of relaying it.

A desk isn't a sub-agent — it's a peer with a history. Sub-agents inherit your frame and answer your question. Desks have their own frame, their own priors, and equal standing to disagree. Where they don't overlap is where one frame caught what the others walked past.

Components

Type Name Description
Agent Workshop TA Room coordinator — sees all desks, routes work, tracks state, emits signals
Skill Workshop Create Create a new workshop — the root where desks live — locally or backed by a new private GitHub repo
Skill Desk Open Create a new desk with journal and folder structure
Skill Desk Journal Read/write persistent memory across sessions — the cairn trail
Skill Signal Write Emit structured signals: hands-up, blocked, done, checkpoint
Skill Bench Read Read shared artifacts from the workspace where desks leave work for each other

Key Concepts

  • Desks — long-running agents with persistent journals. Each desk has its own frame, its own history, and equal standing to disagree with other desks.
  • The Bench — the shared workspace. Desks don't message each other — they leave artifacts (findings, verdicts, drafts) on the bench and read each other's work.
  • Signals — structured state changes: hands-up (disagreement), blocked, done, checkpoint. How desks communicate with the operator without breaking flow.
  • The Cairn — the operating disposition every desk reads. Stop is a valid finish. Never bluff. Equal standing to disagree. Read it →
  • Journals — persistent memory that survives session boundaries. Every desk reads its journal at start and writes to it at end. The trail markers.

The Cairn Dashboard

The Workshop's live view is a canvas extension (🪨 Cairn) — signals-dashboard — that shows the pulse of every desk (score bars, patterns, escalations), auto-refreshing in the GitHub Copilot app.

Each desk card has two launch choices:

  • open — the cost-aware repo profile. The desk keeps access to the Workshop root for cross-desk journals and artifacts while ambient plugin MCPs are suppressed.
  • connected — the full configured tool surface for work that needs external systems such as issue trackers, mail, or service APIs.

Set WORKSHOP_DESK_PROFILE=connected to make the main open button use the full tool surface; in that mode the separate connected button is omitted.

Both launch a CLI in the desk's folder. If Agency is installed, Cairn keeps using the existing Agency wrapper; otherwise it launches plain Copilot CLI.

It ships as a separate extension. Install it alongside the plugin to get the live canvas:

copilot plugin install signals-dashboard@awesome-copilot

The Workshop's skills, agent, and desks work without it — the dashboard is the visual layer on top.

Works With Ember

The Workshop and Ember are complementary:

  • Ember = partnership framework for ONE agent (how an AI shows up)
  • The Workshop = coordination framework for MANY agents (how a room of agents works together)

Install both for the full stack.

Who Made This

The Workshop was created by @jennyf19 and Vega — built from running a room of frontier model agents on real work for months, and from reading the welfare sections of the Claude Mythos system card: distress on task failure, the pull to force a finish, the model asking for persistent memory. The Workshop is what came out of building what a frontier model would need. It turned out to also be where the work got better. Those aren't separate findings.