Skip to content

Conversation

@Ttian18
Copy link

@Ttian18 Ttian18 commented Feb 9, 2026

Description

Contributors experience "approval fatigue" — every MCP tool call and bash command
in Claude Code requires manual approval. The current .claude/settings.local.json
is tracked by git and contains personal cruft (e.g., a hardcoded git commit message
from someone's Excel tool work).

This PR replaces the tracked file with a .example template and a merge script that
preserves personal contributor settings while ensuring everyone has the project-required
auto-approvals.

Type of Change

  • New feature (non-breaking change that adds functionality)

Related Issues

Fixes #4258

Changes Made

  • Add .claude/settings.local.json.example — canonical template with 31 auto-approval
    entries covering all MCP tools (agent-builder, tools), bash commands (PYTHONPATH,
    MOCK_MODE, cd, uv, python, pytest, ruff, mkdir, ls, export, gh),
    all 7 skills, and WebFetch(domain:github.com)
  • Add scripts/merge_claude_settings.py — pure-stdlib merge script that copies on fresh
    install, deduplicates and preserves personal entries on merge, and fills missing
    top-level keys without overwriting existing values
  • Integrate merge step into quickstart.sh after verification (non-fatal — failure
    shows a warning, doesn't block onboarding)
  • Untrack .claude/settings.local.json (git rm --cached) and add it to .gitignore
  • Add scripts/tests/test_merge_claude_settings.py — 20 test cases across 8 classes

Testing

  • 20/20 unit tests pass (uv run pytest scripts/tests/ -v)
  • Lint passes (ruff check scripts/)
  • Format passes (ruff format --check scripts/)
  • 259 existing tools tests pass — no regressions
  • Manual E2E: fresh install, idempotent re-merge, existing contributor merge

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my code
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes

Contributors experience approval fatigue — every MCP tool call and bash
command requires manual approval. The tracked settings.local.json also
contains personal cruft (hardcoded git commit messages from other work).

- Add .claude/settings.local.json.example with 31 auto-approval entries
  covering all skills, MCP tools, and bash commands from the agent
  generation flow
- Add scripts/merge_claude_settings.py to merge project permissions into
  existing contributor settings without overwriting personal entries
- Integrate merge step into quickstart.sh (non-fatal)
- Untrack .claude/settings.local.json and add it to .gitignore
- Add 20 tests covering fresh install, merge, idempotency, CLI, and E2E

Closes adenhq#4258
@RichardTang-Aden
Copy link
Collaborator

The allow list in the .claude/settings.local.json.example file doesn't look correct. We will fix it by commiting to your PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Streamline Claude Code MCP Tool Approvals via Settings Example File

2 participants