cli/docs/adr/README.md
Snider 1d73209e89 Add Architecture Decision Records (ADRs) (#312)
* docs: add Architecture Decision Records (ADRs)

Established a system for documenting architectural decisions.
- Created docs/adr directory
- Added ADR template (0000-template.md)
- Established ADR process in docs/adr/README.md
- Documented 4 key existing decisions (0001-0004)
- Integrated ADRs into mkdocs.yml and docs/index.md

* docs: add Architecture Decision Records (ADRs)

Established a system for documenting architectural decisions.
- Created docs/adr directory
- Added ADR template (0000-template.md)
- Established ADR process in docs/adr/README.md
- Documented 4 key existing decisions (0001-0004)
- Integrated ADRs into mkdocs.yml and docs/index.md
- Fixed formatting in pkg/io/local/client.go

* docs: add ADRs and fix auto-merge CI

- Added Architecture Decision Records (ADRs) to docs/adr/
- Integrated ADRs into mkdocs.yml and docs/index.md
- Localized .github/workflows/auto-merge.yml to fix "fatal: not a git repository" error in the reusable workflow by adding explicit --repo context.
2026-02-05 03:43:16 +00:00

32 lines
1.7 KiB
Markdown

# Architecture Decision Records (ADR)
This directory contains the Architecture Decision Records for the Core project.
## What is an ADR?
An Architecture Decision Record (ADR) is a document that captures an important architectural decision made along with its context and consequences.
## Why use ADRs?
- **Context:** Helps new contributors understand *why* certain decisions were made.
- **History:** Provides a historical record of the evolution of the project's architecture.
- **Transparency:** Makes the decision-making process transparent and open for discussion.
## ADR Process
1. **Identify a Decision:** When an architectural decision needs to be made, start a new ADR.
2. **Use the Template:** Copy `0000-template.md` to a new file named `NNNN-short-title.md` (e.g., `0001-use-wails-v3.md`).
3. **Draft the ADR:** Fill in the context, drivers, and considered options.
4. **Propose:** Set the status to `proposed` and open a Pull Request for discussion.
5. **Accept/Reject:** Once a consensus is reached, update the status to `accepted` or `rejected` and merge.
6. **Supersede:** If a later decision changes an existing one, update the status of the old ADR to `superseded` and point to the new one.
## ADR Index
| ID | Title | Status | Date |
|---|---|---|---|
| 0000 | [ADR Template](0000-template.md) | N/A | 2025-05-15 |
| 0001 | [Use Wails v3 for GUI](0001-use-wails-v3.md) | accepted | 2025-05-15 |
| 0002 | [IPC Bridge Pattern](0002-ipc-bridge-pattern.md) | accepted | 2025-05-15 |
| 0003 | [Service-Oriented Architecture with Dual-Constructor DI](0003-soa-dual-constructor-di.md) | accepted | 2025-05-15 |
| 0004 | [Storage Abstraction via Medium Interface](0004-storage-abstraction-medium.md) | accepted | 2025-05-15 |