MARR is designed to be customized. Standards are starting points, not fixed rules.
You can customize MARR at multiple levels:
| Level | Scope | Location |
|---|---|---|
| User preferences | All projects | ~/.claude/marr/MARR-USER-CLAUDE.md |
| Project standards | Single project | .claude/marr/standards/prj-*.md |
| Standard selection | Single project | marr init --project --standards |
Your user preferences live at ~/.claude/marr/MARR-USER-CLAUDE.md.
Edit this file directly to change:
Changes take effect immediately in new sessions.
Standards live in .claude/marr/standards/ within each project.
prj-version-control-standard.md)Example: Relaxing the branch lifetime rule
The version control standard says “Maximum 5-day branch lifetime.” If your team uses weekly sprints:
## Core Rules
...
6. **Maximum 7-day branch lifetime** because branches should merge by sprint end
...
Delete rules that don’t apply. Standards are for your project—remove what doesn’t fit.
Example: Removing the squash merge requirement
If your team prefers merge commits for traceability, delete the squash merge rule and add your own:
## Core Rules
...
4. **Always use merge commits** because full commit history aids debugging
...
Add rules unique to your codebase:
## Project-Specific Rules
7. **All API routes require authentication middleware** because this is a multi-tenant system
8. **Database queries must use the query builder** because raw SQL bypasses our audit logging
Create new standards for project-specific concerns.
prj-{topic}-standard.mdprj-security-standard.md, prj-api-standard.mdEvery standard needs:
---
marr: standard
version: 1
title: Your Standard Title
scope: Brief description of when this applies
triggers:
- WHEN first trigger condition
- WHEN second trigger condition
---
Add your new standard to .claude/marr/MARR-PROJECT-CLAUDE.md:
### `prj-your-standard.md`
Read this standard when:
- WHEN your trigger condition
- WHEN another trigger condition
Choose which bundled standards to install:
# Interactive selection (default)
marr init --project
# Install all standards
marr init --project --standards all
# Install none (start from scratch)
marr init --project --standards none
# List available standards
marr init --standards list
If you’ve customized standards and want to propagate changes to other projects:
# Sync standards from source project to target
marr sync --from /path/to/source --to /path/to/target
This copies your .claude/marr/ directory while preserving project-specific settings.
If your customizations would benefit others:
Standards in resources/project/common/ become the defaults for new projects.