Architecture Decision Records
Each record captures the context, decision, and consequences of one design choice in the fork management system. They are grouped by the question they answer.
Impact Levels
Critical - Fundamental to system operation; changes require careful migration planning
High - Significant workflow effects; changes affect multiple components
Medium - Localized improvements; changes have bounded effects
Catalog
Numbers 017, 032, and 034 were retired and are intentionally unused.
Foundation & Core Architecture
"What are the fundamental design choices?"
Foundation decisions that define the system's structure and approach:
| ADR | Decision | Impact |
|---|---|---|
| 001 | Three-Branch Strategy | Critical |
| 002 | GitHub Actions Automation | Critical |
| 003 | Template Repository Pattern | Critical |
Repository Initialization & Setup
"How do I create and configure a new fork?"
Decisions governing repository initialization, configuration, and security setup:
| ADR | Decision | Impact |
|---|---|---|
| 006 | Two-Workflow Initialization | High |
| 007 | Workflow Bootstrap Pattern | Medium |
| 008 | Centralized Label Management | Medium |
| 016 | Initialization Security Handling | Medium |
Upstream Synchronization & Integration
"How do I keep my fork in sync with upstream?"
Decisions for synchronizing with upstream repositories and integrating changes:
| ADR | Decision | Impact |
|---|---|---|
| 005 | Conflict Management Strategy | Critical |
| 009 | Asymmetric Cascade Review | Medium |
| 019 | Cascade Monitor Pattern | High |
| 021 | Pull Request Target Pattern | Medium |
| 023 | Meta Commit Strategy | High |
| 024 | Duplicate Prevention Architecture | Medium |
| 038 | Upstream Filter Transform | Critical |
| 039 | Customer-Tier Mirror Sync | High |
State Management & Tracking
"How do I track progress and workflow state?"
Decisions for managing workflow state and tracking lifecycle:
| ADR | Decision | Impact |
|---|---|---|
| 020 | Human-Required Label Strategy | High |
| 022 | Issue Lifecycle Tracking | Medium |
Build, Test & Dependencies
"How do I build, test, and maintain dependencies?"
Build architecture, dependency management, and documentation:
| ADR | Decision | Impact |
|---|---|---|
| 025 | Java/Maven Build Architecture | High |
| 026 | Dependabot Security Updates | Medium |
| 027 | Documentation Generation | Medium |
CI/CD & Deployment
"How do services get built and published per PR?"
Decisions for the container image build, the image registry, the acceptance-test contract, and the deploy lane designed in Borrow, Prove, Restore:
| ADR | Decision | Impact |
|---|---|---|
| 033 | GHCR as Service Image Registry | Medium |
| 035 | Azure-Only Maven Profile Restriction | Medium |
| 036 | Workflow Trust Boundaries for CI/CD | High |
| 037 | Engineering System Owns the Canonical Service Dockerfile | High |
| 040 | Descriptor-Owned Acceptance Contract | High |
| 041 | Borrow, Prove, Restore Lane | High |
| 042 | Paired Loader Image from the Service Fork | Medium |
Release Management
"How do releases get created and published?"
Version management and release automation:
| ADR | Decision | Impact |
|---|---|---|
| 004 | Release Please Versioning | High |
Template Maintenance & Evolution
"How do fork repositories stay updated with template improvements?"
Decisions for propagating template updates to fork repositories:
| ADR | Decision | Impact |
|---|---|---|
| 011 | Configuration-Driven Sync | High |
| 012 | Template Update Propagation | High |
| 018 | Fork-Resources Staging | Medium |
| 031 | Template Sync Duplicate Prevention | Medium |
Workflow Infrastructure & Patterns
"What are the reusable building blocks?"
Technical patterns and infrastructure for workflow implementation:
| ADR | Decision | Impact |
|---|---|---|
| 010 | YAML-Safe Shell Scripting | Medium |
| 013 | Reusable GitHub Actions | Medium |
| 014 | AI-Enhanced Workflows (superseded) | None |
| 015 | Template-Workflows Separation | Medium |
| 028 | Workflow Script Extraction | Medium |
| 029 | GitHub App Authentication | High |
| 030 | CodeQL Summary Job Pattern | High |
Lessons drawn from these decisions are collected in Learnings.