Context
Epic #11720 graduated from Discussion #11718. Its decomposition produced D0 #11721 — a single ADR ticket scoped to deployment topology + scheduler-task-taxonomy. A post-graduation completeness audit of #11718 (body Updates a–h + all 29 comments) found the Discussion explicitly calls for more ADRs than D0 delivers, and Epic #11720's own Acceptance Criteria names them — "ADR set: D0 + (D1–D4 where durable decisions are reached) recorded; stale deployment-relevant ADRs/docs updated" — but that AC was never decomposed into a sub-ticket. This is that sub-ticket (Sub G).
The Problem
The deployment decisions made inside the implementation workstreams (Sub B/C/E) are durable architecture choices. Per Discussion #11718 §7 — "D1–D4 become ADRs when their workstreams record durable architecture choices" — and Epic #11720's framing of D0–D5 as decision workstreams each producing an ADR, those records are a required mission outcome (the mission's second clause: a future agent/operator can deploy without tacit maintainer knowledge). Currently no ticket owns authoring them:
- D1 — container topology. #11718 §5 names the D1 ADR three times ("the D1 ADR records the final decision"). Sub B #11723 implements the multi-container compose; nothing records the decision.
- D3 — tenant-repo ingestion ownership. GPT review (#11718): "an ingestion-ownership ADR records the chosen push/server-clone policy." Sub E #11726 documents the operational model but is not an ADR.
- D4 — backup / redeploy-safe persistence. GPT review: "a persistence ADR records the chosen bind-mount/backup externalization policy." Sub C #11724 implements bind-mounts; nothing records the decision.
- D2 — provider isolation / resource-governance. #11718 §3.1 + GPT STEP_BACK list this as an ADR candidate; §5 D2 suggests it may fold into the D1 ADR as a section — the fold-vs-standalone call is itself unresolved.
- Stale-ADR reconciliation. Epic #11720 AC: "stale deployment-relevant ADRs/docs updated." If the D0/D1 topology decision supersedes or amends ADR 0003 (unified Chroma) or 0009 (cross-daemon lease), those need annotation. No ticket owns the sweep.
The Fix
Author the cloud-deployment ADR set under learn/agentos/decisions/, each as a decision record — chosen outcome + rejected options, per ADR 0005/0006 — never an open options workspace:
- D1 container-topology ADR — the chosen production topology (container count: 3 today → 4 with the orchestrator → 5 with a model-provider container) + the lifecycle / resource / security-boundary rationale per service.
- D3 ingestion-ownership ADR — the push-based-default decision + the server-side-clone deferral.
- D4 backup/redeploy-persistence ADR — the chosen bind-mount /
/data externalization policy.
- D2 provider-isolation — resolve standalone-ADR vs D1-ADR-section, then record accordingly.
- Stale-ADR reconciliation — sweep
learn/agentos/decisions/ for deployment-relevant ADRs (esp. 0003, 0009) the topology decision supersedes/amends; annotate them; record the sweep result even if "no change needed."
Authoring discipline: each decision ADR (D1/D3/D4) is authored alongside — ideally in the same PR as — the implementation work that crystallizes its decision (D1 ↔ Sub B #11723, D3 ↔ Sub E #11726, D4 ↔ Sub C #11724), so they are decision records, not retroactive paperwork. This ticket is the accountability umbrella ensuring none is dropped, and directly owns the cross-cutting items (D2 fold-vs-standalone, stale-ADR sweep).
Acceptance Criteria
Out of Scope
- The D0 topology + scheduler-task-taxonomy ADR — owned by D0 #11721.
- The implementation work (compose, bind-mounts, ingestion model) — owned by Sub B #11723 / Sub C #11724 / Sub E #11726.
- D5 graph-store evolution ADR (SQLite → networked SQL) — explicitly a v13 follow-up per #11718 §5 D5.
- A new
ai/config wake toggle — gated on V-B-A per #11718 (GPT C26); not pre-filed.
Avoided Traps
| Trap |
Why rejected |
| Four separate ADR tickets (D1/D2/D3/D4) |
Fragments a coherent decision-record set + inflates ticket count vs the 60–80 ceiling; one umbrella with per-ADR ACs keeps the set coherent and reversible |
| ADR as an open A/B/C/D options workspace |
An ADR is a decision record — chosen outcome + rejected options — per ADR 0005/0006 |
| Author all ADRs in one trailing PR after Sub B/C/E land |
Retroactive paperwork, not decision records; each ADR ships with the PR that makes its decision |
Related
- Parent epic: #11720
- Blocked by: D0 #11721 (the topology gate must land first)
- Coordinates with: Sub B #11723 (D1), Sub C #11724 (D4), Sub E #11726 (D3) — the decision-producing workstreams
- Graduating Discussion: #11718 (post-graduation completeness audit)
- ADRs: format per 0005 / 0006; in scope for reconciliation — 0003 (unified Chroma), 0009 (cross-daemon lease)
Origin Session ID
8e1dc8ca-b5a5-4479-b3cf-31918eb4a5b2
Context
Epic #11720 graduated from Discussion #11718. Its decomposition produced D0 #11721 — a single ADR ticket scoped to deployment topology + scheduler-task-taxonomy. A post-graduation completeness audit of #11718 (body Updates a–h + all 29 comments) found the Discussion explicitly calls for more ADRs than D0 delivers, and Epic #11720's own Acceptance Criteria names them — "ADR set: D0 + (D1–D4 where durable decisions are reached) recorded; stale deployment-relevant ADRs/docs updated" — but that AC was never decomposed into a sub-ticket. This is that sub-ticket (Sub G).
The Problem
The deployment decisions made inside the implementation workstreams (Sub B/C/E) are durable architecture choices. Per Discussion #11718 §7 — "D1–D4 become ADRs when their workstreams record durable architecture choices" — and Epic #11720's framing of D0–D5 as decision workstreams each producing an ADR, those records are a required mission outcome (the mission's second clause: a future agent/operator can deploy without tacit maintainer knowledge). Currently no ticket owns authoring them:
The Fix
Author the cloud-deployment ADR set under
learn/agentos/decisions/, each as a decision record — chosen outcome + rejected options, per ADR 0005/0006 — never an open options workspace:/dataexternalization policy.learn/agentos/decisions/for deployment-relevant ADRs (esp. 0003, 0009) the topology decision supersedes/amends; annotate them; record the sweep result even if "no change needed."Authoring discipline: each decision ADR (D1/D3/D4) is authored alongside — ideally in the same PR as — the implementation work that crystallizes its decision (D1 ↔ Sub B #11723, D3 ↔ Sub E #11726, D4 ↔ Sub C #11724), so they are decision records, not retroactive paperwork. This ticket is the accountability umbrella ensuring none is dropped, and directly owns the cross-cutting items (D2 fold-vs-standalone, stale-ADR sweep).
Acceptance Criteria
learn/agentos/decisions/— chosen outcome + rejected options.learn/agentos/decisions/swept; any ADR superseded/amended by the topology decision is annotated; the sweep result is recorded even if no change is needed.Out of Scope
ai/configwake toggle — gated on V-B-A per #11718 (GPT C26); not pre-filed.Avoided Traps
Related
Origin Session ID
8e1dc8ca-b5a5-4479-b3cf-31918eb4a5b2