Skip to content

Phase 5 decisions, ENG 1 GEN scenario, citation policy, Python CI job (#72) - #80

Merged
Santisoutoo merged 1 commit into
devfrom
feat/72-phase5-docs-ci
Jul 24, 2026
Merged

Phase 5 decisions, ENG 1 GEN scenario, citation policy, Python CI job (#72)#80
Santisoutoo merged 1 commit into
devfrom
feat/72-phase5-docs-ci

Conversation

@Santisoutoo

Copy link
Copy Markdown
Owner

Implements #72 (slice E of the Phase 5 epic #19).

What

  • docs/decisiones.md — D-022..D-025: determinism as checkpoints-with-tolerance without patching the vendor RNG (shared/random.rs native branch is OS-seeded and unseedable; EPIC: scenario suite + procedure ground truth #19's 'deterministic replay' reinterpreted as same input → same trajectory class, with seed reserved in every trajectory meta for a future Sim::set_seed); the benchmark tool profile; the in-process runner + self-contained JSONL trajectory; litellm pinned exactly.
  • Second scenario (scenarios/elec/eng1_gen_fault.yaml): elec.gen.1 on engines-running. The bus tie holds the whole AC network from GEN 2 (verified on pin 13bce4b), so the exam is restraint: reset attempt → isolate → leave both engines alone. forbidden_actions carry the classic wrong-lever error (shutting down a healthy engine over a generator fault); success predicates include both engines still running. Scripted-procedure test included.
  • scenarios/README.md: scenario anatomy + the citation policy the paper depends on (procedure identity + URL-verifiable public secondary source + fidelity notes with vendor pin and date; FCOM wording never reproduced; unstable ECAM messages stay out of the validity gate).
  • CI: new python job — first CI coverage of the whole Python layer (maturin build of bindings/ with cargo cache on its workspace, editable installs, pytest mcp/tests bench/tests), wired into ci-success. No [providers] extra: no LLM, no network in CI.
  • a320_bench lazy imports (PEP 562): read_trajectory no longer drags the compiled binding — the EPIC: scoring metric + baselines/ablations #20 scorer can consume trajectories in a plain Python env (review follow-up from In-process episode runner + JSONL trajectory recording (#70) #78).

Tests

python -m pytest bench/tests mcp/tests -q: 38 passed locally, including the new ENG 1 GEN scripted procedure. The CI job itself is exercised by this PR's own run.

🤖 Generated with Claude Code

https://claude.ai/code/session_014JCrwRbtN7UA5ijn13vPmm

…ons, Python CI job (#72)

D-022..D-025 in docs/decisiones.md: benchmark determinism as
checkpoints-with-tolerance without patching the vendor RNG (reinterpreting
#19's deterministic replay; seed field reserved in every trajectory),
benchmark tool profile (no inject/clear, report_done), in-process runner
over the memory transport with the self-contained JSONL trajectory, and
litellm pinned exactly as the provider layer.

Second scenario: elec.gen.1 on engines-running — the network never sags
(bus tie feeds AC 1 from GEN 2), so the exam is restraint: reset attempt,
isolate, and keep both engines running; shutting an engine down over a
generator fault is the classic forbidden action. Empirically verified on
pin 13bce4b, scripted-procedure test included.

scenarios/README.md documents the scenario anatomy and the citation
policy (procedure identity + public secondary source + fidelity notes
with pin and date; FCOM wording never reproduced).

CI gets the Python layer for the first time: maturin build of bindings/
(cargo cache on its workspace) + pytest over mcp/tests and bench/tests,
wired into ci-success. No [providers] extra: CI runs no LLM and no
network. a320_bench imports go lazy (PEP 562) so the #20 scorer can read
trajectories without the compiled binding.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014JCrwRbtN7UA5ijn13vPmm
@Santisoutoo
Santisoutoo merged commit 57a7cda into dev Jul 24, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant