Job & Config Resolution

Two independent pipelines — Provider→Transform→Registry for jobs, ordered Sources for configuration — that meet at the execution engine

Job & Config Resolution Two independent pipelines — Provider→Transform→Registry for jobs, ordered Sources for configuration — that meet at the execution engine 01 / Sources 02 / Providers 03 / Transform / Chain 04 / Guard 05 / Consumed by Job Directories · *.py scanned on disk · 01 / Sources Job Directories *.py scanned on disk Entry Points · installed plugins · 01 / Sources Entry Points installed plugins CLI Flags · highest precedence · 01 / Sources CLI Flags highest precedence Environment · process env vars · 01 / Sources Environment process env vars Config Files · toml and ini · 01 / Sources Config Files toml and ini Cached Scan · AST extract, mtime cache · 02 / Providers Cached Scan AST extract, mtime cache EntryPoint Provider · plugin-contributed · 02 / Providers EntryPoint Provider plugin-contributed Transforms · provider then app order · 03 / Transform / Chain Transforms provider then app order ResolutionChain · ordered source lookup · 03 / Transform / Chain ResolutionChain ordered source lookup Duplicate Check · raises on name clash · 04 / Guard Duplicate Check raises on name clash Job Registry · JobDescriptor list · 05 / Consumed by Job Registry JobDescriptor list Execution Engine · consumes both · 05 / Consumed by Execution Engine consumes both *.py plugins jobs jobs list unique 1st 2nd 3rd first wins jobs Legend primary data data store data flow

Job discovery

  • • Providers list jobs; provider-level transforms run in registration order
  • • Duplicate names across providers raise rather than shadow
  • • Registration order is preserved so resolution is reproducible

Config resolution

  • • Sources are consulted in a fixed precedence order
  • • The first non-None value wins; lower sources remain introspectable
  • • Each resolved value carries source_type, source_id and key as provenance