* 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.
32 lines
1.7 KiB
Markdown
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 |
|