Concepts
This page explains the model behind the CLI. Open the concepts overview
Resolution¶
Resolution is the step where envctl determines what is actually true for the current run.
It is the bridge between the shared contract and the currently selected local values.
What it is¶
Resolution answers one question:
Given this contract and this local context, what is the effective environment right now?
It is the point where the model stops being abstract.
Why it matters¶
A contract can look fine and local values can look fine, yet runtime behavior can still be surprising. What matters is not only what exists, but how it becomes effective.
That is what resolution defines.
The contract defines shared requirements. Resolution computes current truth inside that model.
What problem it solves¶
Resolution gives envctl one explicit place to answer:
- which concrete values are in play now
- whether the selected local context satisfies the contract
- what should be validated or projected next
That is why check depends on resolution:
$ envctl check
Underneath, that asks whether the resolved environment satisfies the contract.
What it is not¶
Resolution is not:
- the contract itself
- a random merge of files
- inherited shell state by accident
- projection into a subprocess or file
It computes what is true. It does not decide how that truth is handed off.
How it fits in the system¶
The sequence is:
- the contract defines requirements
- local values and profiles provide the current context
- resolution computes the effective environment
- projection hands that result to a process, file, or tool
That separation is why validation, inspection, and runtime handoff can stay clear instead of collapsing into one fuzzy step.