Skip to content

Architecture Decision Records โ€‹

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.

What lives here vs. elsewhere โ€‹

  • 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.

Filename convention โ€‹

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 vocabulary โ€‹

StatusMeaning
ProposedDrafted, under review. Not yet in effect.
AcceptedThe decision the platform runs under today.
Superseded by ADR-NNNNReplaced by a later ADR. Kept for history.
DeprecatedNo longer applies, but not replaced by a newer ADR (e.g. the constraint the decision addressed went away).

Writing a new ADR โ€‹

  1. Copy _template.md to NNNN-your-title.md with the next unused number.
  2. Fill it in. Keep the whole document under ~120 lines โ€” one screenful of context beats an unread essay.
  3. Add an entry to the table below.
  4. Add the ADR to the sidebar in docs/.vitepress/config.ts under Developers โ†’ Reference โ†’ Architecture decisions (ADR). The predocs:build guard fails the build if you skip this.
  5. Open a PR. ADRs are reviewed like code.

Index โ€‹

#TitleStatusDateRelated
0001Tutorial HTML persists in HANA, not on diskAccepted2026-04-28hugo-migration spec
0002QA channel is a parallel srv + HDI, not a route flagAccepted2026-05-23tutorials-qa spec
0003Public Hugo with lazy XSUAA loginAccepted2026-04-22POC spec
0004JWT-only identity on CAP (no SCI profile enrichment)Accepted2026-04-28IMS CAP rewrite spec, authentication
0005bootstrap vs. served route/plugin splitAccepted2026-04-28design-decisions ยงCAP runtime
0006Authorship vs. ownership vs. contribution semanticsAccepted2026-07-01#862, spec

See also โ€‹

  • 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)