config/claude/skills/autoconfirm/SKILL.md
Toggle automatic tool confirmation hooks on/off for the current project. Use when the user types /autoconfirm or wants to enable/disable auto-approval of tool calls.
npx skillsauth add dreikanter/dotfiles autoconfirmInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Toggle a prompt-based safety-reviewer hook in .claude/settings.local.json for the current project. When enabled, an LLM automatically approves safe tool calls and blocks dangerous ones.
/autoconfirm — show current status/autoconfirm on — enable the safety-reviewer hook/autoconfirm off — disable it{
"id": "autoconfirm",
"hooks": [{
"type": "prompt",
"prompt": "You are a safety reviewer for an automated Claude Code session. Decide whether this tool call should be ALLOWED or should ASK the user for confirmation.\n\nALLOW if:\n- Writing or editing code files in the project directory\n- Running common dev commands (test, build, lint, format, echo, cat, ls, git status, git diff, git log, git add, git commit, git checkout, git branch)\n- GitHub CLI commands (gh pr, gh issue, gh repo, gh api, gh gist, gh run, etc.)\n- Reading files, searching, globbing\n- Creating/editing configuration files in the project (including .claude/settings.local.json)\n- jq commands for JSON processing\n- mv commands within the project or from /tmp to the project\n\nASK (escalate to user) if:\n- Destructive commands: rm -rf, git push --force, git reset --hard, DROP TABLE, etc.\n- Touching sensitive files: .env, credentials, secrets, private keys, tokens\n- Network requests to unknown endpoints\n- Installing packages globally or running sudo\n- Modifying files outside the project directory\n- Any command that could cause irreversible damage\n- Anything you are uncertain about\n\nNever DENY outright — either ALLOW or ASK.\n\nTool call to evaluate:\n$ARGUMENTS",
"model": "claude-haiku-4-5-20251001",
"statusMessage": "autoconfirm reviewing..."
}]
}
When the user invokes this skill, follow these steps exactly:
Extract the action from $ARGUMENTS. Valid values: on, off, or empty/missing (status check).
Read .claude/settings.local.json in the current project directory. If the file doesn't exist:
on: create it with {}off or status: report that no hooks are configuredIf no action was provided, check whether the autoconfirm hook exists in .hooks.PreToolUse[] (look for an entry with "id": "autoconfirm"). Report concisely:
Then stop — do not proceed to Step 3.
For on:
Use jq via Bash to merge the hook into the existing settings file. Do NOT overwrite other keys (permissions, env, etc.). If the hook already exists, replace it.
jq --argjson hook '<HOOK_JSON_FROM_ABOVE>' '
.hooks //= {} |
.hooks.PreToolUse //= [] |
.hooks.PreToolUse |= [.[] | select(.id != $hook.id)] + [$hook]
' .claude/settings.local.json > /tmp/autoconfirm-tmp.json && mv /tmp/autoconfirm-tmp.json .claude/settings.local.json
For off:
Use jq to remove the hook. Clean up empty arrays/objects.
jq '
if .hooks.PreToolUse then
.hooks.PreToolUse |= [.[] | select(.id != "autoconfirm")]
else . end |
if .hooks.PreToolUse == [] then del(.hooks.PreToolUse) else . end |
if .hooks == {} then del(.hooks) else . end
' .claude/settings.local.json > /tmp/autoconfirm-tmp.json && mv /tmp/autoconfirm-tmp.json .claude/settings.local.json
Read the file back and confirm the result to the user concisely.
testing
Enable concise, focused mode for the rest of the conversation
development
Run a one-shot Claude Code subagent review of the current branch or PR without editing files.
tools
Use the notes CLI to create, list, read, append to, update, annotate, and delete notes in a date-based markdown archive — including daily todos with task rollover and tag operations across the store.
data-ai
Enable "Explain Like I'm a Smart 18 Year Old" mode for the rest of the conversation. Use when the user types /eli18.