Skip to content

Concepts

This page explains the model behind the CLI. Open the concepts overview

Resolution

Concept

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:

validation
$ 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.

Projection

See how resolved truth reaches subprocesses, files, and downstream tools.

Read about projection

inspect

Use inspection commands when you need to make resolution visible.

Open inspect reference

Debugging

Use a methodical flow when the resolved environment is not what you expected.

Open debugging guide