44 lines
2.3 KiB
Markdown
44 lines
2.3 KiB
Markdown
# Architecture Decision Records (ADRs)
|
|
|
|
This directory documents the key architectural decisions made within the **Infrapuzzle** monorepo and its associated workloads (Kubernetes, OpenClaw AI agent, networking, DNS, and smart home systems).
|
|
|
|
We follow the [Markdown Architectural Decision Records (MADR)](https://adr.github.io/madr/) format to capture intentional technical decisions, their context, considered options, trade-offs, and consequences.
|
|
|
|
---
|
|
|
|
## 📋 Record Index
|
|
|
|
| ADR | Title | Status | Date | Area |
|
|
| :--- | :--- | :---: | :---: | :--- |
|
|
| [**0001**](0001-hybrid-mcp-tool-search-and-subagents.md) | **Hybrid MCP Tool Search and Subagent Delegation for AI Agents** | `accepted` | 2026-09-12 | OpenClaw / AI / MCP |
|
|
| [**0002**](0002-openclaw-model-selection-tiering-and-economics.md) | **OpenClaw Multi-Tier Model Selection, Latency Optimization, and Inference Economics** | `proposed` | 2026-09-13 | OpenClaw / AI / Models |
|
|
| [**0003**](0003-everything-as-code-and-reproducible-infrastructure.md) | **Everything as Code (EaC) and Reproducible Declarative Infrastructure** | `accepted` | 2026-09-17 | Architecture / Monorepo / EaC |
|
|
| [**0004**](0004-structured-personal-data-datastore.md) | **Structured Personal Data Layer (DuckDB + JSONL in Knowledge Wiki)** | `accepted` | 2026-10-06 | OpenClaw / Data / Storage |
|
|
| [**0005**](0005-personal-data-isolation-and-authentik-boundary.md) | **Personal Data Isolation, Authentik Authentication Boundaries, and Hosting Segregation** | `accepted` | 2026-10-11 | Security / Storage / Authentik |
|
|
|
|
---
|
|
|
|
## ✍️ How to Create a New ADR
|
|
|
|
1. Copy the template structure into a new numbered markdown file:
|
|
```bash
|
|
docs/adr/000X-short-title-in-kebab-case.md
|
|
```
|
|
2. Include the YAML frontmatter:
|
|
```yaml
|
|
---
|
|
status: "proposed | accepted | superseded | deprecated"
|
|
date: YYYY-MM-DD
|
|
decision-makers: ["Moritz Graf", "Antigravity"]
|
|
consulted: []
|
|
informed: []
|
|
---
|
|
```
|
|
3. Clearly define:
|
|
- **Context & Problem Statement** (Why was this decision needed?)
|
|
- **Decision Drivers** (Constraints, costs, token limits, latency, maintainability)
|
|
- **Considered Options** (Alternatives evaluated)
|
|
- **Decision Outcome** (Chosen path with justification)
|
|
- **Consequences** (Positive effects, negative trade-offs, follow-up actions)
|
|
4. Add the new record to the table in this `README.md`.
|