ageval run lifecycle: from static lock to sealed evidence Five phases of one run (lock, environment, run, evaluate, record), with key isolation between environment and scoring plus cross-cutting safeguards. 01 · LOCK 02 · ENVIRONMENT 03 · RUN 04 · EVALUATE 05 · RECORD ageval lock Static dependency graph Resolve plugin contracts Match export & inject Probe env & credentials Fail fast if deps or keys missing lock.json Immutable call blueprint Fail lock → no run Build environment docker · e2b · local… Spin up isolated sandbox Dedicated container / remote instance Upload task files Task code into the environment gold strictly isolated Invisible inside the env now Switch env: one profiles line Task loop run.py drives execution Business loop Local tools & handoffs Multi-turn Agent ACP / specialized long sessions trajectory.jsonl Stream the full trajectory Env/Agent swap leaves run.py Independent eval evaluator.py decides Upload gold now Eval env may use network: none Flexible scoring Scripts / LLM-as-judge Sole source of PASS Agent self-claim doesn't count Supports multi-stage Seal evidence evidence run archive Full reproducibility assets lock.json + result.json Local Viewer review Phase timing & calls Upload to Hub Leaderboards · one-click replay Attributable · reproducible limits · resource caps wall-clock · peak memory · process forks · API calls (trip on exceed) Before the run cleanup · always in finally any exit (ok / fail / timeout / cancel) reclaims sandbox, ports, temp credentials No leftover state LEGEND Phase cards One-way phase advance gold strictly isolated Invisible in the env during the task Evidence seal flow evidence focal end state