docs: remove retired workflow instructions and repair references

This commit is contained in:
KOKO\Mimi
2026-10-17 22:37:04 +09:00
parent abfe0ee0ce
commit 4bd19f5bf0
120 changed files with 1436 additions and 3130 deletions
@@ -7,15 +7,11 @@
"name": "bounded-execution-deadlines",
"status": "blocked",
"owned_paths": [
"scripts/execute.py",
".codex/hooks.json",
"scripts/hooks/stop_validation.py",
"scripts/msvc_harness/models.py",
"scripts/msvc_harness/process.py",
"tests/test_execute.py",
"tests/test_harness_timeouts.py",
"docs/HARNESS_WORKFLOW.md",
"docs/mitc4-shell-feast-eigen/implementation-prep-evidence.md"
"docs/solver-core/README.md",
"docs/mitc4-shell-feast-eigen/README.md"
],
"started_at": "2026-09-06T10:04:44+0900",
"attempt_history": [
@@ -75,4 +71,4 @@
}
],
"created_at": "2026-09-06T10:04:44+0900"
}
}
@@ -1,24 +1,9 @@
# Step 0: 유한 실행시간 조정과 정상 검증 경로 보존
> **과거 실행 기록:** 아래 지시·소유 경로는 당시 계획이며 현재 실행 입력이 아니다.
> 원문은 Git `858e87b`에서 확인한다. 문서 링크는 통합된 기록으로 연결하며 새 작업은
> [현재 문서 안내](../../docs/README.md)와 기능 PRD를 따른다.
> **현재 실행 계약(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/development-notes.md#실패와-재발-방지)을 적용한다.
> 긴 도구 호출은 **결과 전체**를 전달한다. `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 검증을 완료한다.
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
> 현재 구현과 검증 한계는 [기능 요약](../../docs/mitc4-shell-feast-eigen/README.md)을 따른다.
- Feature ID: `mitc4-shell-feast-eigen`
- Plan owner: `implementation-planning-agent`
- Execution owner: `implementation-agent`
- Input contract revision: `r2`
- Phase: `mitc4-shell-feast-eigen-execution-prep`
- Requirement: `FEM-REQ-MITC4-EIGEN-023/025`; `MFE-C27`, `IO-T11`
@@ -29,53 +14,45 @@
Feature 폴더 `docs/mitc4-shell-feast-eigen/`와 다음 management/approved bundle을 읽는다.
- [AGENTS.md](../../AGENTS.md)
- [docs/SOLVER_AGENT_DESIGN.md](../../docs/SOLVER_AGENT_DESIGN.md)
- [docs/FEATURE_DOCUMENTATION.md](../../docs/FEATURE_DOCUMENTATION.md)
- [docs/PRD.md](../../docs/PRD.md)
- [docs/ARCHITECTURE.md](../../docs/ARCHITECTURE.md)
- [docs/ADR.md](../../docs/ADR.md)
- [docs/CODINGSTYLE.md](../../docs/CODINGSTYLE.md)
- [docs/TOLERANCE.md](../../docs/TOLERANCE.md)
- [.codex/skills/fem-implementation-tdd/SKILL.md](../../.codex/skills/fem-implementation-tdd/SKILL.md)
- [.agents/skills/harness/SKILL.md](../../.agents/skills/harness/SKILL.md)
- [.codex/agents/implementation-agent.toml](../../.codex/agents/implementation-agent.toml)
- [docs/mitc4-shell-feast-eigen/FEATURED_AGENTS.md](../../docs/mitc4-shell-feast-eigen/FEATURED_AGENTS.md)
- [docs/mitc4-shell-feast-eigen/PRD.md](../../docs/mitc4-shell-feast-eigen/PRD.md)
- [docs/mitc4-shell-feast-eigen/ADR.md](../../docs/mitc4-shell-feast-eigen/ADR.md)
- [docs/mitc4-shell-feast-eigen/coordination.md](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)
- [docs/mitc4-shell-feast-eigen/requirements.md](../../docs/mitc4-shell-feast-eigen/requirements.md#requirements)
- [docs/mitc4-shell-feast-eigen/requirements-evidence.md](../../docs/mitc4-shell-feast-eigen/requirements.md#requirements-evidence)
- [docs/mitc4-shell-feast-eigen/research.md](../../docs/mitc4-shell-feast-eigen/research.md#research)
- [docs/mitc4-shell-feast-eigen/research-evidence.md](../../docs/mitc4-shell-feast-eigen/research.md#research-evidence)
- [docs/SOLVER_AGENT_DESIGN.md](../../docs/solver-core/README.md)
- [docs/FEATURE_DOCUMENTATION.md](../../docs/solver-core/README.md)
- [docs/PRD.md](../../docs/solver-core/README.md)
- [docs/ARCHITECTURE.md](../../docs/solver-core/README.md)
- [docs/ADR.md](../../docs/solver-core/README.md)
- [docs/CODINGSTYLE.md](../../docs/solver-core/README.md)
- [docs/TOLERANCE.md](../../docs/solver-core/README.md)
- [docs/mitc4-shell-feast-eigen/FEATURED_AGENTS.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/PRD.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/ADR.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/coordination.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/requirements.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/requirements-evidence.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/research.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/research-evidence.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/formulation.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation)
- [docs/mitc4-shell-feast-eigen/formulation-mass.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-mass)
- [docs/mitc4-shell-feast-eigen/formulation-eigen.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen)
- [docs/mitc4-shell-feast-eigen/formulation-verification.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-verification)
- [docs/mitc4-shell-feast-eigen/formulation-stabilization.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-stabilization)
- [docs/mitc4-shell-feast-eigen/numerical-review.md](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review)
- [docs/mitc4-shell-feast-eigen/numerical-review-evidence.md](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-evidence)
- [docs/mitc4-shell-feast-eigen/numerical-review-controls.md](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-controls)
- [docs/mitc4-shell-feast-eigen/numerical-review-cases.md](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-cases)
- [docs/mitc4-shell-feast-eigen/reference-model.md](../../docs/mitc4-shell-feast-eigen/reference-model.md)
- [docs/mitc4-shell-feast-eigen/io.md](../../docs/mitc4-shell-feast-eigen/io.md#io)
- [docs/mitc4-shell-feast-eigen/io-input.md](../../docs/mitc4-shell-feast-eigen/io.md#io-input)
- [docs/mitc4-shell-feast-eigen/io-schema.md](../../docs/mitc4-shell-feast-eigen/io.md#io-schema)
- [docs/mitc4-shell-feast-eigen/io-mapping.md](../../docs/mitc4-shell-feast-eigen/io.md#io-mapping)
- [docs/mitc4-shell-feast-eigen/implementation-plan.md](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)
- [docs/mitc4-shell-feast-eigen/implementation-environment.md](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)
- [docs/mitc4-shell-feast-eigen/implementation-interfaces.md](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)
- [docs/mitc4-shell-feast-eigen/implementation-verification.md](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)
- [docs/mitc4-shell-feast-eigen/numerical-review.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/numerical-review-evidence.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/numerical-review-controls.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/numerical-review-cases.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/reference-model.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/io.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/io-input.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/io-schema.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/io-mapping.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/implementation-plan.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/implementation-environment.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/implementation-interfaces.md](../../docs/mitc4-shell-feast-eigen/README.md)
- [docs/mitc4-shell-feast-eigen/implementation-verification.md](../../docs/mitc4-shell-feast-eigen/README.md)
추가 필수: [현재 Executor](../../scripts/execute.py), 등록 hooks (당시 경로: `../../.codex/hooks.json`, 현재 checkout에 없음),
Stop (당시 경로: `../../scripts/hooks/stop_validation.py`, 현재 checkout에 없음), [CommandSpec](../../scripts/msvc_harness/models.py),
[process](../../scripts/msvc_harness/process.py), [config](../../scripts/msvc_harness/config.py),
[CMake adapter](../../scripts/msvc_harness/adapters/cmake.py), [HARNESS](../../docs/HARNESS.md),
[WORKFLOW](../../docs/HARNESS_WORKFLOW.md), [환경·activation 상세](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지).
[WORKFLOW](../../docs/solver-core/README.md), [환경·activation 상세](../../docs/mitc4-shell-feast-eigen/README.md).
현재 config schema에는 timeout option이 없다. 이번에 새 config field를 만들지 않는다.
재개 시 [복구 계획](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)과
실제 classifier 재현 (당시 경로: `../../.harness/build/mitc4-eigen-evidence/prep/attempt1/classifier-observation.json`, 현재 checkout에 없음)을
추가 입력으로 읽는다. 아래 classifier delta는 기존 owned scripts/execute.py/tests/test_execute.py에
재개 시 [복구 계획](../../docs/mitc4-shell-feast-eigen/README.md)과
실제 classifier 재현 (당시 경로: 과거 검증 자료(정리됨), 현재 checkout에 없음)을
한정된 TDD 작업이다. 현재 blocked history와 실제 Hook 쓰기 거부는 그대로 보존한다.
현재 WIP 보존 뒤 별도 Correction Agent가 classifier 소스/테스트와 corrections.md를 먼저
완성한다. 그 실제 결과·별도 checkpoint 감사·수정 classifier를 읽는 새 process activation이
@@ -84,21 +61,9 @@ Stop (당시 경로: `../../scripts/hooks/stop_validation.py`, 현재 checkout
## Owned paths
```json
[
"scripts/execute.py",
".codex/hooks.json",
"scripts/hooks/stop_validation.py",
"scripts/msvc_harness/models.py",
"scripts/msvc_harness/process.py",
"tests/test_execute.py",
"tests/test_harness_timeouts.py",
"docs/HARNESS_WORKFLOW.md",
"docs/mitc4-shell-feast-eigen/implementation-prep-evidence.md"
]
```
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
타 owner 변경을 보존한다. `docs/HARNESS_WORKFLOW.md`는 실제 deadline 값의 설명 문단만 수정하고 workflow/approval/Git/Hook 계약을 바꾸지 않는다.
타 owner 변경을 보존한다. `../../docs/solver-core/README.md`는 실제 deadline 값의 설명 문단만 수정하고 workflow/approval/Git/Hook 계약을 바꾸지 않는다.
## RED
@@ -124,25 +89,13 @@ Stop (당시 경로: `../../scripts/hooks/stop_validation.py`, 현재 checkout
missing-result 오류, 실제 wrapper timeout만 최대2회 재시도되는 기존 분기를 검증한다.
이 positive regression들은 최초부터 pass할 수 있으므로 새 RED로 주장하지 않는다.
```powershell
$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
오류는 classifier RED가 아니다. 마지막 attempt1의 test-only `.value` 수정은 별도 미검증이므로
기존 focused 명령으로 실제 재확인하고 원 보고서도 Implementation owner가 수정한다.
```powershell
$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가 아니다.
@@ -153,63 +106,36 @@ Actual nonzero exit와 기존1800 기본값 때문에 실패한 assertions를
| 파일 / symbol | 기존 | 새 값 |
| --- | ---: | ---: |
| scripts/execute.py / StepExecutor.CODEX_TIMEOUT_SECONDS | 1800 | 14400 |
| .codex/hooks.json / Stop command timeout | 1800 | 7500 |
| scripts/hooks/stop_validation.py / TOTAL_TIMEOUT_SECONDS | 1800 | 7200 |
| scripts/msvc_harness/models.py / CommandSpec.timeout_seconds | 1800 | 7200 |
| scripts/msvc_harness/process.py / execute_plan total_timeout_seconds default | 1800 | 7200 |
Classifier GREEN은 `_codex_environment_failure`의 helper marker 판별만 좁힌다. 성공한
source/tool 출력의 임의 substring을 runtime diagnostic으로 사용하지 않는다. Stderr의 실제
helper diagnostic과 관찰된 명시 runtime failure 형식을 보존하고, JSONL 성공 command의
command/aggregated_output 같은 source payload는 제외한다. Plain `Source excerpt:` 문장도
진짜 runtime error 형식이 아니므로 무시한다. 모든 exit0을 정상으로 간주하거나 stderr 검사를
제거하지 않는다. 필요한 작은 private 판별 함수는 같은 scripts/execute.py 안에 둔다.
기존 auth/CLI nonzero 진단, explicit terminal·history, retry 분기와 횟수는 바꾸지 않는다.
`min(command cap, shared remaining)` 알고리즘은 그대로 둔다. 이 classifier delta 외의 함수·
sandbox·transport/Coordinator retry·Hook scope/active flags·ownership/Git/API를 변경하지 않는다.
`docs/HARNESS_WORKFLOW.md`의 이전1800 설명은 위 유한 deadline/새 process activation을 정확히
`../../docs/solver-core/README.md`의 이전1800 설명은 위 유한 deadline/새 process activation을 정확히
반영한다. Config field/환경변수/새 public CLI timeout option은 만들지 않는다.
## Focused VERIFY
```powershell
$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가 아니다.
위 신규 classifier test3개의 실제 collection 이름과 parameter case 존재도 확인한다.
등록된 기존 suite만 실행되었다고 새로운 behavior가 검증됐다고 보고하지 않는다.
이미 GREEN인 timeout/classifier source는 기존 [Correction evidence](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)와
이미 GREEN인 timeout/classifier source는 기존 [Correction evidence](../../docs/mitc4-shell-feast-eigen/README.md)와
보존된 RED/GREEN을 읽고 재검증한다. RED를 다시 만들려고 source를 되돌리지 않는다.
현재 classifier37/timeout4/focused136과 전체 pytest를 실제 확인한다.
## Full VERIFY
```powershell
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
cmake --preset mfe-workspace-msvc-ninja-debug
if ($LASTEXITCODE -ne 0) { throw 'configure failed' }
cmake --build --preset mfe-workspace-msvc-ninja-debug --clean-first --verbose
if ($LASTEXITCODE -ne 0) { throw 'build failed' }
ctest --preset mfe-workspace-msvc-ninja-debug --show-only=json-v1
if ($LASTEXITCODE -ne 0) { throw 'discovery failed' }
ctest --preset mfe-workspace-msvc-ninja-debug --output-on-failure
if ($LASTEXITCODE -ne 0) { throw 'full CTest failed' }
$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`,
@@ -228,8 +154,7 @@ C++는 수정하지 않는다. 기존 same-binary cache를 쓰는 helper와 항
## 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과 실제 등록 Stop7500/shared7200, 그 시점에 관찰된 Stop/Codex exit 또는 아직 확인 대기인 항목을 기록한다. Raw logs는 ignored `.harness/build/mitc4-eigen-evidence/prep/`다. CTest log는 즉시 복사 보존한다.
`../../docs/mitc4-shell-feast-eigen/README.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 과거 검증 자료(정리됨)다. CTest log는 즉시 복사 보존한다.
보고서 작성 시점에는 마지막 registered Stop/Codex exit가 아직 발생하지 않을 수 있다. Implementation은 실제 완료된 manual 검증과 미관찰 Stop을 구분하고 미래 성공을 선기록하지 않는다. `completed` payload는 그 자체로 Stop 성공 증거가 아니다. Executor 종료 뒤 Coordinator가 raw output·등록 Hook evidence·actual exit를 management 문서에서 사후 감사한다. Specialist 보고서 본문은 Coordinator가 대신 수정하지 않는다.