Summary
skills/plan-orchestrate ships in the default install, and its entire output contract is emitting /ecc:orchestrate (or /orchestrate) invocations for the user to paste. That command is no longer in the default command surface, so the skill's output does not resolve.
Evidence
The skill ships:
package.json:404 "skills/plan-orchestrate/",
manifests/install-modules.json:793 "skills/plan-orchestrate"
Its purpose is generating those invocations. skills/plan-orchestrate/SKILL.md:10:
Bridge a plan document to /orchestrate custom by emitting one ready-to-paste invocation per step. The skill is generative only — it never executes /orchestrate. The user pastes each line when ready.
:33-36 defines the output shape as authoritative:
Authoritative /orchestrate shape (do not deviate)
{ORCH_CMD} custom "<agent1>,<agent2>,...,<agentN>" "<task description>"
:52-55 resolves {ORCH_CMD} to /ecc:orchestrate under a plugin install and /orchestrate under a legacy bare install. The worked example at :244 emits:
/ecc:orchestrate custom "ecc:tdd-guide,ecc:database-reviewer,ecc:python-reviewer,ecc:security-reviewer" "[Plan: ...] Implement EncryptedString ..."
But the command is not in the shipped surface:
- There is no
commands/orchestrate.md.
- The only remaining definition is
legacy-command-shims/commands/orchestrate.md, and legacy-command-shims/README.md states: "These slash-entry shims are no longer loaded by the default plugin command surface."
- Grepping
.claude-plugin/, manifests/, and package.json for a shipped orchestrate command entry returns nothing (excluding plan-orchestrate itself).
Retired in 06f9eca (fix: retire legacy command shims from default surface). That retirement looks intentional; updating this consumer appears to have been missed.
Impact
A user installs ECC, runs plan-orchestrate on a plan document as designed, receives a set of per-step bash blocks, pastes the first one, and it does not resolve. The failure surfaces at the end of the workflow, after the skill has done its decomposition and chain-composition work, so the wasted effort is maximal.
The stale translated copies still document the old interface (docs/es|ja-JP|zh-CN|zh-TW|ko-KR|tr|pt-BR/commands/orchestrate.md describe /orchestrate [workflow-type] [task]), which may make this look supported to anyone reading localized docs. There is no English commands/orchestrate.md.
Options
A. Retarget the emitted form. Keep the skill's decomposition, tagging, and chain-composition logic (which is genuinely useful and has no equivalent elsewhere) and change what it emits — for example a Task-tool dispatch per step, or an orch-* skill invocation. Requires rewriting the "Authoritative shape" section and both worked examples.
B. Restore /orchestrate to the default surface. Reverses part of 06f9eca; presumably unwanted, since the retirement was deliberate.
C. Unship the skill. Remove from package.json and manifests/install-modules.json, or move it alongside the shims. Loses the decomposition and chain-composition tables, which are the most reusable "plan → per-step agent chain" asset in the repo.
A looks best from the outside, but the right call depends on where orchestration is heading — workflows/README.md suggests the fan-out-heavy segments are moving to native Workflow scripts, which may be the intended emit target.
Notes
Not opening a PR since A, B, and C are materially different product decisions and A's correct emit target depends on the roadmap. Happy to implement whichever you prefer.
Found while auditing the orchestration surface; related to #2861 (unrelated root cause).
Summary
skills/plan-orchestrateships in the default install, and its entire output contract is emitting/ecc:orchestrate(or/orchestrate) invocations for the user to paste. That command is no longer in the default command surface, so the skill's output does not resolve.Evidence
The skill ships:
Its purpose is generating those invocations.
skills/plan-orchestrate/SKILL.md:10::33-36defines the output shape as authoritative::52-55resolves{ORCH_CMD}to/ecc:orchestrateunder a plugin install and/orchestrateunder a legacy bare install. The worked example at:244emits:But the command is not in the shipped surface:
commands/orchestrate.md.legacy-command-shims/commands/orchestrate.md, andlegacy-command-shims/README.mdstates: "These slash-entry shims are no longer loaded by the default plugin command surface.".claude-plugin/,manifests/, andpackage.jsonfor a shippedorchestratecommand entry returns nothing (excludingplan-orchestrateitself).Retired in 06f9eca (
fix: retire legacy command shims from default surface). That retirement looks intentional; updating this consumer appears to have been missed.Impact
A user installs ECC, runs
plan-orchestrateon a plan document as designed, receives a set of per-step bash blocks, pastes the first one, and it does not resolve. The failure surfaces at the end of the workflow, after the skill has done its decomposition and chain-composition work, so the wasted effort is maximal.The stale translated copies still document the old interface (
docs/es|ja-JP|zh-CN|zh-TW|ko-KR|tr|pt-BR/commands/orchestrate.mddescribe/orchestrate [workflow-type] [task]), which may make this look supported to anyone reading localized docs. There is no Englishcommands/orchestrate.md.Options
A. Retarget the emitted form. Keep the skill's decomposition, tagging, and chain-composition logic (which is genuinely useful and has no equivalent elsewhere) and change what it emits — for example a
Task-tool dispatch per step, or anorch-*skill invocation. Requires rewriting the "Authoritative shape" section and both worked examples.B. Restore
/orchestrateto the default surface. Reverses part of 06f9eca; presumably unwanted, since the retirement was deliberate.C. Unship the skill. Remove from
package.jsonandmanifests/install-modules.json, or move it alongside the shims. Loses the decomposition and chain-composition tables, which are the most reusable "plan → per-step agent chain" asset in the repo.A looks best from the outside, but the right call depends on where orchestration is heading —
workflows/README.mdsuggests the fan-out-heavy segments are moving to native Workflow scripts, which may be the intended emit target.Notes
Not opening a PR since A, B, and C are materially different product decisions and A's correct emit target depends on the roadmap. Happy to implement whichever you prefer.
Found while auditing the orchestration surface; related to #2861 (unrelated root cause).