I1114 — A provider is an adapter over the model, and adding one is an implementation
Make every provider-specific representation a derived adapter over the repository model, so that supporting another provider is one implementation rather than a copy of the instructions in another file.
BLOCKED wave 6 · p1 · implementation profile · parallel safe
Blocked. This issue cannot start until I1112 is done. The status is derived from that, not declared.
Objective
Make every provider-specific representation a derived adapter over the repository model, so that supporting another provider is one implementation rather than a copy of the instructions in another file.
Why
Provider files are the fastest-growing part of any repository that works with several assistants, and each copy drifts from the layer it was copied from. The layer is provider-neutral by design; the adapters are where a provider's requirements are allowed to exist.
Current state
Provider bootstraps are generated from the registry, which is the right shape, but they land at the root and their ownership is not recorded.
Desired state
Adapters are generated into the control-plane namespace, bridged at the root only where a tool truly requires a root file, and a new provider is a trait implementation.
Scope
- apps/majordomus-cli/src/providers.rs
- .majordomus/generated
Out of scope
- Provider semantics in the canonical layer
- A provider list maintained by hand
Dependencies
What waits on this
Acceptance criteria
- Every provider representation is derived from the model and declares its provenance
- Adding a provider is one implementation of the adapter contract, with no edit to the layer and no new list
- A provider that can be configured programmatically produces no repository file at all
- Where a root file is unavoidable it is a managed bridge with recorded ownership, and its content is derived
Validation
- majordomus generate --check
- cargo test --workspace --all-features
Evidence required
- adapters_derived
- new_provider_is_one_impl
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Risk
An adapter layer can grow provider-shaped holes in the model beneath it. The check is whether the model would still be complete if every adapter were deleted.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I1114.yaml. Read it back with majordomus plan show I1114.