docs: authorize shared hook repair and resume preparation plan

This commit is contained in:
KOKO\Mimi
2026-09-06 21:49:07 +09:00
parent cf06d9db91
commit 5bd8c47398
5 changed files with 110 additions and 24 deletions
@@ -927,3 +927,77 @@ Rollback은 active 실행이 없고 after hash와 현재 파일이 동일한 경
검증 성공을 주장하지 않는다. 이미 ignore1줄을 commit했다면 Root의 exact inverse commit을
사용하고 history reset은 하지 않는다. 타 owner 변경이 있으면 덮어쓰지 않고 반환한다.
설정은 해당 workspace에 유지하며 feature 종료·설치 경로 변경 때 Root가 수명을 검토한다.
## E11. 실제 local 설정에 대한 정상 invocation
Root E10 최초 setup은 compiler 경로의 Hostx64/HostX64 cache 재검사에서 exit1이었다.
[같은 preset 후속 configure](../../.harness/build/mitc4-eigen-evidence/prep/attempt4/root-e10-setup/configure-followup/result.json)는
parent env4 unset 상태에서 exit0/1.656초를 기록했다. Actual 설정/adapter4명령은 local
`mfe-workspace-msvc-ninja-debug`, MSVC19.51/pointer8/Debug, 동일 archive/병렬도1이다.
이는 configure evidence이며 build/CTest 또는 prep 성공이 아니다.
Root가 사용자 후속 응답을 MFE-OQ-004의 제시된 canonical timeout 한 값·정상 재신뢰
승인으로 해석했다. **Actual canonical Stop7500/enabled/trusted** 확인은 Root 소유이며
현재 미관찰이다. 그 evidence와 최종 문서 checkpoint를 감사한 뒤에만 Coordinator가
별도 status-only 할당 → 갱신 R11 actual control checkpoint → clean → 아래 새 invocation
순서로 진행한다. 이번 Planning은 status나 설정을 바꾸거나 실행하지 않았다.
```powershell
$ErrorActionPreference='Stop'
$mfeRoot=(Get-Location).Path
$mfePhase='mitc4-shell-feast-eigen-execution-prep'
$mfeEvidence=Join-Path $mfeRoot '.harness/build/mitc4-eigen-evidence/prep/classifier-correction'
$mfePython=Join-Path $mfeEvidence 'pytest-venv/Scripts/python.exe'
$mfeBase=Join-Path $mfeEvidence 'python-runtime/cpython-3.11.15-windows-x86_64-none/python.exe'
foreach ($mfeFile in @($mfePython,$mfeBase)) { if (-not(Test-Path -LiteralPath $mfeFile)) { throw 'Named Python missing' } }
Get-Command uv -ErrorAction Stop | Out-Null
$mfeNames=@('PATH','UV_PYTHON','UV_CACHE_DIR','UV_OFFLINE','TEMP','TMP','FEM_HARNESS_CODEX_SANDBOX','CMAKE_BUILD_PARALLEL_LEVEL')
$mfeBefore=@{}
foreach ($mfeName in $mfeNames) { $mfeBefore[$mfeName]=[Environment]::GetEnvironmentVariable($mfeName,'Process') }
if ($null -ne $mfeBefore['FEM_HARNESS_CODEX_SANDBOX'] -and $mfeBefore['FEM_HARNESS_CODEX_SANDBOX'] -ne 'workspace-write') { throw 'Unexpected sandbox environment' }
$mfeTemp=Join-Path $mfeRoot ('.harness/build/t-'+[guid]::NewGuid().ToString('N').Substring(0,8))
if ($mfeTemp.Length -gt 80 -or (Test-Path -LiteralPath $mfeTemp)) { throw 'Fresh short Python TEMP required' }
$null=New-Item -ItemType Directory -Path $mfeTemp
$mfeExit=$null
try {
$env:PATH=(Split-Path $mfePython)+';'+(Split-Path $mfeBase)+';'+$mfeBefore['PATH']
$env:UV_PYTHON=$mfePython
$env:UV_CACHE_DIR=Join-Path $mfeEvidence 'workspace-python-cache'
$env:UV_OFFLINE='true'
$env:TEMP=$mfeTemp
$env:TMP=$mfeTemp
$env:FEM_HARNESS_CODEX_SANDBOX='workspace-write'
$env:CMAKE_BUILD_PARALLEL_LEVEL='1'
& $mfePython -B -X utf8 -c "import sys; from pathlib import Path; from scripts import execute; from scripts.msvc_harness.config import load_config; r=Path.cwd(); c=load_config(r); assert c.cmake.configure_preset==c.cmake.build_preset==c.cmake.test_preset=='mfe-workspace-msvc-ninja-debug'; assert c.cmake.binary_dir==r/'.harness/build-ninja-msvc-debug'; e=execute.StepExecutor(sys.argv[1]); assert e._is_isolated_worktree(); assert not e._worktree_paths(); assert e._implementation_agent_settings()==('gpt-5.6-terra','xhigh'); e._preflight_repository(); print('Local preset and clean linked profile preflight valid')" $mfePhase
$mfeExit=$LASTEXITCODE
if ($null -eq $mfeExit) { throw 'Preflight exit unavailable' }
if ($mfeExit -ne 0) { exit $mfeExit }
& $mfePython -B -X utf8 -c "from scripts import execute; execute.StepExecutor.CODEX_TIMEOUT_SECONDS = 14400; execute.main()" $mfePhase
$mfeExit=$LASTEXITCODE
if ($null -eq $mfeExit) { throw 'Native Executor exit unavailable' }
}
finally {
foreach ($mfeName in $mfeNames) { [Environment]::SetEnvironmentVariable($mfeName,$mfeBefore[$mfeName],'Process') }
}
exit $mfeExit
```
기존 E8의 public preset assertion과 DevShell/클라이언트 shell tool 검색은 이 preflight로
명시 대체한다. E10 user preset이 CMake child의 INCLUDE/LIB/PATH·병렬도1·영속 짧은
TEMP를 제공하며 Python은 새 짧은 TEMP와 E7의 새 pytest basetemp를 쓴다.
실제 local user/config/cache hash는 R11에서 확인하고 달라지면 보존·재검토한다.
Actual prep gate 뒤 별도 main invocation은 위 `$mfePhase`만 `mitc4-shell-feast-eigen`으로
변경한다. 모든 invocation은 workspace-write/terra/xhigh/유한14400이고 DFA flag가 없다.
Manual/registered의 configure/build/CTest는 **모두 E10.2의 local preset 명령**을 쓴다.
E9 첫 clean-first/verbose 직렬 build에서 세 실제 discovery 호출·등록 identity를 확인하고,
classifier37/focused136/full pytest, native configure/build/discovery/full CTest 및 registered
Stop actual 성공을 모두 확보한다. 이미 통과한 focused를 근거 없이 반복하지 않는다.
새 library/executable hash·mtime, fresh manual reference solve와 그 뒤 same-binary registered
full의 정상 cache 재사용을 구분한다. Static reference 읽기/비교와 원본 직접 수정 없음,
새 eigen comparison 미실행의 보고서 정정도 기존 owner 요구대로 남는다.
Source Correction1회는 소진됐고 자동 재시도·새 key·test 축소는 없다. 공유 Hook의 실제
적용/신뢰가 확인되지 않으면 native를 시작하지 않는다. 실행 중 Root/Coordinator의 non-owned
편집·commit을 멈추며 보고 시점 manual evidence와 이후 native/registered raw exit를
Coordinator가 사후 대조한다. Canonical7500 확인을 실제 full 검증 성공으로 해석하지 않는다.