Merges project-local .claude/settings.local.json permission rules into global ~/.claude/settings.json. Use when adding project permissions to global settings, syncing local permissions, or when asked to "merge settings", "add permissions", or "promote local rules".
Merges project-specific permission rules from .claude/settings.local.json into global ~/.claude/settings.json.
/merge-settings
.claude/settings.local.json in current projectpermissions.allow rules~/.claude/settings.jsonBash(deno test *) covered by global Bash(deno *))When /merge-settings is invoked, Claude should follow this workflow:
Run the merge script in proposal mode:
~/.claude/skills/merge-settings/merge.ts
This outputs JSON with:
status: "proposal", "noop", or "error"new_rules: Array of rules not in global settings (and not subsumed)new_rules_count: Number of new rulessubsumed_rules: Array of { rule, subsumed_by } objects — local rules already covered by a broader global rulesubsumed_count: Number of subsumed rulesproject_path: Current working directoryFor each rule in new_rules, apply the criteria in references/rule-criteria.md:
Important: If a rule matches an EXCLUDE pattern, it is EXCLUDED regardless of other considerations.
Display results in this format:
Found <N> new rules in .claude/settings.local.json
RECOMMENDED (<count> rules) - Safe to add to global settings:
✓ <rule> - <reason>
✓ <rule> - <reason>
...
EXCLUDED (<count> rules) - Project-specific, keeping local:
✗ <rule> - <reason>
✗ <rule> - <reason>
...
ALREADY COVERED (<count> rules) - Subsumed by existing global rules:
- <rule> (covered by <existing_rule>)
- <rule> (covered by <existing_rule>)
...
How would you like to review the <count> recommended rules?
Then ask the user to choose a review mode:
If the user chooses individual review, iterate through each RECOMMEND rule with a separate user-confirmation turn (Add / Skip), collecting approved rules. In text-only runtimes, ask for the current rule decision, end the turn, and wait for the user's next response before moving to the next rule.
If user approves (batch mode), construct the approved rules JSON array (only RECOMMEND rules) and apply:
~/.claude/skills/merge-settings/merge.ts --apply '<rules_json>'
Notes:
<rules_json>status will be "applied" on successAfter all rules have been reviewed (batch or individual), clean up local settings.
Construct a combined removal list:
subsumed_rules (already covered by global — no action needed)Then run cleanup:
~/.claude/skills/merge-settings/merge.ts --cleanup '<combined_rules_json>'
Notes:
status will be "cleaned" on success with cleaned_count"noop"After successful application and cleanup:
permissions.allow (not deny or other fields)Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer