This document explains why MARR is designed the way it is.
AI coding agents lack consistent context across projects:
MARR separates configuration into two layers:
┌─────────────────────────────────────────┐
│ User Level (~/.claude/marr/) │
│ - Personal preferences │
│ - Communication style │
│ - Approval requirements │
└─────────────────────────────────────────┘
↓ inherited by
┌─────────────────────────────────────────┐
│ Project Level (.claude/marr/) │
│ - Project-specific requirements │
│ - Technical standards │
│ - Team conventions │
└─────────────────────────────────────────┘
Why two layers?
Standards (workflow, testing, documentation, etc.) are installed per-project, not per-user.
Reasons:
MARR integrates with Claude Code via the import mechanism:
~/.claude/
├── CLAUDE.md ← Claude Code reads this
│ └── @~/.claude/marr/... ← Import line added by MARR
└── marr/
└── MARR-USER-CLAUDE.md ← Your preferences
Claude Code only reads from ~/.claude/. MARR places its user config there and uses the @ import syntax to load it.
Standards aren’t read upfront — they’re read on-demand based on trigger conditions.
### `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
Why triggers?
All configuration lives in version-controlled files. No databases, no dashboards, no external services.
Built specifically for Claude Code, with hooks for future multi-agent support. The markdown format is portable to other agents.
MARR ships with standards that encode best practices. Users can customize, but the defaults work out of the box.
Start with marr init --project and get working config immediately. Customize over time as needs emerge.
MARR’s documentation follows the same principles it enforces: role-first organization with Diátaxis content types.
docs/
├── user/ # For people using MARR
│ ├── how-to/ # Task-oriented guides (getting started, customizing)
│ ├── reference/ # Lookup material (standards reference)
│ └── explanation/# Conceptual content (configuration system)
└── dev/ # For people developing MARR
├── how-to/ # Task-oriented guides (contributing, testing, publishing)
└── explanation/# Conceptual content (architecture, specification)
Why this structure?
The prj-documentation-standard.md codifies this for AI agents working on any MARR-enabled project.