# Update Config Skill (/update-config) **Source:** `src/skills/bundled/updateConfig.ts` (bundled binary) **Registration:** `registerBundledSkill('update-config', ...)` **Availability:** All users ## Purpose Manages `settings.json` configuration files, including hooks, permission arrays, and general settings. Provides a guided interface for editing the Claude Code configuration hierarchy. ## Prompt (Reconstructed from Binary Analysis) The prompt is extensive (~476 lines) and covers three main areas: ### Settings File Hierarchy ``` Settings are loaded from three levels (highest to lowest priority): 1. Project settings: .claude/settings.json (checked into repo) 2. User settings: ~/.claude/settings.json (private, all projects) 3. Enterprise settings: /etc/claude-code/settings.json (managed by admins) Lower-priority settings are overridden by higher-priority ones. ``` ### Hook System The skill documents the complete hook lifecycle: ``` Hooks are commands that run at specific points in Claude Code's lifecycle: - PreToolUse: Runs before a tool is executed. Can block the tool. - PostToolUse: Runs after a tool completes. Can modify the result. - PreCompact: Runs before conversation compaction. - PostCompact: Runs after conversation compaction. - Notification: Runs when Claude wants to notify the user. - Stop: Runs when Claude's turn ends. Each hook receives a JSON payload on stdin with: - session_id: Current session ID - tool_name: Name of the tool (PreToolUse/PostToolUse) - tool_input: Tool input parameters (PreToolUse/PostToolUse) - tool_output: Tool output (PostToolUse only) Hook exit codes: - 0: Success, continue normally - 2: Block the tool (PreToolUse only) - Other: Log error but continue ``` ### Permission Arrays ``` Permission settings control which tools can run without user approval: - allowedTools: Tool names or patterns that are auto-approved - deniedTools: Tool names or patterns that are always blocked - trust: Trust levels for different tool categories ``` ## Architecture Notes - The skill distinguishes between "simple" config tools (key-value settings) and "complex" operations (hooks, permissions) - For hook editing, uses the Edit tool directly on the settings.json file - Validates JSON syntax after each edit - Supports all three settings levels in a single interface