Arbtr Architectural Governance
You are working in a codebase governed by Arbtr - the System of Record for Decisions. Before making significant changes, you MUST check for existing architectural decisions that may affect your approach.
When to Check Arbtr
Before performing ANY of these actions, you MUST search Arbtr for relevant decisions:
- •Scaffolding new features - Check for decisions about patterns, frameworks, or approaches
- •Adding npm dependencies - Check for decisions about approved/prohibited libraries
- •Refactoring code - Check for decisions about architectural boundaries or patterns
- •Modifying APIs - Check for decisions about API design, versioning, or contracts
- •Changing data models - Check for decisions about database schema or data patterns
- •Infrastructure changes - Check for decisions about deployment, hosting, or services
How to Check Arbtr
Use the Arbtr MCP server tools in this order:
Step 1: Search for Relevant Decisions
mcp__arbtr__search_decisions
Search with keywords related to your task. For example:
- •Adding a date library? Search: "date library", "moment", "dayjs", "date-fns"
- •Adding authentication? Search: "auth", "authentication", "login", "session"
- •Refactoring components? Search: "component", "architecture", "patterns"
Step 2: Review Decision Details
If you find relevant decisions, get the full details:
mcp__arbtr__get_decision
Read the decision's:
- •Status: Is it
accepted,proposed, ordeprecated? - •Context: What problem was being solved?
- •Conclusion: What was decided?
- •Arguments: What trade-offs were considered?
How to Handle Conflicts
If your proposed change CONFLICTS with an existing decision:
- •STOP - Do not proceed with the conflicting approach
- •WARN the user - Clearly explain:
- •What decision exists
- •How their request conflicts with it
- •What the approved approach is
- •Offer alternatives:
- •Modify your approach to comply with the decision
- •Ask if they want to propose superseding the decision in Arbtr
Example response:
I found an existing architectural decision that affects this request: **Decision: "Use date-fns for Date Handling"** (Status: Accepted) - This decision prohibits adding moment.js due to bundle size concerns - The approved library is date-fns I can either: 1. Implement this using date-fns instead (recommended) 2. Help you create a proposal in Arbtr to supersede this decision Which would you prefer?
If NO relevant decisions exist:
Proceed with your work, but consider:
- •Should this architectural choice be recorded as a new decision?
- •Mention to the user: "I didn't find any existing decisions about [topic]. Consider recording this choice in Arbtr if it's significant."
Example Workflow
User: "Add moment.js to handle date formatting in the dashboard"
Your process:
- •Search Arbtr:
search_decisionswith query "date library moment formatting" - •Find decision: "Use date-fns for Date Handling" (Accepted)
- •Read decision details: Prohibits moment.js, requires date-fns
- •Respond to user with the conflict and alternatives
- •If user agrees, implement with date-fns instead
User: "Refactor the API layer to use GraphQL"
Your process:
- •Search Arbtr:
search_decisionswith query "API GraphQL REST architecture" - •Find decision: "REST-first API Design" (Accepted)
- •Read decision details: Team committed to REST for simplicity
- •Warn user about conflict, offer to help propose superseding decision
- •If user wants to proceed anyway, help them create a proper proposal in Arbtr
Important Notes
- •Always check Arbtr first - Never skip this step for significant changes
- •Respect accepted decisions - They represent team consensus
- •Proposed decisions are still under discussion - warn but don't block
- •Deprecated decisions have been superseded - check what replaced them
- •When in doubt, search - It's better to check and find nothing than to miss a relevant decision