Align documentation with accepted ADR 0011

This commit is contained in:
2026-10-10 16:23:02 +00:00
parent 160604095c
commit b8aada3b6e
3 changed files with 18 additions and 14 deletions

View File

@@ -127,11 +127,12 @@ and execution dependencies are separate from CLI inputs. Integration suites keep
their typed CLI input separate from shared acquisition state. For a configuration their typed CLI input separate from shared acquisition state. For a configuration
operation, initialize and populate each selected scope's input independently, operation, initialize and populate each selected scope's input independently,
applying only its applicable selector bindings; initialize shared state once for applying only its applicable selector bindings; initialize shared state once for
the selected inspection invocation. Named definition inspection uses one input the selected inspection invocation. Configuration input validation receives the
and one shared state. Complete applicable preflight and input checks before shared selected scope identity together with its applicable typed input. Named definition
state initialization and provider acquisition. Factories need not run after a inspection uses one input and one shared state. Complete applicable preflight
failure and remain uninvoked during construction, installation, help, version, and input checks before shared state initialization and provider acquisition.
and scope discovery. Factories need not run after a failure and remain uninvoked during construction,
installation, help, version, and scope discovery.
Omitted input and state factories supply the respective type's zero value, Omitted input and state factories supply the respective type's zero value,
including nil for pointers. Caller factories and callbacks retain responsibility including nil for pointers. Caller factories and callbacks retain responsibility

View File

@@ -201,9 +201,10 @@ needed for CommandKit's source-only releases.
Completed: ADR 0010 is accepted and ADR 0003 is marked partially superseded, Completed: ADR 0010 is accepted and ADR 0003 is marked partially superseded,
with its decision text preserved. The consumer API is finalized, ADR 0011 with its decision text preserved. The consumer API is finalized, ADR 0011
records its registration and input-lifetime choices, ADR 0001 remains accepted records its registration and input-lifetime choices, ADR 0001 remains accepted
with refinements recorded in ADR 0011, and ADR 0010's consumer-migration consequence is superseded for the with refinements recorded in ADR 0011. ADR 0010's consumer-migration consequence
unreleased prototype transition. The architecture policy reflects the selected is superseded for the unreleased prototype transition. The architecture policy
core/integration facades and installed-family ownership. Earlier accepted decision text remains reflects the selected core/integration facades, installed-family ownership, and
scope-aware configuration input validation. Earlier accepted decision text remains
intact. intact.
- Use the finalized [registration API](registration-api.md) and selected module - Use the finalized [registration API](registration-api.md) and selected module
@@ -211,7 +212,8 @@ intact.
- Inventory root exports, imports, private helper use, and family registration - Inventory root exports, imports, private helper use, and family registration
behavior. Use the inventory as evidence of responsibilities and coupling, not behavior. Use the inventory as evidence of responsibilities and coupling, not
as a list of APIs to preserve. Implement final exports and ownership from the as a list of APIs to preserve. Implement final exports and ownership from the
selected API and consumer needs; no compatibility mapping for the unpublished prototype is required. selected API and consumer needs; no compatibility mapping for the unpublished
prototype is required.
- Use the API document's [three representative consumers](registration-api.md#complete-consumer-registration-examples): - Use the API document's [three representative consumers](registration-api.md#complete-consumer-registration-examples):
core only, ConfigKit only, and both libraries. They define the target wiring, core only, ConfigKit only, and both libraries. They define the target wiring,
including combined configuration scopes and independent definition inspection; including combined configuration scopes and independent definition inspection;

View File

@@ -673,10 +673,11 @@ custom inspection callback; this does not redefine upstream version semantics.
### Why inputs and shared state have separate types ### Why inputs and shared state have separate types
Combining selector fields and a cache in one context type obscures their lifetimes. Combining selector storage and a cache in one context type obscures their distinct
A shared pointer to that object cannot isolate selector fields between scopes. lifetimes and can cause scope-specific inputs to alias. Separate input values
Cloning arbitrary application graphs would add a promise CommandKit cannot make. could share a cache through references, but would leave input isolation and state
The selected `Suite[I, S]` makes the actual two responsibilities explicit: lifetime implicit. The selected `Suite[I, S]` makes the two responsibilities
explicit without requiring arbitrary application graphs to be cloned:
- `I`: per-scope/per-command CLI input, initialized and populated independently. - `I`: per-scope/per-command CLI input, initialized and populated independently.
- `S`: shared acquisition state for one selected inspection invocation. - `S`: shared acquisition state for one selected inspection invocation.
@@ -1214,7 +1215,7 @@ The documentation alignment is complete:
| Owner | Recorded decision | | Owner | Recorded decision |
| --- | --- | | --- | --- |
| [ADR 0011](../adr/0011-captured-declarations-and-installation.md) | Captured declarations, atomic installation batches, installed-family ownership, root-only placement, and separate input/shared-state lifetimes | | [ADR 0011](../adr/0011-captured-declarations-and-installation.md) | Captured declarations, atomic installation batches, installed-family ownership, root-only placement, separate input/shared-state lifetimes, and scope-aware configuration input validation |
| [ADR 0001 status](../adr/0001-command-dispatch-and-inputs.md#status) | Remains accepted, with refinements recorded in ADR 0011 and its decision text preserved | | [ADR 0001 status](../adr/0001-command-dispatch-and-inputs.md#status) | Remains accepted, with refinements recorded in ADR 0011 and its decision text preserved |
| [ADR 0010](../adr/0010-optional-integration-modules.md) | Core/integration dependency boundaries remain in effect; ADR 0011 refines registration and supersedes the migration-guide requirement for this unreleased prototype | | [ADR 0010](../adr/0010-optional-integration-modules.md) | Core/integration dependency boundaries remain in effect; ADR 0011 refines registration and supersedes the migration-guide requirement for this unreleased prototype |
| [Architecture policy](../policy/architecture.md) | Uniform installed-family ownership, optional integration facades, and declaration/input boundaries | | [Architecture policy](../policy/architecture.md) | Uniform installed-family ownership, optional integration facades, and declaration/input boundaries |