ADR-0012: Keep providers optional, untrusted and advisory¶
- Status: Accepted — retrospective baseline.
- Recorded: 2026-09-29. This is the recording date, not an invented original approval date.
- Authority and implementation boundaries: see Evidence below and the register conventions.
Context¶
Models can help propose specifications, but provider SDKs, responses and source-derived metadata create trust and disclosure risks.
Decision¶
Use a provider-neutral typed exchange with immutable trusted instructions, explicitly untrusted metadata, schema and original-request fingerprints. Validate bounded proposals before application; proposals cannot approve, generate, mutate safety policy or access sources.
Send safe metadata only. Even allowed local categories and matching categorical predicates become field-scoped labels outside the local boundary. Provider request/response/token/time/retry budgets cover the full request. SDKs remain optional; normal tests use fictional transports.
Optional semantic-value providers are a distinct narrow hook: bounded deterministic replay and synthetic namespace/privacy checks still apply. They are not authority for model-authored datasets.
Alternatives and consequences¶
Provider-specific logic in the core couples safety to SDK behavior. Passing raw examples or trusting model-declared safety is rejected. Custom application-owned adapters can use the contract without gaining filesystem/database authority.
Evidence¶
Sources: advisor guide, advisor API, semantic provider guide, support policy. Executable anchors: advisor, OpenAI, GigaChat, semantic provider.
Revisit when¶
A provider transport or SDK update needs bounded/redacted contract evidence; new model capabilities do not confer product authority.