[FEATURE] Make Workflow scripts (.claude/workflows/*.js) a distributable plugin component

Open 💬 1 comment Opened Jun 7, 2026 by nfma-parloa

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:

  1. Plugin layout — a workflows/ directory (or a "workflows": "./path/" field in plugin.json), auto-discovered like other components.
  2. 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.
  3. Distribution rides existing rails — no new marketplace mechanism needed. A workflow ships inside a plugin, and marketplace.json + /plugin install distribute it like any other component, with the same versioning and update story.
  4. 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

  1. 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.
  2. Manually copy the .js into each project's .claude/workflows/. No versioning, no update path, no namespacing, no discovery — doesn't scale past one machine.
  3. Ship the script via a plugin bin/ executable that writes it into .claude/workflows/. Hacky, bypasses /workflows integration, 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 /workflowsreview-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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗