{
  "schema_version": 1,
  "date": "2026-10-15",
  "release_eligible": false,
  "NeMo_Gym": {
    "identity": {
      "backend": "nemo_gym",
      "protocol": "hessian-gym-v1",
      "upstream_revision": "720b5f318caee339bfd29c554c59a97edcedc846",
      "upstream_version": "0.7.0rc0",
      "upstream_lock_sha256": "1f9539274322df5b3b869addfdfda40a7c3c639ed21a46ddee2ccecddb81f136",
      "environment_sha256": "b62f23111b55f1c12d48364521b5799e19b6c716514200a79db1b8d553b13bda",
      "server_sha256": "8cc9ad8efc50cea8af2ec7f4fce868e73bf449fc6c820a530281a15bce14dcf5",
      "python": "3.13.14",
      "framework_class": "nemo_gym.base_resources_server.SimpleResourcesServer",
      "inference": false,
      "max_sessions": 256
    },
    "service_checks": [
      "actual_pinned_upstream_identity_and_frozen_environment",
      "fresh_opaque_isolated_sessions",
      "legal_real_lookup_calculator_and_strict_terminal_success",
      "verification_is_idempotent_and_freezes_episode",
      "session_isolation_and_strict_invalid_workflow_rejection",
      "wrong_final_rejected_after_real_legal_tools",
      "forged_transcript_cannot_replace_real_tool_execution",
      "native_gym_BaseVerifyRequest_Response_route",
      "native_gym_routes_and_typed_verification_schema",
      "bad_model_argument_types_and_long_expressions_are_scored_tool_errors",
      "close_is_idempotent_and_removes_session_state"
    ],
    "client_checks": [
      "real_native_gym_identity_checked_by_frozen_client",
      "client_reset_creates_distinct_remote_episode_sessions",
      "two_concurrent_client_episodes_keep_hidden_state_isolated",
      "actual_tools_and_valid_transcript_score_strict_success",
      "wrong_record_remains_zero_scored_model_failure_not_infrastructure",
      "client_independent_replay_accepts_real_server_observations_and_scores",
      "malformed_model_values_remain_scored_errors_through_actual_client",
      "actual_client_cleanup_closes_completed_native_sessions",
      "real_service_loss_is_sticky_infrastructure_failure_never_zero_reward"
    ],
    "service_check_count": 11,
    "client_check_count": 9,
    "fixtures_only_for_CPU_checks": true,
    "independent_client_replay": true,
    "service_loss": "real service termination yielded sticky infrastructure failure, not zero reward",
    "online_training": {
      "status": "completed",
      "qualification": "Native gym integration with a real reward-driven adapter update; no held-out quality claim",
      "validation_only": true,
      "release_eligible": false,
      "source_commit": "ac7d82bb846a4b732e38bbe3ee4fdeff77a4a709",
      "gpu": {
        "hostname": "e9165bb11f58",
        "python": "3.11.9",
        "torch": "2.10.0+cu126",
        "cuda": "12.6",
        "gpu": "NVIDIA A100-SXM4-80GB",
        "devices": 1,
        "memory_bytes": 85119205376,
        "bf16_matmul": "passed"
      },
      "gpu_allocation_released": true,
      "started_at": "2026-10-15T18:38:02.663512+00:00",
      "completed_at": "2026-10-15T18:42:25.061741+00:00",
      "runtime_seconds": 251.4134,
      "starting_SFT_sha256": "b16dc15361e19c155df1f833f6ae9800d81b12091755a6f0d346c8c37527b108",
      "adapter_tree_sha256": "295a6ce729d49d7b40b81413ba14a225a4ab885afde3413eb9dfe0604ba88db0",
      "source_sha256": {
        "gym_training.py": "1485b633f54dd61487f0cc93b532611889926a083ec5cb5360162bac9c1b3b07",
        "gym_client.py": "6371e637cdb80cfad5a56f3670079e8c24abbc9b10631ce3d13a3f228fca5166",
        "agent_rl_training.py": "24a0f1e132f1d941607824a11ceae8009bdb4928feda53a4ba4b065e54529ae5",
        "agent_rl_tasks.py": "b62f23111b55f1c12d48364521b5799e19b6c716514200a79db1b8d553b13bda"
      },
      "parameters": {
        "max_steps": 8,
        "num_generations": 4,
        "per_device_train_batch_size": 4,
        "gradient_accumulation_steps": 1,
        "max_completion_length": 768,
        "max_tool_calling_iterations": 3,
        "learning_rate": 1e-05,
        "beta": 0.02,
        "temperature": 0.6,
        "top_p": 0.95,
        "top_k": 20,
        "min_p": 0.0
      },
      "lora": {
        "r": 16,
        "alpha": 32,
        "dropout": 0.0,
        "target_modules": "all-linear"
      },
      "training_pool_rows": 16,
      "consumed_unique_tasks": 8,
      "counts": {
        "rollouts": 32,
        "strict_train_successes": 5,
        "authoritative_tool_calls": 71,
        "lookup_successes": 12,
        "calculation_successes": 10,
        "tool_errors": 48,
        "sampled_spans": 100,
        "assistant_tokens": 7955,
        "external_tokens": 1648,
        "retained_stream_cap_hits": 3,
        "native_tool_observations": 71
      },
      "training_reward_mean": 0.2171875,
      "training_reward_note": "Training-only partial-workflow shaping; this mean is not a success rate",
      "update_evidence": {
        "changed_trainable_tensors": 392,
        "max_abs_parameter_delta": 4.0227427234640345e-05,
        "mixed_reward_groups": 7,
        "nonzero_gradient_steps": 8
      },
      "independent_audit_checks": [
        "native_gym_and_source_commit_identity",
        "fresh_train_seed43_pool16",
        "native_tool_observation_replay",
        "strict_score_and_trace_replay",
        "independent_milestone_reward_formula",
        "sampled_token_context_and_mask_equality",
        "same_task_four_rollout_policy_groups",
        "retained_stream_budget",
        "completed_coverage_and_logs",
        "artifact_and_evidence_hashes",
        "recorded_learning_update_requirements",
        "no_recorded_session_cleanup_errors"
      ],
      "adapter_check": {
        "method": "Reload actual saved safetensors arrays and inspect every adapter tensor",
        "all_finite": true,
        "adapter_tensors": 392,
        "lora_B_tensors": 196,
        "nonzero_lora_B_tensors": 196,
        "adapter_file_bytes": 69782384,
        "adapter_file_sha256": "93a97306f8bbfb29612086b7ba3833c56e5c8e01fe844a2854a1fcea4030b162"
      },
      "local_run_directory": "runs/agent-gyms/nemo-grpo-qualification-01",
      "image_tag": "ctctctct/forty-two-prod:test",
      "image_digest": null,
      "image_limitation": "Immutable image digest was not captured.",
      "local_package_overlay": {
        "archive_sha256": "289ecc42e53d3fa6ac5b8532b447977f53e571837fbc4fae133ba42cf5437cfe",
        "mode": "Previously captured identical Python packages on node-local disk; original CUDA/torch libraries symlinked from shared pinned GPU environment."
      },
      "heldout_agent_or_MGSM_evaluation": "Not performed in this bounded integration qualification."
    }
  },
  "Verifiers": {
    "framework": "Prime Verifiers v1",
    "version": "0.4.0",
    "runtime_distribution": {
      "distribution_version": "0.4.0",
      "runtime_git_commit": "6e69354ffe1b445603b493b722d0ecffbca6686d",
      "direct_url": {
        "url": "https://github.com/PrimeIntellect-ai/verifiers.git",
        "vcs_info": {
          "vcs": "git",
          "commit_id": "6e69354ffe1b445603b493b722d0ecffbca6686d",
          "requested_revision": "6e69354ffe1b445603b493b722d0ecffbca6686d"
        }
      },
      "installed_python_source_sha256": "4cf3d7e38a584dffab1b2198b60b640515417dbbf061f059fa58976152ad13e9"
    },
    "python": "3.11.9",
    "cases": [
      {
        "case": "isolated_a",
        "reward": 1.0,
        "strict_success": true,
        "reason": "success",
        "trusted_tool_calls": 2
      },
      {
        "case": "isolated_b",
        "reward": 1.0,
        "strict_success": true,
        "reason": "success",
        "trusted_tool_calls": 2
      },
      {
        "case": "fake_tools",
        "reward": 0.0,
        "strict_success": false,
        "reason": "invalid_workflow",
        "trusted_tool_calls": 0
      },
      {
        "case": "unknown_tool",
        "reward": 0.0,
        "strict_success": false,
        "reason": "invalid_workflow",
        "trusted_tool_calls": 0
      },
      {
        "case": "invalid_record",
        "reward": 0.0,
        "strict_success": false,
        "reason": "unknown_record",
        "trusted_tool_calls": 1
      },
      {
        "case": "calculator_first",
        "reward": 0.0,
        "strict_success": false,
        "reason": "lookup_required",
        "trusted_tool_calls": 3
      },
      {
        "case": "wrong_answer",
        "reward": 0.0,
        "strict_success": false,
        "reason": "incorrect_final_answer",
        "trusted_tool_calls": 2
      }
    ],
    "scope": "native SingleAgentEnv/Agent/Rollout/Harness + actual local MCP tools + native reward lifecycle",
    "policy_kind": "scripted_fixture",
    "model_inference": false,
    "training": false,
    "training_compatible": false,
    "default_harness": "native NullHarness; fixture must be explicitly selected",
    "source_sha256": {
      "examples/agent_gyms/verifiers_smoke.py": "d59a011e57bf516ebf58bbd5a4834bad1835e0739e90cc774d876641626df199",
      "examples/agent_gyms/verifiers_environment.py": "259c15b3b10d51c5cc63176865df3471e9f0f26f824b7063739f6a18b7fb3fa2",
      "src/hessian_recipes/agent_rl_tasks.py": "b62f23111b55f1c12d48364521b5799e19b6c716514200a79db1b8d553b13bda",
      "requirements/verifiers.txt": "9a7f6a621e968df076ee4d058a680c13ad9d6e08c0444c6aaacdbc802fb9d194"
    },
    "limitations": "Real native framework/MCP fixture execution only. Local model inference and Prime-RL training interoperability are unqualified."
  },
  "evidence": {
    "nemo_service": {
      "local_path": "runs/agent-gyms/nemo-native-smoke/argument-semantics-v2/report.json",
      "sha256": "89a4dd13103e905c1a5f23ff601d3ecf09762d003d1bc555d8497a444aa7170a"
    },
    "nemo_client": {
      "local_path": "runs/agent-gyms/nemo-client-smoke/reproducible-script-v2/report.json",
      "sha256": "56f3ef2076a4595783b8650ff2198ce895b351c8b91c93259de470a38e6ea3b8"
    },
    "verifiers": {
      "local_path": "runs/agent-gyms/verifiers-native-smoke-verified/report.json",
      "sha256": "44f0411466fded8e07863b2ca562fe7a9ef343bff5c885e7d5d62629765eb651"
    },
    "gym_training": {
      "local_path": "runs/agent-gyms/nemo-grpo-qualification-01/training/training-manifest.json",
      "sha256": "5ed42820889e5dfd3e7e10a79605029015c25779ba597b8ec72539a56812e13c"
    },
    "gym_independent_audit": {
      "local_path": "runs/agent-gyms/nemo-grpo-qualification-01/independent-audit.json",
      "sha256": "63dd058a54cec8e8e1bdf77374e214876d33755ed623e09a3a638a2cd57071f1"
    },
    "gym_launch": {
      "local_path": "runs/agent-gyms/nemo-grpo-qualification-01/launch.json",
      "sha256": "d6518f703ab03033a8e39ac27e2d711d1209117bb771340b8410899628ffa54a"
    },
    "gym_adapter_check": {
      "local_path": "runs/agent-gyms/nemo-grpo-qualification-01/adapter-check.json",
      "sha256": "5cd94d09f0bf46dad6fd677ad9ed2eef31468617771b69b57cd41733c4c091f6"
    },
    "gym_allocation": {
      "local_path": "runs/agent-gyms/nemo-grpo-qualification-01/allocation.json",
      "sha256": "975f05144a53294e67aaa8085f5c290a2e05854837d31b7901d2b8f39f427444"
    }
  },
  "software_validation": {
    "optional_Verifiers_skipped_in_core": 1,
    "optional_Verifiers_tests_passed": 5,
    "ruff": "passed",
    "package_build": "passed with shared-storage TMPDIR after local /tmp was full",
    "native_Gym_bridge_ci": "https://github.com/ChTauchmann/hessian-recipes/actions/runs/38787106384",
    "repository_tests_passed": 219
  },
  "limitations": [
    "Synthetic German lookup/calculator development family, not an upstream benchmark or broad agent competence evaluation.",
    "Explicit first-lookup prompt scaffolding and training-only partial reward remain disclosed in the original recipe.",
    "No new held-out quality or MGSM retention claim. Original agent-RL candidate failed retention.",
    "NeMo Gym and Verifiers native per-call/cumulative budgets are not automatically comparable.",
    "Only NeMo Gym uses the repository TRL online training bridge. Prime-RL compatibility requires a separate pinned GPU pilot."
  ]
}
