{
  "change_id": "ENG-DESIGN-ACADEMY-0002K",
  "version": "0002K",
  "purpose": "Protect the final Round 3 counted attempt with a dedicated generation window and structured audited timeout evidence",
  "primary_build_engine": "CadQuery",
  "cadquery_version": "2.8.0",
  "blender_required": false,
  "practice_endpoint": "/academy/practice/ask",
  "output_contract": "academy_round_json_v6",
  "round3_contract": "transfer_boundaries_release_gate_v1",
  "round3_server_timeout_seconds": 360,
  "round3_client_timeout_seconds": 420,
  "round1_round2_server_timeout_seconds": 220,
  "round1_round2_client_timeout_seconds": 300,
  "structured_timeout_http_status": 504,
  "structured_timeout_audited": true,
  "preserves_round2_completeness_guard": true,
  "preserves_round3_schema_and_evaluator": true,
  "preserves_existing_practice_state": true,
  "protects_final_counted_attempt_on_timeout": true,
  "starts_worker": false,
  "restarts_services": false,
  "original_file_sha256": {
    "armor/ai/brain_server.py": "8f0e58b09f0b7996360af76eb8e39f4edaad22f401ac32bc5d8335c1de9d3aac",
    "armor/services/design_academy_practice_service.py": "0e575c48518b238f999162048edecc759e3b49a282ee801b52413152a0b29f70"
  },
  "new_files_expected_absent": [
    "armor/tools/design_academy_round3_timeout_selftest.py",
    "armor/docs/ENG_DESIGN_ACADEMY_0002K.md"
  ]
}
