This is a pragmatic “CI-style” matrix you can run locally to regenerate the key artifacts and verify the system stays healthy.
python -m pytest tests/ -qCollect synthetic bootstrap (optional) and export:
sage rl collect-synth --rows 650
sage rl export --output datasets/routing_v1.jsonlSeparate provenance exports (recommended for strict evidence runs):
sage rl export --output datasets/routing_real_v1.jsonl --data-source real
sage rl export --output datasets/routing_synth_v1.jsonl --data-source syntheticValidate provenance and reward distribution:
sage rl analyze-rewards --data datasets/routing_v1.jsonl --out datasets/reward_report.jsonTrain policies:
sage rl train-bc --data datasets/routing_v1.jsonl --out memory/rl/policy_bc.joblib
sage rl train-cql --data datasets/routing_v1.jsonl --out memory/rl/policy_cql.joblibOffline evaluation artifact:
sage rl eval-offline --data datasets/routing_v1.jsonl --checkpoint memory/rl/policy_cql.joblib --out datasets/offline_eval_cql.jsonsage bench --out memory/benchmarks/bench.jsonReproducible run-pack (result + manifest protocol metadata):
sage bench --compare-policy --run-pack-dir memory/benchmarks/run_pack_compareOptional compare mode (LLM-dependent):
sage bench --compare-policy --out memory/benchmarks/bench_compare.jsonGenerate tasks and run a subset:
sage sim generate --count 1000 --out datasets/sim_tasks.jsonl
sage sim run --tasks datasets/sim_tasks.jsonl --workers 4 --limit 50Docker mode (requires Docker):
docker build -f sim/Dockerfile -t sage-sim:latest .
sage sim run --tasks datasets/sim_tasks.jsonl --workers 4 --limit 20 --dockerpython -c "from sage.sim.ppo import train_ppo; import json; print(json.dumps(train_ppo(steps=500, seed=1), indent=2))"