import hashlib import json from pathlib import Path root = Path('C:/git/MagnetismHeroes') state_path = root / '.dryforge/execution.json' state = json.loads(state_path.read_text(encoding='utf-8-sig')) review_path = root / 'artifacts/verification/VisualUpgrade/FinalProduct/final-review.json' review = json.loads(review_path.read_text(encoding='utf-8-sig')) assert review['status'] == 'approved' digest = hashlib.sha256(review_path.read_bytes()).hexdigest() assert digest == 'f11a355ff4316fadba7d5532c481a5215f7cbf722f6c207d86d0781906a846ea' state['tasks']['T6'] = 'verified_delivered_independently_reviewed' state['horizon_documentation_commit'] = '620c73cbd24d936231bee5cb3469e5cff3424cd9' state['final_integrated_head'] = '0d992d9dcc94843a72489b454ca4e8137178bc56' state['post_documentation_product_hashes_unchanged'] = 732 state['final_review'] = {'status': 'approved', 'blockingFindings': 0, 'path': 'artifacts/verification/VisualUpgrade/FinalProduct/final-review.json', 'sha256': digest} state['final_user_gate'] = {'status': 'pending', 'scope': '완성 제품과 변경된 제작·채택·검증 문서', 'gallery': 'artifacts/verification/VisualUpgrade/FinalProduct/index.html', 'apk': 'artifacts/android/MagnetismHeroes.apk'} state_path.write_text(json.dumps(state, ensure_ascii=False, indent=2) + '\n', encoding='utf-8') print(json.dumps({'status': 'verified-and-reviewable', 'finalUserGate': 'pending', 'blockingFindings': 0}))