Skip to main content

Architecture Decision Records

Immutable record of Eigenoid's architectural and organizational decisions. Each ADR captures a significant decision, the context behind it, the alternatives considered, and its consequences.

Principles

  • Immutable: once Accepted, an ADR is never edited. If the decision changes, a new ADR is created that supersedes the previous one.
  • Sequential numbering: numbers are never reused, even for rejected ADRs.
  • Written before or during the decision: these are not retroactive documentation; they capture the thinking at the time.
  • Broad scope: decisions that affect more than one module, repo, or person. Local decisions belong in the code or in PRs.

Statuses

StatusMeaning
ProposedOpen proposal under discussion, not yet adopted.
AcceptedActive decision.
RejectedDiscarded proposal; kept to preserve the reasoning.
DeprecatedNo longer applies, but was not replaced by another decision.
Superseded by ADR-NNNNReplaced by a later ADR.

Index

#TitleStatusDate
0001Create a dedicated organization (eigenoid)Accepted2026-04-17
0002Dedicated repository for internal-docsAccepted2026-04-17
0003Adopt ADR formatAccepted2026-04-17
0004GitHub App as default for pipeline tokensAccepted2026-04-17
0005Generic block page for Cloudflare AccessAccepted2026-04-18
0006safe-settings for GitHub governanceAccepted2026-04-18
0007Declarative repo lifecycle governanceAccepted2026-04-19
0008Terraform shared infra modelAccepted2026-04-15
0009GCP multi-project architectureAccepted2026-04-20
0010Split monorepo into core + studioAccepted2026-04-19
0011Repository naming conventionAccepted2026-04-21
0012Auto-bootstrap Terraform state bucketsAccepted2026-04-25
0013safe-settings IaC on Cloud RunAccepted2026-04-24
0014Cloudflare Workers as API GatewayAccepted2026-07-10
0015Studio multi-tenant SaaS aligned with svc-accessAccepted2026-04-30
0016Studio repo split (app-studio + svc-studio + iac-studio)Accepted2026-04-30
0017Studio schema migrations with AlembicAccepted2026-05-04
0018Cloudflare Turnstile widget managed in Terraform with secret pipe to Secret ManagerAccepted2026-07-10
0019MFA auth hardening (RFC-007): TOTP, WebAuthn passkeys, and session state machineAccepted2026-05-22
0020Environment-specific Turnstile keys via use_test_turnstile_keys toggleAccepted2026-05-22

How to propose a new ADR

  1. Copy template.md as NNNN-short-title.md with the next available number.
  2. Fill in the context, decision, and consequences.
  3. Open a PR with status Proposed and request review.
  4. Once accepted, update the status to Accepted, add the entry to this index, and merge.