atxtechbro / atxtechbro/dotfiles

Investigate project-specific Claude settings approach for dotfiles repository

Open
#656 0 comments 0 reactions 0 assignees View on GitHub
enhancement investigation mcp
Dominant language
Shell
Stars
27
Forks
2
PR merge metrics
No merged PRs in 30d

Description

## Problem

Currently, we face a dilemma with Claude Code settings in the dotfiles repository:

1. **`.claude/settings.json`** - Currently tracked in source control as "shared team settings"
2. **`.claude/settings.local.json`** - Gitignored as "personal overrides" per Anthropic docs

However, for the dotfiles repository specifically, we need richer project-level settings that:
- Configure which MCP servers are enabled for dotfiles work
- Set specific permissions for dotfiles development
- Are version-controlled as part of the dotfiles "source of truth"
- Don't conflict with personal global preferences

## Current Pain Points

- Can't version-control project-specific settings without violating Anthropic's conventions
- No clear way to define "this is how Claude should behave when working on dotfiles"
- Settings that make sense for dotfiles work might not make sense globally
- The `.claude/settings.local.json` file is explicitly meant NOT to be checked in

## Proposed Investigation

### Option 1: Flip the Convention
- Use `.claude/settings.json` for personal/global settings (move to home directory?)
- Use `.claude/settings.local.json` for project-specific settings (track in git)
- Explicitly document this is a dotfiles-specific convention

### Option 2: Custom Settings File
- Create `.claude/settings.dotfiles.json` or similar
- Build tooling to merge/apply these settings
- Keep standard files for their intended purposes

### Option 3: Leverage Existing Mechanisms
- Investigate if Claude Code has other ways to specify project settings
- Check for environment variables or config precedence we're missing
- See if there's a "workspace" concept we can use

### Option 4: Template-Based Approach
- Similar to our MCP config approach
- Generate `.claude/settings.local.json` from a template
- Track the template, not the generated file

## Success Criteria

- Project-specific settings for dotfiles work are version-controlled
- Personal preferences remain personal
- Solution doesn't break Claude Code's expectations
- Clear documentation on which settings go where
- Follows the dotfiles philosophy of "everything hardened in source control"

## Questions to Answer

1. What's the full precedence order for Claude Code settings?
2. Can we use directory-specific settings (like `.envrc` for direnv)?
3. Would Anthropic be open to a feature request for project settings?
4. What do other teams using Claude Code + dotfiles do?

This investigation should help us find a clean solution that respects both Anthropic's design and our dotfiles principles.

Principle: systems-stewardship

Contributor guide

No contributing guide indexed for this repository

Research direction

Read .claude/settings.json and .claude/settings.local.json, then consult the Anthropic settings documentation and review the existing MCP config approach. Determine the precedence and supported project-level mechanisms, compare the proposed options, and document a version-controlled solution that preserves personal preferences and Claude Code expectations.

Written by the indexing model from the issue text.

Assessment

Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.