Canonical, single-topic records for the architectural decisions that shape this platform. Each ADR captures one decision with enough context that a future maintainer can tell why we chose what we chose — and what they'd have to redo if they wanted to change it.
- ADRs (
docs/decisions/) — one decision per file, with a life-cycle status (Proposed / Accepted / Superseded / Deprecated). Short, self-contained, cross-linked to the originating spec or PR. - Design specs (
docs/superpowers/specs/YYYY-MM-DD-*.md) — narrative design documents for a feature or subsystem. May contain several decisions bundled together with implementation detail. Specs are the source of truth for the narrative; ADRs are the source of truth for the decision. - Design decisions aggregate (../developers/reference/design-decisions.md) — a fast-scan one-liner list of every architectural rule of the platform. Read this to orient; drop into an ADR when you need the why.
If a decision is worth its own follow-up conversation a year from now, write an ADR. If it's a tactical choice tied to one feature's implementation, keep it in the spec.
NNNN-kebab-case-title.md — four-digit, zero-padded, monotonically increasing. Numbers are permanent; if an ADR is superseded, the new ADR gets the next number and the old one is marked Superseded by ADR-NNNN.
Never renumber; never delete. Deprecated ADRs stay, so the trail is intact.
| Status | Meaning |
|---|---|
Proposed |
Drafted, under review. Not yet in effect. |
Accepted |
The decision the platform runs under today. |
Superseded by ADR-NNNN |
Replaced by a later ADR. Kept for history. |
Deprecated |
No longer applies, but not replaced by a newer ADR (e.g. the constraint the decision addressed went away). |
- Copy
_template.mdtoNNNN-your-title.mdwith the next unused number. - Fill it in. Keep the whole document under ~120 lines — one screenful of context beats an unread essay.
- Add an entry to the table below.
- Add the ADR to the sidebar in
docs/.vitepress/config.tsunder Developers → Reference → Architecture decisions (ADR). Thepredocs:buildguard fails the build if you skip this. - Open a PR. ADRs are reviewed like code.
| # | Title | Status | Date | Related |
|---|---|---|---|---|
| 0001 | Tutorial HTML persists in HANA, not on disk | Accepted | 2026-04-28 | hugo-migration spec |
| 0002 | QA channel is a parallel srv + HDI, not a route flag | Accepted | 2026-05-23 | tutorials-qa spec |
| 0003 | Public Hugo with lazy XSUAA login | Accepted | 2026-04-22 | POC spec |
| 0004 | JWT-only identity on CAP (no SCI profile enrichment) | Accepted | 2026-04-28 | IMS CAP rewrite spec, authentication |
| 0005 | bootstrap vs. served route/plugin split |
Accepted | 2026-04-28 | design-decisions §CAP runtime |
| 0006 | Authorship vs. ownership vs. contribution semantics | Accepted | 2026-07-01 | #862, spec |
- Design decisions — quick-scan list of every architectural rule the platform runs under
- Postmortems — sibling directory: what went wrong, what we changed
- Design specs — dated design documents (
docs/superpowers/specs/, browsable in the repo; excluded from the VitePress build)