github.com/gemaraproj/gemara@v1.3.0

docs/adrs/index.md raw

 1---
 2layout: page
 3---
 4
 5# Architecture Decision Records
 6
 7Architecture Decision Records document important architectural decisions made in the project. 
 8
 9They capture:
10
11- The context that led to the decision
12- The decision itself
13- The consequences (positive, negative, and neutral)
14- Alternatives that were considered
15
16## Records
17
18{% assign adrs = site.pages | where_exp: "p", "p.path contains 'adrs/'" | where_exp: "p", "p.name != 'index.md'" | sort: "path" %}
19{% for adr in adrs %}- **ADR-{{ adr.name | slice: 0, 4 }}** — [{{ adr.title }}]({{ adr.url | relative_url }})
20{% endfor %}
21
22## Format
23
24ADRs follow the format described at [adr.github.io](https://adr.github.io/), with the following structure:
25
261. **Status** - Proposed, Accepted, Deprecated, or Superseded
272. **Context** - The situation and problem that led to this decision
283. **Decision** - The architectural decision and its rationale
294. **Consequences** - Positive, negative, and neutral outcomes
305. **Alternatives Considered** - Other options that were evaluated
31
32## When to Create an ADR
33
34Create an ADR when:
35
36- Making a significant architectural decision that affects the public API
37- Choosing between multiple viable approaches
38- The decision will impact future development or maintenance
39- The decision needs to be communicated to stakeholders
40
41Don't create an ADR for:
42
43- Routine implementation details
44- Temporary workarounds
45- Decisions that are clearly the only viable option