Path Resolver#

The path resolver compiles a YAML recipe and reports whether the selected path can execute.

Use it after inspecting the tree and before running a recipe.

CLI#

macroforecast-navigate resolve examples/recipes/model-benchmark.yaml

Output#

The resolver returns:

Field

Meaning

input_yaml_path

Recipe path passed to the resolver.

execution_status

Compiler route status.

warnings

Non-fatal warnings.

blocked_reasons

Reasons a path cannot execute.

tree_context

Canonical route context, fixed axes, sweep axes, leaf config, and route owner.

layer3_capability_matrix

Active forecast-generation cell and gated future cells.

Status Meanings#

Status

Meaning

executable

The recipe can run with the current runtime.

blocked_by_incompatibility

Values are valid individually but cannot compose in the current runtime.

compile_error

The YAML contains invalid axis values, missing required fields, or governance violations.

ready_for_wrapper_runner

The path is valid but belongs to a higher-level wrapper such as a replication or study runner.

Canonical Path Discipline#

The resolver is the last authority before execution. The Tree Navigator can explain disabled branches, but the compiler still decides whether the complete route is executable.

Examples:

  • tcode_policy=official_tcode_only with scaling_policy=standard is invalid because official_tcode_only cannot carry extra preprocessing.

  • Coulombe-style t-code + standardize must use tcode_policy=official_tcode_then_extra_preprocess, preprocess_order=official_tcode_then_extra, and a train-only fit scope.

  • Raw-panel iterated forecasting requires an explicit future-X path assumption.

Python#

from macroforecast.navigator.core import resolve_yaml_path

resolved = resolve_yaml_path("examples/recipes/model-benchmark.yaml")
print(resolved["execution_status"])