Standards Reference
This document describes each bundled standard that ships with MARR.
Overview
MARR includes seven standards covering common development concerns:
Development Workflow Standard
File: prj-development-workflow-standard.md
Triggers:
- When starting any task or implementation work
- When creating or managing issues
- When preparing a release
- When responding to a production incident
Core Rules
- Verify issue exists before any action — All work must be tracked
- Never start implementation without an issue number — Traceability matters
- Create branch before investigation — Even exploration should be tracked
Issue Types
| Type |
Definition |
| Bug |
Observed behavior differs from expected |
| Feature |
Medium/large deliverable broken into Stories |
| Story |
Small deliverable completable in <3 days |
| Task |
Bounded activity with clear completion criteria |
Release Management
- Patch (0.0.X) — Bug fixes only
- Minor (0.X.0) — New features, backwards compatible
- Major (X.0.0) — Breaking changes
Version Control Standard
File: prj-version-control-standard.md
Triggers:
- When working with git branches, commits, or merges
- When creating or reviewing pull requests
- When configuring repository settings
- When auditing version control compliance
Core Rules
- Never make code changes on main — Main must always be deployable
- Always squash merge — Linear history is easier to debug
- Delete merged branches — Keep the repository clean
- Branch from main only — Except hotfixes from production tags
- Use issue-based branch naming — Format:
<issue-number>-<descriptive-name>
Key Practices
- Branch naming:
42-user-profile-view, 67-fix-login-timeout
- Branch lifetime: Maximum 5 days
- Commit messages: Imperative mood, 50 chars max, no issue numbers
- PR requirements: CI passes, no conflicts, squash merge only
- Tags:
vX.Y.Z format, annotated tags only
Testing Standard
File: prj-testing-standard.md
Triggers:
- When running, writing, or modifying tests
- When evaluating test coverage or testing strategy
- When investigating test failures or flaky tests
- When making code changes that should have test coverage
Core Rules
- Test behavior, not implementation — Users care about outcomes
- Focus on critical paths — That’s where bugs have the highest impact
- Meaningful tests over metrics — Quality trumps quantity
- Never commit with test failures — Broken tests break everyone
Testing Priorities
Always test:
- Critical user workflows
- Data validation and transformation
- Error handling paths
- Security-sensitive operations
- Integration points between systems
Skip testing:
- Framework functionality
- Third-party library behavior
- Trivial getters/setters
- UI appearance (unless critical)
Coverage Philosophy
Coverage is a guide, not a goal. A well-tested critical path is more valuable than 100% coverage of trivial code.
Documentation Standard
File: prj-documentation-standard.md
Triggers:
- When creating, modifying, or organizing project documentation
- When working with README files, guides, or technical specifications
- When deciding where documentation should live in the project structure
- When adding explanations, examples, or user-facing content
Core Rules
- All documentation lives in
docs/ — Scattered docs are invisible
- Organize by role first, then content type — Users identify by role before need
- Keep content types distinct — Mixed purposes confuse readers
- Update docs when code changes — Outdated docs mislead users
- No AI attribution — Content stands on merit
Content Types (Diátaxis Framework)
| Type |
Purpose |
Key Requirement |
| how-to/ |
Task-oriented guides |
Steps only, assume competence |
| reference/ |
Technical descriptions |
Structured for lookup |
| explanation/ |
Design decisions |
The “why”, no procedures |
MCP Usage Standard
File: prj-mcp-usage-standard.md
Triggers:
- When using MCP tools or integrating external services
- When selecting which tool to use for a task
- When troubleshooting tool behavior or failures
- When configuring or setting up MCP servers
Core Rules
- Be specific in tool requests — Ambiguous requests cause wrong tool selection
- Use explicit tool names when unclear — AI cannot infer intent from vague descriptions
- Never assume tool capabilities — Each MCP has specific, limited functionality
- Verify tool availability before use — Not all environments have all MCPs
Best Practices
- Confirm tools are available before using them
- Match tools to specific tasks
- Provide all required parameters explicitly
- Handle errors gracefully—don’t retry without understanding the failure
UI/UX Standard
File: prj-ui-ux-standard.md
Triggers:
- When creating or modifying UI components or layouts
- When making visual design or styling decisions
- When implementing user interactions, forms, or navigation
- When evaluating accessibility or usability
Core Rules
- Always prioritize accessibility — Legal compliance and usability are non-negotiable
- Always use mobile-first design — Mobile traffic dominates modern web
- Always validate with accessibility tools — Automated validation catches issues early
- Always maintain brand consistency — Professional appearance builds trust
- Always optimize for conversion — Business goals require measurable outcomes
Accessibility Requirements
- WCAG 2.1 Level AA compliance mandatory
- 4.5:1 minimum color contrast for text
- 48x48px minimum touch targets
- Keyboard navigation support
- Screen reader compatibility
Mobile-First Priorities
- Mobile (375px-430px) — Primary design target
- Tablet (768px-1024px) — Secondary
- Desktop (1280px+) — Tertiary
Writing Prompts Standard
File: prj-writing-prompts-standard.md
Triggers:
- When creating or modifying prompt files or standards
- When editing CLAUDE.md or MARR configuration files
- When reviewing prompts or standards for quality
- When defining rules or constraints for AI agent behavior
Core Rules
- Always be user and project agnostic — Standards must apply anywhere
- Specify WHAT and WHY, never HOW — AI agents determine implementation
- Never include code, commands, or configuration — Prompts are directives, not tutorials
- Write unconditional imperatives — Standards are not suggestions
- Make every statement verifiable — Unenforceable rules are not standards
- Never modify standards without explicit approval — Controlled documents
Required Structure
Every standard file must have:
- YAML frontmatter (metadata)
- Header with AI agent instructions
- Core rules (non-negotiable requirements)
- Detailed sections (expanded guidance)
- Anti-patterns (forbidden behaviors)
Trigger Design
Triggers are natural language descriptions of situations:
- Begin with “WHEN”
- Describe situations, not keywords
- Broad triggers are better than narrow ones
- Multiple standards can trigger for the same task
Choosing Standards
Not every project needs every standard. Select based on your needs:
| If your project… |
Consider these standards |
| Uses git |
Development Workflow, Version Control |
| Has tests |
Testing |
| Has documentation |
Documentation |
| Uses AI tools |
MCP Usage |
| Has a UI |
UI/UX |
| Has AI config files |
Writing Prompts |
Install only what you need:
# Interactive selection
marr init --project
# All standards
marr init --project --standards all
# List available
marr init --standards list