Skill proactive invocation convention only defines positive case, not negative

Resolved 💬 6 comments Opened Jan 10, 2026 by alexeyv Closed Feb 24, 2026

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.

View original on GitHub ↗

This issue has 6 comments on GitHub. Read the full discussion on GitHub ↗