# Architecture decision records This catalogue brings the archived ADRs and the current platform decisions into one sequence. The historical records retain their original status and rationale. Read them in the context of the platform they describe; the current architecture starts with [0034 — fresh service-first skeleton](0034-fresh-skeleton.md). ## Numbering and provenance - The 25 historical records come from [the archived ADR directory](../content/adr) in the main snapshot `8046ea0f1`. The originals were relocated byte-for-byte into `docs/content/adr` under ADR 0042; `docs/provenance.json` records their original blobs and destinations. - Historical filenames are preserved, including both records numbered 0000 and both numbered 0007. Cite their full filenames to distinguish them. These exact pairs are the only exceptions to the duplicate-number check. - Links between ADRs resolve within this directory. Supporting documents link to their archived copies. The LFS quota record's heading is corrected from ADR-0003 to ADR-0001 to match its original filename. - ADR-0025 refers to a network-segmentation ADR-0024 absent from the archive. Its reference is retained as text with that limitation recorded. - Numbers 0026–0033 occur in open legacy proposals as checked on 13 October 2026, including the security proposals under `internal_plans/adr` in [PR #559](https://github.com/pharos-ai-factory/pharos-platform/pull/559). They are reserved here; importing this history does not accept those proposals. - The five newer records are renumbered in their existing order: 0001 → 0034, 0002 → 0035, 0003 → 0036, 0006 → 0037 and 0007 → 0038. Allocate future numbers after the highest on `main` and in open pull requests. ## Current platform decisions | ADR | Decision | | ---- | ---------------------------------------------------------------------------------------------------------------------- | | 0034 | [fresh service-first skeleton](0034-fresh-skeleton.md) | | 0035 | [Shared dev-box AAI](0035-local-aai-laboratory.md) | | 0036 | [Isolated Icarus runtime laboratory](0036-icarus-runtime-laboratory.md) | | 0037 | [Dev-box storage from the final deployment's Rook/Ceph role](0037-dev-box-storage.md) | | 0038 | [Platform service catalogue and shared host edge](0038-platform-edge-catalogue.md) | | 0039 | [Development Argo CD bootstrap and ownership](0039-dev-box-argocd-ownership.md) (proposed) | | 0040 | [Platform layout: Ansible for the cluster, Argo CD for services](0040-platform-layout.md) (proposed) | | 0041 | [GitLab and Waldur as Argo CD services](0041-gitlab-waldur-services.md) (proposed) | | 0042 | [Preserve authorship when reactivating legacy source](0042-legacy-source-relocation.md) | | 0043 | [The retained Themelio as the `themelio-compat` service](0043-themelio-compat-service.md) (proposed) | | 0044 | [The shared LLM stack as the `llm` service](0044-llm-stack-service.md) (proposed) | | 0045 | [The development loop: deploy, reconcile and takeover](0045-development-loop.md) (proposed) | | 0046 | [Service communication, typed query contracts and composition](0046-service-communication-and-composition.md) | | 0047 | [Dev-box consolidation: ownership, Argo AAI and shared data](0047-dev-box-consolidation.md) (proposed) | | 0048 | [Shared infrastructure on personal development boxes](0048-shared-development-infrastructure.md) | | 0049 | [The Kubernetes Site Runtime as the `pharos-site-runtime` service](0049-site-runtime-service.md) (proposed) | | 0051 | [Inventory-driven distributed platform setup](0051-distributed-inventory-setup.md) (proposed) | | 0055 | [Member SSH access to Icarus-hpc](0055-hpc-ssh-key-provisioning.md) (proposed) | | 0056 | [Verified platform releases from one deployment catalogue](0056-verified-platform-releases.md) (proposed) | | 0057 | [Targeted realtime messages](0057-targeted-realtime-messages.md) | | 0058 | [Complete distributed services composition](0058-distributed-services-composition.md) (proposed) | | 0059 | [Production Icarus-hpc provisioning and run installation](0059-icarus-hpc-provisioning-run-installation.md) (proposed) | | 0060 | [Development seeds for Waldur and GitLab](0060-development-seeds.md) (proposed) | | 0061 | [Support context and development broker provisioning](0061-support-context-and-broker-provisioning.md) | | 0062 | [Support tickets go directly to Zammad](0062-support-tickets-direct-zammad.md) | | 0063 | [Zammad integration token](0063-zammad-integration-token.md) | | 0064 | [A dev box's Zammad is seeded from a configuration](0064-dev-box-zammad-from-a-configuration.md) | | 0065 | [Zammad is an optional Argo CD service of the dev box](0065-zammad-on-the-argo-dev-box.md) | | 0066 | [Optional dev-box services use reviewed lifecycle selection](0066-reviewed-optional-dev-box-services.md) | | 0067 | [Kubeflow is one pinned Argo CD composition](0067-kubeflow-gitops-composition.md) (proposed) | | 0068 | [Platform acceptance tests with Playwright and Gherkin](0068-platform-acceptance-tests.md) | | 0069 | [Project-private Run services](0069-project-private-run-services.md) | | 0070 | [Platform-side security scanning of user repositories](0070-platform-side-security-scanning-of-user-repositories.md) (proposed) | | 0071 | [Generated MCP access to the Go API](0071-generated-mcp-api-edge.md) (proposed) | ## Historical records | ADR | Decision | | ---- | ------------------------------------------------------------------------------------------------------------------ | | 0000 | [Meta-Agentic GenAIScript System - Minimal Product Requirements & Architecture](0000-agentic-system.md) | | 0000 | [Friends & Family MVP Scope](0000-mvp-friends-and-family.md) | | 0001 | [LFS Storage Quota Enforcement via Custom Proxy](0001-lfs-storage-quota-enforcement.md) | | 0002 | [Architecture Documentation Update](0002-architecture-docs-update.md) | | 0003 | [Waldur Proposal Workflow](0003-waldur-proposal-workflow.md) | | 0004 | [Xet Content-Addressed Storage for ML Artifacts](0004-xet-content-addressed-storage.md) | | 0005 | [AAI → Waldur User Synchronization](0005-aai-waldur-user-sync.md) | | 0006 | [Automated Data Seeding Strategy](0006-automated-seeding-strategy.md) | | 0007 | [GPU Slicing and Quota Enforcement](0007-gpu-slicing-and-quota-enforcement.md) | | 0007 | [Stress Test Strategy](0007-stress-test-strategy.md) | | 0009 | [Shared LLM Inference Backend](0009-shared-llm-inference-backend.md) | | 0010 | [LLM Gateway and Project Token Quotas](0010-project-scoped-llm-gateway-token-quotas-api-access.md) | | 0011 | [Chat UI and Client Access for Shared LLM Services](0011-human-web-ui-and-agent-client-access.md) | | 0012 | [Job and Deployment Management System](0012-job-deployment-management-system.md) | | 0013 | [actions.yaml Automation System](0013-actions-yaml-automation-system.md) | | 0014 | [GitLab CI Runner on Dedicated AWS EC2 Instance](0014-gitlab-ci-runner-ec2-instance.md) | | 0015 | [GitLab CI Runner EC2 Instance — Ansible Onboarding](0015-gitlab-ci-runner-ec2-ansible-onboarding.md) | | 0016 | [Declarative Database List in the Ansible postgres Role](0016-declarative-database-list-in-postgres-role.md) | | 0017 | [Shared Themelio Database with Decoupled Schema Migrations](0017-shared-themelio-database-decoupled-migrations.md) | | 0018 | [Queued Status and Over-Capacity Handling for Managed Workloads](0018-queued-status-and-over-capacity-handling.md) | | 0019 | [Container Image Tag Management for GitOps Deployments](0019-container-image-tag-management.md) | | 0020 | [LLM Access Membership Source of Truth](0020-llm-access-membership-source-of-truth.md) | | 0021 | [Themelio Command-Line Interface](0021-themelio-cli.md) | | 0023 | [DRA GPU Allocation with Extended Resource Names](0023-dra-gpu-extended-resource-names.md) | | 0025 | [Scoped Istio Authorization Policies](0025-scoped-istio-authorization-policies.md) |