Skill proactive invocation convention only defines positive case, not negative
Summary
The Skill tool's system prompt instruction for proactive invocation only defines behavior when a skill description includes "use PROACTIVELY", but provides no guidance for skills that don't include this phrase.
Current Behavior
The instruction says:
"If the agent description mentions that it should be used proactively, then you should try your best to use it without the user having to ask for it first. Use your judgement."
This creates a one-directional rule:
- ✅ Skill marked "use PROACTIVELY" → Claude is instructed to invoke proactively
- ❓ Skill NOT marked → No instruction, left to Claude's "judgement"
The Problem
Skill authors who ship custom skills (e.g., via .claude/commands/) have no reliable way to prevent proactive invocation. The absence of "use PROACTIVELY" doesn't mean "don't use proactively" - it just means the rule doesn't apply.
This is particularly problematic for:
- Workflow state transitions (sprint status, story tracking)
- Destructive or stateful operations
- Skills that represent user decision points
Skill authors shouldn't have to tell every user to add CLAUDE.md policies to prevent unwanted proactive invocations.
Suggested Fix
Add the inverse rule to the Skill tool description:
"If the agent description does NOT mention proactive use, only invoke when the user explicitly uses the slash command syntax."
Or provide a convention for skill authors to explicitly opt-out:
"If the description mentions 'explicit invocation only' or similar, wait for the user to invoke via slash command."
Impact
This would give skill authors reliable control over invocation behavior at the source, rather than requiring downstream users to configure CLAUDE.md overrides.
This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗