Summary
The providers.openai nesting in config.yaml is redundant since the type: openai field already identifies the provider. Flatten the structure by moving providers.openai to providers and moving type up one level.
Motivation
The openai key under providers adds no value — it's a redundant nesting level. The type field already identifies the provider, and the openai key is not used for any lookup or routing yet. Flattening simplifies the config structure and removes unnecessary indirection.
Current structure:
providers:
openai:
type: openai
base_url: https://api.openai.com/v1
model: gpt-4o
...
Proposed Solution
Change from providers.openai to providers, and move type from providers.openai.type to providers.type:
providers:
type: openai
base_url: https://api.openai.com/v1
model: gpt-4o
...
Alternatives Considered
Keeping the current structure — but it adds an unnecessary nesting level with no functional benefit.
OpenSpec Note
This project uses OpenSpec for feature development. If this request is approved, I will:
- Run
/opsx:propose to generate a full proposal with specs and tasks
- Iterate on the design before any code is written
- Follow the task-driven implementation workflow
Additional Context
This is a config-only change. The openai key under providers is not referenced anywhere in the codebase for routing or lookup — the type field is the sole identifier.
Summary
The
providers.openainesting inconfig.yamlis redundant since thetype: openaifield already identifies the provider. Flatten the structure by movingproviders.openaitoprovidersand movingtypeup one level.Motivation
The
openaikey underprovidersadds no value — it's a redundant nesting level. Thetypefield already identifies the provider, and theopenaikey is not used for any lookup or routing yet. Flattening simplifies the config structure and removes unnecessary indirection.Current structure:
Proposed Solution
Change from
providers.openaitoproviders, and movetypefromproviders.openai.typetoproviders.type:Alternatives Considered
Keeping the current structure — but it adds an unnecessary nesting level with no functional benefit.
OpenSpec Note
This project uses OpenSpec for feature development. If this request is approved, I will:
/opsx:proposeto generate a full proposal with specs and tasksAdditional Context
This is a config-only change. The
openaikey underprovidersis not referenced anywhere in the codebase for routing or lookup — thetypefield is the sole identifier.