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

1.7 KiB

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 N/A 2025-05-15
0001 Use Wails v3 for GUI accepted 2025-05-15
0002 IPC Bridge Pattern accepted 2025-05-15
0003 Service-Oriented Architecture with Dual-Constructor DI accepted 2025-05-15
0004 Storage Abstraction via Medium Interface accepted 2025-05-15