Skip to content

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