{
  "adaptive_cooldown": true,
  "arbitrary_prompt_execution_allowed": false,
  "certification_write_allowed": false,
  "completed_runs": 23,
  "consecutive_failures": 0,
  "cooldown_seconds": 5,
  "counted_attempts_allowed": false,
  "created_at": "2026-07-28T08:03:11.653091+00:00",
  "current_lesson": null,
  "curriculum_id": "academy_speed_core_v1",
  "curriculum_lessons": [
    {
      "id": "gothic.pointed-arch-cutout",
      "skills": [
        "boolean cut",
        "symmetry",
        "named dimensions"
      ],
      "title": "Pointed Arch Cutout"
    },
    {
      "id": "gothic.lancet-pair",
      "skills": [
        "repetition",
        "spacing",
        "boolean cut"
      ],
      "title": "Paired Lancet Windows"
    },
    {
      "id": "gothic.quatrefoil-recess",
      "skills": [
        "circle composition",
        "shallow recess",
        "boolean union"
      ],
      "title": "Quatrefoil Recess"
    },
    {
      "id": "gothic.trefoil-recess",
      "skills": [
        "radial composition",
        "shallow recess",
        "boolean union"
      ],
      "title": "Trefoil Recess"
    },
    {
      "id": "gothic.rose-window",
      "skills": [
        "radial pattern",
        "through holes",
        "safe margins"
      ],
      "title": "Rose Window Pattern"
    },
    {
      "id": "gothic.ribbed-panel",
      "skills": [
        "additive ribs",
        "alignment",
        "fillets"
      ],
      "title": "Ribbed Gothic Panel"
    },
    {
      "id": "gothic.tracery-panel",
      "skills": [
        "compound motifs",
        "boolean cuts",
        "pattern layout"
      ],
      "title": "Simple Tracery Panel"
    },
    {
      "id": "gothic.organiser-facade",
      "skills": [
        "container shell",
        "decorative recess",
        "parameter variation"
      ],
      "title": "Gothic Organiser Facade"
    },
    {
      "id": "parametric.rounded-shell",
      "skills": [
        "shelling",
        "wall thickness",
        "fillets"
      ],
      "title": "Rounded Parametric Shell"
    },
    {
      "id": "parametric.hole-array",
      "skills": [
        "hole patterns",
        "spacing",
        "safe margins"
      ],
      "title": "Parametric Hole Array"
    },
    {
      "id": "parametric.recessed-nameplate",
      "skills": [
        "recess depth",
        "mounting holes",
        "named dimensions"
      ],
      "title": "Recessed Nameplate"
    },
    {
      "id": "parametric.mounting-block",
      "skills": [
        "through holes",
        "pockets",
        "parameter variation"
      ],
      "title": "Non-load-bearing Mounting Block"
    },
    {
      "id": "parametric.organiser-layout",
      "skills": [
        "container shell",
        "divider spacing",
        "floor thickness"
      ],
      "title": "Compartment Layout"
    },
    {
      "id": "parametric.fillet-matrix",
      "skills": [
        "edge selection",
        "fillet limits",
        "robust fallback"
      ],
      "title": "Fillet Matrix"
    },
    {
      "id": "parametric.pattern-grid",
      "skills": [
        "rectangular patterns",
        "shallow pockets",
        "repeatability"
      ],
      "title": "Pocket Pattern Grid"
    },
    {
      "id": "parametric.fit-gauge",
      "skills": [
        "stepped dimensions",
        "clearance intent",
        "validation"
      ],
      "title": "Parametric Fit Gauge"
    }
  ],
  "curriculum_title": "Gothic + Parametric Speed Foundations",
  "enabled": true,
  "evidence_root": "/SHiREVault/SHiREAcademy/AutonomousPractice/SpeedCore",
  "external_network_research_allowed": false,
  "failed_runs": 0,
  "forge_permission_write_allowed": false,
  "foundation_target_reached": false,
  "history": [
    {
      "completed_at": "2026-07-28T08:03:28.850491+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T080320Z-gothic-pointed-arch-cutout-V1",
      "lesson_id": "gothic.pointed-arch-cutout",
      "ok": true,
      "run_id": "20260728T080320Z-gothic-pointed-arch-cutout-V1",
      "variant": 1
    },
    {
      "completed_at": "2026-07-28T08:05:43.568965+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T080533Z-gothic-lancet-pair-V1",
      "lesson_id": "gothic.lancet-pair",
      "ok": true,
      "run_id": "20260728T080533Z-gothic-lancet-pair-V1",
      "variant": 1
    },
    {
      "completed_at": "2026-07-28T08:07:55.544886+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T080745Z-gothic-quatrefoil-recess-V1",
      "lesson_id": "gothic.quatrefoil-recess",
      "ok": true,
      "run_id": "20260728T080745Z-gothic-quatrefoil-recess-V1",
      "variant": 1
    },
    {
      "completed_at": "2026-07-28T08:10:06.483767+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T080957Z-gothic-trefoil-recess-V1",
      "lesson_id": "gothic.trefoil-recess",
      "ok": true,
      "run_id": "20260728T080957Z-gothic-trefoil-recess-V1",
      "variant": 1
    },
    {
      "completed_at": "2026-07-28T08:12:18.951119+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T081208Z-gothic-rose-window-V1",
      "lesson_id": "gothic.rose-window",
      "ok": true,
      "run_id": "20260728T081208Z-gothic-rose-window-V1",
      "variant": 1
    },
    {
      "completed_at": "2026-07-28T08:14:31.260909+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T081421Z-gothic-ribbed-panel-V1",
      "lesson_id": "gothic.ribbed-panel",
      "ok": true,
      "run_id": "20260728T081421Z-gothic-ribbed-panel-V1",
      "variant": 1
    },
    {
      "completed_at": "2026-07-28T08:16:42.535268+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T081633Z-gothic-tracery-panel-V1",
      "lesson_id": "gothic.tracery-panel",
      "ok": true,
      "run_id": "20260728T081633Z-gothic-tracery-panel-V1",
      "variant": 1
    },
    {
      "completed_at": "2026-07-28T08:18:54.157717+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T081844Z-gothic-organiser-facade-V1",
      "lesson_id": "gothic.organiser-facade",
      "ok": true,
      "run_id": "20260728T081844Z-gothic-organiser-facade-V1",
      "variant": 1
    },
    {
      "completed_at": "2026-07-28T08:21:05.678670+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T082056Z-gothic-pointed-arch-cutout-V2",
      "lesson_id": "gothic.pointed-arch-cutout",
      "ok": true,
      "run_id": "20260728T082056Z-gothic-pointed-arch-cutout-V2",
      "variant": 2
    },
    {
      "completed_at": "2026-07-28T08:23:17.112092+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T082307Z-gothic-lancet-pair-V2",
      "lesson_id": "gothic.lancet-pair",
      "ok": true,
      "run_id": "20260728T082307Z-gothic-lancet-pair-V2",
      "variant": 2
    },
    {
      "completed_at": "2026-07-28T08:25:28.205646+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T082519Z-gothic-quatrefoil-recess-V2",
      "lesson_id": "gothic.quatrefoil-recess",
      "ok": true,
      "run_id": "20260728T082519Z-gothic-quatrefoil-recess-V2",
      "variant": 2
    },
    {
      "completed_at": "2026-07-28T08:27:39.444810+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T082730Z-gothic-trefoil-recess-V2",
      "lesson_id": "gothic.trefoil-recess",
      "ok": true,
      "run_id": "20260728T082730Z-gothic-trefoil-recess-V2",
      "variant": 2
    },
    {
      "completed_at": "2026-07-28T08:29:51.737981+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T082941Z-gothic-rose-window-V2",
      "lesson_id": "gothic.rose-window",
      "ok": true,
      "run_id": "20260728T082941Z-gothic-rose-window-V2",
      "variant": 2
    },
    {
      "completed_at": "2026-07-28T08:32:03.155961+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T083153Z-gothic-ribbed-panel-V2",
      "lesson_id": "gothic.ribbed-panel",
      "ok": true,
      "run_id": "20260728T083153Z-gothic-ribbed-panel-V2",
      "variant": 2
    },
    {
      "completed_at": "2026-07-28T08:34:14.543555+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T083405Z-gothic-tracery-panel-V2",
      "lesson_id": "gothic.tracery-panel",
      "ok": true,
      "run_id": "20260728T083405Z-gothic-tracery-panel-V2",
      "variant": 2
    },
    {
      "completed_at": "2026-07-28T08:36:26.938274+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T083616Z-gothic-organiser-facade-V2",
      "lesson_id": "gothic.organiser-facade",
      "ok": true,
      "run_id": "20260728T083616Z-gothic-organiser-facade-V2",
      "variant": 2
    },
    {
      "completed_at": "2026-07-28T08:38:38.368093+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T083829Z-gothic-pointed-arch-cutout-V3",
      "lesson_id": "gothic.pointed-arch-cutout",
      "ok": true,
      "run_id": "20260728T083829Z-gothic-pointed-arch-cutout-V3",
      "variant": 3
    },
    {
      "completed_at": "2026-07-28T08:40:48.133443+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T084040Z-gothic-lancet-pair-V3",
      "lesson_id": "gothic.lancet-pair",
      "ok": true,
      "run_id": "20260728T084040Z-gothic-lancet-pair-V3",
      "variant": 3
    },
    {
      "completed_at": "2026-07-28T08:42:58.073616+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T084250Z-gothic-quatrefoil-recess-V3",
      "lesson_id": "gothic.quatrefoil-recess",
      "ok": true,
      "run_id": "20260728T084250Z-gothic-quatrefoil-recess-V3",
      "variant": 3
    },
    {
      "completed_at": "2026-07-28T08:45:07.287639+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T084500Z-gothic-trefoil-recess-V3",
      "lesson_id": "gothic.trefoil-recess",
      "ok": true,
      "run_id": "20260728T084500Z-gothic-trefoil-recess-V3",
      "variant": 3
    },
    {
      "completed_at": "2026-07-28T08:47:17.727485+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T084709Z-gothic-rose-window-V3",
      "lesson_id": "gothic.rose-window",
      "ok": true,
      "run_id": "20260728T084709Z-gothic-rose-window-V3",
      "variant": 3
    },
    {
      "completed_at": "2026-07-28T08:49:27.417484+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/GothicFoundations/Runs/20260728T084919Z-gothic-ribbed-panel-V3",
      "lesson_id": "gothic.ribbed-panel",
      "ok": true,
      "run_id": "20260728T084919Z-gothic-ribbed-panel-V3",
      "variant": 3
    },
    {
      "completed_at": "2026-07-28T08:49:59.778436+00:00",
      "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/SpeedCore/Runs/20260728T084955Z-gothic-tracery-panel-V2",
      "lesson_id": "gothic.tracery-panel",
      "ok": true,
      "run_id": "20260728T084955Z-gothic-tracery-panel-V2",
      "variant": 2
    }
  ],
  "last_adaptive_delay_seconds": 5,
  "latest_evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/SpeedCore/Runs/20260728T084955Z-gothic-tracery-panel-V2",
  "latest_result": {
    "certification_changed": false,
    "completed_at": "2026-07-28T08:49:59.778436+00:00",
    "counted_attempt_consumed": false,
    "elapsed_seconds": 3.875,
    "evidence": "/SHiREVault/SHiREAcademy/AutonomousPractice/SpeedCore/Runs/20260728T084955Z-gothic-tracery-panel-V2",
    "forge_permission_changed": false,
    "lesson_id": "gothic.tracery-panel",
    "lesson_title": "Simple Tracery Panel",
    "network": {
      "filesystem": "cifs",
      "network_verified": true,
      "source": "//192.168.1.1/volume(sda2)[/SHiREVault/SHiREAcademy/AutonomousPractice]",
      "writable": true
    },
    "ok": true,
    "protected_academy_state_unchanged": true,
    "returncode": 0,
    "run_id": "20260728T084955Z-gothic-tracery-panel-V2",
    "validation": {
      "artifacts": {
        "step": "/mnt/shirevault-network/SHiREVault/SHiREAcademy/AutonomousPractice/SpeedCore/Runs/20260728T084955Z-gothic-tracery-panel-V2/gothic_tracery_panel_v2.step",
        "step_sha256": "157a56588a57a42ce13a5815ec9e77d35713dd078a23b478fad8797af337c591",
        "stl": "/mnt/shirevault-network/SHiREVault/SHiREAcademy/AutonomousPractice/SpeedCore/Runs/20260728T084955Z-gothic-tracery-panel-V2/gothic_tracery_panel_v2.stl",
        "stl_sha256": "4fa20125583def6dbb0ae6c6f37d63f10a567fb7a1351d36873f247adf063509"
      },
      "builder_version": "0.2.0-stage3c.2-speed-core",
      "checks": {
        "allowlisted_exercise_only": true,
        "draft_only": true,
        "one_valid_final_solid": true,
        "positive_volume": true,
        "safe_bounding_box": true,
        "step_written": true,
        "stl_written": true
      },
      "classification": "AUTONOMOUS_PRACTICE_PASS",
      "exercise_id": "gothic.tracery-panel",
      "exercise_title": "Simple Tracery Panel",
      "generated_at": "2026-07-28T08:49:58.608215+00:00",
      "metrics": {
        "bounding_box_mm": {
          "x": 130.0,
          "y": 82.0,
          "z": 7.000000000000001
        },
        "solid_count": 1,
        "valid_shape": true,
        "volume_mm3": 63845.78626376195
      },
      "ok": true,
      "safety": {
        "arbitrary_code_allowed": false,
        "certification_changed": false,
        "forge_permission_changed": false,
        "non_load_bearing_only": true,
        "production_release": false,
        "protected_academy_state_modified": false,
        "uncounted_practice_only": true
      },
      "skills_practised": [
        "compound motifs",
        "boolean cuts",
        "pattern layout"
      ],
      "variant": 2
    },
    "variant": 2
  },
  "maintenance_cooldown_seconds": 900,
  "maintenance_mode": false,
  "mode": "uncounted_deterministic_practice_only",
  "network": {
    "filesystem": "cifs",
    "network_verified": true,
    "source": "//192.168.1.1/volume(sda2)[/SHiREVault/SHiREAcademy/AutonomousPractice]",
    "writable": true
  },
  "next_index": 23,
  "next_run_at": "2026-07-28T08:50:04.845745+00:00",
  "paused": false,
  "protected_academy_state_write_allowed": false,
  "protected_hashes_at_initialisation": {
    "academy_index": "eae867ef70f81b62ef9e4361d82038749f422d2c1c905bcaa910b9c77cf949f5",
    "autopilot_state": "7953680b29ee3a208d5077aabcd371f2610851109982fab557855b35d23993c2",
    "commercial_sprint": "fefea1c665f0f43d8a51e92c65c4211176c9acc2a5f1b17c058b921b27e6d5ed",
    "practice_state": "3433913389b91d81b379262e660cda6d2aae1caf31be66c938413db36075763a"
  },
  "protected_hashes_latest": {
    "academy_index": "eae867ef70f81b62ef9e4361d82038749f422d2c1c905bcaa910b9c77cf949f5",
    "autopilot_state": "7953680b29ee3a208d5077aabcd371f2610851109982fab557855b35d23993c2",
    "commercial_sprint": "fefea1c665f0f43d8a51e92c65c4211176c9acc2a5f1b17c058b921b27e6d5ed",
    "practice_state": "3433913389b91d81b379262e660cda6d2aae1caf31be66c938413db36075763a"
  },
  "review_required": false,
  "run_requested": false,
  "safety_stop": false,
  "safety_stop_reason": null,
  "service_status": "active",
  "skills_practised": {
    "additive ribs": 3,
    "alignment": 3,
    "boolean cut": 6,
    "boolean cuts": 3,
    "boolean union": 6,
    "circle composition": 3,
    "compound motifs": 3,
    "container shell": 2,
    "decorative recess": 2,
    "fillets": 3,
    "named dimensions": 3,
    "parameter variation": 2,
    "pattern layout": 3,
    "radial composition": 3,
    "radial pattern": 3,
    "repetition": 3,
    "safe margins": 3,
    "shallow recess": 6,
    "spacing": 3,
    "symmetry": 3,
    "through holes": 3
  },
  "status": "practising",
  "successful_runs": 23,
  "target_successful_runs": 48,
  "updated_at": "2026-07-28T08:49:59.845761+00:00",
  "version": "0.2.0-stage3c.2-speed-core",
  "yield_to_fast_builder": true
}