marr

MARR Concept and Specification

This document defines what MARR is, its core concepts, and the boundaries of the system.

What is MARR?

MARR (Making Agents Really Reliable) is a configuration system that provides AI coding agents with consistent project context and standards.

Marr is my real surname. I needed a config folder that Anthropic would never accidentally claim in .claude/, so I just used my own name and retrofitted the backronym. Peak efficiency, minimal narcissism. Honest! πŸ˜„

MARR treats AI agent directives as first-class project infrastructure β€” not ad-hoc notes scattered across READMEs or chat sessions.

The Problem MARR Solves

Without MARR:

With MARR:

Core Concepts

Standards

A standard is a binding constraint on AI agent behavior. Standards are not guidelines or suggestions β€” they are requirements.

Standards are markdown files with:

Standards live in .claude/marr/standards/ and use the naming pattern prj-{topic}-standard.md.

Triggers

A trigger is a condition that determines when a standard should be read.

Triggers are natural language descriptions of situations:

triggers:
  - WHEN starting any feature, task, or implementation work
  - WHEN working with git branches, commits, or pull requests

When an AI agent’s task matches a trigger, it reads that standard before proceeding. Multiple standards can trigger for the same task.

Triggers are semantic, not mechanical β€” they describe situations an agent can recognize, not file patterns or keywords.

Two-Layer Configuration

MARR separates configuration into two layers:

User layer (~/.claude/marr/)

Project layer (.claude/marr/)

Precedence: Project standards override user preferences when they conflict. A project can enforce stricter rules than a user’s defaults.

Import Mechanism

MARR integrates with Claude Code via markdown imports:

~/.claude/CLAUDE.md
  └── @~/.claude/marr/MARR-USER-CLAUDE.md    (user config)

./CLAUDE.md
  └── @.claude/marr/MARR-PROJECT-CLAUDE.md   (project config)

Claude Code reads CLAUDE.md files and follows import directives. MARR uses this mechanism rather than inventing a new one.

System Boundaries

What MARR Is

What MARR Is Not

Scope Boundaries

In scope:

Out of scope:

Design Principles

Configuration is Code

All configuration lives in version-controlled files. No databases, dashboards, or external services. Changes are tracked like code.

Claude Code First

Built for Claude Code, with portable markdown format for future multi-agent support. The configuration format isn’t agent-specific.

Opinionated Defaults

MARR ships with standards that encode best practices. Users can customize, but defaults work out of the box. There’s one way to structure things, not many options.

Gradual Adoption

Start with marr init --project and get working config immediately. Customize over time. No need to understand everything upfront.

Standards Over Guidelines

MARR standards use imperative language (β€œmust”, β€œnever”) not soft suggestions (β€œshould”, β€œconsider”). If something is optional, it doesn’t belong in a standard.

File Structure

~/.claude/
β”œβ”€β”€ CLAUDE.md                        # User entry point
└── marr/
    └── MARR-USER-CLAUDE.md          # User preferences

project/
β”œβ”€β”€ CLAUDE.md                        # Project entry point
└── .claude/
    └── marr/
        β”œβ”€β”€ MARR-PROJECT-CLAUDE.md   # Project config + standard registry
        β”œβ”€β”€ README.md                # Explains structure
        └── standards/
            β”œβ”€β”€ prj-development-workflow-standard.md
            β”œβ”€β”€ prj-version-control-standard.md
            β”œβ”€β”€ prj-testing-standard.md
            └── ...

Bundled Standards

MARR ships with standards covering common development concerns:

Standard Scope
Development Workflow Issues, tasks, releases, hotfixes
Version Control Git branches, commits, PRs, tagging
Testing Test philosophy, priorities, coverage
Documentation Organization, content types, maintenance
MCP Usage Model Context Protocol tool usage
UI/UX Accessibility, mobile-first, conversion
Writing Prompts Creating standards and prompt files

Projects choose which standards to install. Not every project needs every standard.

Future Direction