Program Driver
scripts/goal-runner/program_driver.py is the orchestrator delegate for Program Goals. It is invoked by program_driver_cli.py and is called only when the goal is goal_type: PROGRAM.
Responsibilities
The Program Driver:
- Loads the Program Goal contract.
- Loads the crosswalk.
- Determines the next eligible IMP from runtime state.
- Enforces predecessor
FROZEN_PASS. - Stops at real owner gates.
- Delegates execution to the orchestrator for the eligible child goal.
- Advances to the next IMP after child
FROZEN_PASS. - Computes
PHASE-*coverage from the crosswalk. - Finishes the program only after
IMP-11+ production acceptance.
Routing policy
routing_policy = {
"rule": "linear_chain_with_predecessor_terminal_state",
"predecessor_terminal_state": "FROZEN_PASS",
"may_skip_phases": False,
"synthetic_per_phase_owner_gates": False,
}
The driver does not invent phases, does not skip phases, and does not synthesize per-phase owner gates. Owner gates come from the canonical gates table.
Human gate policy
The Program Driver's human-gate policy is defined in goals/ASF50_PROGRAM_COMPLETION_001/HUMAN_GATE_POLICY.yaml. The driver reads it on every invocation.
What the driver is NOT
- It is not the goal registry.
- It is not the orchestrator.
- It is not the runtime store.
- It does not mutate the runtime directly; it goes through
RuntimeStore.