[FEATURE] Make Workflow scripts (.claude/workflows/*.js) a distributable plugin component
Preflight Checklist
- [x] I have searched existing requests and the closest prior issues are #63876 and #59069 — both differ from this request. See "Differentiation from prior issues" at the bottom.
- [x] This is a single feature request (not multiple features)
Problem Statement
The Workflow tool runs deterministic orchestration scripts (.claude/workflows/*.js) — fan-out with parallel(), pipelining with pipeline(), loop-until-dry, budget-scaled agent fleets, structured-output schemas. These are among the most powerful automation primitives in Claude Code, but they are project-local and non-distributable.
A plugin can today bundle skills, agents, commands, hooks, MCP servers, LSP servers, and monitors — but not workflow scripts. So there is no supported way to share a workflow with a team or the community through a marketplace; the available workarounds (covered under Alternatives) are all either lossy or manual.
This is compounded by #63876: even user-global ~/.claude/workflows/ scripts aren't resolvable by name today, so cross-project reuse is broken before you even get to distribution.
Proposed Solution
Add workflows as a first-class plugin component, exactly analogous to skills / agents:
- Plugin layout — a
workflows/directory (or a"workflows": "./path/"field inplugin.json), auto-discovered like other components. - Named invocation — plugin-provided workflows resolve by namespaced name (
plugin-name:workflow-name), consistent with how skills and commands already namespace, and show up in/workflows. - Distribution rides existing rails — no new marketplace mechanism needed. A workflow ships inside a plugin, and
marketplace.json+/plugin installdistribute it like any other component, with the same versioning and update story. - Name resolution fix (ties to #63876) — workflows should be dispatchable by name, not only by
scriptPath, for both plugin-provided and user-global scripts.
This keeps the workflow as a workflow — deterministic JS intact — while making it versionable, discoverable, team-installable, and updatable.
Alternative Solutions
- Repackage the orchestration as a skill or agent. This is the core reason the feature is needed: a skill/agent only describes intent to the model, whereas a workflow guarantees the orchestration shape (loops, barriers, pipelines, budget logic). Rewriting a workflow as a skill throws away exactly the deterministic control flow that motivated using a workflow in the first place. They are not interchangeable.
- Manually copy the
.jsinto each project's.claude/workflows/. No versioning, no update path, no namespacing, no discovery — doesn't scale past one machine. - Ship the script via a plugin
bin/executable that writes it into.claude/workflows/. Hacky, bypasses/workflowsintegration, and reintroduces the #63876 name-resolution gap.
None of these let a team install a workflow, as a workflow, from a marketplace.
Priority
Medium - Would be very helpful
Feature Category
Plugins and marketplace / extensibility
Use Case Example
Our team maintains a review-changes workflow — the canonical "review across dimensions in parallel → adversarially verify each finding → synthesize" pipeline. We want every engineer to get it via our internal team marketplace: versioned, namespaced, and updatable with /plugin install review-tools@team-marketplace, then invoked as /workflows → review-tools:review-changes, pinned to a version and updatable upstream. There is currently no way to distribute it as a workflow.
Additional Context — Differentiation from prior issues
| Issue | State | What it asks for | Why this FR is different |
|-------|-------|------------------|--------------------------|
| #63876 | OPEN (bug) | scriptPath dispatch drops args; user-global ~/.claude/workflows/ not resolvable by name | Scoped as a local-resolution bug. This FR is the broader capability — workflows as a distributable plugin component. #63876's fix is necessary plumbing for this, referenced as a dependency, not a duplicate. |
| #59069 | OPEN (feature) | User-side namespace alias for a plugin that wraps a workflow-as-skills | Presupposes you've already repackaged your workflow into skills and just want shorter typing. This FR removes the need to repackage at all — ship the workflow script itself. Orthogonal: both could land independently. |
| #16932 / #42167 | CLOSED | Chaining/composing plugin commands into a workflow at runtime | About runtime composition of commands, not packaging/distributing a workflow script. Different layer. |
Putting these together, the unclaimed gap is precisely: a workflow script as a versioned, namespaced, marketplace-installable plugin component — which no existing issue requests.
Drafted with Claude AI and manually reviewed by me before submitting.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗