#3314 · upstream anthropics/claude-code#18949 · milestone v10.0.0

9,960 lines on trial

build-plugins.sh generates 35 wrapper files so user-invocable skills appear as slash commands, with a note to delete them "when #18949 ships". The label says OPEN, but it was last confirmed against CC 2.1.183 and we run 2.1.226. The milestone's whole lesson: labels are not evidence. So we asked the binary.

fixture A CONTROL   built plugin, commands/ present
fixture B PROBE     identical, commands/ + plugin.json key removed
both installed into isolated CLAUDE_CONFIG_DIRs (real marketplace path)
loader's own counter read from <config>/debug/<session>.txt

The verdict, verbatim from the loader

[A] Total plugin commands loaded: 35     plugin skills: 105
[B] Total plugin commands loaded:  0     plugin skills: 105

KEEP. CC 2.1.226 holds commands and skills in separate registries. Without commands/, user-invocable skills register as skills and never as commands. #18949 still bites; the wrappers are load-bearing; the open label is accurate.

The control arm is what makes this a result: a probe whose harness cannot demonstrate the positive case proves nothing. A=35 is that demonstration.

The tripwire: deletion happens the week it becomes possible

npm run verify:cc-commands re-runs the probe against the newest installed binary. Simulate a future run:

exit 0  wrappers still required            (B=0, control healthy)
exit 1  TRIPPED — execute the DELETE branch (generator, 35 files,
        passthrough test + ci.yml wiring, one commit)
exit 2  CANNOT OBSERVE — control broke or the debug line vanished;
        no verdict either way, never a silent pass

Local / workflow_dispatch only: ci.yml never installs the CC binary, so wiring this into the PR gate would make it vacuously green — the #959 class this repo already paid for.

What stays, and the standing cost

keptwhy
generate_command_from_skillload-bearing at 2.1.226, probed not assumed
plugins/ork/commands/ ×35the only path to /ork:* slash commands
passthrough test + ci wiringguards the wrappers that must exist

Cost acknowledged: ~2.8k duplicated tokens/session (#2528). That is the price of the upstream bug, now with an automated exit ramp.