ADR: Architecture Decision Records
ADRs capture what we finally decided and why we decided it. Their value is that future readers can quickly understand the constraints and trade-offs at the time, rather than repeating the same discussions again.
What belongs here
- Key decisions that the team has agreed on (e.g. adopting a protocol / storage / architectural split)
- Context, constraints, alternatives, and rationale
- Impact and follow-up actions (migration, compatibility, risks)
What does not belong here
- Drafts that are still undecided (put them in
en/design/) - Raw process notes and review comments (put them in
en/discussions/)
Numbering and naming
- File name:
NNNN-title.md(e.g.0001-cpp23.md) - Title format:
ADR-NNNN: ... - Directory organization: Related ADRs can be organized in subdirectories (e.g.
1-cpp23/,2-basic-project-design/)
ADR List
ADR-0001: Adopt Modern C++23 Features
- Location: 1-cpp23/0001-cpp23.md
- Status: Accepted
- Content: Decision to fully embrace C++23 standard, using modern features like Concepts and stacktrace
ADR-0002: Basic Project Design
- Location: 2-basic-project-design/
- Status: Accepted
- Content: Includes basic design decisions such as project structure, CI/CD requirements, dependency management, testing requirements, feature addition requirements, documentation and comment requirements, contribution guidelines, and error handling guidelines