Skip to content

Fully-qualify kickoff's /continue → /work-system:continue#44

Merged
gering merged 1 commit into
mainfrom
task/fix-kickoff-continue-shadowing
Jul 21, 2026
Merged

Fully-qualify kickoff's /continue → /work-system:continue#44
gering merged 1 commit into
mainfrom
task/fix-kickoff-continue-shadowing

Conversation

@gering

@gering gering commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • A Claude Code built-in/alias /continue can shadow the work-system plugin skill, and plugin skills are only guaranteed reachable via their plugin:skill namespace. So a /kickoff-launched Claude worker running the bare /continue in a fresh worktree ran CC's own resume (nothing to resume → idle, TASK.md never loaded) instead of the work-system resume flow — breaking the core kickoff→worker handoff (P1).
  • Switch every machine-generated launch invocation to the plugin-qualified /work-system:continue, which resolves unambiguously and can't be shadowed.
  • work-system bumped 1.9.1 → 1.9.2 (patch, bugfix).

Changes

  • Launch sites (machine-generated):
    • agent-registry.sh emit_argv (the primary selector path) + its argv-shape header comment
    • herdr-launch.sh legacy no-selector fallback + header comment
    • kickoff/SKILL.md outside-herdr manual launch block
    • adopt/SKILL.md outside-herdr manual launch block (same bug, not originally enumerated)
    • README launch examples (root + work-system)
  • Tests: test_agent_registry.py asserts the argv ends in /work-system:continue.
  • Human-typed reopen prose: continue/SKILL.md description + README reopen section updated to the qualified form (that bare command is what the built-in shadows); casual skill-name mentions left readable.
  • Docs: knowledge herdr-kickoff-automation.md gains a dedicated shadowing gotcha (verified CC finding + plugin-cache deployment caveat); CHANGELOG entry added.

Verified CC finding

No documented built-in /continue slash command exists, but per CC's own docs plugin skills are only guaranteed reachable via the plugin:skill namespace — the bare form is not reliable. The exact mechanism (built-in shadow vs. namespace-only resolution) is CC-version-dependent; the fix is orthogonal, since /work-system:continue is the one unshadowable invocation.

Deployment note

agent-registry.sh / herdr-launch.sh run from the plugin cache, not the repo, so live launches only pick up this fix after a /plugin marketplace update + reload refreshes the cache.

Readiness

  • ✅ Version synced (plugin.json + marketplace.json → 1.9.2)
  • ✅ CHANGELOG entry added
  • ✅ Knowledge updated (herdr-kickoff-automation)
  • ✅ READMEs updated (root + work-system)
  • ✅ Tests: test_agent_registry.py, test_herdr_launch.py pass
  • ✅ check-structure.py: 0 errors
  • ➖ Build/Lint: N/A (markdown/plugin repo; shell syntax covered by check-structure)

Test plan

  • python3 plugins/work-system/scripts/test_agent_registry.py → all pass (asserts qualified argv)
  • python3 scripts/check-structure.py → 0 errors
  • After cache refresh: /kickoff a Claude worker → the tab runs /work-system:continue and loads TASK.md

🤖 Generated with Claude Code

@gering
gering force-pushed the task/fix-kickoff-continue-shadowing branch from 6377f89 to 7b1d3ff Compare July 21, 2026 14:27
A Claude Code built-in/alias `/continue` can shadow the work-system plugin
skill, and plugin skills are only guaranteed reachable via their
`plugin:skill` namespace. So a `/kickoff`-launched worker running the bare
`/continue` in a fresh worktree ran CC's own resume (nothing to resume →
idle, TASK.md never loaded) instead of the work-system resume flow, breaking
the kickoff→worker handoff.

Switch every machine-generated launch invocation to the plugin-qualified
`/work-system:continue`, which resolves unambiguously and can't be shadowed:
- agent-registry.sh emit_argv (the selector path) + its argv-shape comment
- herdr-launch.sh legacy no-selector fallback + header comment
- kickoff/adopt SKILL.md outside-herdr manual launch blocks
- kickoff's "suggest /continue" hint when run inside a worktree
- README launch examples (root + work-system)

Tests lock in the qualified argv: test_agent_registry.py asserts emit_argv's
shape, and test_herdr_launch.py now asserts the legacy no-selector worker
argv is `claude -n <session> /work-system:continue` (one token, no bare form).

Human-typed reopen instructions (continue SKILL description, README reopen
section) updated to the qualified form too, since the bare command is what
the built-in shadows. Knowledge (herdr-kickoff-automation) gains a dedicated
shadowing gotcha with the verified CC finding and the plugin-cache
deployment caveat; CHANGELOG entry added; work-system bumped 1.9.1 → 1.9.2.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0189f7ewkgmdN1xgWBLJM1J2
@gering
gering force-pushed the task/fix-kickoff-continue-shadowing branch from 7b1d3ff to 96d950a Compare July 21, 2026 14:30
@gering
gering merged commit 01eb40e into main Jul 21, 2026
1 check passed
@gering
gering deleted the task/fix-kickoff-continue-shadowing branch July 21, 2026 14:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant