diff --git a/README.md b/README.md
index 802e3695..7dfcef61 100644
--- a/README.md
+++ b/README.md
@@ -231,7 +231,7 @@ These tools only work inside running agent sessions (they require agent-scoped M
## Dispatch plugin (Claude Code + Codex)
-This repo doubles as a plugin marketplace. The **Dispatch plugin** ships skills that teach agents how to use the capabilities above — the Brain, subagents, `.dispatch/tools.json`, artifact sharing, the review workflow, the whiteboard, jobs, and templates — so agents discover them instead of having to be told.
+This repo doubles as a plugin marketplace. The **Dispatch plugin** ships eleven skills that teach agents how to use the capabilities above — the Brain, subagents, `.dispatch/tools.json`, artifact sharing, the review workflow, UI validation, personas, the whiteboard, jobs, templates, and personalities — so agents discover them instead of having to be told.
**Before you install:** plugins on Claude Code and Codex are **unsigned and unsandboxed, and run with your full local user privileges** — this one and every other self-hosted plugin. This plugin ships no executable components (no hooks, no `bin/`, no bundled MCP servers), only markdown skills; [plugins/dispatch/README.md](plugins/dispatch/README.md#trust) shows how to verify that for yourself before running the commands below.
@@ -257,7 +257,7 @@ See [plugins/dispatch/README.md](plugins/dispatch/README.md) for what each skill
## Docs
-User-facing documentation (agents, keyboard shortcuts, personalities, repo tools, jobs, worktrees, reviewers, status events, media, notifications, updates) lives in the app itself — open the **Docs** pane from the sidebar. The files below are developer-facing references that aren't duplicated in the UI:
+User-facing documentation (agents, keyboard shortcuts, personalities, repo tools, templates and jobs, worktrees, reviewers, status events, media, browser feedback, the plugin, notifications, service resources, updates) lives in the app itself — open the **Docs** pane from the sidebar. The files below are developer-facing references that aren't duplicated in the UI:
- [API Specification](docs/03-api-spec.md) — complete API endpoint reference
- [Agent Lifecycle Model](docs/04-agent-lifecycle.md) — states, transitions, tmux contract
diff --git a/apps/web/src/components/app/docs-pane.tsx b/apps/web/src/components/app/docs-pane.tsx
index 46669912..23284a4d 100644
--- a/apps/web/src/components/app/docs-pane.tsx
+++ b/apps/web/src/components/app/docs-pane.tsx
@@ -11,6 +11,7 @@ import {
Monitor,
MousePointerClick,
PlugZap,
+ Puzzle,
Signal,
Sparkles,
Users,
@@ -27,6 +28,7 @@ import {
NotificationsContent,
PersonalitiesContent,
PersonasContent,
+ PluginContent,
ResourcesContent,
ShortcutsContent,
ToolsContent,
@@ -45,6 +47,7 @@ export type DocsSection =
| "events"
| "media"
| "browser-feedback"
+ | "plugin"
| "notifications"
| "resources"
| "updates";
@@ -128,6 +131,13 @@ const SECTIONS: SectionDef[] = [
title: "Browser Feedback",
content:
+ Dispatch publishes an official plugin for Claude Code{" "} + and Codex. It ships skills that teach agents how to use + the capabilities documented here — the Brain, subagents, repo tools, + artifact sharing, the review workflow, the whiteboard, jobs, templates, + reviewers, personalities, and UI validation — so an agent discovers them + at the moment it needs one instead of having to be told. The Dispatch + repo doubles as the marketplace it's served from. +
+ +
+ Plugins on both platforms are{" "}
+
+ unsigned and unsandboxed, and run with your full local user
+ privileges
+ {" "}
+ — this one and every other plugin you install from a self-hosted
+ marketplace. This plugin ships no executable components: no hooks, no{" "}
+ bin/, no bundled MCP servers, no LSP servers. Everything
+ it contributes is markdown that agents read. After install,{" "}
+ claude plugin details dispatch@dispatch prints a
+ component inventory that should read Hooks (0),{" "}
+ MCP servers (0), and LSP servers (0).
+
+ Installing from a marketplace is two steps on both platforms: register + the catalog, then install the plugin from it. Adding the marketplace + installs nothing on its own. +
++ Claude Code — from inside a session: +
+
+ The same two steps run non-interactively as{" "}
+ claude plugin marketplace add selfcontained/dispatch and{" "}
+ claude plugin install dispatch@dispatch. That form
+ doesn't run inside a session, so the skills load the next time you
+ start Claude Code — or immediately if you run{" "}
+ /reload-plugins in a session that's already open.
+
+ Codex — codex plugin add installs from a
+ configured marketplace snapshot, so the marketplace step is required
+ here too. /plugins inside a Codex session opens the same
+ catalog as a browser.
+
+ Eleven narrow skills, each written to fire on a situation rather than + a feature name — an agent that doesn't know a capability exists will + never match its name, but will match a description of the spot it's + currently in. +
+brain — something needs to outlive the session or reach
+ another agent
+ subagents — work should be delegated, or another agent
+ needs coordinating
+ repo-tools — a repo script should become a first-class
+ tool
+ sharing — an artifact needs to reach the user
+ review-workflow — a PR is going up, or review feedback
+ needs working
+ ui-validation — a UI change needs proving in a browser
+ personas — this repo needs a reviewer with a domain
+ lens
+ whiteboard — the user's sketch matters, or a diagram
+ beats prose
+ jobs — work should run on a schedule and report
+ structurally
+ templates — a launch configuration is worth saving
+ personalities — the user is commenting on how agents
+ talk
+ + Status reporting, pin discipline, and session naming are deliberately + not skills — they're always relevant, and skills only load on a task + match, so those stay in the launch guidance Dispatch injects into + every agent. +
++ The plugin carries an explicit version in its manifests, so updates + only ship when that version is bumped — routine commits to the repo + don't register as a plugin update. +
+
+ Claude Code — run{" "}
+ claude plugin update dispatch@dispatch, or{" "}
+ /plugin marketplace update dispatch first to refresh the
+ catalog. Auto-update is off by default for third-party marketplaces
+ like this one; turn it on per-marketplace under /plugin →{" "}
+ Marketplaces.
+
+ Codex — there is no update subcommand. Re-run{" "}
+ codex plugin add dispatch@dispatch to upgrade; it
+ replaces the cached copy.{" "}
+ codex plugin marketplace upgrade only refreshes the
+ catalog snapshot, not the installed plugin, and{" "}
+ codex plugin list won't tell you a newer version exists.
+