Historical Decision Log¶
The public-facing index into docs/adr/: every Accepted/Superseded Architecture Decision Record, one line each, for a reader who wants the full paper trail behind Compono's design. This is not a duplicate of docs/adr/README.md (the engineering-process index, which also tracks Proposed ADRs) — a status-filtered view of those still under discussion lives in Roadmap: Proposed ADRs instead. As this log grows across years of decisions, it stays a pure historical record — readers wanting "how it works today" belong in Current Architecture, not here.
| ADR | Title | Status |
|---|---|---|
| 0001 | Source Generation First — generated composition plans, not reflection, are the default execution model | Accepted |
| 0002 | Constructor Selection Algorithm | Accepted |
| 0003 | Generator Package Distribution — Compono.Generators packs into Compono's own nupkg, never published independently | Accepted |
| 0004 | Composition Plan Discovery and Dispatch | Accepted |
| 0005 | Source Generator Implementation Conventions | Accepted |
| 0006 | Required Members and Nullability Metadata | Accepted |
| 0007 | Composition Request and Provider Pipeline | Superseded by ADR-0010 |
| 0008 | Composition Scope, Shared Values, and Recursion Detection | Superseded by ADR-0011 |
| 0009 | Deterministic Seed and Forkable Random Source | Superseded by ADR-0012 |
| 0010 | Composition Request, Provider Pipeline, Failure Semantics, and Diagnostics Tracing | Accepted |
| 0011 | Composition Scope, Shared Values, and Recursion Detection | Accepted |
| 0012 | Composition Path Identity, Deterministic Random Forking, and CreateMany Seed Derivation | Accepted |
| 0013 | Collection Generation Semantics | Accepted |
| 0014 | Generator-Emitted Collection Plans Replace the Reflection-Based Dispatch Bridge | Accepted |
| 0015 | Provider Identity Deferred in ProviderAttempt | Superseded by ADR-0016 |
| 0016 | Provider Identity Restored in ProviderAttempt | Accepted |
| 0017 | Immutable Composer Configuration and Builder Model | Accepted |
| 0018 | Composition Profiles — ICompositionProfile, eager in-order application | Accepted |
| 0019 | Registrations and Service Provider Injection | Accepted |
| 0020 | Composition Configuration Rules — type/member value rules and collection-size policy | Accepted |
| 0021 | Row Composition Entry Point for Test-Framework Integrations | Accepted |
| 0022 | Compono.Xunit Package Design | Accepted |
| 0023 | Rename Compono.Xunit to Compono.XunitV3 | Accepted |
| 0024 | Public Provider Extensibility Model — ICompositionValueProvider for stages ⅚ | Accepted |
| 0025 | Compono.NSubstitute Package Design | Accepted |
| 0026 | Deterministic Seed Derivation for Providers and Registration Factories | Accepted |
| 0027 | Compono.Bogus Package Design | Accepted |
| 0028 | Configurable Bogus Member-Name Conventions | Accepted |
| 0029 | Milestone 7 Dogfooding Strategy and Capability-Gap Decision Framework | Accepted |
| 0030 | Compono Documentation Architecture | Accepted |
| 0031 | Public Preview Release and Versioning Policy | Accepted |
| 0032 | API Reference Documentation Toolchain | Accepted |
| 0033 | Public Preview Samples Strategy | Accepted |
| 0034 | Benchmark Suite Strategy and Redesign — replaces the accreted benchmark suite with a categorized, audience-driven design | Accepted |
| 0035 | Compono Agent Skill Pack | Accepted |
| 0036 | Call-Site Values Influencing Nested Composition | Accepted |
| 0037 | netstandard2.1 Compatibility Floor | Superseded by ADR-0038 |
| 0038 | net8.0/net9.0 Explicit Multi-Target | Accepted |
| 0039 | Future Extension Package Admission Gate and Release Sequence — two-stage admission model for future extension packages, no committed sequence | Accepted |