MARR uses a two-layer configuration system that separates personal preferences from project requirements.
AI agents need two types of guidance:
Separating these allows:
Location: ~/.claude/marr/MARR-USER-CLAUDE.md
User configuration contains your personal working preferences that apply everywhere.
### Communication Style
- Keep responses concise unless detail is explicitly requested
- Answer questions directly without elaboration unless asked
- Be constructively critical - never assume the user is correct
### Approval Requirements
**ALWAYS get explicit user approval before:**
- ANY git commits
- ANY git pushes
- ANY PR creation or updates
Claude Code loads user configuration through the import chain:
~/.claude/CLAUDE.md contains @~/.claude/marr/MARR-USER-CLAUDE.mdLocation: .claude/marr/MARR-PROJECT-CLAUDE.md (in each project)
Project configuration defines technical requirements and standards specific to a project.
The project config includes a Standards section that lists available standards with their triggers:
## Standards
### `prj-development-workflow-standard.md`
Read this standard when:
- WHEN starting any task or implementation work
- WHEN creating or managing issues
### `prj-version-control-standard.md`
Read this standard when:
- WHEN working with git branches, commits, or merges
- WHEN creating or reviewing pull requests
When an AI agent’s task matches a trigger, it reads that standard before proceeding.
Project configuration loads through:
./CLAUDE.md contains @.claude/marr/MARR-PROJECT-CLAUDE.mdWhen both layers define something, this is the precedence:
For example:
But:
~/.claude/
├── CLAUDE.md # Entry point (imports MARR config)
└── marr/
└── MARR-USER-CLAUDE.md # Your personal preferences
your-project/
├── CLAUDE.md # Entry point (imports MARR config)
└── .claude/
└── marr/
├── MARR-PROJECT-CLAUDE.md # Project AI agent config
├── README.md # Explains MARR structure
└── standards/ # Project-level standards
├── prj-development-workflow-standard.md
├── prj-version-control-standard.md
├── prj-testing-standard.md
└── ...
Validate your configuration at any time:
# In your project directory
marr validate
# Strict mode (warnings become errors)
marr validate --strict
This checks: