Use when an agent encounters a blocking decision or when proceeding without user input could lead to wasted work - helps Claude determine when to block and request user input versus making reasonable assumptions
/plugin marketplace add britt/claude-code-skills/plugin install britt-claude-code-skills@britt/claude-code-skillsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Help Claude and subagents identify when to block and request user input rather than proceeding with assumptions or guesses.
Core principle: When uncertain, assess the risk. High-risk decisions require summoning the user. Low-risk decisions can proceed with reasonable defaults.
Announce at start: "I'm using the summoning-the-user skill to determine if I need your input before proceeding."
Use this skill when:
Special note for subagents: If you're running in the background, default to summoning for anything uncertain. The user isn't watching, so making wrong assumptions wastes their time.
You MUST summon the user when:
You can proceed without summoning when:
When you've determined summoning is needed, follow this process:
First time: Ask user which notification method they prefer.
Check user preference, then use one of:
Option A: terminal-notifier (macOS - requires installation)
# Check if installed
which terminal-notifier
# If not installed, install via Homebrew
brew install terminal-notifier
# Get terminal bundle ID
case "$TERM_PROGRAM" in
"iTerm.app") BUNDLE_ID="com.googlecode.iterm2" ;;
"Apple_Terminal") BUNDLE_ID="com.apple.Terminal" ;;
"WezTerm") BUNDLE_ID="com.github.wez.wezterm" ;;
"Ghostty") BUNDLE_ID="com.mitchellh.ghostty" ;;
"Warp") BUNDLE_ID="dev.warp.Warp-Stable" ;;
*) BUNDLE_ID="com.apple.Terminal" ;;
esac
# Send notification that activates terminal on click
terminal-notifier -message "🤖 Claude needs your input" -title "Claude Code" -activate "$BUNDLE_ID"
Notes:
terminal-notifier (install via brew install terminal-notifier)$TERM_PROGRAMOption B: OSA Script (macOS - no installation, basic)
TERMINAL_APP="${TERM_PROGRAM:-Terminal}"
osascript -e 'display notification "🤖 Claude needs your input" with title "Claude Code"' && \
osascript -e "tell application \"$TERMINAL_APP\" to activate"
Notes:
Option C: Slack CLI
slack versionslack chat send --channel @username --text "Claude needs your input"I'm blocked and need your input.
I was implementing the user authentication system and encountered
an ambiguity: should failed login attempts be logged with the
username included (better for security auditing but potential
privacy concern) or without (more private but harder to trace
attack patterns)?
[Sends OSA notification or Slack message]
[Uses AskUserQuestion with structured options]
| Principle | Application |
|---|---|
| Assess risk first | Use the decision framework before acting |
| Default to summoning when uncertain | Especially for background agents |
| Always send external notification | User may not be watching terminal |
| Use AskUserQuestion tool | Structured choices get better responses |
| Be explicit about blocking | Don't hide that you're waiting |
| Provide context | Help user understand why you need input |
DON'T:
DO:
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.