executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
setupFirst-time permission setup for Agent Foundry. Upgrades from conservative baseline to full autonomous config. Run once per project or globally.
Independent GitHub snapshot · Automated classification · Original documentation governs
Configures Claude Code permissions for autonomous agentic sessions. The repo ships with conservative per-command allow rules. This skill upgrades to full autonomous mode.
~/.claude/skills/Read the following files and report what exists:
# Project-level (applies when running claude inside this repo)
.claude/settings.json # shared baseline (committed)
.claude/settings.local.json # power-user override (gitignored)
# User-level (applies to all projects)
~/.claude/settings.json # global settings
Check each for:
permissions.defaultMode valueBash(*) is in the allow list (blanket vs granular)Bash(git push*) is in the ask listReport the current state concisely:
"Current: [conservative/autonomous/custom] at [project/global] level. [Details]."
Present exactly these three options:
Permission levels:
1. Conservative (current default)
acceptEditsmode + granular bash rules. Each command type explicitly allowed. Git push, reset --hard, rm -rf prompt. Safe for exploring.2. Full autonomous
acceptEditsmode +Bash(*)blanket. Everything auto-approved exceptgit push(still prompts). Best for productive agentic sessions.3. Full autonomous + MCP Same as (2) plus auto-approve all MCP tools (Gemini, pa-server, chrome). Best for multi-model workflows with forge/bob/alf.
Scope:
- Project — writes
.claude/settings.local.json(gitignored). Only applies in this repo.- Global — writes
~/.claude/settings.json. Applies to all projects.Which level? (1/2/3) And scope? (project/global)
Wait for the user's response.
{
"permissions": {
"defaultMode": "acceptEdits",
"ask": [
"Bash(git push*)"
],
"allow": [
"Bash(*)",
"Read",
"Edit",
"Write",
"Glob",
"Grep",
"Skill",
"Agent",
"WebFetch",
"WebSearch",
"NotebookEdit"
]
}
}
{
"permissions": {
"defaultMode": "acceptEdits",
"ask": [
"Bash(git push*)"
],
"allow": [
"Bash(*)",
"Read",
"Edit",
"Write",
"Glob",
"Grep",
"Skill",
"Agent",
"WebFetch",
"WebSearch",
"NotebookEdit",
"mcp__pa-server__*",
"mcp__claude-in-chrome__*"
]
}
}
Write to .claude/settings.local.json in the repo root. This file is gitignored and overrides the shared .claude/settings.json at precedence level 3 (above shared project settings at level 4).
Write to ~/.claude/settings.json. Important: this file may already contain other settings (hooks, plugins, etc.). Read the existing file first and MERGE the permissions block — do not overwrite other keys.
After writing:
python3 -c "import json; json.load(open('<path>'))"claude (or start a new session) to pick up the new permissions. The status bar should show accept edits on."To revert to conservative mode:
.claude/settings.local.jsonpermissions block from ~/.claude/settings.json