This directory contains Architecture Decision Records (ADRs) for shared/monorepo-level decisions that affect the entire repository.
For package-specific ADRs, see:
- Client ADRs -
katana-openapi-clientpackage decisions - MCP Server ADRs -
katana-mcp-serverpackage decisions
An Architecture Decision Record (ADR) is a document that captures an important architectural decision made along with its context and consequences.
We use the format proposed by Michael Nygard in his article Documenting Architecture Decisions:
- Title: A short noun phrase describing the decision
- Status: Proposed | Accepted | Deprecated | Superseded
- Context: What is the issue that we're seeing that is motivating this decision?
- Decision: What is the change that we're proposing and/or doing?
- Consequences: What becomes easier or more difficult to do because of this change?
- Proposed: The ADR is proposed and under discussion
- Accepted: The ADR has been accepted and is being implemented
- Deprecated: The ADR is no longer recommended but still in use
- Superseded: The ADR has been replaced by another ADR
- ADR-0009: Migrate from Poetry to uv Package Manager
- ADR-0013: Module-Local Documentation Structure
- ADR-0014: GitHub Copilot Custom Agents with Three-Tier Architecture — superseded by harness-kit +
.claude/
-
Copy the template:
cp docs/adr/template.md docs/adr/NNNN-short-title.md
-
Update the number (NNNN) to be the next sequential number
-
Fill in the sections:
- Title
- Status (start with "Proposed")
- Context (why is this decision needed?)
- Decision (what are we doing?)
- Consequences (what are the tradeoffs?)
-
Create a PR for discussion
-
After acceptance, update status to "Accepted"
ADRs are numbered sequentially starting from 0001, with a single shared sequence across all three ADR directories:
katana_public_api_client/docs/adr/— client package decisions (0001-0008, 0011-0012)docs/adr/— shared / monorepo-level decisions (0009, 0013-0014)katana_mcp_server/docs/adr/— MCP-server-specific decisions (0010, 0016-0019)
The sequence interleaves across the three directories. When you write a new ADR, take the next number across all three directories — don't restart per package, and don't reuse historical numbers (0015 is a dead draft, but reusing it would create ambiguous references). Leave gaps if needed; numbers are monotonic.
- Client ADRs - Client package ADRs
- MCP Server ADRs - MCP server package ADRs
- Contributing Guide - Contribution guidelines
- README - Project overview and quick start