docs: align eigen implementation steps with validated Ninja preset
This commit is contained in:
@@ -1,5 +1,17 @@
|
||||
# Step 0: 유한 실행시간 조정과 정상 검증 경로 보존
|
||||
|
||||
> **현재 실행 계약(r2):** 모든 configure/build/CTest는 `mfe-workspace-msvc-ninja-debug`를 사용한다.
|
||||
> MSVC x64 Debug, 동일 Ninja graph의 manual/registered 검증과 `CMAKE_BUILD_PARALLEL_LEVEL=1`을 유지한다.
|
||||
> 과거 `.harness/build` VS 명령과 public preset 명령은 이 Step의 실행 명령을 대체하지 않는다.
|
||||
> Targets/regex/필수 test identity·owned_paths·수치 계약은 그대로다. [E10.2/E11](../../docs/mitc4-shell-feast-eigen/implementation-environment.md#e11-실제-local-설정에-대한-정상-invocation)을 적용한다.
|
||||
> 긴 도구 호출은 **결과 전체**를 전달한다. `session_id`가 있으면 `write_stdin`으로 종료까지 이어받고,
|
||||
> functions가 running cell을 반환했을 때만 해당 `cell_id`로 `functions.wait`를 사용한다.
|
||||
> `r.output`만 비었다고 같은 명령을 다시 실행하지 않는다. 통과한 focused 검증은 새 변경/실패 없이 반복하지 않는다.
|
||||
> Executor가 이미 만든 top/current control dirty 상태는 보호 snapshot이며 구현 소유권 위반으로 단정하지 않는다.
|
||||
> 선택 Step의 result fields만 반환하고 timestamps/history/다른 metadata는 변경하지 않는다.
|
||||
> 현재 prep는 이미 GREEN인 runtime/classifier의 재검증이다. 아래 초기 RED/GREEN 절차는 보존된 증거와 대조하며
|
||||
> RED를 만들기 위해 source를 되돌리지 않는다. 새 source Correction 없이 현재 manual full 검증을 완료한다.
|
||||
|
||||
- Feature ID: `mitc4-shell-feast-eigen`
|
||||
- Plan owner: `implementation-planning-agent`
|
||||
- Execution owner: `implementation-agent`
|
||||
@@ -109,7 +121,11 @@ Feature 폴더 `docs/mitc4-shell-feast-eigen/`와 다음 management/approved bun
|
||||
이 positive regression들은 최초부터 pass할 수 있으므로 새 RED로 주장하지 않는다.
|
||||
|
||||
```powershell
|
||||
uv run --with pytest python -B -m pytest -v -rs tests/test_execute.py -k 'environment_classifier or successful_source_echo'
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase" tests/test_execute.py -k 'environment_classifier or successful_source_echo'
|
||||
```
|
||||
|
||||
Case3개의 collection inventory/parameter 전개와 actual failure를 기록한다. 무관 import/setup
|
||||
@@ -117,7 +133,11 @@ Case3개의 collection inventory/parameter 전개와 actual failure를 기록한
|
||||
기존 focused 명령으로 실제 재확인하고 원 보고서도 Implementation owner가 수정한다.
|
||||
|
||||
```powershell
|
||||
uv run --with pytest python -B -m pytest -v -rs tests/test_harness_timeouts.py
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase" tests/test_harness_timeouts.py
|
||||
```
|
||||
|
||||
Actual nonzero exit와 기존1800 기본값 때문에 실패한 assertions를 기록한다. Import/setup/인증 오류는 RED가 아니다.
|
||||
@@ -151,7 +171,11 @@ sandbox·transport/Coordinator retry·Hook scope/active flags·ownership/Git/API
|
||||
## Focused VERIFY
|
||||
|
||||
```powershell
|
||||
uv run --with pytest python -B -m pytest -v -rs tests/test_harness_timeouts.py tests/test_execute.py tests/test_execute_ownership.py tests/test_hook_validation_scope.py tests/test_harness_preset_contract.py
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase" tests/test_harness_timeouts.py tests/test_execute.py tests/test_execute_ownership.py tests/test_hook_validation_scope.py tests/test_harness_preset_contract.py
|
||||
```
|
||||
|
||||
Exit0, failures0, 현재 sandbox/terminal/ownership regressions 보존을 확인한다. PreToolUse/Stop unit tests는 mock 테스트이고 실제 등록 Stop 통과 evidence가 아니다.
|
||||
@@ -159,28 +183,48 @@ Exit0, failures0, 현재 sandbox/terminal/ownership regressions 보존을 확인
|
||||
위 신규 classifier test3개의 실제 collection 이름과 parameter case 존재도 확인한다.
|
||||
등록된 기존 suite만 실행되었다고 새로운 behavior가 검증됐다고 보고하지 않는다.
|
||||
|
||||
이미 GREEN인 timeout/classifier source는 기존 [Correction evidence](../../docs/mitc4-shell-feast-eigen/corrections.md)와
|
||||
보존된 RED/GREEN을 읽고 재검증한다. RED를 다시 만들려고 source를 되돌리지 않는다.
|
||||
현재 classifier37/timeout4/focused136과 전체 pytest를 실제 확인한다.
|
||||
|
||||
## Full VERIFY
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'configure failed' }
|
||||
cmake --build .harness/build --config Debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug --clean-first --verbose
|
||||
if ($LASTEXITCODE -ne 0) { throw 'build failed' }
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --show-only=json-v1
|
||||
if ($LASTEXITCODE -ne 0) { throw 'discovery failed' }
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --output-on-failure
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full CTest failed' }
|
||||
uv run --with pytest python -B -m pytest -v -rs
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase"
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full pytest failed' }
|
||||
```
|
||||
|
||||
이 clean-first/verbose는 새 Ninja graph의 실제 세 executable link/POST_BUILD discovery를 직렬로 실행한다.
|
||||
`fesa_unit_tests_576e7e9d_discovery.cmake`, `fesa_integration_tests_d537bc73_discovery.cmake`,
|
||||
`fesa_reference_tests_ac7cf2f0_discovery.cmake`의 실제 호출과 대응 executable/등록 identity를 raw에 남긴다.
|
||||
unit289/integration34/reference39의 실제 호출·등록 identity와 전체362 discovery를 확인하고,
|
||||
새 Debug library/executable hash·mtime 및 fresh manual solve를 남긴다.
|
||||
No-op build/기존 자동 결과만으로 manual 성공을 주장하지 않는다.
|
||||
|
||||
C++는 수정하지 않는다. 기존 same-binary cache를 쓰는 helper와 항상 fresh solver를 호출하는 nonlinear helper를 구별한다. 모든 full CTest를 실제 실행하고 완결 count/exit/duration을 기록한다. Cached outputs를 이번 eigen 신규 검증이라고 부르지 않는다. 등록 Stop도 정상 수행하며 full VERIFY를 생략/분할 성공으로 대체하지 않는다.
|
||||
|
||||
현재 prep Executor와 Codex의 activation 경계는 [environment](../../docs/mitc4-shell-feast-eigen/implementation-environment.md)대로다. 이미 실행 중인 Executor timeout self-edit는 활성화되지 않으며 launch-time Stop outer1800이 유지될 수 있다. 성공을 가정하지 말고 actual registered Stop·Codex exit0을 gate로 확인한다. 등록 Stop 초과/실패 시 정상 terminal evidence와 원시 로그를 보존해 Coordinator에 반환한다. Hook 직접 실행, 재진입 flag/state 조작, 거짓 Markdown-only skip으로 우회하지 않는다.
|
||||
현재 prep Executor와 Codex는 E11의 local preset/유한14400과 실제 승인·신뢰된 등록 Stop7500/shared7200을 사용한다. 실제 등록 Stop 초과/실패 시 정상 terminal evidence와 원시 로그를 보존해 Coordinator에 반환한다. Hook 직접 실행, 재진입 flag/state 조작, 거짓 Markdown-only skip으로 우회하지 않는다.
|
||||
|
||||
보고서는 현재 attempt의 actual manual과 registered 결과, 과거 wording을 구분한다.
|
||||
기존 full CTest는 static reference를 읽고 비교한다. 원본 직접 수정 없음과 새 eigen comparison
|
||||
미실행을 그 사실과 구분하며 당시 실패/미실행 기록을 보존한다.
|
||||
|
||||
## Evidence / result
|
||||
|
||||
`docs/mitc4-shell-feast-eigen/implementation-prep-evidence.md`에 feature/owner/r2, 각 RED/GREEN command/exit/duration, 전체 pytest/CTest counts, cap before/after, 실제 code diff 범위, current loaded wrapper14400과 등록 Stop launch1800 가능성, 그 시점에 관찰된 Stop/Codex exit 또는 아직 확인 대기인 항목을 기록한다. Raw logs는 ignored `.harness/build/mitc4-eigen-evidence/prep/`다. CTest log는 즉시 복사 보존한다.
|
||||
`docs/mitc4-shell-feast-eigen/implementation-prep-evidence.md`에 feature/owner/r2, 각 RED/GREEN command/exit/duration, 전체 pytest/CTest counts, cap before/after, 실제 code diff 범위, current loaded wrapper14400과 실제 등록 Stop7500/shared7200, 그 시점에 관찰된 Stop/Codex exit 또는 아직 확인 대기인 항목을 기록한다. Raw logs는 ignored `.harness/build/mitc4-eigen-evidence/prep/`다. CTest log는 즉시 복사 보존한다.
|
||||
|
||||
|
||||
보고서 작성 시점에는 마지막 registered Stop/Codex exit가 아직 발생하지 않을 수 있다. Implementation은 실제 완료된 manual 검증과 미관찰 Stop을 구분하고 미래 성공을 선기록하지 않는다. `completed` payload는 그 자체로 Stop 성공 증거가 아니다. Executor 종료 뒤 Coordinator가 raw output·등록 Hook evidence·actual exit를 management 문서에서 사후 감사한다. Specialist 보고서 본문은 Coordinator가 대신 수정하지 않는다.
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# Step 0: Frequency semantic model과 exact 입력 subset
|
||||
|
||||
> **현재 실행 계약(r2):** 모든 configure/build/CTest는 `mfe-workspace-msvc-ninja-debug`를 사용한다.
|
||||
> MSVC x64 Debug, 동일 Ninja graph의 manual/registered 검증과 `CMAKE_BUILD_PARALLEL_LEVEL=1`을 유지한다.
|
||||
> 과거 `.harness/build` VS 명령과 public preset 명령은 이 Step의 실행 명령을 대체하지 않는다.
|
||||
> Targets/regex/필수 test identity·owned_paths·수치 계약은 그대로다. [E10.2/E11](../../docs/mitc4-shell-feast-eigen/implementation-environment.md#e11-실제-local-설정에-대한-정상-invocation)을 적용한다.
|
||||
> 긴 도구 호출은 **결과 전체**를 전달한다. `session_id`가 있으면 `write_stdin`으로 종료까지 이어받고,
|
||||
> functions가 running cell을 반환했을 때만 해당 `cell_id`로 `functions.wait`를 사용한다.
|
||||
> `r.output`만 비었다고 같은 명령을 다시 실행하지 않는다. 통과한 focused 검증은 새 변경/실패 없이 반복하지 않는다.
|
||||
> Executor가 이미 만든 top/current control dirty 상태는 보호 snapshot이며 구현 소유권 위반으로 단정하지 않는다.
|
||||
> 선택 Step의 result fields만 반환하고 timestamps/history/다른 metadata는 변경하지 않는다.
|
||||
> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다.
|
||||
|
||||
- Feature ID: `mitc4-shell-feast-eigen`
|
||||
- Plan owner: `implementation-planning-agent`
|
||||
- Execution owner: `implementation-agent`
|
||||
@@ -117,10 +128,11 @@ Symbols: `DataLine::original_line; AbaqusInputReader::Read; DomainMappingContext
|
||||
Workspace root의 PowerShell에서 실행한다. 초기 missing API RED라면 build의 expected failure를 기록하고 production 구현 후 같은 명령을 다시 실행한다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R '^(ModelTypes|FrequencyStep|Domain|AnalysisModel|DofManager|InputSyntax|InputReader|DomainMappingContext|FrequencyDomain|DomainMapper|ShellSurfacePressureDomain)\.' --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug -R '^(ModelTypes|FrequencyStep|Domain|AnalysisModel|DofManager|InputSyntax|InputReader|DomainMappingContext|FrequencyDomain|DomainMapper|ShellSurfacePressureDomain)\.' --output-on-failure
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug --target fesa_tests
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(ModelTypes|FrequencyStep|Domain|AnalysisModel|DofManager|InputSyntax|InputReader|DomainMappingContext|FrequencyDomain|DomainMapper|ShellSurfacePressureDomain)\.' --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(ModelTypes|FrequencyStep|Domain|AnalysisModel|DofManager|InputSyntax|InputReader|DomainMappingContext|FrequencyDomain|DomainMapper|ShellSurfacePressureDomain)\.' --output-on-failure
|
||||
```
|
||||
|
||||
Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다.
|
||||
@@ -136,18 +148,23 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc
|
||||
|
||||
## Full VERIFY
|
||||
|
||||
현재 실제 backend는 config absent→CMake/Visual Studio 18 2026/x64/`.harness/build`/Debug다. Dependency cache 준비는 [environment](../../docs/mitc4-shell-feast-eigen/implementation-environment.md)의 정확한 명령과 preflight를 따른다. Generator 변경이나 preset fallback을 임의로 하지 않는다.
|
||||
현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'configure failed' }
|
||||
cmake --build .harness/build --config Debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'build failed' }
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --show-only=json-v1
|
||||
if ($LASTEXITCODE -ne 0) { throw 'discovery failed' }
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --output-on-failure
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full CTest failed' }
|
||||
uv run --with pytest python -B -m pytest -v -rs
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase"
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full pytest failed' }
|
||||
```
|
||||
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# Step 1: 공변 drilling scale과 정적 회귀
|
||||
|
||||
> **현재 실행 계약(r2):** 모든 configure/build/CTest는 `mfe-workspace-msvc-ninja-debug`를 사용한다.
|
||||
> MSVC x64 Debug, 동일 Ninja graph의 manual/registered 검증과 `CMAKE_BUILD_PARALLEL_LEVEL=1`을 유지한다.
|
||||
> 과거 `.harness/build` VS 명령과 public preset 명령은 이 Step의 실행 명령을 대체하지 않는다.
|
||||
> Targets/regex/필수 test identity·owned_paths·수치 계약은 그대로다. [E10.2/E11](../../docs/mitc4-shell-feast-eigen/implementation-environment.md#e11-실제-local-설정에-대한-정상-invocation)을 적용한다.
|
||||
> 긴 도구 호출은 **결과 전체**를 전달한다. `session_id`가 있으면 `write_stdin`으로 종료까지 이어받고,
|
||||
> functions가 running cell을 반환했을 때만 해당 `cell_id`로 `functions.wait`를 사용한다.
|
||||
> `r.output`만 비었다고 같은 명령을 다시 실행하지 않는다. 통과한 focused 검증은 새 변경/실패 없이 반복하지 않는다.
|
||||
> Executor가 이미 만든 top/current control dirty 상태는 보호 snapshot이며 구현 소유권 위반으로 단정하지 않는다.
|
||||
> 선택 Step의 result fields만 반환하고 timestamps/history/다른 metadata는 변경하지 않는다.
|
||||
> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다.
|
||||
|
||||
- Feature ID: `mitc4-shell-feast-eigen`
|
||||
- Plan owner: `implementation-planning-agent`
|
||||
- Execution owner: `implementation-agent`
|
||||
@@ -94,10 +105,11 @@ Symbols: `mitc4_internal::ComputeDrillingScale; Mitc4Shell::Stiffness; existing
|
||||
Workspace root의 PowerShell에서 실행한다. 초기 missing API RED라면 build의 expected failure를 기록하고 production 구현 후 같은 명령을 다시 실행한다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R '^(Mitc4DrillingScale|Mitc4Shell[^.]*|Mitc4Covariance|NonlinearMitc4[^.]*|NonlinearStaticProcedure|LinearStaticAnalysis)\.' --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug -R '^(Mitc4DrillingScale|Mitc4Shell[^.]*|Mitc4Covariance|NonlinearMitc4[^.]*|NonlinearStaticProcedure|LinearStaticAnalysis)\.' --output-on-failure
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug --target fesa_tests
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(Mitc4DrillingScale|Mitc4Shell[^.]*|Mitc4Covariance|NonlinearMitc4[^.]*|NonlinearStaticProcedure|LinearStaticAnalysis)\.' --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(Mitc4DrillingScale|Mitc4Shell[^.]*|Mitc4Covariance|NonlinearMitc4[^.]*|NonlinearStaticProcedure|LinearStaticAnalysis)\.' --output-on-failure
|
||||
```
|
||||
|
||||
Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다.
|
||||
@@ -114,18 +126,23 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc
|
||||
|
||||
## Full VERIFY
|
||||
|
||||
현재 실제 backend는 config absent→CMake/Visual Studio 18 2026/x64/`.harness/build`/Debug다. Dependency cache 준비는 [environment](../../docs/mitc4-shell-feast-eigen/implementation-environment.md)의 정확한 명령과 preflight를 따른다. Generator 변경이나 preset fallback을 임의로 하지 않는다.
|
||||
현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'configure failed' }
|
||||
cmake --build .harness/build --config Debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'build failed' }
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --show-only=json-v1
|
||||
if ($LASTEXITCODE -ne 0) { throw 'discovery failed' }
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --output-on-failure
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full CTest failed' }
|
||||
uv run --with pytest python -B -m pytest -v -rs
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase"
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full pytest failed' }
|
||||
```
|
||||
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# Step 2: Consistent→lumped 질량과 deterministic 조립
|
||||
|
||||
> **현재 실행 계약(r2):** 모든 configure/build/CTest는 `mfe-workspace-msvc-ninja-debug`를 사용한다.
|
||||
> MSVC x64 Debug, 동일 Ninja graph의 manual/registered 검증과 `CMAKE_BUILD_PARALLEL_LEVEL=1`을 유지한다.
|
||||
> 과거 `.harness/build` VS 명령과 public preset 명령은 이 Step의 실행 명령을 대체하지 않는다.
|
||||
> Targets/regex/필수 test identity·owned_paths·수치 계약은 그대로다. [E10.2/E11](../../docs/mitc4-shell-feast-eigen/implementation-environment.md#e11-실제-local-설정에-대한-정상-invocation)을 적용한다.
|
||||
> 긴 도구 호출은 **결과 전체**를 전달한다. `session_id`가 있으면 `write_stdin`으로 종료까지 이어받고,
|
||||
> functions가 running cell을 반환했을 때만 해당 `cell_id`로 `functions.wait`를 사용한다.
|
||||
> `r.output`만 비었다고 같은 명령을 다시 실행하지 않는다. 통과한 focused 검증은 새 변경/실패 없이 반복하지 않는다.
|
||||
> Executor가 이미 만든 top/current control dirty 상태는 보호 snapshot이며 구현 소유권 위반으로 단정하지 않는다.
|
||||
> 선택 Step의 result fields만 반환하고 timestamps/history/다른 metadata는 변경하지 않는다.
|
||||
> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다.
|
||||
|
||||
- Feature ID: `mitc4-shell-feast-eigen`
|
||||
- Plan owner: `implementation-planning-agent`
|
||||
- Execution owner: `implementation-agent`
|
||||
@@ -106,10 +117,11 @@ Symbols: `Mitc4LumpedMass; DeriveLumpedMass(consistent snapshot, directors); Ele
|
||||
Workspace root의 PowerShell에서 실행한다. 초기 missing API RED라면 build의 expected failure를 기록하고 production 구현 후 같은 명령을 다시 실행한다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R '^(Mitc4ShellMass|Mitc4ShellKinematics|Mitc4ShellKernel|ElementFactory|ShellMassAssembler|SparseAssembler)\.' --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug -R '^(Mitc4ShellMass|Mitc4ShellKinematics|Mitc4ShellKernel|ElementFactory|ShellMassAssembler|SparseAssembler)\.' --output-on-failure
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug --target fesa_tests
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(Mitc4ShellMass|Mitc4ShellKinematics|Mitc4ShellKernel|ElementFactory|ShellMassAssembler|SparseAssembler)\.' --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(Mitc4ShellMass|Mitc4ShellKinematics|Mitc4ShellKernel|ElementFactory|ShellMassAssembler|SparseAssembler)\.' --output-on-failure
|
||||
```
|
||||
|
||||
Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다.
|
||||
@@ -129,18 +141,23 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc
|
||||
|
||||
## Full VERIFY
|
||||
|
||||
현재 실제 backend는 config absent→CMake/Visual Studio 18 2026/x64/`.harness/build`/Debug다. Dependency cache 준비는 [environment](../../docs/mitc4-shell-feast-eigen/implementation-environment.md)의 정확한 명령과 preflight를 따른다. Generator 변경이나 preset fallback을 임의로 하지 않는다.
|
||||
현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'configure failed' }
|
||||
cmake --build .harness/build --config Debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'build failed' }
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --show-only=json-v1
|
||||
if ($LASTEXITCODE -ne 0) { throw 'discovery failed' }
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --output-on-failure
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full CTest failed' }
|
||||
uv run --with pytest python -B -m pytest -v -rs
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase"
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full pytest failed' }
|
||||
```
|
||||
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# Step 3: 실제 제약의 null 공간과 sparse whitening
|
||||
|
||||
> **현재 실행 계약(r2):** 모든 configure/build/CTest는 `mfe-workspace-msvc-ninja-debug`를 사용한다.
|
||||
> MSVC x64 Debug, 동일 Ninja graph의 manual/registered 검증과 `CMAKE_BUILD_PARALLEL_LEVEL=1`을 유지한다.
|
||||
> 과거 `.harness/build` VS 명령과 public preset 명령은 이 Step의 실행 명령을 대체하지 않는다.
|
||||
> Targets/regex/필수 test identity·owned_paths·수치 계약은 그대로다. [E10.2/E11](../../docs/mitc4-shell-feast-eigen/implementation-environment.md#e11-실제-local-설정에-대한-정상-invocation)을 적용한다.
|
||||
> 긴 도구 호출은 **결과 전체**를 전달한다. `session_id`가 있으면 `write_stdin`으로 종료까지 이어받고,
|
||||
> functions가 running cell을 반환했을 때만 해당 `cell_id`로 `functions.wait`를 사용한다.
|
||||
> `r.output`만 비었다고 같은 명령을 다시 실행하지 않는다. 통과한 focused 검증은 새 변경/실패 없이 반복하지 않는다.
|
||||
> Executor가 이미 만든 top/current control dirty 상태는 보호 snapshot이며 구현 소유권 위반으로 단정하지 않는다.
|
||||
> 선택 Step의 result fields만 반환하고 timestamps/history/다른 metadata는 변경하지 않는다.
|
||||
> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다.
|
||||
|
||||
- Feature ID: `mitc4-shell-feast-eigen`
|
||||
- Plan owner: `implementation-planning-agent`
|
||||
- Execution owner: `implementation-agent`
|
||||
@@ -92,10 +103,11 @@ Symbols: `DofManager::BuildEigenLayout/EigenSparsePattern; eigen_internal::Reduc
|
||||
Workspace root의 PowerShell에서 실행한다. 초기 missing API RED라면 build의 expected failure를 기록하고 production 구현 후 같은 명령을 다시 실행한다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R '^(EigenReduction|DofManager|ShellMassAssembler|Mitc4Covariance)\.' --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug -R '^(EigenReduction|DofManager|ShellMassAssembler|Mitc4Covariance)\.' --output-on-failure
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug --target fesa_tests
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenReduction|DofManager|ShellMassAssembler|Mitc4Covariance)\.' --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenReduction|DofManager|ShellMassAssembler|Mitc4Covariance)\.' --output-on-failure
|
||||
```
|
||||
|
||||
Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다.
|
||||
@@ -112,18 +124,23 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc
|
||||
|
||||
## Full VERIFY
|
||||
|
||||
현재 실제 backend는 config absent→CMake/Visual Studio 18 2026/x64/`.harness/build`/Debug다. Dependency cache 준비는 [environment](../../docs/mitc4-shell-feast-eigen/implementation-environment.md)의 정확한 명령과 preflight를 따른다. Generator 변경이나 preset fallback을 임의로 하지 않는다.
|
||||
현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'configure failed' }
|
||||
cmake --build .harness/build --config Debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'build failed' }
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --show-only=json-v1
|
||||
if ($LASTEXITCODE -ne 0) { throw 'discovery failed' }
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --output-on-failure
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full CTest failed' }
|
||||
uv run --with pytest python -B -m pytest -v -rs
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase"
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full pytest failed' }
|
||||
```
|
||||
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# Step 4: MKL FEAST adapter와 bounded lowest-N 검색
|
||||
|
||||
> **현재 실행 계약(r2):** 모든 configure/build/CTest는 `mfe-workspace-msvc-ninja-debug`를 사용한다.
|
||||
> MSVC x64 Debug, 동일 Ninja graph의 manual/registered 검증과 `CMAKE_BUILD_PARALLEL_LEVEL=1`을 유지한다.
|
||||
> 과거 `.harness/build` VS 명령과 public preset 명령은 이 Step의 실행 명령을 대체하지 않는다.
|
||||
> Targets/regex/필수 test identity·owned_paths·수치 계약은 그대로다. [E10.2/E11](../../docs/mitc4-shell-feast-eigen/implementation-environment.md#e11-실제-local-설정에-대한-정상-invocation)을 적용한다.
|
||||
> 긴 도구 호출은 **결과 전체**를 전달한다. `session_id`가 있으면 `write_stdin`으로 종료까지 이어받고,
|
||||
> functions가 running cell을 반환했을 때만 해당 `cell_id`로 `functions.wait`를 사용한다.
|
||||
> `r.output`만 비었다고 같은 명령을 다시 실행하지 않는다. 통과한 focused 검증은 새 변경/실패 없이 반복하지 않는다.
|
||||
> Executor가 이미 만든 top/current control dirty 상태는 보호 snapshot이며 구현 소유권 위반으로 단정하지 않는다.
|
||||
> 선택 Step의 result fields만 반환하고 timestamps/history/다른 metadata는 변경하지 않는다.
|
||||
> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다.
|
||||
|
||||
- Feature ID: `mitc4-shell-feast-eigen`
|
||||
- Plan owner: `implementation-planning-agent`
|
||||
- Execution owner: `implementation-agent`
|
||||
@@ -110,10 +121,11 @@ Symbols: `EigenSolver::SolveLowest; MklFeastEigenSolver::SolveLowest; eigen_inte
|
||||
Workspace root의 PowerShell에서 실행한다. 초기 missing API RED라면 build의 expected failure를 기록하고 production 구현 후 같은 명령을 다시 실행한다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R '^(FeastBackend|FeastInitialSpace|MklPardisoSolver|EigenSolver|MklFeastEigenSolver|FeastSearch)\.' --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug -R '^(FeastBackend|FeastInitialSpace|MklPardisoSolver|EigenSolver|MklFeastEigenSolver|FeastSearch)\.' --output-on-failure
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug --target fesa_tests
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(FeastBackend|FeastInitialSpace|MklPardisoSolver|EigenSolver|MklFeastEigenSolver|FeastSearch)\.' --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(FeastBackend|FeastInitialSpace|MklPardisoSolver|EigenSolver|MklFeastEigenSolver|FeastSearch)\.' --output-on-failure
|
||||
```
|
||||
|
||||
Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다.
|
||||
@@ -132,18 +144,23 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc
|
||||
|
||||
## Full VERIFY
|
||||
|
||||
현재 실제 backend는 config absent→CMake/Visual Studio 18 2026/x64/`.harness/build`/Debug다. Dependency cache 준비는 [environment](../../docs/mitc4-shell-feast-eigen/implementation-environment.md)의 정확한 명령과 preflight를 따른다. Generator 변경이나 preset fallback을 임의로 하지 않는다.
|
||||
현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'configure failed' }
|
||||
cmake --build .harness/build --config Debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'build failed' }
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --show-only=json-v1
|
||||
if ($LASTEXITCODE -ne 0) { throw 'discovery failed' }
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --output-on-failure
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full CTest failed' }
|
||||
uv run --with pytest python -B -m pytest -v -rs
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase"
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full pytest failed' }
|
||||
```
|
||||
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# Step 5: 전체 c 검증과 별도 frequency procedure
|
||||
|
||||
> **현재 실행 계약(r2):** 모든 configure/build/CTest는 `mfe-workspace-msvc-ninja-debug`를 사용한다.
|
||||
> MSVC x64 Debug, 동일 Ninja graph의 manual/registered 검증과 `CMAKE_BUILD_PARALLEL_LEVEL=1`을 유지한다.
|
||||
> 과거 `.harness/build` VS 명령과 public preset 명령은 이 Step의 실행 명령을 대체하지 않는다.
|
||||
> Targets/regex/필수 test identity·owned_paths·수치 계약은 그대로다. [E10.2/E11](../../docs/mitc4-shell-feast-eigen/implementation-environment.md#e11-실제-local-설정에-대한-정상-invocation)을 적용한다.
|
||||
> 긴 도구 호출은 **결과 전체**를 전달한다. `session_id`가 있으면 `write_stdin`으로 종료까지 이어받고,
|
||||
> functions가 running cell을 반환했을 때만 해당 `cell_id`로 `functions.wait`를 사용한다.
|
||||
> `r.output`만 비었다고 같은 명령을 다시 실행하지 않는다. 통과한 focused 검증은 새 변경/실패 없이 반복하지 않는다.
|
||||
> Executor가 이미 만든 top/current control dirty 상태는 보호 snapshot이며 구현 소유권 위반으로 단정하지 않는다.
|
||||
> 선택 Step의 result fields만 반환하고 timestamps/history/다른 metadata는 변경하지 않는다.
|
||||
> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다.
|
||||
|
||||
- Feature ID: `mitc4-shell-feast-eigen`
|
||||
- Plan owner: `implementation-planning-agent`
|
||||
- Execution owner: `implementation-agent`
|
||||
@@ -105,10 +116,11 @@ Symbols: `LinearFrequencyProcedureExecutor::Execute; LinearFrequencyExecutionRes
|
||||
Workspace root의 PowerShell에서 실행한다. 초기 missing API RED라면 build의 expected failure를 기록하고 production 구현 후 같은 명령을 다시 실행한다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R '^(EigenAnalysisState|EigenValidation|MklFeastEigenSolver|EigenReduction|LinearFrequencyProcedure|FrequencyDomain|Mitc4Covariance)\.' --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug -R '^(EigenAnalysisState|EigenValidation|MklFeastEigenSolver|EigenReduction|LinearFrequencyProcedure|FrequencyDomain|Mitc4Covariance)\.' --output-on-failure
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug --target fesa_tests
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenAnalysisState|EigenValidation|MklFeastEigenSolver|EigenReduction|LinearFrequencyProcedure|FrequencyDomain|Mitc4Covariance)\.' --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenAnalysisState|EigenValidation|MklFeastEigenSolver|EigenReduction|LinearFrequencyProcedure|FrequencyDomain|Mitc4Covariance)\.' --output-on-failure
|
||||
```
|
||||
|
||||
Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다.
|
||||
@@ -128,18 +140,23 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc
|
||||
|
||||
## Full VERIFY
|
||||
|
||||
현재 실제 backend는 config absent→CMake/Visual Studio 18 2026/x64/`.harness/build`/Debug다. Dependency cache 준비는 [environment](../../docs/mitc4-shell-feast-eigen/implementation-environment.md)의 정확한 명령과 preflight를 따른다. Generator 변경이나 preset fallback을 임의로 하지 않는다.
|
||||
현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'configure failed' }
|
||||
cmake --build .harness/build --config Debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'build failed' }
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --show-only=json-v1
|
||||
if ($LASTEXITCODE -ne 0) { throw 'discovery failed' }
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --output-on-failure
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full CTest failed' }
|
||||
uv run --with pytest python -B -m pytest -v -rs
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase"
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full pytest failed' }
|
||||
```
|
||||
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# Step 6: Additive HDF5와 CLI candidate transaction
|
||||
|
||||
> **현재 실행 계약(r2):** 모든 configure/build/CTest는 `mfe-workspace-msvc-ninja-debug`를 사용한다.
|
||||
> MSVC x64 Debug, 동일 Ninja graph의 manual/registered 검증과 `CMAKE_BUILD_PARALLEL_LEVEL=1`을 유지한다.
|
||||
> 과거 `.harness/build` VS 명령과 public preset 명령은 이 Step의 실행 명령을 대체하지 않는다.
|
||||
> Targets/regex/필수 test identity·owned_paths·수치 계약은 그대로다. [E10.2/E11](../../docs/mitc4-shell-feast-eigen/implementation-environment.md#e11-실제-local-설정에-대한-정상-invocation)을 적용한다.
|
||||
> 긴 도구 호출은 **결과 전체**를 전달한다. `session_id`가 있으면 `write_stdin`으로 종료까지 이어받고,
|
||||
> functions가 running cell을 반환했을 때만 해당 `cell_id`로 `functions.wait`를 사용한다.
|
||||
> `r.output`만 비었다고 같은 명령을 다시 실행하지 않는다. 통과한 focused 검증은 새 변경/실패 없이 반복하지 않는다.
|
||||
> Executor가 이미 만든 top/current control dirty 상태는 보호 snapshot이며 구현 소유권 위반으로 단정하지 않는다.
|
||||
> 선택 Step의 result fields만 반환하고 timestamps/history/다른 metadata는 변경하지 않는다.
|
||||
> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다.
|
||||
|
||||
- Feature ID: `mitc4-shell-feast-eigen`
|
||||
- Plan owner: `implementation-planning-agent`
|
||||
- Execution owner: `implementation-agent`
|
||||
@@ -114,10 +125,11 @@ Symbols: `PreparedAnalysisOutcome frequency variant; ExecutePreparedAnalysis/Fin
|
||||
Workspace root의 PowerShell에서 실행한다. 초기 missing API RED라면 build의 expected failure를 기록하고 production 구현 후 같은 명령을 다시 실행한다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R '^(EigenResultsWriter|EigenHdf5ResultsWriter|EigenHdf5Schema|Hdf5ModelWriter|Hdf5ResultsWriter|NonlinearHdf5ResultsWriter|Hdf5WriterComponents|PreparedAnalysis|FrequencyApplication|FesaApplication|LinearFrequencyProcedure|ShellSurfacePressureApplication)\.' --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug -R '^(EigenResultsWriter|EigenHdf5ResultsWriter|EigenHdf5Schema|Hdf5ModelWriter|Hdf5ResultsWriter|NonlinearHdf5ResultsWriter|Hdf5WriterComponents|PreparedAnalysis|FrequencyApplication|FesaApplication|LinearFrequencyProcedure|ShellSurfacePressureApplication)\.' --output-on-failure
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug --target fesa_tests
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenResultsWriter|EigenHdf5ResultsWriter|EigenHdf5Schema|Hdf5ModelWriter|Hdf5ResultsWriter|NonlinearHdf5ResultsWriter|Hdf5WriterComponents|PreparedAnalysis|FrequencyApplication|FesaApplication|LinearFrequencyProcedure|ShellSurfacePressureApplication)\.' --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenResultsWriter|EigenHdf5ResultsWriter|EigenHdf5Schema|Hdf5ModelWriter|Hdf5ResultsWriter|NonlinearHdf5ResultsWriter|Hdf5WriterComponents|PreparedAnalysis|FrequencyApplication|FesaApplication|LinearFrequencyProcedure|ShellSurfacePressureApplication)\.' --output-on-failure
|
||||
```
|
||||
|
||||
Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다.
|
||||
@@ -135,18 +147,23 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc
|
||||
|
||||
## Full VERIFY
|
||||
|
||||
현재 실제 backend는 config absent→CMake/Visual Studio 18 2026/x64/`.harness/build`/Debug다. Dependency cache 준비는 [environment](../../docs/mitc4-shell-feast-eigen/implementation-environment.md)의 정확한 명령과 preflight를 따른다. Generator 변경이나 preset fallback을 임의로 하지 않는다.
|
||||
현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'configure failed' }
|
||||
cmake --build .harness/build --config Debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'build failed' }
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --show-only=json-v1
|
||||
if ($LASTEXITCODE -ne 0) { throw 'discovery failed' }
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --output-on-failure
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full CTest failed' }
|
||||
uv run --with pytest python -B -m pytest -v -rs
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase"
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full pytest failed' }
|
||||
```
|
||||
|
||||
|
||||
@@ -1,5 +1,16 @@
|
||||
# Step 7: Value-only comparator·fresh reference·구현 evidence
|
||||
|
||||
> **현재 실행 계약(r2):** 모든 configure/build/CTest는 `mfe-workspace-msvc-ninja-debug`를 사용한다.
|
||||
> MSVC x64 Debug, 동일 Ninja graph의 manual/registered 검증과 `CMAKE_BUILD_PARALLEL_LEVEL=1`을 유지한다.
|
||||
> 과거 `.harness/build` VS 명령과 public preset 명령은 이 Step의 실행 명령을 대체하지 않는다.
|
||||
> Targets/regex/필수 test identity·owned_paths·수치 계약은 그대로다. [E10.2/E11](../../docs/mitc4-shell-feast-eigen/implementation-environment.md#e11-실제-local-설정에-대한-정상-invocation)을 적용한다.
|
||||
> 긴 도구 호출은 **결과 전체**를 전달한다. `session_id`가 있으면 `write_stdin`으로 종료까지 이어받고,
|
||||
> functions가 running cell을 반환했을 때만 해당 `cell_id`로 `functions.wait`를 사용한다.
|
||||
> `r.output`만 비었다고 같은 명령을 다시 실행하지 않는다. 통과한 focused 검증은 새 변경/실패 없이 반복하지 않는다.
|
||||
> Executor가 이미 만든 top/current control dirty 상태는 보호 snapshot이며 구현 소유권 위반으로 단정하지 않는다.
|
||||
> 선택 Step의 result fields만 반환하고 timestamps/history/다른 metadata는 변경하지 않는다.
|
||||
> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다.
|
||||
|
||||
- Feature ID: `mitc4-shell-feast-eigen`
|
||||
- Plan owner: `implementation-planning-agent`
|
||||
- Execution owner: `implementation-agent`
|
||||
@@ -110,10 +121,11 @@ Symbols: `EigenReferenceCases.FreshInputUsesTenBlockingValueFamilies; EigenRefer
|
||||
Workspace root의 PowerShell에서 실행한다. 초기 missing API RED라면 build의 expected failure를 기록하고 production 구현 후 같은 명령을 다시 실행한다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
cmake --build .harness/build --config Debug --target fesa_tests
|
||||
ctest --test-dir .harness/build -C Debug -R '^(EigenReferenceComparison|ReferenceTolerancePolicy|EigenReferenceCases|Mitc4EigenStaticRegression|Mitc4S4Reference|NonlinearStaticReference|ShellSurfacePressureReference)\.' --show-only=json-v1
|
||||
ctest --test-dir .harness/build -C Debug -R '^(EigenReferenceComparison|ReferenceTolerancePolicy|EigenReferenceCases|Mitc4EigenStaticRegression|Mitc4S4Reference|NonlinearStaticReference|ShellSurfacePressureReference)\.' --output-on-failure
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug --target fesa_tests
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenReferenceComparison|ReferenceTolerancePolicy|EigenReferenceCases|Mitc4EigenStaticRegression|Mitc4S4Reference|NonlinearStaticReference|ShellSurfacePressureReference)\.' --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenReferenceComparison|ReferenceTolerancePolicy|EigenReferenceCases|Mitc4EigenStaticRegression|Mitc4S4Reference|NonlinearStaticReference|ShellSurfacePressureReference)\.' --output-on-failure
|
||||
```
|
||||
|
||||
Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다.
|
||||
@@ -130,18 +142,23 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc
|
||||
|
||||
## Full VERIFY
|
||||
|
||||
현재 실제 backend는 config absent→CMake/Visual Studio 18 2026/x64/`.harness/build`/Debug다. Dependency cache 준비는 [environment](../../docs/mitc4-shell-feast-eigen/implementation-environment.md)의 정확한 명령과 preflight를 따른다. Generator 변경이나 preset fallback을 임의로 하지 않는다.
|
||||
현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다.
|
||||
|
||||
```powershell
|
||||
cmake -S . -B .harness/build -A x64
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'configure failed' }
|
||||
cmake --build .harness/build --config Debug
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'build failed' }
|
||||
ctest --test-dir .harness/build -C Debug --show-only=json-v1
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --show-only=json-v1
|
||||
if ($LASTEXITCODE -ne 0) { throw 'discovery failed' }
|
||||
ctest --test-dir .harness/build -C Debug --output-on-failure
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --output-on-failure
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full CTest failed' }
|
||||
uv run --with pytest python -B -m pytest -v -rs
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase"
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full pytest failed' }
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user