diff --git a/AGENTS.md b/AGENTS.md index 7b3b97a..fe0be95 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -11,41 +11,9 @@ subset에서 재현 가능한 해석과 HDF5 결과를 제공한다. 코드 존 ├── AGENTS.md → 작업 진입점과 핵심 규칙 ├── CLAUDE.md → 같은 내용의 작업 진입점 ├── docs/ -│ ├── ARCHITECTURE.md → 구성·데이터 흐름·소유권 -│ ├── business-rules.md → 물리 의미와 제품 범위 -│ ├── security.md → 실행 권한과 데이터 취급 -│ ├── standards.md → 개발·검증·변경의 공통 규칙 -│ ├── engineering-notes.md → 수치·실행에서 혼동하기 쉬운 점 -│ ├── operations.md → 환경 준비·빌드·검사·실행 -│ ├── contracts.md → CLI·입력·결과·비교 계약 -│ ├── PRD.md → 기존 공통 요구사항과 승인 ID -│ ├── ADR.md → 기존 결정·승인·대체 이력 -│ ├── TOLERANCE.md → 승인된 외부 비교 기준의 상세 원본 -│ ├── CODINGSTYLE.md → 기존 C++ 규약의 상세 원본 -│ ├── FEATURE_DOCUMENTATION.md → 기능별 기록의 소유권 -│ ├── SOLVER_AGENT_DESIGN.md → 전문 역할과 사용자 결정 경계 -│ ├── SOLVER_SKILL_DESIGN.md → 전문 skill의 적용 범위 -│ ├── HARNESS.md → 기존 검증 실행기 상세 사용법 -│ ├── HARNESS_WORKFLOW.md → 검증 실행기의 책임과 실패 처리 -│ ├── / → 해당 기능의 요구·결정·수식·I/O·evidence -│ └── tracking/ -│ ├── status.md → 구현·검증 상태와 남은 범위 -│ ├── findings.md → 미해결 문제와 영향 -│ └── decisions/ -│ ├── index.md → 유지하는 선택 목록 -│ ├── 0001-independent-solver.md → 외부 subset과 내부 독립성 -│ ├── 0002-build-and-backends.md → 검증 환경과 vendor 격리 -│ ├── 0003-model-and-equations.md → 모델·view·equation 소유권 -│ ├── 0004-ordered-assembly.md → local 계산과 결정적 누적 -│ ├── 0005-state-and-output.md → candidate와 최종 결과 보존 -│ ├── 0006-procedure-lifecycle.md → 절차별 상태와 full residual -│ ├── 0007-reference-evidence.md → 원본과 수치 비교 정책 -│ ├── 0008-layered-verification.md → 독립 수치·물리 검증 -│ ├── 0009-explicit-development.md → 필요한 전문 작업과 명시 실행 -│ ├── 0010-feature-contract-ownership.md → 기능별 계약 소유권 -│ ├── 0011-eigen-first-implementation.md → 고유치 첫 구현의 경계 -│ ├── 0012-hht-kinetic-mass.md → 동역학 질량 선택 -│ └── 0013-thermal-staged-scope.md → 초기 열해석 범위 +│ ├── README.md → 기능별 기술 요약 색인 +│ ├── solver-core/README.md → 공통 구조·I/O·수치 기준·빌드 방법 +│ └── / → 기능 요약과 formulation 원문 ├── include/fesa/ │ └── AGENTS.md → 공개 API와 수명·의존성 ├── src/fesa/ @@ -69,10 +37,6 @@ subset에서 재현 가능한 해석과 HDF5 결과를 제공한다. 코드 존 │ └── io/ │ ├── abaqus/AGENTS.md → 문법·의미 mapping │ └── hdf5/AGENTS.md → schema·readback·finalize -├── scripts/ -│ ├── AGENTS.md → 명시 실행 진입점 -│ ├── msvc_harness/AGENTS.md → config·toolchain·명령 실행 -│ └── verification/AGENTS.md → 원본 reference 비교 ├── tests/ │ └── AGENTS.md → 계층별 검사·실패·비교 evidence └── cmake/ @@ -94,29 +58,22 @@ subset에서 재현 가능한 해석과 HDF5 결과를 제공한다. 코드 존 ## 작업 전 확인 -기본적으로 [개발 규칙](docs/standards.md), [주의점](docs/engineering-notes.md)과 -변경할 영역의 AGENTS.md를 확인한다. 같은 문맥에서 읽고 바뀌지 않은 자료는 다시 읽지 않는다. +기본적으로 [솔버 공통 요약](docs/solver-core/README.md), 변경할 기능의 +[기술 요약](docs/README.md)과 해당 영역의 AGENTS.md를 확인한다. +같은 문맥에서 읽고 바뀌지 않은 자료는 다시 읽지 않는다. Public header 변경은 대응하는 src 영역의 책임과 consumer까지 확인한다. -- 범위·physics·절차 변경: [제품 요구](docs/PRD.md), [구조](docs/ARCHITECTURE.md), - [기존 결정](docs/ADR.md)과 해당 Feature의 PRD·ADR·정식화·독립 검토. -- 입력·결과·비교 변경: [외부 계약](docs/contracts.md), [수치 기준](docs/TOLERANCE.md), - 해당 Feature의 I/O·reference mapping. 공통 요약이 승인된 상세 계약을 덮어쓰지 않는다. -- C++ 구현: [코딩 규약](docs/CODINGSTYLE.md), 해당 영역 지침과 행동을 검증할 검사. -- 실행기·빌드 변경: [실행 방법](docs/operations.md), 실제 config·preset·target graph. - Config와 명령의 side effect는 실행 전에 확인한다. -- 기능 재개: [전체 현황](docs/tracking/status.md)과 Feature PRD의 실제 checklist. - 폐기된 phase·hook·고정 stage 순회를 복원하지 않는다. +- 범위·physics·절차 변경: 기능 요약의 채택 범위·수식·구현 한계와 formulation을 확인한다. +- 입력·결과·비교 변경: 공통 I/O·수치 기준과 해당 기능의 identity·reference mapping을 확인한다. +- C++ 구현: 공통 요약의 코딩 규약, 해당 영역 지침과 행동을 검증할 검사를 확인한다. +- 빌드 변경: 실제 preset·target graph·dependency와 명령의 side effect를 실행 전에 확인한다. +- 기능 재개: 해당 기능 요약의 현재 구현·검증·미해결 범위를 대조한다. + 과거 phase 파일은 보존된 개발 이력이며 현재 실행 지시가 아니다. -[기능 기록](docs/FEATURE_DOCUMENTATION.md)의 FEATURED_AGENTS·PRD·ADR과 기존 -요구사항 ID·승인 이력은 보존한다. 공통 지침을 바꾸는 별도 요청 없이 일반 Feature 작업에서 -프로젝트 PRD·ADR·지침을 수정하지 않는다. 현재 checklist는 Feature PRD 한 곳에 둔다. - -메인이 필요한 전문 작업만 배정한다. 역할은 [전문 작업 운영](docs/SOLVER_AGENT_DESIGN.md), -적용 범위는 [Skill 사용](docs/SOLVER_SKILL_DESIGN.md)을 따른다. 구현 계획·수정에는 -fem-implementation-tdd, 명시 build/test에는 [harness](.agents/skills/harness/SKILL.md), -요청 diff 검토에는 [review](.agents/skills/review/SKILL.md)를 사용한다. Release-readiness는 -별도 명시 요청에만 수행한다. 승인된 일반 작업에 반복 승인 gate를 추가하지 않는다. +기능별 요약은 `docs//README.md` 한 곳에 두고 수식은 formulation 원문을 따른다. +기존 승인된 기술 의미·수치 기준·source identity와 관련 없는 사용자 변경을 보존한다. +일반 기능 작업은 요청과 관련 없는 공통 규칙을 함께 바꾸지 않는다. +필요한 전문 작업만 선택하고 승인된 일반 작업에 반복 승인 절차를 추가하지 않는다. ## 문제 처리 @@ -125,7 +82,7 @@ fem-implementation-tdd, 명시 build/test에는 [harness](.agents/skills/harness 근거와 영향을 알린다. 자동으로 tolerance를 완화하거나 데이터를 복구·보정하지 않는다. 나머지 문제는 현재 owner가 관련 범위에서 해결한다. 지금 해결할 수 없는 문제는 재현 조건, -영향, 해결하지 못하는 이유와 다음 접근을 [미해결 문제](docs/tracking/findings.md)에 기록한다. +영향, 해결하지 못하는 이유와 다음 접근을 해당 기능 요약의 미해결 항목에 기록한다. 새 근거나 변경 없이 같은 명령·agent 호출을 반복하지 않는다. 문서만 변경하면 정적 검토를 하고 build/test를 실행하지 않는다. 동작 변경은 관련 검사부터, diff --git a/CLAUDE.md b/CLAUDE.md index 7b3b97a..fe0be95 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -11,41 +11,9 @@ subset에서 재현 가능한 해석과 HDF5 결과를 제공한다. 코드 존 ├── AGENTS.md → 작업 진입점과 핵심 규칙 ├── CLAUDE.md → 같은 내용의 작업 진입점 ├── docs/ -│ ├── ARCHITECTURE.md → 구성·데이터 흐름·소유권 -│ ├── business-rules.md → 물리 의미와 제품 범위 -│ ├── security.md → 실행 권한과 데이터 취급 -│ ├── standards.md → 개발·검증·변경의 공통 규칙 -│ ├── engineering-notes.md → 수치·실행에서 혼동하기 쉬운 점 -│ ├── operations.md → 환경 준비·빌드·검사·실행 -│ ├── contracts.md → CLI·입력·결과·비교 계약 -│ ├── PRD.md → 기존 공통 요구사항과 승인 ID -│ ├── ADR.md → 기존 결정·승인·대체 이력 -│ ├── TOLERANCE.md → 승인된 외부 비교 기준의 상세 원본 -│ ├── CODINGSTYLE.md → 기존 C++ 규약의 상세 원본 -│ ├── FEATURE_DOCUMENTATION.md → 기능별 기록의 소유권 -│ ├── SOLVER_AGENT_DESIGN.md → 전문 역할과 사용자 결정 경계 -│ ├── SOLVER_SKILL_DESIGN.md → 전문 skill의 적용 범위 -│ ├── HARNESS.md → 기존 검증 실행기 상세 사용법 -│ ├── HARNESS_WORKFLOW.md → 검증 실행기의 책임과 실패 처리 -│ ├── / → 해당 기능의 요구·결정·수식·I/O·evidence -│ └── tracking/ -│ ├── status.md → 구현·검증 상태와 남은 범위 -│ ├── findings.md → 미해결 문제와 영향 -│ └── decisions/ -│ ├── index.md → 유지하는 선택 목록 -│ ├── 0001-independent-solver.md → 외부 subset과 내부 독립성 -│ ├── 0002-build-and-backends.md → 검증 환경과 vendor 격리 -│ ├── 0003-model-and-equations.md → 모델·view·equation 소유권 -│ ├── 0004-ordered-assembly.md → local 계산과 결정적 누적 -│ ├── 0005-state-and-output.md → candidate와 최종 결과 보존 -│ ├── 0006-procedure-lifecycle.md → 절차별 상태와 full residual -│ ├── 0007-reference-evidence.md → 원본과 수치 비교 정책 -│ ├── 0008-layered-verification.md → 독립 수치·물리 검증 -│ ├── 0009-explicit-development.md → 필요한 전문 작업과 명시 실행 -│ ├── 0010-feature-contract-ownership.md → 기능별 계약 소유권 -│ ├── 0011-eigen-first-implementation.md → 고유치 첫 구현의 경계 -│ ├── 0012-hht-kinetic-mass.md → 동역학 질량 선택 -│ └── 0013-thermal-staged-scope.md → 초기 열해석 범위 +│ ├── README.md → 기능별 기술 요약 색인 +│ ├── solver-core/README.md → 공통 구조·I/O·수치 기준·빌드 방법 +│ └── / → 기능 요약과 formulation 원문 ├── include/fesa/ │ └── AGENTS.md → 공개 API와 수명·의존성 ├── src/fesa/ @@ -69,10 +37,6 @@ subset에서 재현 가능한 해석과 HDF5 결과를 제공한다. 코드 존 │ └── io/ │ ├── abaqus/AGENTS.md → 문법·의미 mapping │ └── hdf5/AGENTS.md → schema·readback·finalize -├── scripts/ -│ ├── AGENTS.md → 명시 실행 진입점 -│ ├── msvc_harness/AGENTS.md → config·toolchain·명령 실행 -│ └── verification/AGENTS.md → 원본 reference 비교 ├── tests/ │ └── AGENTS.md → 계층별 검사·실패·비교 evidence └── cmake/ @@ -94,29 +58,22 @@ subset에서 재현 가능한 해석과 HDF5 결과를 제공한다. 코드 존 ## 작업 전 확인 -기본적으로 [개발 규칙](docs/standards.md), [주의점](docs/engineering-notes.md)과 -변경할 영역의 AGENTS.md를 확인한다. 같은 문맥에서 읽고 바뀌지 않은 자료는 다시 읽지 않는다. +기본적으로 [솔버 공통 요약](docs/solver-core/README.md), 변경할 기능의 +[기술 요약](docs/README.md)과 해당 영역의 AGENTS.md를 확인한다. +같은 문맥에서 읽고 바뀌지 않은 자료는 다시 읽지 않는다. Public header 변경은 대응하는 src 영역의 책임과 consumer까지 확인한다. -- 범위·physics·절차 변경: [제품 요구](docs/PRD.md), [구조](docs/ARCHITECTURE.md), - [기존 결정](docs/ADR.md)과 해당 Feature의 PRD·ADR·정식화·독립 검토. -- 입력·결과·비교 변경: [외부 계약](docs/contracts.md), [수치 기준](docs/TOLERANCE.md), - 해당 Feature의 I/O·reference mapping. 공통 요약이 승인된 상세 계약을 덮어쓰지 않는다. -- C++ 구현: [코딩 규약](docs/CODINGSTYLE.md), 해당 영역 지침과 행동을 검증할 검사. -- 실행기·빌드 변경: [실행 방법](docs/operations.md), 실제 config·preset·target graph. - Config와 명령의 side effect는 실행 전에 확인한다. -- 기능 재개: [전체 현황](docs/tracking/status.md)과 Feature PRD의 실제 checklist. - 폐기된 phase·hook·고정 stage 순회를 복원하지 않는다. +- 범위·physics·절차 변경: 기능 요약의 채택 범위·수식·구현 한계와 formulation을 확인한다. +- 입력·결과·비교 변경: 공통 I/O·수치 기준과 해당 기능의 identity·reference mapping을 확인한다. +- C++ 구현: 공통 요약의 코딩 규약, 해당 영역 지침과 행동을 검증할 검사를 확인한다. +- 빌드 변경: 실제 preset·target graph·dependency와 명령의 side effect를 실행 전에 확인한다. +- 기능 재개: 해당 기능 요약의 현재 구현·검증·미해결 범위를 대조한다. + 과거 phase 파일은 보존된 개발 이력이며 현재 실행 지시가 아니다. -[기능 기록](docs/FEATURE_DOCUMENTATION.md)의 FEATURED_AGENTS·PRD·ADR과 기존 -요구사항 ID·승인 이력은 보존한다. 공통 지침을 바꾸는 별도 요청 없이 일반 Feature 작업에서 -프로젝트 PRD·ADR·지침을 수정하지 않는다. 현재 checklist는 Feature PRD 한 곳에 둔다. - -메인이 필요한 전문 작업만 배정한다. 역할은 [전문 작업 운영](docs/SOLVER_AGENT_DESIGN.md), -적용 범위는 [Skill 사용](docs/SOLVER_SKILL_DESIGN.md)을 따른다. 구현 계획·수정에는 -fem-implementation-tdd, 명시 build/test에는 [harness](.agents/skills/harness/SKILL.md), -요청 diff 검토에는 [review](.agents/skills/review/SKILL.md)를 사용한다. Release-readiness는 -별도 명시 요청에만 수행한다. 승인된 일반 작업에 반복 승인 gate를 추가하지 않는다. +기능별 요약은 `docs//README.md` 한 곳에 두고 수식은 formulation 원문을 따른다. +기존 승인된 기술 의미·수치 기준·source identity와 관련 없는 사용자 변경을 보존한다. +일반 기능 작업은 요청과 관련 없는 공통 규칙을 함께 바꾸지 않는다. +필요한 전문 작업만 선택하고 승인된 일반 작업에 반복 승인 절차를 추가하지 않는다. ## 문제 처리 @@ -125,7 +82,7 @@ fem-implementation-tdd, 명시 build/test에는 [harness](.agents/skills/harness 근거와 영향을 알린다. 자동으로 tolerance를 완화하거나 데이터를 복구·보정하지 않는다. 나머지 문제는 현재 owner가 관련 범위에서 해결한다. 지금 해결할 수 없는 문제는 재현 조건, -영향, 해결하지 못하는 이유와 다음 접근을 [미해결 문제](docs/tracking/findings.md)에 기록한다. +영향, 해결하지 못하는 이유와 다음 접근을 해당 기능 요약의 미해결 항목에 기록한다. 새 근거나 변경 없이 같은 명령·agent 호출을 반복하지 않는다. 문서만 변경하면 정적 검토를 하고 build/test를 실행하지 않는다. 동작 변경은 관련 검사부터, diff --git a/HANDOFF.md b/HANDOFF.md index 171176d..8a59fdf 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -1,6 +1,9 @@ # HHT implicit dynamics 인수인계 -최초 작성: 2026-09-22. 이 문서는 중단·재개를 위한 작업 상태 기록이다. **기능 완료 보고서가 아니며, 미실행·진행 중·INCONCLUSIVE를 PASS로 해석하면 안 된다.** 후속 작업은 아래 실행 일지에 덧붙인다. Feature의 공식 acceptance/checklist 원본은 [PRD](docs/hht-implicit-dynamics/PRD.md)다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. 원문은 Git 이력에서 확인한다. +> 현재 구현과 검증 한계는 [HHT 기능 요약](docs/hht-implicit-dynamics/README.md)을 따른다. + +최초 작성: 2026-09-22. 이 문서는 중단·재개를 위한 작업 상태 기록이다. **기능 완료 보고서가 아니며, 미실행·진행 중·INCONCLUSIVE를 PASS로 해석하면 안 된다.** 후속 작업은 아래 실행 일지에 덧붙인다. Feature의 공식 acceptance/checklist 원본은 [PRD](docs/hht-implicit-dynamics/README.md)다. ## dev 병합 및 worktree 정리 — 2026-09-27 @@ -8,7 +11,7 @@ - HHT worktree 및 이전 `dev-consistent-mass-comparison`, `mitc4-thesis-alignment` worktree 등록을 Git/Orca에서 정리했다. 병합된 HHT branch 이름은 삭제했고 기존 실험 두 branch는 보존했다. - 이전 미커밋 비교 자료는 `dev-consistent-mass-comparison`의 `3c8f82a`, 논문 재현 실험은 `mitc4-thesis-alignment`의 `3f33f19`로 보존했다. 두 실험의 코드는 dev에 병합하지 않았다. 보존 commit은 신규 검증 통과를 의미하지 않는다. - 전체 작업 디렉터리와 ignored/untracked 검증 결과는 `C:/Users/baram/orca/archives/FESADev/2026-09-27-worktree-cleanup/<기존 worktree 이름>/`에 보관했다. `manifest.json`에 commit·원경로·파일수·크기를 기록했고 이동 전후 inventory가 일치한다. 아카이브는 Git worktree가 아니며 `.git` 포인터는 `git-worktree-pointer.txt`라는 이력 파일이다. -- 아래 이력의 기존 worktree 절대 경로와 `.harness/build/...` evidence는 해당 아카이브에서 찾는다. 새 실행은 dev에서 CMake를 다시 configure해야 하며 이동된 build cache를 그대로 재사용하지 않는다. +- 아래 이력의 기존 worktree 절대 경로와 과거 검증 자료(정리됨) evidence는 해당 아카이브에서 찾는다. 새 실행은 dev에서 CMake를 다시 configure해야 하며 이동된 build cache를 그대로 재사용하지 않는다. - 이번 병합은 코드 변화 없는 fast-forward다. 기존 검증을 반복 실행하지 않았으며 C08 실패·C04a INCONCLUSIVE·복구 후보 미채택 상태는 그대로다. 전체 기능 완료나 physics gate PASS를 의미하지 않는다. 원격 push는 수행하지 않았다. ## 재개 시 우선 확인 — 2026-09-27 @@ -17,7 +20,7 @@ - Original reference 100 increments 완료: U 101 families PASS, UR 경고 200건. 최초 HDF5는 새로 발견한 굽힘 단면력 복구 오류를 포함하므로 해당 필드는 수정 전 evidence다. - C08 optimized 재현: `c08-diagnostic-20260926.log`, exit1, 3 tests/1 PASS/2 FAIL. Finest C08a angular-a error `5.67565924e-4`, 최대 시점 `t=.0390625`; 그 node의 null 성분 `5.58582318e-4`, physical 성분 `1.00582661e-4`. Null 보정만으로 통과한다고 단정할 수 없다. -- Decimal80 독립 cubic DAE 반례에서 v 2차/a 1차. 초기 A0만 변경해도 해결되지 않는다. 재현 코드와 선택지는 [독립 수치 검토](docs/hht-implicit-dynamics/implementation-numerical-review.md)에 있다. +- Decimal80 독립 cubic DAE 반례에서 v 2차/a 1차. 초기 A0만 변경해도 해결되지 않는다. 재현 코드와 선택지는 [독립 수치 검토](docs/hht-implicit-dynamics/README.md)에 있다. - 사용자 결정: 정확도 요구를 유지하고 제약조건 기반 가속도 복구를 별도 정식화·검증한 뒤 채택 여부를 결정한다(HHT-ADR-011). Production history/output 의미를 아직 바꾸지 않는다. - C08b grid 초기값·시간 대응·갱신 코드의 구체적 오류는 발견하지 못했다. 회전 q/v/a self convergence는 FAIL이며 원인 미확정. Roundoff 수준 P에 감소를 요구하는 판정 문제는 별개다. - 굽힘 recovery `M=∫zS dz`의 두께 인자 하나 누락을 확인해 수정했다. 두께 .2/.5/2의 stress-face first moment 회귀는 수정 전 FAIL, 수정 후 optimized 관련 13 tests PASS. 내부 force/tangent에는 영향이 없다. 최신 Debug 관련14 tests PASS 및 원본 재생성·독립 물리 확인을 완료했다. C08 temporal2개 제외 회귀는475 PASS/1 SKIP이며 전체 feature PASS가 아니다. @@ -44,9 +47,9 @@ ## 3. 우선 읽을 계약 -[Feature 지침](docs/hht-implicit-dynamics/FEATURED_AGENTS.md), [PRD](docs/hht-implicit-dynamics/PRD.md), [ADR](docs/hht-implicit-dynamics/ADR.md), [정식화](docs/hht-implicit-dynamics/formulation.md), [관성 정식화](docs/hht-implicit-dynamics/formulation-inertia.md), [수치 기준](docs/hht-implicit-dynamics/numerical-controls.md), [검증 C01–C12](docs/hht-implicit-dynamics/verification-cases.md), [I/O 계약](docs/hht-implicit-dynamics/io-contract.md), [reference 계약](docs/hht-implicit-dynamics/reference-model.md). +[Feature 지침](docs/hht-implicit-dynamics/README.md), [PRD](docs/hht-implicit-dynamics/README.md), [ADR](docs/hht-implicit-dynamics/README.md), [정식화](docs/hht-implicit-dynamics/formulation.md), [관성 정식화](docs/hht-implicit-dynamics/formulation-inertia.md), [수치 기준](docs/hht-implicit-dynamics/README.md), [검증 C01–C12](docs/hht-implicit-dynamics/README.md), [I/O 계약](docs/hht-implicit-dynamics/README.md), [reference 계약](docs/hht-implicit-dynamics/README.md). -공통 [TOLERANCE](docs/TOLERANCE.md), [ARCHITECTURE](docs/ARCHITECTURE.md), [CODINGSTYLE](docs/CODINGSTYLE.md), 프로젝트 AGENTS.md를 따른다. 프로젝트 PRD/ADR/AGENTS는 일반 Feature 작업에서 읽기 전용이다. Feature 문서는 한국어로 작성한다. +공통 [TOLERANCE](docs/solver-core/README.md), [ARCHITECTURE](docs/solver-core/README.md), [CODINGSTYLE](docs/solver-core/README.md), 프로젝트 AGENTS.md를 따른다. 프로젝트 PRD/ADR/AGENTS는 일반 Feature 작업에서 읽기 전용이다. Feature 문서는 한국어로 작성한다. ### 고정된 수학·지원 범위 @@ -114,7 +117,6 @@ Exact director D1/D2/D3, I/M/c/DqI/DvI, T/P/L/rates, analytic moving null, scale - `include/fesa/io/hdf5/dynamic_hdf5_results_writer.h`, `src/fesa/io/hdf5/dynamic_hdf5_results_writer.cpp` - `include/fesa/analysis/newton_iteration_log.h`, `src/fesa/analysis/newton_iteration_log.cpp` - state/writer/log unit tests -- `scripts/verification/compare_hht_dynamic.py`, `tests/test_compare_hht_dynamic.py` State는 complete validated frame만 commit하고 실패 candidate는 기존 history를 보존한다. q/v/a/A 분리, frame0, zero corrections, triad/director/chart, source identity, residual/reaction 등을 검증한다. Writer는 full schema·dtype·attrs·values readback 뒤 atomic replace한다. Density/BC mask, physical spatial reaction, HDF5 diagnostic source_file/source_line 이름을 명시했다. 기존 static diagnostic file/line은 유지한다. Log는 별도 hht-log-v1; accepted frame마다 flush한다. @@ -125,7 +127,7 @@ Comparator는 원본 101×9행, full HDF5 101×729×6 U/UR identity·finite 검 ### 이미 확보한 제한 evidence - MSVC x64 **Debug** fesa_solver/fesa_cli/unit target build 통과(전체 configured Harness는 아직 미실행). -- `.harness/build/hht-numerical/focused-io.log`: 29 tests PASS. State/writer/log, input, rotation 등을 포함한다. 전체 기능 suite를 뜻하지 않는다. +- 과거 검증 자료(정리됨): 29 tests PASS. State/writer/log, input, rotation 등을 포함한다. 전체 기능 suite를 뜻하지 않는다. - 관성8 + rotation4 + algebra8 + C07 4개는 최신 최적화 focused binary에서 PASS. - C01/C02/C03/C04b scalar temporal verification: prescribed grids의 q/v/physical a 차수·오차와 N7 evidence 확보. - C07 alpha0 energy maximum defect `1.14353e-13`; default alpha endpoint energy defect `-2.45134e-5`; rho(omega*h=1000)≈`.904763`, analytic limit `.904762`; physical inertial support reaction oracle PASS. @@ -136,7 +138,7 @@ Comparator는 원본 101×9행, full HDF5 101×729×6 U/UR identity·finite 검 C04a 시간수렴은 통과한다. Finest binary64 full2×2 대 scalar reduction의 acceleration 차이는 약 `3.079e-10`으로 계약1e-10보다 크지만 N7 산술/solve resolution 약 `6.296e-10`보다 작다. 해당 비교는 별도 `GTEST_SKIP`으로 **INCONCLUSIVE**를 남긴다. Coarse binary grids는 통과했고 decimal80 독립 수식 계산의 finest 차이는 `1.69e-73`이다. -`.harness/build/hht-numerical/c04a-decimal-reduction.json`은 고정밀 수학 identity 근거다. FESA binary64 finest 통과를 대체하지 않는다. Numerical reviewer가 이 구분을 N7에 맞는 qualification으로 확인했다. +과거 검증 자료(정리됨)은 고정밀 수학 identity 근거다. FESA binary64 finest 통과를 대체하지 않는다. Numerical reviewer가 이 구분을 N7에 맞는 qualification으로 확인했다. ### 아직 완료되지 않은 검증 @@ -155,11 +157,11 @@ C04a 시간수렴은 통과한다. Finest binary64 full2×2 대 scalar reduction | 작업 | 상태/위치 | |---|---| -| Original reference, optimized + MKL/OMP1 | `exec session_id=70291`; `.harness/build/hht-numerical/reference-run-optimized.log`; live `reference/shellNL-dyn-meshfine/shellNL-dyn-meshfine_log.txt` | -| 최신 Debug focused suite | `exec session_id=81971`; `.harness/build/hht-numerical/focused-debug-complete.log` | +| Original reference, optimized + MKL/OMP1 | `exec session_id=70291`; 과거 검증 자료(정리됨); live `reference/shellNL-dyn-meshfine/shellNL-dyn-meshfine_log.txt` | +| 최신 Debug focused suite | `exec session_id=81971`; 과거 검증 자료(정리됨) | | Comparator pytest | 종료0, 41 passed; session88341 종료 확인 완료 | | C08 작성 owner | `/root/hht_output_completion`; `tests/unit/analysis/hht_shell_physics_test.cpp` 준비, C08a temporal pending | -| Physics reviewer | `/root/hht_physics_evaluation`; 독립 `docs/hht-implicit-dynamics/physics-evaluation.md` 초안 및 실제 결과 기다리는 중 | +| Physics reviewer | `/root/hht_physics_evaluation`; 독립 `docs/hht-implicit-dynamics/README.md` 초안 및 실제 결과 기다리는 중 | | Numerical reviewer | `/root/hht_formulation_review`; `implementation-numerical-review.md` 작성. NR005/006 closed, ADR010/N2 시작값 문서 갱신 전달 필요 | | Inertia/algebra/temporal owner | `/root/hht_inertia_completion`; 현재 담당 파일 완료/idle, 추가 수정 시 재사용 | @@ -167,37 +169,16 @@ main이 빌드를 직렬 조정한다. **빌드 중 public header를 변경하 ## 7. 실행 환경과 명령 -로컬 helper `.harness/run-msvc.ps1`이 VsDevCmd x64 환경과 dependency CMake dirs를 설정한다. 이 helper와 build 디렉터리는 개인 exclude이며 commit하지 않는다. +로컬 helper 과거 검증 자료(정리됨)이 VsDevCmd x64 환경과 dependency CMake dirs를 설정한다. 이 helper와 build 디렉터리는 개인 exclude이며 commit하지 않는다. - VS: `C:/Program Files/Microsoft Visual Studio/18/Community` - GoogleTest: `C:/git/googletest` - MKL2026.1, TBB2023.1, HDF5 2.1.1 -- 기본 검증: `.harness/build-ninja-msvc-debug`, preset `windows-msvc-ninja-debug` -- reference/긴 physics 실험용 추가 최적화 빌드: `.harness/build-hht-relwithdebinfo` -- `.harness/config.json`은 Debug preset과 binaryDir로 설정되어 있다. +- 기본 검증: 과거 검증 자료(정리됨), preset `windows-msvc-ninja-debug` +- reference/긴 physics 실험용 추가 최적화 빌드: 과거 검증 자료(정리됨) +- 과거 검증 자료(정리됨)은 Debug preset과 binaryDir로 설정되어 있다. -```powershell -# 반드시 위 worktree에서 실행 -& ./.harness/run-msvc.ps1 cmake --build --preset windows-msvc-ninja-debug --target fesa_unit_tests fesa_cli --parallel 8 - -# 완료 시 구성된 전체 Debug 검증을 한 번 실행 -& ./.harness/run-msvc.ps1 python scripts/execute.py - -# 별도 optimized build — Debug 검증을 대체하지 않는다 -& ./.harness/run-msvc.ps1 @('cmake','--preset','windows-msvc-ninja-debug','-B','.harness/build-hht-relwithdebinfo','-DCMAKE_BUILD_TYPE=RelWithDebInfo') -& ./.harness/run-msvc.ps1 cmake --build .harness/build-hht-relwithdebinfo --target fesa_cli fesa_unit_tests --parallel 8 - -# 작은 반복 PARDISO solve의 oversubscription 방지, 비교 시 설정 기록 -$env:MKL_NUM_THREADS='1' -$env:OMP_NUM_THREADS='1' -& ./.harness/run-msvc.ps1 ./.harness/build-hht-relwithdebinfo/src/fesa/fesa.exe reference/shellNL-dyn-meshfine/shellNL-dyn-meshfine.inp - -# 최종 HDF5가 생성된 다음만 비교 -uv run --with h5py python -B scripts/verification/compare_hht_dynamic.py --report .harness/build/hht-numerical/reference-comparison.json - -# comparator 자체 검증 -uv run --with h5py --with pytest python -B -m pytest -q tests/test_compare_hht_dynamic.py -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. PowerShell helper의 `-B`는 named parameter로 잘못 bind될 수 있어 위 array splat을 사용한다. `clang-format`은 `C:/Program Files/LLVM/bin/clang-format.exe`다. Python은 Korean Git output을 읽을 때 UTF-8 encoding을 명시한다. 환경 전체/자격증명을 출력하지 않는다. @@ -245,12 +226,11 @@ PowerShell helper의 `-B`는 named parameter로 잘못 bind될 수 있어 위 ar - 후속 검증: C08a pointwise independent volume force/power/momentum 및 explicit-time hidden checks PASS(max phi=.547572rad). **C08a temporal FAIL**: finest angular/chart-a 전체 최대오차5.67565924e-4>1e-4, 마지막 두 차수1.02867/1.02897<1.8. 일부 finest rate는 N7 error/noise100배 분리도 미달(INCONCLUSIVE). C08b도 FAIL로 종료했다. 전체 C08 optimized는3tests/1PASS/2FAIL,136.265s. 세부 실패는 c08-optimized.log에 있으며 원인 분석 중이다. - 독립 수치 검토의 원인 후보: massless prescribed coordinate z(t)의 A0=a0 startup은 `a1-z''(h)=h*(1/(6*beta*(1+alpha))-1)*z'''(0)+O(h²)`를 만들어 일반 nonzero jerk에서 최대시간 acceleration 오차가1차다. C08 phi'''(0)는0이 아니고 관측 first/late 오차 경향이 일치한다. 이 주장은 독립 scalar 재현·null/physical error 분해로 추가 확인 중이다. **허용값을 완화하거나 startup 물리 계약을 몰래 바꾸지 말 것.** 실제 알고리즘/acceptance 변경이 필요하면 프로젝트 사용자 결정 경계를 따른다. -- 2026-09-26~27 재개: `fem-implementation-tdd`, 독립 numerical/physics review와 formulation을 재개했다. C08 driver의 initial state/grid/time mapping/history/update를 읽기 전용 대조했고 구체적인 시간 대응 오류는 찾지 못했다. `CheckUpdates` production 호출이 test driver에 없는 coverage 제한은 남는다. - 수정/커밋: `7b700ab fix: restore thickness factor in shell bending resultants`; flat face stress moment oracle에서 thickness .2/.5/2 모두 수정 전 FAIL을 확인했다(`bending-moment-red.log`). 수정 후 optimized 관련13 tests PASS(`recovery-green-optimized.log`). `d465245 test: cover unloaded HHT free degree channels`는 전체 free/병진만 free/회전만 free의 exact-rest 3 variants를 추가했고 optimized PASS다. - 사용자 선택을 HHT-ADR-011로 기록: 정확도 요구를 유지하고 별도 acceleration recovery 후보를 정식화·검증한 다음 채택 여부를 결정한다. `formulation-acceleration-recovery.md`와 독립 검토 NR-012/013을 작성했다. 시간적분 history/공식 HDF5/schema는 변경하지 않았다. - 진단 fixture는 `a_rec=a_h+N*eta`를 원 frame과 분리해 저장한다. `c08-recovery-probe-20260926.log` 전체3 tests/1 PASS/2 FAIL, exit1. C08a split loop가 빈 analytic metadata를 순회해 false-zero를 출력한 문제는 vector size 기반으로 수정했으며 `c08-recovery-split-spectrum-20260927.log`에서 다시 실행했다(2 tests/1 PASS/1 FAIL). 첫 로그의 C08a null/physical split=0은 유효 evidence가 아니다; full error와 C08b는 별도 검토했다. - 복구 후보 결과: C08a finest angular-a `1.005829141075e-4`, 마지막 두 차수 `1.77942349/1.99162617`; 승인 기준 미달. 재실행 split의 null `4.64641213e-7`, physical `1.00582661e-4`. C08b finest recovered angular-a self difference `.8689386613`, physical `.8689381530`; q/v 실패는 그대로다. Hidden2와 Mdeltaa의 작은 값은 대수 보정 근거이며 실제 정확도 통과가 아니다. C08a N3 exact denominator 및 recovery-specific N7 noise 평가가 남아 있으므로 채택하지 않는다. -- 초기 spectrum 진단: 54 DOF 원 M/K를 별도 test로 출력하고 알려진 UR3 9개를 static condensation했다. Physical mass Cholesky PASS, condensed K symmetry defect0. 최고 각진동수319.8401253, h=1/1024에서 omega*h=.31234387. `.harness/build/hht-numerical/c08b-initial-spectrum-20260927.json`에 raw eigenvalues와 grid별 값을 보존했다. 이는 initial linearized spectrum이며 nonlinear C08b 실패 원인 확정 또는 grid/tolerance 변경 승인이 아니다. +- 초기 spectrum 진단: 54 DOF 원 M/K를 별도 test로 출력하고 알려진 UR3 9개를 static condensation했다. Physical mass Cholesky PASS, condensed K symmetry defect0. 최고 각진동수319.8401253, h=1/1024에서 omega*h=.31234387. 과거 검증 자료(정리됨)에 raw eigenvalues와 grid별 값을 보존했다. 이는 initial linearized spectrum이며 nonlinear C08b 실패 원인 확정 또는 grid/tolerance 변경 승인이 아니다. - 수정 후 원본 reference 재실행 exit0(session5757). `reference-after-recovery-fix.json` comparator exit0: 441774 scalars precheck, U101 PASS, UR200 warnings 유지. 원 INP/CSV SHA256은 §8과 동일하다. - HDF5 대조: 수정 전 archive `reference-before-recovery-fix.h5`의 SHA256 `23bac93d1f7998b2f74a0f68767ae98a9899ee92c53f5170d08a814d3ee936d4`; 수정 후 공식 HDF5 `f07beddaa232abe314e20210534a243d6deaf1f677c598c64f9334428bbecb56`. 전체2033 datasets 중100개 noninitial section_resultant만 변경됐고 bending3 components는 정확히 기존의1/2, 나머지 모든 datasets는 bitwise identical이다. `reference-recovery-audit-20260927.json`에 기록했다. 직접 face stress 차분에는 tiny strain/high stiffness cancellation이 있어 별도 relative error3.868e-10을 기록했으며 1e-12 PASS로 주장하지 않는다. - 전체 Debug Harness는 source 수정 전 snapshot으로 시작했다(session16398, `full-debug-20260926.log`). C08a FAIL 재현 후 장시간의 stale C08b만 main이 중단했다. CTest는 이를 non-pass로 기록하고 다른 검사를 계속하므로 전체 PASS로 해석하면 안 된다. 최신 core/recovery/C09/spectrum Debug build는 exit0이며 targeted run(session3213, `recovery-green-debug-20260927.log`)의 종료 결과를 아래에 추가한다. @@ -262,5 +242,5 @@ PowerShell helper의 `-B`는 named parameter로 잘못 bind될 수 있어 위 ar 다음 담당자가 할 일: 회복 후보를 production에 넣지 말고 C08b physical q/v/a 차이의 시점·공간·모드별 원인을 분리, 필요하면 추가 fine-grid를 diagnostic으로 조사하되 기존 지정 grid FAIL은 보존; C08a recovery-specific N7 및 정확한 N3 scale 검증을 보충; C09–C11 잔여 항목을 PRD 원본과 대조; 정식화/정확도/출력 계약 채택은 구체적인 통과·실패 evidence를 제시한 뒤 결정한다. 현재 candidate는 검증 기준을 충족하지 않아 미채택이다. -- 2026-09-27 최종 확인: 최신 Debug CTest 명시 subset exit0,476개 중475 PASS/1 C04a SKIP,271.54s. 제외 항목은 C08a/C08b temporal2개이며 이 둘의 기존 FAIL을 숨기거나 전체 gate PASS로 바꾸지 않는다. Command는 `& ./.harness/run-msvc.ps1 @('ctest','--preset','windows-msvc-ninja-debug','--output-on-failure','-E','HhtShellPhysics.C08aRigidManufacturedOrbitFullCoordinateTimeConvergence|HhtShellPhysics.C08bFreeFiniteRotationPlateSelfConvergenceAndPhysicalInvariants')`다. Helper에 -E/-B를 줄 때 array splat을 사용한다. +- 2026-09-27 최종 확인: 최신 Debug CTest 명시 subset exit0,476개 중475 PASS/1 C04a SKIP,271.54s. 제외 항목은 C08a/C08b temporal2개이며 이 둘의 기존 FAIL을 숨기거나 전체 gate PASS로 바꾸지 않는다. Command는 과거 검증 자료(정리됨)다. Helper에 -E/-B를 줄 때 array splat을 사용한다. - Commit `219473e`는 legacy unsupported-procedure fixture, `c8f6619`는 C08 failure/recovery/spectrum probes와 정식화·독립 검토·HANDOFF evidence를 보존한다. 이 실행의 모든 solver/test process는 종료 확인했다. 새 테스트/문서의 링크와 staged diff 정적 확인을 수행했고 원 input/CSV는 변경하지 않았다. CTest가 생성한 `reference/shellNL-eigen-meshfine/shellNL-eigen-meshfine_log.txt`는 보조 untracked output이며 commit하지 않았다. diff --git a/docs/hex8-structural-analysis/formulation.md b/docs/hex8-structural-analysis/formulation.md index 68ff509..f3748a6 100644 --- a/docs/hex8-structural-analysis/formulation.md +++ b/docs/hex8-structural-analysis/formulation.md @@ -1,9 +1,9 @@ # Hex8 정식화와 검증 불변량 -적용: [PRD](PRD.md)의 FEM-REQ-HEX8-002–007,012–018,021. -물리 선택은 [ADR](ADR.md)에 있다. 이 문서는 승인된 식의 구현용 유도이며 +적용: [PRD](README.md)의 FEM-REQ-HEX8-002–007,012–018,021. +물리 선택은 [ADR](README.md)에 있다. 이 문서는 승인된 식의 구현용 유도이며 외부 결과에 맞추어 physics를 바꾸는 권한이 아니다. 수치 controls는 -[별도 원본](numeric-controls.md), 출력 tensor/identity는 [I/O](io.md)를 따른다. +[별도 원본](README.md), 출력 tensor/identity는 [I/O](README.md)를 따른다. 2026-10-09 승인된 Solid HHT 내부 정밀도 변경의 구현 계약은 [precision formulation](precision-formulation.md)이다. 동적 paired 경로의 상대변위 gradient, 전체 상태·계수 연산과 반올림 출력 의미는 해당 문서를 함께 적용한다. @@ -196,7 +196,7 @@ strain만으로 결정되는 이전 pointwise law가 아니라 element mean에 M은 reference-state 상수다. Positive weights와8점 interpolation matrix의 full rank에서 SPD가 따른다. Axis-aligned brick의 scalar block은 \(\rho V/216\)에 각 축 sign이 같으면2/다르면1인 세 factor의 곱이다. Direction별 총합은 rho V, row sum은 rho V/8다. 2026-10-11 -[HEX8-ADR-010](ADR.md) 승인에 따라 production은 full24×24 M_C의 행 합 M_L을 사용한다. +[HEX8-ADR-010](README.md) 승인에 따라 production은 full24×24 M_C의 행 합 M_L을 사용한다. 행 합은 BC restriction 전에 계산한다. Warped 요소에서는 일반적으로 m_a가 같지 않다. Positive rho/N/weights에서 m_a>0이며 M_L은 diagonal SPD다. diff --git a/docs/hex8-structural-analysis/precision-formulation.md b/docs/hex8-structural-analysis/precision-formulation.md index 7dc46a6..ac1ab9e 100644 --- a/docs/hex8-structural-analysis/precision-formulation.md +++ b/docs/hex8-structural-analysis/precision-formulation.md @@ -1,10 +1,10 @@ # Hex8 동해석 high+low 정식화 -2026-10-11 질량 정책 변경: [HEX8-ADR-010](ADR.md)에 따라 현재 고유치·HHT는 lumped mass를 사용한다. 아래 consistent 질량을 전제로 한 수식 후보·검토·PASS/FAIL은 해당 시점의 이력이다. 변경본 통과로 승계하지 않으며 현재 수식은 [formulation](formulation.md), 재검증 상태는 [PRD](PRD.md)의 현재 checklist를 따른다. +2026-10-11 질량 정책 변경: [HEX8-ADR-010](README.md)에 따라 현재 고유치·HHT는 lumped mass를 사용한다. 아래 consistent 질량을 전제로 한 수식 후보·검토·PASS/FAIL은 해당 시점의 이력이다. 변경본 통과로 승계하지 않으며 현재 수식은 [formulation](formulation.md), 재검증 상태는 [PRD](README.md)의 현재 checklist를 따른다. -적용: 사용자가 2026-10-09 선택 A로 승인한 [정밀도 제안](precision-proposal.md). +적용: 사용자가 2026-10-09 선택 A로 승인한 [정밀도 제안](README.md). 기본 물리식·DOF·부호·적분점 순서는 [formulation](formulation.md), 판정 원본은 -[numeric-controls](numeric-controls.md), 영속 출력은 [I/O](io.md)다. 본 문서는 +[numeric-controls](README.md), 영속 출력은 [I/O](README.md)다. 본 문서는 승인된 정밀도 변경의 구현 계약이며 구현 완료나 독립 수치 승인이 아니다. 사용자 선택 B의 평균 Green trace energy는 모든 절차에 적용하며 이 문서는 그 동적 paired 평가를 정의한다. Static/frequency의 F64 산술 종류는 유지하되 물리 energy/K0는 같은 새 모델이다. diff --git a/docs/hht-implicit-dynamics/formulation-acceleration-recovery.md b/docs/hht-implicit-dynamics/formulation-acceleration-recovery.md index 8196e33..a1f6094 100644 --- a/docs/hht-implicit-dynamics/formulation-acceleration-recovery.md +++ b/docs/hht-implicit-dynamics/formulation-acceleration-recovery.md @@ -1,11 +1,11 @@ # 제약 일관 가속도 복구 후보 -2026-10-11 질량 정책 변경: [HHT-ADR-012](ADR.md)에 따라 현재 고유치·HHT는 lumped mass를 사용한다. 아래 consistent 질량을 전제로 한 수식 후보·검토·PASS/FAIL은 해당 시점의 이력이다. 변경본 통과로 승계하지 않으며 현재 수식은 [formulation](formulation.md), 재검증 상태는 [PRD](PRD.md)의 현재 checklist를 따른다. +2026-10-11 질량 정책 변경: [HHT-ADR-012](README.md)에 따라 현재 고유치·HHT는 lumped mass를 사용한다. 아래 consistent 질량을 전제로 한 수식 후보·검토·PASS/FAIL은 해당 시점의 이력이다. 변경본 통과로 승계하지 않으며 현재 수식은 [formulation](formulation.md), 재검증 상태는 [PRD](README.md)의 현재 checklist를 따른다. - 상태: `candidate-for-independent-review; not-adopted`, 2026-09-26. - Owner: `formulation-agent`. 할당 범위는 이 문서이며 source·시험·상위 계약은 변경하지 않는다. -- 기준: [프로젝트 지침](../../AGENTS.md), [프로젝트 PRD](../PRD.md), [공통 ADR](../ADR.md#adr-028), [Feature PRD](PRD.md), [시간적분](formulation.md), [관성 상세](formulation-inertia.md). -- 발견 근거: [구현 수치 검토 NR-009 이후](implementation-numerical-review.md), [C08](verification-cases.md), [N1–N7](numerical-controls.md). +- 기준: [프로젝트 지침](../../AGENTS.md), [프로젝트 PRD](../solver-core/README.md), [공통 ADR](../solver-core/README.md), [Feature PRD](README.md), [시간적분](formulation.md), [관성 상세](formulation-inertia.md). +- 발견 근거: [구현 수치 검토 NR-009 이후](README.md), [C08](README.md), [N1–N7](README.md). ## 1. 제안과 변경 경계 @@ -25,7 +25,7 @@ 각 admissible nodal null은 `[0;J_l(phi)^(-1)d]`다. 현재 total rotation-vector chart, geometry 및 swing/twist 유효성과 일정 null rank, 양의 physical mass 및 bounded algebraic inverse가 전 구간에서 필요하다. Partial BC는 null과 free 공간의 **교집합**을 구한다. N의 constrained 성분을 단순 삭제하거나 작은 positive mass를 null로 재분류하지 않는다. Empty null에서는 `a_rec=a_h`; all-fixed 모델도 empty recovery로 처리한다. -이 문서의 N은 [N3/N4](numerical-controls.md)의 고정 scale `D=diag(ell I3,I3)`, `x=D^-1 q`, 연속 정규화 analytic basis Z와 **`N=D_f Z(x)`**로 대응한다. 따라서 `psi=N^T g_f=Z^T(D^Tg)_f`, `g=f_int-F`. 미분 시 basis도 현재 q의 함수로 미분한다. N은 시간 grid와 무관한 같은 정의·source 순서를 사용하며 eigen/SVD 부호 변경으로 선택하지 않는다. +이 문서의 N은 [N3/N4](README.md)의 고정 scale `D=diag(ell I3,I3)`, `x=D^-1 q`, 연속 정규화 analytic basis Z와 **`N=D_f Z(x)`**로 대응한다. 따라서 `psi=N^T g_f=Z^T(D^Tg)_f`, `g=f_int-F`. 미분 시 basis도 현재 q의 함수로 미분한다. N은 시간 grid와 무관한 같은 정의·source 순서를 사용하며 eigen/SVD 부호 변경으로 선택하지 않는다. ## 3. 복구 방정식과 필요한 미분 @@ -115,7 +115,7 @@ Basis 표현에도 주의한다. `tilde psi=S(q,t)psi`에서 연속 2차 미분 ## 6. 독립 검토용 반증 사례 -아래는 추가 검증 제안이며 [기존 C08/N7](verification-cases.md)의 grid·전체 시점·원 정확도 요구를 바꾸지 않는다. 기존 a_h와 후보 a_rec를 함께 보존하고 실패 결과를 대체하지 않는다. +아래는 추가 검증 제안이며 [기존 C08/N7](README.md)의 grid·전체 시점·원 정확도 요구를 바꾸지 않는다. 기존 a_h와 후보 a_rec를 함께 보존하고 실패 결과를 대체하지 않는다. | ID | 모델/조작 | 반드시 확인할 결과 | | --- | --- | --- | diff --git a/docs/hht-implicit-dynamics/formulation-c08b-newton-research-20261012.md b/docs/hht-implicit-dynamics/formulation-c08b-newton-research-20261012.md index c39422d..76a7120 100644 --- a/docs/hht-implicit-dynamics/formulation-c08b-newton-research-20261012.md +++ b/docs/hht-implicit-dynamics/formulation-c08b-newton-research-20261012.md @@ -2,7 +2,7 @@ 상태: 연구 후보이며 production 채택·수치 정확도 승인이 아니다. 2026-10-12 formulation owner 작업은 이 문서만 소유한다. 질량·시간적분·내력·초기화·tolerance·원본을 바꾸지 않는다. 독립 numerical review와 실제 prototype 결과는 별도 owner가 소유한다. -계약: [기존 정식화](../../docs/hht-implicit-dynamics/formulation.md), [관성·null 상세 §4](../../docs/hht-implicit-dynamics/formulation-inertia.md#4-mass-null과-초기-일관성), [ADR-010/012](../../docs/hht-implicit-dynamics/ADR.md). 실제 trial은 [analysis.json](analysis.json)에 있으며 아래 기전 설명은 그 수치를 바탕으로 한 조사 후보이다. +계약: [기존 정식화](formulation.md), [관성·null 상세 §4](formulation-inertia.md#4-mass-null과-초기-일관성), [ADR-010/012](README.md). 실제 trial은 [analysis.json](README.md)에 있으며 아래 기전 설명은 그 수치를 바탕으로 한 조사 후보이다. ## 1. 적용 가정과 보존량 diff --git a/docs/hht-implicit-dynamics/formulation-carried-a-noise.md b/docs/hht-implicit-dynamics/formulation-carried-a-noise.md index 13adbca..a9c755d 100644 --- a/docs/hht-implicit-dynamics/formulation-carried-a-noise.md +++ b/docs/hht-implicit-dynamics/formulation-carried-a-noise.md @@ -1,6 +1,6 @@ # Carried-A HHT의 arithmetic/noise 인계 -상태: `implementation-ready-estimator; independent-review-pending`, 2026-10-12. [축소 좌표 정식화](formulation-reduced-coordinate.md)와 별개로, 동일 full-coordinate HHT에서 A를 직접 갱신하는 산술을 다룬다. 기존 [N7](numerical-controls.md)의 separation 기준을 완화하지 않는다. Half-ULP `q-qp-sA` closure는 이전 predictor·seed·update 오차 또는 history bound가 아니다. +상태: `implementation-ready-estimator; independent-review-pending`, 2026-10-12. [축소 좌표 정식화](formulation-reduced-coordinate.md)와 별개로, 동일 full-coordinate HHT에서 A를 직접 갱신하는 산술을 다룬다. 기존 [N7](README.md)의 separation 기준을 완화하지 않는다. Half-ULP `q-qp-sA` closure는 이전 predictor·seed·update 오차 또는 history bound가 아니다. ## 1. 실제 연산 경로 diff --git a/docs/hht-implicit-dynamics/formulation-dae-research-20261012.md b/docs/hht-implicit-dynamics/formulation-dae-research-20261012.md index 3276aaf..54a138b 100644 --- a/docs/hht-implicit-dynamics/formulation-dae-research-20261012.md +++ b/docs/hht-implicit-dynamics/formulation-dae-research-20261012.md @@ -1,8 +1,8 @@ # 대수좌표 제거 DAE 연구: 수식과 실행 결과 -상태: 연구 후보·독립 검토 대기. Owner: formulation, 2026-10-12. [연구의 권장 후보](../../../docs/hht-implicit-dynamics/research.md#temporal-remediation-research)를 소형 문제로 비교했다. Production·tests·PRD·ADR·reference·tolerance는 수정하지 않았다. 실제 shell 검증이나 새 적분법 채택이 아니다. +상태: 연구 후보·독립 검토 대기. Owner: formulation, 2026-10-12. [연구의 권장 후보](README.md)를 소형 문제로 비교했다. Production·tests·PRD·ADR·reference·tolerance는 수정하지 않았다. 실제 shell 검증이나 새 적분법 채택이 아니다. -재현 자료는 [Decimal80 probe](compare.py), [실제 native 기록](run-native.json), [stdout](run.log), [전체 grid·오차·조건 결과](comparison.json)다. `python -B compare.py` 실행 native0이며 FESA build/CTest는 실행하지 않았다. 모든 문제는 `t∈[0,1]`, `h=1/16,...,1/256`, exact frame0의 q/v/a와 `A0=a0`, `alpha=-.05,beta=.275625,gamma=.55`를 사용했다. 초기 구간을 제외하지 않고 모든 `n+1` endpoint의 component infinity-norm 최대 오차를 구했다. 이 raw absolute error는 FESA N7의 normalized/noise-certified metric이 아니다. +재현 자료는 [Decimal80 probe](README.md), [실제 native 기록](README.md), [stdout](README.md), [전체 grid·오차·조건 결과](README.md)다. `python -B compare.py` 실행 native0이며 FESA build/CTest는 실행하지 않았다. 모든 문제는 `t∈[0,1]`, `h=1/16,...,1/256`, exact frame0의 q/v/a와 `A0=a0`, `alpha=-.05,beta=.275625,gamma=.55`를 사용했다. 초기 구간을 제외하지 않고 모든 `n+1` endpoint의 component infinity-norm 최대 오차를 구했다. 이 raw absolute error는 FESA N7의 normalized/noise-certified metric이 아니다. ## 1. 관찰과 범위 @@ -112,7 +112,7 @@ Exact reduced 해는 `y=sin(t),ydot=cos(t),yddot=-sin(t)`이며 Decimal80 sin/co ## 6. 실제 shell chart 후보와 구현-ready capability gap -현재 source는 읽기만 했다. [shell evaluator API](../../../include/fesa/elements/nonlinear_mitc4_shell.h)와 [내부 Jet·scalar constraint](../../../src/fesa/elements/nonlinear_mitc4_shell.cpp), [관성 API](../../../include/fesa/elements/nonlinear_mitc4_inertia.h)를 대조했다. 소형 prototype가 구현한 것은 해석적으로 알려진 polynomial Q와 독립 scalar reduced HHT뿐이다. Actual shell algebraic branch solver·Q 미분·reduced trial/state·assembly·tangent는 **구현하지 않았다**. +현재 source는 읽기만 했다. [shell evaluator API](README.md)와 [내부 Jet·scalar constraint](README.md), [관성 API](README.md)를 대조했다. 소형 prototype가 구현한 것은 해석적으로 알려진 polynomial Q와 독립 scalar reduced HHT뿐이다. Actual shell algebraic branch solver·Q 미분·reduced trial/state·assembly·tangent는 **구현하지 않았다**. ### 6.1 Chart 선택과 물리 동등성의 조건 diff --git a/docs/hht-implicit-dynamics/formulation-fixed-null-basis.md b/docs/hht-implicit-dynamics/formulation-fixed-null-basis.md index ba92e1b..d850705 100644 --- a/docs/hht-implicit-dynamics/formulation-fixed-null-basis.md +++ b/docs/hht-implicit-dynamics/formulation-fixed-null-basis.md @@ -1,13 +1,13 @@ # 고정 초기 null 기저의 sparse reduced HHT 정식화 상태: `implementation-ready; independent-review-and-runtime-pending`, 2026-10-13. -승인 범위는 [고정 null 기저 제안](fixed-null-basis-proposal.md)과 -[HHT-ADR-018](ADR.md)의 사용자 결정이다. 본 문서는 수식·연산 계약이며 +승인 범위는 [고정 null 기저 제안](README.md)과 +[HHT-ADR-018](README.md)의 사용자 결정이다. 본 문서는 수식·연산 계약이며 자기 수치 승인이나 현재 production PASS 기록이 아니다. [기존 축소 정식화](formulation-reduced-coordinate.md)의 fully-free rotation component selector를 아래 고정 ON 기저로 대체한다. 기존 -[N1–N7](numerical-controls.md), [제한 Newton](c09-channel-newton-proposal.md), -[독립 검토](numerical-review-channel-newton.md)와 허용값은 유지한다. +[N1–N7](README.md), [제한 Newton](README.md), +[독립 검토](README.md)와 허용값은 유지한다. ## 1. 적용 가정과 물리 계약 diff --git a/docs/hht-implicit-dynamics/formulation-historical-docs-cleanup-20261004.md b/docs/hht-implicit-dynamics/formulation-historical-docs-cleanup-20261004.md index c1ec22a..0daecf2 100644 --- a/docs/hht-implicit-dynamics/formulation-historical-docs-cleanup-20261004.md +++ b/docs/hht-implicit-dynamics/formulation-historical-docs-cleanup-20261004.md @@ -2,7 +2,7 @@ - 상태: `independently-reviewed-candidate; physics-and-validation-pending`. - Owner: `formulation-agent`, 2026-09-22. 문서 gate 산출물이며 구현 승인이나 수치 검증 통과가 아니다. -- 기준: [프로젝트 지침](../../AGENTS.md), [제품 PRD](../PRD.md), [공통 ADR](../ADR.md#adr-028), [Feature PRD](PRD.md), [요구사항](requirements.md), [연구](research.md). +- 기준: [프로젝트 지침](../../AGENTS.md), [제품 PRD](../solver-core/README.md), [공통 ADR](../solver-core/README.md), [Feature PRD](README.md), [요구사항](README.md), [연구](README.md). - 관성의 전개식·초기 일관성·정확도 근거는 [formulation-inertia](formulation-inertia.md)가 소유한다. 영속 schema, C++ 저장 구조와 tolerance는 정의하지 않는다. ## 1. 결론과 적용 범위 @@ -117,7 +117,7 @@ T_L=\frac12\sum_i\left(m_i|v_{ui}|^2+2s_i v_{ui}\cdot B_iv_{\phi i} \beta=\frac14(1-\alpha)^2. \] -기본값은 `alpha=−0.05`, `beta=0.275625`, `gamma=0.55`다. [공개 기본값 근거](research.md#3-reference-입력의-공개-의미)와 [Sandia의 결합계수](https://www.sandia.gov/files/sierra/SM_Users_5_20/main/implicit/integration.html)를 따른다. `alpha=0`은 평균가속도 Newmark다. 이 범위는 일반 유한회전 문제의 무조건 안정성이나 큰 시간간격의 정확도를 보증하지 않는다. 별도 `beta/gamma` 입력을 승인한 의미도 아니다. +기본값은 `alpha=−0.05`, `beta=0.275625`, `gamma=0.55`다. [공개 기본값 근거](README.md)와 [Sandia의 결합계수](https://www.sandia.gov/files/sierra/SM_Users_5_20/main/implicit/integration.html)를 따른다. `alpha=0`은 평균가속도 Newmark다. 이 범위는 일반 유한회전 문제의 무조건 안정성이나 큰 시간간격의 정확도를 보증하지 않는다. 별도 `beta/gamma` 입력을 승인한 의미도 아니다. **FESA 초기화 후보 계약:** frame 0은 `t=0+`, `q_0=v_0=0`, 전값 `F_0=F*`다. `M_ff(q_0)a_f0=F_f0−f_int,f(q_0)`와 [mass-null 일관성](formulation-inertia.md#4-mass-null과-초기-일관성)을 함께 풀어 `a_0`를 구한다. `A_0=a_0`, `g_0=f_int(q_0)−F_0`를 정의한다. `g_0=0` 또는 `a_0=0`을 임의 대입하지 않는다. 이는 공개 STEP 의미에 맞춘 FESA 계약 제안이며 Abaqus의 숨은 첫 history 생성 절차를 확인한 주장이 아니다. @@ -210,6 +210,6 @@ W_{0\to n}=F^{\star T}(q_n-q_0),\quad | 구현 lifecycle | 동일 state tangent, 실패 rollback, time/frame 순서, deterministic assembly와 반복 결과 | | 외부 reference | 지정 원본 101 frames × 9 nodes, frame/instance/node/component의 exact mapping; U blocking / UR warning-only 및 공통 TOLERANCE. V/A/energy correctness는 해당 CSV에 coverage 없음 | -수식 후보의 [독립 검토](numerical-review.md)는 완료되었으며 표시된 수식에서 새 오류는 발견되지 않았다. 질량 선택은 consistent로 확정되었다. 구현 전 남은 계약은 (1) HHT 확장·초기화의 FESA 채택과 나머지 physics 범위, (2) initial algebraic regularity와 trial 실패 판정의 수치 기준, (3) 공식 output 의미의 공개 범위/I/O다. 이 선택 후 구현할 수 있는 수식 후보이며, 실제 유한회전 shell의 drilling DAE·관성 tangent·q/v/a 시간 수렴은 **구현 후 기능 acceptance에 필요한 검증**이다. 부모 문헌의 nonsingular-mass 조건을 shell mass-null에 자동 적용하지 않되, 모든 shell DAE의 보편적 수렴 증명을 코드 작성의 선행 조건으로 요구하지 않는다. 현재 문서 완료나 제한된 probe를 전체 solver 승인·검증 통과로 표시하지 않는다. +수식 후보의 [독립 검토](README.md)는 완료되었으며 표시된 수식에서 새 오류는 발견되지 않았다. 질량 선택은 consistent로 확정되었다. 구현 전 남은 계약은 (1) HHT 확장·초기화의 FESA 채택과 나머지 physics 범위, (2) initial algebraic regularity와 trial 실패 판정의 수치 기준, (3) 공식 output 의미의 공개 범위/I/O다. 이 선택 후 구현할 수 있는 수식 후보이며, 실제 유한회전 shell의 drilling DAE·관성 tangent·q/v/a 시간 수렴은 **구현 후 기능 acceptance에 필요한 검증**이다. 부모 문헌의 nonsingular-mass 조건을 shell mass-null에 자동 적용하지 않되, 모든 shell DAE의 보편적 수렴 증명을 코드 작성의 선행 조건으로 요구하지 않는다. 현재 문서 완료나 제한된 probe를 전체 solver 승인·검증 통과로 표시하지 않는다. -이번 owner 작업은 기존 정식화·source 대조, 일차 문헌 대조와 수식 유도 및 문서 정적 검토다. [독립 시간정확도 검산](numerical-review-probes.md)은 variable-mass SDOF와 moving-null 예제에서 추천 후보의 약 2차 q/v/physical-a 수렴을 관찰했고 naive 확대의 약 1차 오차를 구별했다. 이는 shell solver 검증이나 일반 drilling DAE 증명을 대신하지 않는다. Build/test·solver/reference 실행은 문서 작업 범위가 아니므로 미실행이다. 독립 검산과 Numerical Review 결과는 해당 owner의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다. +이번 owner 작업은 기존 정식화·source 대조, 일차 문헌 대조와 수식 유도 및 문서 정적 검토다. [독립 시간정확도 검산](README.md)은 variable-mass SDOF와 moving-null 예제에서 추천 후보의 약 2차 q/v/physical-a 수렴을 관찰했고 naive 확대의 약 1차 오차를 구별했다. 이는 shell solver 검증이나 일반 drilling DAE 증명을 대신하지 않는다. Build/test·solver/reference 실행은 문서 작업 범위가 아니므로 미실행이다. 독립 검산과 Numerical Review 결과는 해당 owner의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다. diff --git a/docs/hht-implicit-dynamics/formulation-inertia-historical-docs-cleanup-20261004.md b/docs/hht-implicit-dynamics/formulation-inertia-historical-docs-cleanup-20261004.md index 669f99a..14dbeda 100644 --- a/docs/hht-implicit-dynamics/formulation-inertia-historical-docs-cleanup-20261004.md +++ b/docs/hht-implicit-dynamics/formulation-inertia-historical-docs-cleanup-20261004.md @@ -81,7 +81,7 @@ C_{ij}^{(1)}B_i^T&C_{ij}^{(2)}B_i^TB_j `rho`의 차원은 `mass/length³`, `(C0,C1,C2)` 및 `(m,s,j)`의 차원은 `(mass,mass·length,mass·length²)`다. `M_uu/M_uphi/M_phiphi`는 각각 같은 세 차원, residual translation은 force, rotation은 force·length이다. `v_u,a_u`는 `length/time,length/time²`; `v_phi,a_phi,omega,omega_dot`는 `1/time,1/time²`. 각도 단위는 rad이며 SI를 추정하지 않는다. -Moments는 현행 [eigen2 mass 계약 M2–M3](../mitc4-shell-feast-eigen2/formulation-mass-stabilization.md#m2-consistent-scalar-moments와-적분)의 `3×3×3` Gauss–Legendre를 기준으로 하며, 그 scalar-moment lumping은 비교식에만 사용한다. 긴 유도는 선행 [mass 계약 M3](../mitc4-shell-feast-eigen/formulation-mass.md#m3-consistent-matrix와-충분한-quadrature)에 있다. 점은 `−sqrt(3/5),0,+sqrt(3/5)`, weight는 `5/9,8/9,5/9`, 순서는 증가하는 `xi→eta→zeta`다. Geometry가 bilinear degenerated shell이고 rho/t가 일정할 때 `Ni Nj z^k J0`의 축별 차수는 최대 4여서 이 moment 적분은 정확하다. `B_i`와 그 도함수는 nodal 값이므로 현재 관성과 tangent도 같은 moment를 사용한다. +Moments는 현행 [eigen2 mass 계약 M2–M3](../mitc4-shell-feast-eigen2/formulation-mass-stabilization.md#m2-consistent-scalar-moments와-적분)의 `3×3×3` Gauss–Legendre를 기준으로 하며, 그 scalar-moment lumping은 비교식에만 사용한다. 긴 유도는 선행 [mass 계약 M3](../mitc4-shell-feast-eigen/README.md)에 있다. 점은 `−sqrt(3/5),0,+sqrt(3/5)`, weight는 `5/9,8/9,5/9`, 순서는 증가하는 `xi→eta→zeta`다. Geometry가 bilinear degenerated shell이고 rho/t가 일정할 때 `Ni Nj z^k J0`의 축별 차수는 최대 4여서 이 moment 적분은 정확하다. `B_i`와 그 도함수는 nodal 값이므로 현재 관성과 tangent도 같은 moment를 사용한다. 모든 27 mass 점에서 finite positive `J0`와 기존 geometry predicate를 확인한다. Current trial도 내력 8점·tying·center·recovery와 추가 inertia 평가점에서 허용 geometry를 만족해야 한다. `abs(J)`, 점 생략, 강제 평면화는 없다. 물리 내력·물리 에너지와 section recovery는 기존 `2×2×2` 적분, drill potential은 기존 element-level 합을 보존한다. @@ -196,7 +196,7 @@ v_{n+1}-v_n=h\{-\alpha(1-\gamma)a_{n-1} 세 coefficient 합은 1, `a_(n−1),a_n,a_(n+1)`의 시간 offset `−1,0,+1`에 대한 first moment는 `alpha+gamma=1/2`다. 여기에는 `Mdot` 잔여항이 없다. Endpoint equation이 nonsingular mass의 smooth `a=f(q,v,t)`를 정의하면 q/v의 2차 일관성과 안정성 검토를 할 수 있고 physical a도 같은 해의 정확도를 따른다. 이는 nonlinear mass의 smooth manufactured verification을 요구하는 근거이며 독립 수치 검토를 대신하지 않는다. -문헌의 nonsingular mechanical solve 및 regular index-3 조건과 달리 본 shell은 drilling direction에서 singular `M`을 가진다. §4의 `psi_qN` regularity와 constant rank의 실제 지원 범위, redundant full-coordinate 구현에서의 hidden-constraint drift·q/v/a 정확도는 **구현 후 필수 검증 항목**이다. 이 조건으로 reduced smooth dynamics를 설명할 수 있는 범위를 확인하되 모든 shell에 대한 보편 정리를 요구하지 않는다. [독립 검토](numerical-review.md)는 현 수식 후보를 대조했고, [독립 검산](numerical-review-probes.md)의 smooth variable-mass / moving-null 예제는 이를 지지한다. 이 제한된 evidence가 실제 shell/drilling 검증을 대신하지 않으며 유한회전 지원 범위를 축소하는 근거도 아니다. +문헌의 nonsingular mechanical solve 및 regular index-3 조건과 달리 본 shell은 drilling direction에서 singular `M`을 가진다. §4의 `psi_qN` regularity와 constant rank의 실제 지원 범위, redundant full-coordinate 구현에서의 hidden-constraint drift·q/v/a 정확도는 **구현 후 필수 검증 항목**이다. 이 조건으로 reduced smooth dynamics를 설명할 수 있는 범위를 확인하되 모든 shell에 대한 보편 정리를 요구하지 않는다. [독립 검토](README.md)는 현 수식 후보를 대조했고, [독립 검산](README.md)의 smooth variable-mass / moving-null 예제는 이를 지지한다. 이 제한된 evidence가 실제 shell/drilling 검증을 대신하지 않으며 유한회전 지원 범위를 축소하는 근거도 아니다. ### 5.3 다른 후보와 채택하지 않은 이유 diff --git a/docs/hht-implicit-dynamics/formulation-inertia.md b/docs/hht-implicit-dynamics/formulation-inertia.md index 148dcf4..fc7c170 100644 --- a/docs/hht-implicit-dynamics/formulation-inertia.md +++ b/docs/hht-implicit-dynamics/formulation-inertia.md @@ -2,7 +2,7 @@ [주 정식화](formulation.md)의 구현 수식 상세다. 상태와 미결정 항목은 주 문서를 따른다. 아래 전개는 명시한 FESA 운동학에서의 자체 유도이며 Abaqus 내부 절차의 기술이 아니다. -2026-10-11 승인 [HHT-ADR-012](ADR.md)에 따라 이번 HHT 질량은 nodal lumped `T_L/M_L`다. Consistent 식은 비교와 미분 유도 이력으로 보존한다. 다른 physics·알고리즘·공개 output의 승인은 이 선택과 별개다. +2026-10-11 승인 [HHT-ADR-012](README.md)에 따라 이번 HHT 질량은 nodal lumped `T_L/M_L`다. Consistent 식은 비교와 미분 유도 이력으로 보존한다. 다른 physics·알고리즘·공개 output의 승인은 이 선택과 별개다. ## 1. 회전과 관성의 미분 @@ -218,7 +218,7 @@ v_{n+1}-v_n=h\{-\alpha(1-\gamma)a_{n-1} 세 coefficient 합은 1, `a_(n−1),a_n,a_(n+1)`의 시간 offset `−1,0,+1`에 대한 first moment는 `alpha+gamma=1/2`다. 여기에는 `Mdot` 잔여항이 없다. Endpoint equation이 nonsingular mass의 smooth `a=f(q,v,t)`를 정의하면 q/v의 2차 일관성과 안정성 검토를 할 수 있고 physical a도 같은 해의 정확도를 따른다. 이는 nonlinear mass의 smooth manufactured verification을 요구하는 근거이며 독립 수치 검토를 대신하지 않는다. -문헌의 nonsingular mechanical solve 및 regular index-3 조건과 달리 본 shell은 drilling direction에서 singular `M`을 가진다. §4의 `psi_qN` regularity와 constant rank의 실제 지원 범위, redundant full-coordinate 구현에서의 hidden-constraint drift·q/v/a 정확도는 **구현 후 필수 검증 항목**이다. 이 조건으로 reduced smooth dynamics를 설명할 수 있는 범위를 확인하되 모든 shell에 대한 보편 정리를 요구하지 않는다. [독립 검토](numerical-review.md#numerical-review)는 현 수식 후보를 대조했고, [독립 검산](numerical-review.md#numerical-review-probes)의 smooth variable-mass / moving-null 예제는 이를 지지한다. 이 제한된 evidence가 실제 shell/drilling 검증을 대신하지 않으며 유한회전 지원 범위를 축소하는 근거도 아니다. +문헌의 nonsingular mechanical solve 및 regular index-3 조건과 달리 본 shell은 drilling direction에서 singular `M`을 가진다. §4의 `psi_qN` regularity와 constant rank의 실제 지원 범위, redundant full-coordinate 구현에서의 hidden-constraint drift·q/v/a 정확도는 **구현 후 필수 검증 항목**이다. 이 조건으로 reduced smooth dynamics를 설명할 수 있는 범위를 확인하되 모든 shell에 대한 보편 정리를 요구하지 않는다. [독립 검토](README.md)는 현 수식 후보를 대조했고, [독립 검산](README.md)의 smooth variable-mass / moving-null 예제는 이를 지지한다. 이 제한된 evidence가 실제 shell/drilling 검증을 대신하지 않으며 유한회전 지원 범위를 축소하는 근거도 아니다. ### 5.3 다른 후보와 채택하지 않은 이유 diff --git a/docs/hht-implicit-dynamics/formulation-momentum-research-20261012.md b/docs/hht-implicit-dynamics/formulation-momentum-research-20261012.md index a684705..20554a3 100644 --- a/docs/hht-implicit-dynamics/formulation-momentum-research-20261012.md +++ b/docs/hht-implicit-dynamics/formulation-momentum-research-20261012.md @@ -2,7 +2,7 @@ 상태: 수식 검토 후보·독립 numerical review 및 사용자 결정 대기. Owner: formulation, 2026-10-12. 공식 acceptance·tolerance·tests·production은 변경하지 않았다. 현재 C08b FAIL을 유지한다. 이 문서는 새 수치 tolerance를 정하지 않는다. -기준은 [현재 시간적분 정식화](../../../docs/hht-implicit-dynamics/formulation.md), [lumped 관성 상세](../../../docs/hht-implicit-dynamics/formulation-inertia.md), [현재 연구](../../../docs/hht-implicit-dynamics/research.md#temporal-remediation-research)다. 별도 [DAE 비교](formulation.md)는 full-coordinate와 reduced 시간적분의 구별을 소유한다. 아래 증명은 **현재 C08b의 원 full-coordinate HHT**에 대한 자체 유도이며 reduced 후보를 자동 포함하지 않는다. +기준은 [현재 시간적분 정식화](formulation.md), [lumped 관성 상세](formulation-inertia.md), [현재 연구](README.md)다. 별도 [DAE 비교](formulation.md)는 full-coordinate와 reduced 시간적분의 구별을 소유한다. 아래 증명은 **현재 C08b의 원 full-coordinate HHT**에 대한 자체 유도이며 reduced 후보를 자동 포함하지 않는다. ## 1. 가정과 검산 diff --git a/docs/hht-implicit-dynamics/formulation-reduced-coordinate.md b/docs/hht-implicit-dynamics/formulation-reduced-coordinate.md index 52b5557..f8ce340 100644 --- a/docs/hht-implicit-dynamics/formulation-reduced-coordinate.md +++ b/docs/hht-implicit-dynamics/formulation-reduced-coordinate.md @@ -1,6 +1,6 @@ # Shell 축소 좌표 HHT 정식화 -상태: `implementation-ready; independent-review-and-shell-verification-pending`, 2026-10-12. 사용자는 실제 shell의 축소 좌표 HHT 구현·검증과 full A의 진단용 filter-combination 의미/schema 구분을 승인했다. 본 문서는 수식 인계이며 구현 또는 수치 통과를 승인하지 않는다. [기존 정식화](formulation.md), [현재 관성](formulation-inertia.md), [실험·실패 보고](temporal-remediation.md)를 전제로 한다. Carried-A의 동일 full-coordinate HHT 산술은 [별도 N7 상세](formulation-carried-a-noise.md)가 소유한다. +상태: `implementation-ready; independent-review-and-shell-verification-pending`, 2026-10-12. 사용자는 실제 shell의 축소 좌표 HHT 구현·검증과 full A의 진단용 filter-combination 의미/schema 구분을 승인했다. 본 문서는 수식 인계이며 구현 또는 수치 통과를 승인하지 않는다. [기존 정식화](formulation.md), [현재 관성](formulation-inertia.md), [실험·실패 보고](README.md)를 전제로 한다. Carried-A의 동일 full-coordinate HHT 산술은 [별도 N7 상세](formulation-carried-a-noise.md)가 소유한다. ## 1. 물리와 좌표 @@ -53,7 +53,7 @@ Empty null에서는 `Q(p)=L_p p`, `J=L_p`, `Q_t=Q''=Q'''=0`이며 원 full-coord 않는다. Primitive의 source-ordered assembly와 안정적인 contraction으로 같은 수식을 계산하고, physical mass range solve 및 original/reconstructed frame0의 full residual 판정은 유지한다. 이 산술 정정의 원인·실행 범위는 -[후속 검증 기록](temporal-remediation.md)을 따른다. +[후속 검증 기록](README.md)을 따른다. \[ Ar_{n+1}=(1+\alpha)ap_{n+1}-\alpha ap_n,\quad @@ -178,7 +178,7 @@ scaled norm과 private `delta Ar`를 검사한다. Public 고정된다. N7에서도 augmented defect의 모든 auxiliary block을 위 식으로 변환해야 한다. `delta p`만 남기거나 hidden defect를 무시하면 해당 noise 판정은 유효하지 않다. 독립 소형 Schur 검산과 실제 shell 검증의 범위는 -[수치 검토](numerical-review-reduced-coordinate.md)에 구분하여 기록한다. +[수치 검토](README.md)에 구분하여 기록한다. ### 5.2 Newton 좌표 증분과 carried Ar의 산술 표현 @@ -212,15 +212,15 @@ Predictor의 inherited bound와 초기 low를 포함하고 accepted high의 unce 다음 step으로 넘긴다. 기존 pp+Ar 또는 plain p addition bound를 이 새 경로의 완전한 evidence로 승계하거나 radius를 reset/clamp하지 않는다. 이는 같은 수학 recurrence의 산술 표현이며 stored high가 원 N3를 만족하지 못하면 여전히 실패다. -독립 exact replay와 적용 한계는 [수치 검토](numerical-review-reduced-coordinate.md#n3-qtrace의-실제-coordinate-low-carry)를 따른다. +독립 exact replay와 적용 한계는 [수치 검토](README.md)를 따른다. -위 high-only 실패 정책은 승인 이전 evidence다. [HHT-ADR-016](ADR.md)에 따라 +위 high-only 실패 정책은 승인 이전 evidence다. [HHT-ADR-016](README.md)에 따라 reduced whole/requested 두 증분은 실제 candidate pair의 increment `(p_high+p_low)-old_accepted_high`를 EFT expansion으로 비교하고, 저장 high의 RN-even 일치를 별도로 검사한다. 원래 각 scale와 `1e-12`, zero-scale exact-zero, 독립 requested trace와 CA radius는 유지한다. Raw high-only 실패값을 보존하며 승인 이전 FAIL을 변경본 PASS로 승계하지 않는다. 상세 범위와 표현 경계 검증은 -[승인된 제안](c08-n3-coordinate-representation-proposal.md)을 따른다. +[승인된 제안](README.md)을 따른다. ## 6. 필요한 local operator와 시간 항 @@ -265,6 +265,6 @@ Private interface는 `EvaluateAlgebraicOperators(q,t,F,Fdot,Fddot,v)`, `SolveEmb - C08a all-time full q/v/physical-a 차수와 실제 shell C08b physical high-frequency convergence는 별개다. 축소법의 null-rate 개선만으로 C08b finest fixed-grid 기준 통과를 주장하지 않는다. Original reference 비교·현재 full suite는 implementation owner가 수행한다. - Fixed component graph는 general chart/rank transport, smoothness가 깨진 null cutting BC, nonprincipal branch, nonsmooth F를 지원하지 않는다. 이 경계는 fail-closed 구현과 진단으로 드러나야 하며 tolerance/rank clipping으로 숨기지 않는다. -Owner의 [Decimal96 polynomial probe](../../.dryforge/hht-remediation-20261012/dae/reduced_operators_probe.py)는 explicit-time coupled 2-constraint graph의 RC-07/09와 RC-10/11을 세 상태에서 계산했다. [결과](../../.dryforge/hht-remediation-20261012/dae/reduced_operators_probe.json), [native0 기록](../../.dryforge/hht-remediation-20261012/dae/reduced_operators_probe-native.json)을 보존한다. Implicit derivatives를 polynomial Q의 직접 미분과 비교하고, 원 평형 밖의 임의 smooth covector에서 exact tangent와 central difference를 비교하여 `delta J` 생략 효과가 nonzero임을 확인했다. 이는 수식 bookkeeping 검산이며 실제 shell 물리 모델·production 실행 또는 독립 numerical review가 아니다. +Owner의 [Decimal96 polynomial probe](README.md)는 explicit-time coupled 2-constraint graph의 RC-07/09와 RC-10/11을 세 상태에서 계산했다. [결과](README.md), [native0 기록](README.md)을 보존한다. Implicit derivatives를 polynomial Q의 직접 미분과 비교하고, 원 평형 밖의 임의 smooth covector에서 exact tangent와 central difference를 비교하여 `delta J` 생략 효과가 nonzero임을 확인했다. 이는 수식 bookkeeping 검산이며 실제 shell 물리 모델·production 실행 또는 독립 numerical review가 아니다. 독립 numerical reviewer가 RC-01–15와 actual implementation operator/BC/branch 대응을 검토해야 한다. Public A/schema details는 I/O owner의 승인 계약을 참조하며 본 수식 문서가 새로운 영속 문자열을 정하지 않는다. diff --git a/docs/hht-implicit-dynamics/formulation.md b/docs/hht-implicit-dynamics/formulation.md index ee5fc31..5803676 100644 --- a/docs/hht-implicit-dynamics/formulation.md +++ b/docs/hht-implicit-dynamics/formulation.md @@ -2,7 +2,7 @@ - 상태: `independently-reviewed-candidate; physics-and-validation-pending`. - Owner: `formulation-agent`, 2026-09-22. 문서 gate 산출물이며 구현 승인이나 수치 검증 통과가 아니다. -- 기준: [프로젝트 지침](../../AGENTS.md), [제품 PRD](../PRD.md), [공통 ADR](../ADR.md#adr-028), [Feature PRD](PRD.md), [요구사항](requirements.md), [연구](research.md#research). +- 기준: [프로젝트 지침](../../AGENTS.md), [제품 PRD](../solver-core/README.md), [공통 ADR](../solver-core/README.md), [Feature PRD](README.md), [요구사항](README.md), [연구](README.md). - 관성의 전개식·초기 일관성·정확도 근거는 [formulation-inertia](formulation-inertia.md)가 소유한다. 영속 schema, C++ 저장 구조와 tolerance는 정의하지 않는다. 2026-10-12 사용자는 actual shell의 축소 좌표 HHT 구현·검증과 full A의 진단용 filter-combination 의미/schema 구분을 승인했다. 채택 방향의 수식은 [축소 좌표 HHT](formulation-reduced-coordinate.md)가 소유한다. 아래 full-coordinate recurrence는 기존 구현과 비교 이력이며 축소법의 full q/v update 식으로 승계하지 않는다. 승인과 actual solver 검증 완료는 구분한다. @@ -11,7 +11,7 @@ **추천 후보는 유한회전 kinetic energy에서 유도한 관성력과, 물리적 가속도 `a` / 알고리즘 가속도 `A`를 분리하는 HHT 확장이다.** 일정 질량의 표준 HHT force weighting으로 정확히 환원한다. 단순히 `M(q)`를 기존 일정 질량 잔차에 대입하는 식은 추천하지 않는다. 이 차이는 [상세 §5](formulation-inertia.md#5-시간-정확도와-대안의-경계)에 유도한다. -**2026-10-11 사용자가 고유치·HHT lumped mass를 승인했다([HHT-ADR-012](ADR.md)).** HHT는 아래 nodal kinetic measure의 `T_L/M_L`을 채택하고 기존 shell eigen nodal block lumping을 유지한다. `T_C/M_C`는 비교·유도 이력으로 보존한다. 선행 eigen 결과나 동적 reference와의 적합도로 선택한 것이 아니다. 유한회전 지원 범위를 작은 회전으로 축소하지 않는다. +**2026-10-11 사용자가 고유치·HHT lumped mass를 승인했다([HHT-ADR-012](README.md)).** HHT는 아래 nodal kinetic measure의 `T_L/M_L`을 채택하고 기존 shell eigen nodal block lumping을 유지한다. `T_C/M_C`는 비교·유도 이력으로 보존한다. 선행 eigen 결과나 동적 reference와의 적합도로 선택한 것이 아니다. 유한회전 지원 범위를 작은 회전으로 축소하지 않는다. 아래 HHT 확장과 `0+` 초기화는 HHT-ADR-009에서 채택한 계약을 유지한다. 이번 lumped mass 선택은 그 밖의 physics·알고리즘·공개 output 범위를 확대하지 않는다. @@ -119,7 +119,7 @@ T_L=\frac12\sum_i\left(m_i|v_{ui}|^2+2s_i v_{ui}\cdot B_iv_{\phi i} \beta=\frac14(1-\alpha)^2. \] -기본값은 `alpha=−0.05`, `beta=0.275625`, `gamma=0.55`다. [공개 기본값 근거](research.md#research--3-reference-입력의-공개-의미)와 [Sandia의 결합계수](https://www.sandia.gov/files/sierra/SM_Users_5_20/main/implicit/integration.html)를 따른다. `alpha=0`은 평균가속도 Newmark다. 이 범위는 일반 유한회전 문제의 무조건 안정성이나 큰 시간간격의 정확도를 보증하지 않는다. 별도 `beta/gamma` 입력을 승인한 의미도 아니다. +기본값은 `alpha=−0.05`, `beta=0.275625`, `gamma=0.55`다. [공개 기본값 근거](README.md)와 [Sandia의 결합계수](https://www.sandia.gov/files/sierra/SM_Users_5_20/main/implicit/integration.html)를 따른다. `alpha=0`은 평균가속도 Newmark다. 이 범위는 일반 유한회전 문제의 무조건 안정성이나 큰 시간간격의 정확도를 보증하지 않는다. 별도 `beta/gamma` 입력을 승인한 의미도 아니다. **FESA 초기화 후보 계약:** frame 0은 `t=0+`, `q_0=v_0=0`, 전값 `F_0=F*`다. `M_ff(q_0)a_f0=F_f0−f_int,f(q_0)`와 [mass-null 일관성](formulation-inertia.md#4-mass-null과-초기-일관성)을 함께 풀어 `a_0`를 구한다. `A_0=a_0`, `g_0=f_int(q_0)−F_0`를 정의한다. `g_0=0` 또는 `a_0=0`을 임의 대입하지 않는다. 이는 공개 STEP 의미에 맞춘 FESA 계약 제안이며 Abaqus의 숨은 첫 history 생성 절차를 확인한 주장이 아니다. @@ -212,6 +212,6 @@ W_{0\to n}=F^{\star T}(q_n-q_0),\quad | 구현 lifecycle | 동일 state tangent, 실패 rollback, time/frame 순서, deterministic assembly와 반복 결과 | | 외부 reference | 지정 원본 101 frames × 9 nodes, frame/instance/node/component의 exact mapping; U blocking / UR warning-only 및 공통 TOLERANCE. V/A/energy correctness는 해당 CSV에 coverage 없음 | -수식 후보의 [독립 검토](numerical-review.md#numerical-review)는 완료되었으며 표시된 수식에서 새 오류는 발견되지 않았다. 현재 질량 선택은 HHT-ADR-012의 nodal lumped로 대체되었다. 이후 구현 전 상태를 설명하는 이 문단은 최초 정식화 당시의 기록이며 변경본 검증의 통과를 뜻하지 않는다. 구현 전 남은 계약은 (1) HHT 확장·초기화의 FESA 채택과 나머지 physics 범위, (2) initial algebraic regularity와 trial 실패 판정의 수치 기준, (3) 공식 output 의미의 공개 범위/I/O다. 이 선택 후 구현할 수 있는 수식 후보이며, 실제 유한회전 shell의 drilling DAE·관성 tangent·q/v/a 시간 수렴은 **구현 후 기능 acceptance에 필요한 검증**이다. 부모 문헌의 nonsingular-mass 조건을 shell mass-null에 자동 적용하지 않되, 모든 shell DAE의 보편적 수렴 증명을 코드 작성의 선행 조건으로 요구하지 않는다. 현재 문서 완료나 제한된 probe를 전체 solver 승인·검증 통과로 표시하지 않는다. +수식 후보의 [독립 검토](README.md)는 완료되었으며 표시된 수식에서 새 오류는 발견되지 않았다. 현재 질량 선택은 HHT-ADR-012의 nodal lumped로 대체되었다. 이후 구현 전 상태를 설명하는 이 문단은 최초 정식화 당시의 기록이며 변경본 검증의 통과를 뜻하지 않는다. 구현 전 남은 계약은 (1) HHT 확장·초기화의 FESA 채택과 나머지 physics 범위, (2) initial algebraic regularity와 trial 실패 판정의 수치 기준, (3) 공식 output 의미의 공개 범위/I/O다. 이 선택 후 구현할 수 있는 수식 후보이며, 실제 유한회전 shell의 drilling DAE·관성 tangent·q/v/a 시간 수렴은 **구현 후 기능 acceptance에 필요한 검증**이다. 부모 문헌의 nonsingular-mass 조건을 shell mass-null에 자동 적용하지 않되, 모든 shell DAE의 보편적 수렴 증명을 코드 작성의 선행 조건으로 요구하지 않는다. 현재 문서 완료나 제한된 probe를 전체 solver 승인·검증 통과로 표시하지 않는다. -이번 owner 작업은 기존 정식화·source 대조, 일차 문헌 대조와 수식 유도 및 문서 정적 검토다. [독립 시간정확도 검산](numerical-review.md#numerical-review-probes)은 variable-mass SDOF와 moving-null 예제에서 추천 후보의 약 2차 q/v/physical-a 수렴을 관찰했고 naive 확대의 약 1차 오차를 구별했다. 이는 shell solver 검증이나 일반 drilling DAE 증명을 대신하지 않는다. Build/test·solver/reference 실행은 문서 작업 범위가 아니므로 미실행이다. 독립 검산과 Numerical Review 결과는 해당 owner의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다. +이번 owner 작업은 기존 정식화·source 대조, 일차 문헌 대조와 수식 유도 및 문서 정적 검토다. [독립 시간정확도 검산](README.md)은 variable-mass SDOF와 moving-null 예제에서 추천 후보의 약 2차 q/v/physical-a 수렴을 관찰했고 naive 확대의 약 1차 오차를 구별했다. 이는 shell solver 검증이나 일반 drilling DAE 증명을 대신하지 않는다. Build/test·solver/reference 실행은 문서 작업 범위가 아니므로 미실행이다. 독립 검산과 Numerical Review 결과는 해당 owner의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다. diff --git a/docs/mitc4-shell-feast-eigen/formulation.md b/docs/mitc4-shell-feast-eigen/formulation.md index 9635c8c..679d38f 100644 --- a/docs/mitc4-shell-feast-eigen/formulation.md +++ b/docs/mitc4-shell-feast-eigen/formulation.md @@ -12,12 +12,12 @@ - 요청 outcome: `pass`; 다음 owner: `numerical-review-agent`. - 상태: 독립 numerical review 요청이며 자기 승인이나 workflow 전이가 아니다. -필수 입력은 [FEATURED_AGENTS](FEATURED_AGENTS.md), [PRD](PRD.md), [ADR](ADR.md), -[requirements](requirements.md#requirements), [requirements evidence](requirements.md#requirements-evidence), -[research](research.md#research), [research evidence](research.md#research-evidence)이다. -[프로젝트 지침](../../AGENTS.md), [프로젝트 PRD](../PRD.md), [ARCHITECTURE](../ARCHITECTURE.md), -[공통 ADR](../ADR.md), [TOLERANCE](../TOLERANCE.md), [agent 계약](../SOLVER_AGENT_DESIGN.md), -[문서 소유권](../FEATURE_DOCUMENTATION.md)을 적용했다. +필수 입력은 [FEATURED_AGENTS](README.md), [PRD](README.md), [ADR](README.md), +[requirements](README.md), [requirements evidence](README.md), +[research](README.md), [research evidence](README.md)이다. +[프로젝트 지침](../../AGENTS.md), [프로젝트 PRD](../solver-core/README.md), [ARCHITECTURE](../solver-core/README.md), +[공통 ADR](../solver-core/README.md), [TOLERANCE](../solver-core/README.md), [agent 계약](../solver-core/README.md), +[문서 소유권](../solver-core/README.md)을 적용했다. ### 핵심 계약 @@ -94,7 +94,7 @@ scratch 비용은 아직 실제 runtime evidence가 필요하다. Release readin - Input contract revision: `r2` - 기본 보고서: [formulation.md](formulation.md#formulation) -근거는 [research evidence](research.md#research-evidence)의 `S01`, `S02`, `P01`, `R01`~`R03`이다. +근거는 [research evidence](README.md)의 `S01`, `S02`, `P01`, `R01`~`R03`이다. 아래 유도는 FESA의 승인된 운동학에 대한 것이며 Abaqus 내부 질량과의 동등성 주장이 아니다. r2는 M4의 numerical scale만 [S1](formulation.md#formulation-stabilization--s1-초기-physical-trace로-고정하는-단일-scale)로 대체한다. M1/M2 및 M5~M10의 질량·quadrature·moment·lumping 식은 영향 확인 후 보존했다. @@ -170,7 +170,7 @@ k_d=10^{-3}k_{ref,e}. \tag{M4} drilling map은 유지하고 옛 최소 대각 scale만 사용자 승인 범위에서 대체한다. 이 유도 작성 당시 source는 옛 scale을 사용했다. 현재 [source](../../src/fesa/elements/mitc4_shell.cpp)의 채택식과 구현 검증은 [eigen2 정식화](../mitc4-shell-feast-eigen2/formulation.md)와 -[구현 검증](../mitc4-shell-feast-eigen2/implementation-verification.md)을 따른다. +[구현 검증](../mitc4-shell-feast-eigen2/README.md)을 따른다. Drilling energy는 수치 stabilization이며 물리 strain/stress가 아니다. `K_e q_e`는 내부 elastic generalized force, `M_L,e q_ddot,e`는 inertia다. 최종 반이산식은 `M_L q_ddot + Kq=0`이다. Harmonic ansatz @@ -322,9 +322,9 @@ C^{(0)}=\frac{\rho t A}{36} - Input contract revision: `r2` - 기본 보고서: [formulation.md](formulation.md#formulation) -승인 근거는 [MFE-ADR-007](ADR.md#mfe-adr-007--기존-stabilization과-좌표-불변성-acceptance-정합), -`FEM-REQ-MITC4-EIGEN-002/008/014/024/027` 및 [기존 계약 대체 범위](requirements.md#requirements--r2의-기존-계약-대체-범위)다. -[연구 R07](research.md#research-evidence--r07--r2-stabilization-근거와-영향)의 후보에서 아래 하나를 선택한다. +승인 근거는 [MFE-ADR-007](README.md), +`FEM-REQ-MITC4-EIGEN-002/008/014/024/027` 및 [기존 계약 대체 범위](README.md)다. +[연구 R07](README.md)의 후보에서 아래 하나를 선택한다. 식 S1~S8은 FESA 계약에 대한 유도이며 외부 solver의 stabilization과 동일하다는 주장이 아니다. @@ -366,7 +366,7 @@ d_r=(K_{20}^0)_{rr} \] 따라서 S1이 양수인 필요충분조건은 이 여덟 값 중 적어도 하나가 양수인 것이다. -이는 [기존 요구 034/036](../linear-static-mitc4-shell/requirements.md)의 유효 physical +이는 [기존 요구 034/036](../linear-static-mitc4-shell/README.md)의 유효 physical rotation inventory 조건과 같다. 개별 `R_i`가 모두 PD여야 한다는 새 조건은 없다. Exact zero diagonal/block도 합에 포함하므로 기존 허용 geometry를 선별해 줄이지 않는다. 유효 geometry는 noncollinear midsurface를 가지며, 기존 physical kernel의 non-rigid @@ -514,7 +514,7 @@ S4/E3 projection은 이 nonlinear Hessian·preload·prestressed eigen으로 확 ### S6. NR-MFE-001의 새 algebraic target과 정적 대응 -[NR 소유 반례](numerical-review.md#numerical-review-evidence--nr-mfe-001-직접-계산-반례)의 독립 적분 block을 +[NR 소유 반례](README.md)의 독립 적분 block을 입력 근거로 사용한다. 그 geometry·source BC·material 및 옛 실패 이력은 보존한다. 각 corner에서 `R_aa=49/12`, `R_bb=23/6`, `R_ab=±1/8`이므로 @@ -560,7 +560,7 @@ exact first/second directional derivatives·물리 선형극한·정적 평형/r 실행해야 하는 기존 `shell`, `shellNL`, `shellNL-meshfine` 및 linear-limit closure portfolio와 후속 meshfine-02 이력의 구분, source identity, U blocking/UR warning-only, reaction review-only는 -[requirements evidence의 단일 portfolio](requirements.md#requirements-evidence--r2-승인-범위와-정적-재검증)를 따른다. +[requirements evidence의 단일 portfolio](README.md)를 따른다. 새 eigen 외부 비교는 지정 input/TXT의 10개 Value만 사용한다. Static reference를 eigen mode-shape gate로 추가하거나 기존 static 회귀를 Value-only를 이유로 삭제하지 않는다. Numerical threshold·필수 case 구체화·FEAST control/budget/seed와 독립 반례 해소 판정은 NR, @@ -575,7 +575,7 @@ TDD/runtime/reference 실행은 Implementation, 독립 물리 판단은 Physics - Input contract revision: `r2` - 기본 보고서: [formulation.md](formulation.md#formulation) -[질량 유도 M1~M10](formulation.md#formulation-mass), [research evidence](research.md#research-evidence)의 +[질량 유도 M1~M10](formulation.md#formulation-mass), [research evidence](README.md)의 `S03`~`S08`, `P01`, `R03/R04/R07`를 적용한다. 아래 reduction은 [r2 scale](formulation.md#formulation-stabilization)로 개선된 원형상 stabilized stiffness와 **derived lumped mass**의 pencil에 정확히 대응한다. 기존 nonlinear trial tangent와는 별개다. @@ -876,7 +876,7 @@ Modal residual의 constrained 성분을 static reaction으로 출력하지 않 [개선된 scale·공변성 S1~S8](formulation.md#formulation-stabilization)의 기호를 사용한다. 이 문서는 측정량과 zero branch를 정의하며 수치 acceptance 값과 필수 benchmark 선정은 Numerical Review가 독립 검토하여 고정한다. -외부 기준의 수치는 [TOLERANCE](../TOLERANCE.md)를 그대로 적용한다. +외부 기준의 수치는 [TOLERANCE](../solver-core/README.md)를 그대로 적용한다. ### V1. 공통 scale과 zero branch @@ -1070,7 +1070,7 @@ Case의 구체적 목록·숫자는 NR가 정하고 Planning이 tests와 TDD ste Frequency 재계산, mode shape correlation이나 다른 mass variant의 더 가까운 결과 선택으로 이를 대체하지 않는다. Mode/frame은 NR/I/O가 common same-frame family 규칙에 맞춰 정의하고 missing/extra/duplicate/nonfinite를 tolerance 전에 거부한다. -[r1 reference-model](reference-model.md)의 10개 singleton family·모두 blocking 계약과 +[r1 reference-model](README.md)의 10개 singleton family·모두 blocking 계약과 공통 정책에 따른 실효 mode별 1%는 보존할 근거다. Formulation이 이를 재선택하지 않으며 r2 영향 재확인은 NR 소유다. V1~V6의 내부 수치 기준은 아직 NR에서 최종 고정하지 않았다. Schema 경로/저장 field/public diagnostic 이름은 I/O owner의 계약이다. diff --git a/docs/mitc4-shell-feast-eigen2/formulation-eigen.md b/docs/mitc4-shell-feast-eigen2/formulation-eigen.md index 64748c1..20dff58 100644 --- a/docs/mitc4-shell-feast-eigen2/formulation-eigen.md +++ b/docs/mitc4-shell-feast-eigen2/formulation-eigen.md @@ -2,7 +2,7 @@ Feature `mitc4-shell-feast-eigen2`, formulation r1. [기본 보고서](formulation.md)와 [질량·stabilization](formulation-mass-stabilization.md)의 기호를 사용한다. -Intel evidence는 [research R04/G01/G02](research.md#research-evidence)에 따른다. +Intel evidence는 [research R04/G01/G02](README.md)에 따른다. ## E1. 실제 BC를 먼저 적용한다 @@ -129,7 +129,7 @@ K와 identity의 pattern이 같을 필요는 없다. Vendor types와 workspace 매 call마다 `feastinit` 후 명시 controls를 채운다. C-index `fpm[49]=1`은 CSR count를 m0로 반환하고 flag가 0으로 reset된다. Count output m0·solve requested m0·allocated capacity를 분리한다. CSR/SPD 검사를 켜고 subspace-only를 끈다. -[MFE2-ADR-011](ADR.md#mfe2-adr-011--feast-residual-stopping과-s3-후속-분리)의 사용자 승인으로 +[MFE2-ADR-011](README.md)의 사용자 승인으로 `fpm[5]=0` residual stopping을 사용한다. 내부 목표 `1e-12`와 전체 c개 독립 residual 기준 `1e-10`을 유지하며 zero/mixed-zero mode에도 실제 backend 회귀를 수행한다. `epsout`은 `|trace_i-trace_previous|/max(|emin|,|emax|)`이며 eigenpair 상대오차가 아니다. diff --git a/docs/mitc4-shell-feast-eigen2/formulation.md b/docs/mitc4-shell-feast-eigen2/formulation.md index 8385945..f4dfab5 100644 --- a/docs/mitc4-shell-feast-eigen2/formulation.md +++ b/docs/mitc4-shell-feast-eigen2/formulation.md @@ -1,8 +1,8 @@ # MITC4 질량·공변 stabilization·FEAST 정식화 - Feature: `mitc4-shell-feast-eigen2`; Owner: `formulation-agent`; 정식화 revision: `r1`. -- 입력: [requirements r1](requirements.md#requirements), [근거](requirements.md#requirements-evidence), [Feature ADR](ADR.md). -- 기준: [프로젝트 지침](../../AGENTS.md), [PRD](../PRD.md), [ADR-028](../ADR.md#adr-028), [ARCHITECTURE](../ARCHITECTURE.md). +- 입력: [requirements r1](README.md), [근거](README.md), [Feature ADR](README.md). +- 기준: [프로젝트 지침](../../AGENTS.md), [PRD](../solver-core/README.md), [ADR-028](../solver-core/README.md), [ARCHITECTURE](../solver-core/README.md). - 상태: 독립 numerical review에 인계하는 수학 계약. 구현·runtime·reference 통과 선언이 아니다. ## 선택과 적용 범위 @@ -37,10 +37,10 @@ Numerical scale은 초기 physical rotary diagonal 8개 trace 평균의 `10^-3` | [verification V1–V5](../mitc4-shell-feast-eigen/formulation.md#formulation-verification) | 같은 단위의 residual/Gram·energy·covariance·density 측정량 | 기존 tolerance 값·test 수·gate·실행 portfolio | 질량 및 trace 평균은 FESA 운동학에서 유도한 선택이다. 외부 source가 이 lumping/scale을 -지정한다고 주장하지 않는다. 최신 API 근거와 검토 한계는 [research](research.md#research)와 -[research evidence](research.md#research-evidence)에 연결한다. FEAST count의 `fpm[49]=1`과 -residual stopping의 `fpm[5]=0`은 C-index다. 종료 제어는 [ADR-011](ADR.md#mfe2-adr-011--feast-residual-stopping과-s3-후속-분리)과 -[controls C5](numerical-review-controls.md#c5-fixed-lower-enclosure와-bounded-upper-search)의 승인된 변경을 적용한다. +지정한다고 주장하지 않는다. 최신 API 근거와 검토 한계는 [research](README.md)와 +[research evidence](README.md)에 연결한다. FEAST count의 `fpm[49]=1`과 +residual stopping의 `fpm[5]=0`은 C-index다. 종료 제어는 [ADR-011](README.md)과 +[controls C5](README.md)의 승인된 변경을 적용한다. 빈 count interval의 `info=0,m0=0`과 작은 scratch 허용은 보장된 vendor 계약으로 채택하지 않는다. @@ -53,13 +53,13 @@ scratch 허용은 보장된 vendor 계약으로 채택하지 않는다. 같은 물리 partial BC 및 admissible tangent moment를 사용하는 정적 대응도 검사한다. Nonlinear scale immutability·objective energy·일관 residual/Hessian·선형극한을 재검증한다. -외부 portfolio는 오직 새 [requirements의 지정 범위](requirements.md#requirements)를 따른다. +외부 portfolio는 오직 새 [requirements의 지정 범위](README.md)를 따른다. `shell`, `shellNL`, `shellNL-eigen-meshfine`의 retained 의무와 synthetic 내부 검사를 유지한다. 제외된 네 예제는 원본·복사본·cache·과거 결과로 재사용하지 않는다. Eigen 외부 비교는 -원본 TXT의 `Value`이며 [공통 tolerance](../TOLERANCE.md)를 변경하지 않는다. +원본 TXT의 `Value`이며 [공통 tolerance](../solver-core/README.md)를 변경하지 않는다. 내부 수치 기준, FEAST control·endpoint separation·bounded call budget·seed의 독립 판정은 -[numerical review](numerical-review.md)와 [controls](numerical-review-controls.md)에 기록했다. -입력 allowlist, result schema·identity 및 실패 진단은 [I/O](io.md)를 따른다. -실제 설치 runtime·reference 결과와 미실행 한계는 [구현 검증](implementation-verification.md), -S3 후속 범위는 [현재 PRD](PRD.md)에 기록했다. 이 수학 계약 자체를 실행 통과로 해석하지 않는다. +[numerical review](README.md)와 [controls](README.md)에 기록했다. +입력 allowlist, result schema·identity 및 실패 진단은 [I/O](README.md)를 따른다. +실제 설치 runtime·reference 결과와 미실행 한계는 [구현 검증](README.md), +S3 후속 범위는 [현재 PRD](README.md)에 기록했다. 이 수학 계약 자체를 실행 통과로 해석하지 않는다. diff --git a/docs/shell-transient-heat-transfer/formulation.md b/docs/shell-transient-heat-transfer/formulation.md index db5b35e..2d5b397 100644 --- a/docs/shell-transient-heat-transfer/formulation.md +++ b/docs/shell-transient-heat-transfer/formulation.md @@ -1,10 +1,10 @@ # Shell 과도 열전달 정식화 - 상태: **2026-09-29 승인된 물리·방법을 반영한 구현용 정식화**. - 독립 검토의 판정과 검증 기준은 [numerical-review](numerical-review.md)를 따른다. + 독립 검토의 판정과 검증 기준은 [numerical-review](README.md)를 따른다. - 담당 범위: `FEM-REQ-SHELL-THERMAL-001`–`018`의 수식·물리 의미와 검증 함의. -- 기준: [Feature PRD](PRD.md), [Feature ADR](ADR.md), [프로젝트 지침](../../AGENTS.md), - [프로젝트 PRD](../PRD.md), [공통 ADR](../ADR.md#adr-028), [ARCHITECTURE](../ARCHITECTURE.md). +- 기준: [Feature PRD](README.md), [Feature ADR](README.md), [프로젝트 지침](../../AGENTS.md), + [프로젝트 PRD](../solver-core/README.md), [공통 ADR](../solver-core/README.md), [ARCHITECTURE](../solver-core/README.md). - 아래 수식은 승인된 FESA 모델이다. Abaqus 내부 알고리즘과 동등하다는 주장이 아니다. 이전 Proposed 보고서의 검산은 제한된 과거 evidence이며 현재 solver 검증을 대신하지 않는다. @@ -152,7 +152,7 @@ bound로 판정한다. 선분 밖임이 확정되면 제외하고, 포함이 확 endpoint를 공유하면서 부분적으로 겹치는 선분도 포함하지만 접속을 새로 생성하지 않는다. 모든 mesh node와 모든 edge 사이의 전역 좌표 scan은 수행하지 않는다. 후보 없는 서로 다른 component/instance의 우연 접촉과 같은 component 내 멀리 떨어진 부분의 좌표 접촉은 검사 -대상이 아니다. 이는 [PRD STH-C01](PRD.md#sth-c01--모델-geometry와-자유도)의 source 접속 +대상이 아니다. 이는 [PRD STH-C01](README.md)의 source 접속 검증이며, patch 내부 injectivity 검사나 미지원 global contact 검출을 대신하지 않는다. ## 3. 20 DOF와 온도 보간 @@ -553,7 +553,7 @@ component/좌표계로 구별한다. 공식 flux는 global Cartesian `q`이며 ## 10. 검증 함의와 독립 검토 인계 다음은 실행 결과가 아닌 검증 설계다. 수치 기준은 독립 reviewer가 정하며 -외부 비교는 [공통 TOLERANCE](../TOLERANCE.md)를 그대로 따른다. +외부 비교는 [공통 TOLERANCE](../solver-core/README.md)를 그대로 따른다. | 검증 | 관찰할 내용 | | --- | --- | @@ -635,7 +635,7 @@ Reviewer는 production kernel 착수 전에 roundoff/residual/energy 판정의 mesh·시간열·series 절단·수렴차수 구간·warped quadrature 진단을 독립적으로 고정한다. 본 문서는 임의 tolerance 상수를 만들거나 공통 외부 5%를 내부 검증에 전용하지 않는다. 필수 NT11 비교는 `Step-1/t37/Part-1-1/source node/DOF11`의 729개 원본 row mapping과 -[공통 TOLERANCE](../TOLERANCE.md)를 유지한다. 실패는 조사·상위 보고 대상이며 +[공통 TOLERANCE](../solver-core/README.md)를 유지한다. 실패는 조사·상위 보고 대상이며 reference 보정·음수 clamp·방법 변경·tolerance 완화의 근거가 아니다. 물리·방법의 과거 미결정은 이번 승인 계약으로 대체되었다. 남은 독립 작업은 위 수치 diff --git a/phases/cpp-object-oriented-modular-refactoring/step0.md b/phases/cpp-object-oriented-modular-refactoring/step0.md index 6252918..a4462b1 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step0.md +++ b/phases/cpp-object-oriented-modular-refactoring/step0.md @@ -1,24 +1,18 @@ # Step 0: Coding Style Agent Contract -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md` -- `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/SOLVER_AGENT_DESIGN.md` -- `/docs/HARNESS.md` -- `/docs/HARNESS_WORKFLOW.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` - `/.codex/hooks.json` -- `/.codex/agents/implementation-agent.toml` - `/tests/test_agent_skill_workflow_contract.py` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - `/phases/cpp-object-oriented-modular-refactoring/index.json` - `/phases/cpp-object-oriented-modular-refactoring/step0.md` @@ -30,9 +24,8 @@ Requirement `R-AGENT-001`만 구현한다. 1. `tests/test_agent_skill_workflow_contract.py`에 `P-AGENT-001`을 먼저 추가한다. 2. Test는 `implementation-agent.toml`의 mandatory global input 구간이 literal path - `docs/CODINGSTYLE.md`를 직접 포함하고, C++ Step 시작 전에 읽도록 지시하는지 검증한다. + `../../docs/solver-core/README.md`를 직접 포함하고, C++ Step 시작 전에 읽도록 지시하는지 검증한다. 3. RED에서 현재 profile이 이 contract를 만족하지 않아 assertion failure가 발생함을 기록한다. -4. `/.codex/agents/implementation-agent.toml`에 다음 의미의 지시를 최소 추가한다. ```text Before every C++ implementation Step, read docs/CODINGSTYLE.md as a mandatory global @@ -54,16 +47,7 @@ uv run --with pytest python -m pytest -v -rs Repository Stop 검증과 동일한 C++ 회귀 확인: -```powershell -cmake -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 @@ -78,4 +62,3 @@ ctest --test-dir .harness/build -C Debug --output-on-failure - C++ 또는 CMake를 수정하지 마라. 이유: 이 Step은 agent contract만 소유한다. - 다른 agent profile에 동일 문구를 일괄 추가하지 마라. 이유: 승인 범위를 넓힌다. - 직접 commit하거나 hook script를 수동 실행하지 마라. 이유: Executor와 hook의 소유권이다. -- `scripts/execute.py`를 호출하지 마라. 이유: 현재 독립 Step을 재귀 실행하면 안 된다. diff --git a/phases/cpp-object-oriented-modular-refactoring/step1.md b/phases/cpp-object-oriented-modular-refactoring/step1.md index f2b18b3..5a5d57d 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step1.md +++ b/phases/cpp-object-oriented-modular-refactoring/step1.md @@ -1,25 +1,19 @@ # Step 1: C++ Style Tooling -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md` -- `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/superpowers/specs/2026-08-16-cpp-object-oriented-modular-refactoring-design.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - `/CMakeLists.txt` - `/.gitignore` - `/tests/test_agent_skill_workflow_contract.py` - `/phases/cpp-object-oriented-modular-refactoring/index.json` - `/phases/cpp-object-oriented-modular-refactoring/step1.md` -- Step 0이 수정한 `/.codex/agents/implementation-agent.toml` ## 작업 @@ -43,21 +37,7 @@ Requirements `R-STYLE-001`과 `R-DOC-001`의 repository tooling만 구현한다. ## Acceptance Criteria -```powershell -uv run --with pytest python -m pytest -v -rs tests/test_cpp_policy_contract.py -uv run --with pytest python -m pytest -v -rs -& "C:/Program Files/LLVM/bin/clang-format.exe" --version -& "C:/Program Files/LLVM/bin/clang-tidy.exe" --version -& "C:/Program Files/LLVM/bin/clang-tidy.exe" --verify-config -cmake -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Expected GREEN에는 Doxygen 실행이나 generated HTML이 포함되지 않는다. diff --git a/phases/cpp-object-oriented-modular-refactoring/step10.md b/phases/cpp-object-oriented-modular-refactoring/step10.md index bb42a7b..9b086f5 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step10.md +++ b/phases/cpp-object-oriented-modular-refactoring/step10.md @@ -1,17 +1,14 @@ # Step 10: Dense BLAS Adapter -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - `/include/fesa/math/vector.h`, `/src/fesa/math/vector.cpp` - `/include/fesa/math/matrix.h`, `/src/fesa/math/matrix.cpp` - `/tests/unit/math/vector_test.cpp`, `/tests/unit/math/matrix_test.cpp` @@ -49,20 +46,7 @@ void CopyValues(const double* source, std::size_t size, double* destination); ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "DenseMath|DenseBlasInternal" --output-on-failure -rg -n "ToMklSize|CopyValues" src/fesa/math -rg -n "MKL_INT|mkl\.h" include/fesa -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - src/fesa/math/dense_blas_internal.h src/fesa/math/dense_blas_internal.cpp ` - src/fesa/math/vector.cpp src/fesa/math/matrix.cpp ` - tests/unit/math/dense_blas_internal_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. The public-header vendor scan must return no matches. The private helper scan must show one definition family and the two intended consumers only. diff --git a/phases/cpp-object-oriented-modular-refactoring/step11.md b/phases/cpp-object-oriented-modular-refactoring/step11.md index 08eb8e7..6d5ded4 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step11.md +++ b/phases/cpp-object-oriented-modular-refactoring/step11.md @@ -1,20 +1,17 @@ # Step 11: Source Target Resolver -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-mitc4-shell/io.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - `/include/fesa/core/source_identity.h` - `/include/fesa/model/domain.h`, `/src/fesa/model/domain.cpp` - `/src/fesa/io/abaqus/domain_mapper.cpp` @@ -95,22 +92,7 @@ class SourceTargetResolver { ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "Ascii|SourceTargetResolver|InpDomainMapping|DofManager|LoadAssembly|ResultRecovery" ` - --output-on-failure -rg -n "AsciiLower|EqualName|TryPositiveInteger" src/fesa -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - include/fesa/core/ascii.h src/fesa/core/ascii.cpp ` - include/fesa/model/source_target_resolver.h ` - src/fesa/model/source_target_resolver.cpp ` - tests/unit/core/ascii_test.cpp ` - tests/unit/model/source_target_resolver_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. The helper scan may show only the shared definitions and intentional calls, not repeated local definitions. Full diagnostics and stable order tests must pass. diff --git a/phases/cpp-object-oriented-modular-refactoring/step12.md b/phases/cpp-object-oriented-modular-refactoring/step12.md index 9d31c00..ab5b0b6 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step12.md +++ b/phases/cpp-object-oriented-modular-refactoring/step12.md @@ -1,19 +1,16 @@ # Step 12: Material and Element Property Hierarchy -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/superpowers/specs/2026-08-16-cpp-object-oriented-modular-refactoring-design.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - `/include/fesa/model/model_types.h` - `/include/fesa/model/domain.h`, `/src/fesa/model/domain.cpp` - `/tests/unit/model/model_types_test.cpp`, `/tests/unit/model/domain_test.cpp` @@ -77,19 +74,7 @@ class ElementProperty { ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "Material|ElementProperty|DomainModel" --output-on-failure -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - (rg --files include/fesa/materials include/fesa/properties -g "*.h") ` - (rg --files src/fesa/materials src/fesa/properties -g "*.cpp") ` - tests/unit/materials/material_test.cpp ` - tests/unit/properties/element_property_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step13.md b/phases/cpp-object-oriented-modular-refactoring/step13.md index 145b880..f9c4ce1 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step13.md +++ b/phases/cpp-object-oriented-modular-refactoring/step13.md @@ -1,18 +1,15 @@ # Step 13: Element Definition and Domain Ownership -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - Step 11 `source_target_resolver` files - Step 12 material/property headers and tests - `/include/fesa/model/model_types.h` @@ -64,19 +61,7 @@ class ElementDefinition { ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "ElementDefinition|DomainModel|AnalysisModel|InpDomainMapping" --output-on-failure -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - include/fesa/elements/element_definition.h ` - include/fesa/model/domain.h src/fesa/model/domain.cpp ` - tests/unit/model/domain_test.cpp tests/unit/analysis/analysis_model_test.cpp ` - tests/unit/io/abaqus/domain_mapper_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step14.md b/phases/cpp-object-oriented-modular-refactoring/step14.md index 289e49a..650958f 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step14.md +++ b/phases/cpp-object-oriented-modular-refactoring/step14.md @@ -1,20 +1,17 @@ # Step 14: Runtime Element and Factory -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-mitc4-shell/formulation.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - Step 12 material/property hierarchy files - Step 13 element definition and Domain files - `/include/fesa/elements/euler_beam_3d.h`, `/src/fesa/elements/euler_beam_3d.cpp` @@ -99,18 +96,7 @@ class ElementFactory { ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "ElementFactory|EulerBeam3D|Mitc4Shell" --output-on-failure -rg -n "dynamic_cast" src/fesa include/fesa -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - include/fesa/elements/element.h include/fesa/elements/element_factory.h ` - src/fesa/elements/element_factory.cpp tests/unit/elements/element_factory_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. The downcast scan must show no newly scattered consumer downcasts. If the centralized factory uses a checked cast, document the preceding kind validation and keep it in the factory only. diff --git a/phases/cpp-object-oriented-modular-refactoring/step15.md b/phases/cpp-object-oriented-modular-refactoring/step15.md index be4b9ae..c7028cb 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step15.md +++ b/phases/cpp-object-oriented-modular-refactoring/step15.md @@ -1,18 +1,15 @@ # Step 15: Generic DofManager -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - Step 13 Domain/AnalysisModel files - Step 14 `element.h`, `element_factory.h`, concrete runtime elements - `/include/fesa/fem/dof_manager.h`, `/src/fesa/fem/dof_manager.cpp` @@ -53,20 +50,7 @@ Status DofManager::ValidateInvariants() const; ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "DofManager|EssentialConstraints|SparseAssembly" --output-on-failure -$typeBranches = @(rg -n "EulerBeam3D|Mitc4Shell" src/fesa/fem/dof_manager.cpp) -if ($typeBranches.Count -ne 0) { $typeBranches; throw "Concrete element branch remains" } -rg -n "ValidateDofOrder" src/fesa -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - include/fesa/fem/dof_manager.h src/fesa/fem/dof_manager.cpp ` - tests/unit/fem/dof_manager_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. `ValidateDofOrder` scan must show no duplicate local definitions. Existing public compatibility wrappers may remain temporarily only if they delegate to DofManager and are removed by Step 20. diff --git a/phases/cpp-object-oriented-modular-refactoring/step16.md b/phases/cpp-object-oriented-modular-refactoring/step16.md index f4f4b81..6c4fa9c 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step16.md +++ b/phases/cpp-object-oriented-modular-refactoring/step16.md @@ -1,18 +1,15 @@ # Step 16: Generic SparseAssembler -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - Step 14 runtime Element contribution contract - Step 15 DofManager and invariant contract - `/include/fesa/assembly/sparse_assembler.h`, `/src/fesa/assembly/sparse_assembler.cpp` @@ -49,19 +46,7 @@ Result SparseAssembler::Assemble( ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "SparseAssembly" --output-on-failure -$typeBranches = @(rg -n "EulerBeam3D|Mitc4Shell" src/fesa/assembly/sparse_assembler.cpp) -if ($typeBranches.Count -ne 0) { $typeBranches; throw "Concrete element branch remains" } -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - include/fesa/assembly/sparse_assembler.h ` - src/fesa/assembly/sparse_assembler.cpp ` - tests/unit/assembly/sparse_assembler_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step17.md b/phases/cpp-object-oriented-modular-refactoring/step17.md index 7eecbc4..ffaeded 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step17.md +++ b/phases/cpp-object-oriented-modular-refactoring/step17.md @@ -1,22 +1,19 @@ # Step 17: Generic ResultRecovery -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-mitc4-shell/formulation.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-mitc4-shell/io.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - Step 14 `ElementResultBundle` contract - Step 15 DofManager and Step 16 assembly files - `/include/fesa/results/result_recovery.h`, `/src/fesa/results/result_recovery.cpp` @@ -55,20 +52,7 @@ Status ResultRecovery::Recover( ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "ResultRecovery|AnalysisState|EulerBeam3D|Mitc4Shell" --output-on-failure -$typeBranches = @(rg -n "EulerBeam3D|Mitc4Shell" src/fesa/results/result_recovery.cpp) -if ($typeBranches.Count -ne 0) { $typeBranches; throw "Concrete element branch remains" } -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - include/fesa/results/result_recovery.h ` - src/fesa/results/result_recovery.cpp ` - tests/unit/results/result_recovery_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step18.md b/phases/cpp-object-oriented-modular-refactoring/step18.md index bfcf8c6..0a99578 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step18.md +++ b/phases/cpp-object-oriented-modular-refactoring/step18.md @@ -1,18 +1,15 @@ # Step 18: Load Hierarchy -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - Step 11 source-target resolver files - Step 13 Domain/AnalysisModel files - Step 15 DofManager files @@ -80,19 +77,7 @@ class ConcentratedNodalLoad final : public Load { ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "Load|LoadAssembly|AnalysisModel|InpDomainMapping" --output-on-failure -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - (rg --files include/fesa/loads -g "*.h") ` - (rg --files src/fesa/loads -g "*.cpp") ` - include/fesa/assembly/load_assembler.h src/fesa/assembly/load_assembler.cpp ` - tests/unit/loads/load_test.cpp tests/unit/assembly/load_assembler_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step19.md b/phases/cpp-object-oriented-modular-refactoring/step19.md index e53e31b..1a4fb9f 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step19.md +++ b/phases/cpp-object-oriented-modular-refactoring/step19.md @@ -1,18 +1,15 @@ # Step 19: Boundary Condition Policy -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - Step 11 source resolver, Step 13 Domain and Step 15 DofManager files - `/include/fesa/constraints/essential_constraints.h` - `/src/fesa/constraints/essential_constraints.cpp` @@ -106,21 +103,7 @@ class EssentialConstraintPolicy { ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "BoundaryCondition|EssentialConstraints|DofManager|LoadAssembly" --output-on-failure -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - include/fesa/constraints/boundary_condition.h ` - include/fesa/constraints/prescribed_displacement.h ` - include/fesa/constraints/essential_constraint_policy.h ` - (rg --files src/fesa/constraints -g "*.cpp") ` - tests/unit/constraints/boundary_condition_test.cpp ` - tests/unit/constraints/essential_constraints_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step2.md b/phases/cpp-object-oriented-modular-refactoring/step2.md index 9547dc1..53ba84e 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step2.md +++ b/phases/cpp-object-oriented-modular-refactoring/step2.md @@ -1,20 +1,17 @@ # Step 2: Architecture Boundaries -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step은 구현 전 architecture contract를 고정하는 documentation-only Step이다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/PRD.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/superpowers/specs/2026-08-16-cpp-object-oriented-modular-refactoring-design.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - `/phases/cpp-object-oriented-modular-refactoring/index.json` - `/phases/cpp-object-oriented-modular-refactoring/step2.md` @@ -23,7 +20,7 @@ Requirements `R-MODEL-001`, `R-ELEMENT-001`, `R-PIPELINE-001`, `R-LOAD-001`, `R-BC-001`, `R-ANALYSIS-001`, `R-MODULE-001`의 ownership 방향을 문서화한다. -1. `/docs/ARCHITECTURE.md`에 다음 dependency/ownership graph를 반영한다. +1. `../../docs/solver-core/README.md`에 다음 dependency/ownership graph를 반영한다. ```text Domain owns ElementDefinition / ElementProperty / Material / StepDefinition @@ -37,7 +34,7 @@ EssentialConstraintPolicy -> ConstraintDefinition Analysis <- LinearStaticAnalysis ``` -2. `/docs/ADR.md`에서 기존 ADR-007의 linear-static-specific protected hook contract를 +2. `../../docs/solver-core/README.md`에서 기존 ADR-007의 linear-static-specific protected hook contract를 최소 `Analysis::Run(const AnalysisRequest&)` base와 private `LinearStaticAnalysis` lifecycle 결정으로 대체하거나 supersede한다. 3. ADR에 `ElementDefinition`/runtime `Element` 분리, Domain `unique_ptr` ownership, @@ -50,16 +47,7 @@ Documentation-only contract 고정이므로 artificial RED를 만들지 않는 ## Acceptance Criteria -```powershell -rg -n "ElementDefinition|ElementFactory|LoadContribution|ConstraintDefinition|Analysis::Run" ` - docs/ARCHITECTURE.md docs/ADR.md -rg -n "unique_ptr|stable-index|non-owning|LinearStaticAnalysis" ` - docs/ARCHITECTURE.md docs/ADR.md -git diff --check -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step20.md b/phases/cpp-object-oriented-modular-refactoring/step20.md index d004788..583c600 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step20.md +++ b/phases/cpp-object-oriented-modular-refactoring/step20.md @@ -1,20 +1,17 @@ # Step 20: Analysis Hierarchy -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-mitc4-shell/requirements.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - Step 15–19 generic element/load/constraint pipeline files - `/include/fesa/analysis/analysis_model.h` - `/include/fesa/analysis/analysis_state.h` @@ -82,20 +79,7 @@ class LinearStaticAnalysis final : public Analysis { ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_integration_tests -ctest --test-dir .harness/build -C Debug ` - -R "Analysis$|LinearStaticCli|Mitc4ShellCli|FesaApplication" --output-on-failure -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - include/fesa/analysis/analysis.h ` - include/fesa/analysis/linear_static_analysis.h ` - src/fesa/analysis/linear_static_analysis.cpp ` - tests/unit/analysis/analysis_test.cpp ` - tests/integration/analysis/linear_static_analysis_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step21.md b/phases/cpp-object-oriented-modular-refactoring/step21.md index e44d232..1fc0b5d 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step21.md +++ b/phases/cpp-object-oriented-modular-refactoring/step21.md @@ -1,20 +1,17 @@ # Step 21: Domain Mapper Modules -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-mitc4-shell/io.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - Step 11 SourceTargetResolver - Step 12–14 semantic hierarchy/Domain files - Step 18–19 Load and BoundaryCondition files @@ -53,32 +50,7 @@ domain_builder.h/.cpp final cross-reference validation and atomic Doma ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "InpDomainMapping|DomainMappingComponents|SourceTargetResolver" --output-on-failure -$componentFiles = @( - "src/fesa/io/abaqus/domain_mapping_context.h", - "src/fesa/io/abaqus/topology_mapper.cpp", - "src/fesa/io/abaqus/material_property_mapper.cpp", - "src/fesa/io/abaqus/step_definition_mapper.cpp", - "src/fesa/io/abaqus/domain_builder.cpp" -) -foreach ($componentFile in $componentFiles) { - if (-not (Test-Path -LiteralPath $componentFile -PathType Leaf)) { - throw "Missing mapper component: $componentFile" - } -} -rg -n "TopologyMapper|MaterialPropertyMapper|StepDefinitionMapper|DomainBuilder" ` - src/fesa/io/abaqus/domain_mapper.cpp -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - (rg --files src/fesa/io/abaqus -g "*.h" -g "*.cpp") ` - tests/unit/io/abaqus/domain_mapper_test.cpp ` - tests/unit/io/abaqus/domain_mapping_components_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step22.md b/phases/cpp-object-oriented-modular-refactoring/step22.md index 30bc99c..58ff2d4 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step22.md +++ b/phases/cpp-object-oriented-modular-refactoring/step22.md @@ -1,22 +1,19 @@ # Step 22: Result Recovery Modules -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-mitc4-shell/formulation.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-mitc4-shell/io.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - Step 17 generic ResultRecovery files - `/include/fesa/results/result_records.h` - `/include/fesa/analysis/analysis_state.h` @@ -52,32 +49,7 @@ analysis_state_commit.h/.cpp validates complete candidate and atomically u ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "ResultRecovery|ResultRecoveryComponents|AnalysisState" --output-on-failure -$componentFiles = @( - "src/fesa/results/recovery_candidate.cpp", - "src/fesa/results/global_equilibrium_recovery.cpp", - "src/fesa/results/beam_result_recovery.cpp", - "src/fesa/results/shell_result_recovery.cpp", - "src/fesa/results/analysis_state_commit.cpp" -) -foreach ($componentFile in $componentFiles) { - if (-not (Test-Path -LiteralPath $componentFile -PathType Leaf)) { - throw "Missing recovery component: $componentFile" - } -} -rg -n "GlobalEquilibriumRecovery|BeamResultRecovery|ShellResultRecovery|Commit" ` - src/fesa/results/result_recovery.cpp -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - (rg --files src/fesa/results -g "*.h" -g "*.cpp") ` - tests/unit/results/result_recovery_test.cpp ` - tests/unit/results/result_recovery_components_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step23.md b/phases/cpp-object-oriented-modular-refactoring/step23.md index 77379ce..50711c1 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step23.md +++ b/phases/cpp-object-oriented-modular-refactoring/step23.md @@ -1,20 +1,17 @@ # Step 23: HDF5 Writer Modules -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-mitc4-shell/io.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - Step 22 recovery candidate/result records - `/include/fesa/io/hdf5/hdf5_results_writer.h` - `/src/fesa/io/hdf5/hdf5_results_writer.cpp` @@ -53,35 +50,7 @@ hdf5_atomic_file.h/.cpp candidate path, preservation and final replacemen ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "Hdf5ResultsWriter|Hdf5WriterComponents|ResultsWriter" --output-on-failure -$componentFiles = @( - "src/fesa/io/hdf5/hdf5_raii.h", - "src/fesa/io/hdf5/hdf5_primitives.cpp", - "src/fesa/io/hdf5/hdf5_model_writer.cpp", - "src/fesa/io/hdf5/hdf5_result_writer.cpp", - "src/fesa/io/hdf5/hdf5_self_check.cpp", - "src/fesa/io/hdf5/hdf5_atomic_file.cpp" -) -foreach ($componentFile in $componentFiles) { - if (-not (Test-Path -LiteralPath $componentFile -PathType Leaf)) { - throw "Missing HDF5 component: $componentFile" - } -} -rg -n "WriteModel|WriteResults|SelfCheck|Atomic" ` - src/fesa/io/hdf5/hdf5_results_writer.cpp -$vendorLeaks = @(rg -n "hid_t|hdf5\.h|H5[A-Z]" include/fesa) -if ($vendorLeaks.Count -ne 0) { $vendorLeaks; throw "HDF5 type leaked into public headers" } -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - (rg --files src/fesa/io/hdf5 -g "*.h" -g "*.cpp") ` - tests/unit/io/hdf5/hdf5_results_writer_test.cpp ` - tests/unit/io/hdf5/hdf5_writer_components_test.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step24.md b/phases/cpp-object-oriented-modular-refactoring/step24.md index 3da13d2..a3330a7 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step24.md +++ b/phases/cpp-object-oriented-modular-refactoring/step24.md @@ -1,27 +1,21 @@ # Step 24: Final Quality and Reference Gate -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd`, `superpowers:verification-before-completion` -- This is the final Implementation-owned verification Step. Execute - `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT` in that literal order. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md` -- `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/reference-model.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-mitc4-shell/requirements.md` -- `/docs/linear-static-mitc4-shell/reference-model.md` -- `/docs/linear-static-mitc4-shell/io.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` - `/tests/reference/b33_reference_comparison_test.cpp` - `/tests/reference/mitc4_reference_cases_test.cpp` - all Step 0–23 summaries and changed files @@ -46,14 +40,14 @@ traceability row를 최종 검증한다. No production behavior is added in this - Assert exact MITC4 S4 input and displacement CSV exist under `/reference/shell/`. - Snapshot/diff reference tree against baseline commit `1e5758f`. 6. COMPARE by running only the approved B33 and MITC4 S4 reference suites. Confirm generated: - - `.harness/build/reference/cantilever-beam-b33/results.h5` - - `.harness/build/reference/mitc4-shell-s4-comparison/results.h5` + - 과거 검증 자료(정리됨) + - 과거 검증 자료(정리됨) 7. CLASSIFY missing/extra/duplicate/nonfinite/tolerance failure before reporting. B33 retains its existing component-scale policy. MITC4 U1/U2/U3 use fixed `1.0e-5`; UR1/UR2/UR3 remain warning-only. 8. REPORT by creating/updating: - - `/docs/cpp-object-oriented-modular-refactoring/implementation-report.md` - - `/docs/cpp-object-oriented-modular-refactoring/build-test.md` - - `/docs/cpp-object-oriented-modular-refactoring/reference-comparison.md` + - `../../docs/cpp-object-oriented-modular-refactoring/README.md` + - `../../docs/cpp-object-oriented-modular-refactoring/README.md` + - `../../docs/cpp-object-oriented-modular-refactoring/README.md` 9. `implementation-report.md` records each Step RED/GREEN/VERIFY command and result summary. 10. `build-test.md` records metadata with `owner_agent: implementation-agent`, environment, command/exit code/duration/output tail, test inventory, classification, no-change assertion, @@ -90,59 +84,11 @@ if ($legacyHeaders.Count -ne 0) { Fresh MSVC build and full tests: -```powershell -$requiredBuildPaths = @( - "C:/git/googletest", - "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl", - "C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb", - "C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -) -foreach ($requiredBuildPath in $requiredBuildPaths) { - if (-not (Test-Path -LiteralPath $requiredBuildPath)) { - throw "Missing $requiredBuildPath" - } -} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ARTIFACT CHECK, COMPARE and post-check: -```powershell -$declaredArtifacts = @( - "reference/cantilever beam/cantilever beam.inp", - "reference/cantilever beam/cantilever beam displacements.csv", - "reference/cantilever beam/cantilever beam elemental forces.csv", - "reference/cantilever beam/cantilever beam reactions.csv", - "reference/shell/shell.inp", - "reference/shell/shell displacements.csv" -) -foreach ($declaredArtifact in $declaredArtifacts) { - if (-not (Test-Path -LiteralPath $declaredArtifact -PathType Leaf)) { - throw "Missing declared artifact: $declaredArtifact" - } -} -git diff --exit-code 1e5758f -- reference -ctest --test-dir .harness/build -C Debug ` - -R "B33ReferenceComparison|Mitc4S4Reference" --output-on-failure -$generatedResults = @( - ".harness/build/reference/cantilever-beam-b33/results.h5", - ".harness/build/reference/mitc4-shell-s4-comparison/results.h5" -) -foreach ($generatedResult in $generatedResults) { - if (-not (Test-Path -LiteralPath $generatedResult -PathType Leaf)) { - throw "Missing generated solver result: $generatedResult" - } -} -git diff --exit-code 1e5758f -- reference -git diff --check -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step3.md b/phases/cpp-object-oriented-modular-refactoring/step3.md index 8cb4d1b..dacfaa8 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step3.md +++ b/phases/cpp-object-oriented-modular-refactoring/step3.md @@ -1,18 +1,15 @@ # Step 3: Foundation Google Style -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - `/include/fesa/core/diagnostic.hpp` - `/include/fesa/core/source_identity.hpp` - `/include/fesa/core/status.hpp` @@ -60,30 +57,7 @@ Requirement `R-STYLE-001`의 foundation slice와 `R-DOC-001`을 구현한다. RED 후 GREEN focused/full verification: -```powershell -cmake -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "DenseMath|SparseAssembly|Status|Diagnostic|LinearSolver|MklPardiso|BuildInfo" ` - --output-on-failure -$files = @( - (rg --files include/fesa/core include/fesa/math include/fesa/solvers/linear ` - -g "*.h"), - "include/fesa/build_info.h", - (rg --files src/fesa/core src/fesa/math src/fesa/solvers/linear -g "*.cpp"), - "src/fesa/build_info.cpp", - (rg --files tests/unit/core tests/unit/math tests/unit/solvers/linear -g "*.cpp"), - "tests/unit/build_info_test.cpp" -) -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror $files -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step4.md b/phases/cpp-object-oriented-modular-refactoring/step4.md index 25e8551..78f9221 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step4.md +++ b/phases/cpp-object-oriented-modular-refactoring/step4.md @@ -1,20 +1,17 @@ # Step 4: Model and Element Google Style -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-mitc4-shell/formulation.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - `/include/fesa/model/domain.hpp`, `/include/fesa/model/model_types.hpp`, `/include/fesa/model/shell_geometry.hpp` - `/src/fesa/model/domain.cpp`, `/src/fesa/model/shell_geometry.cpp` @@ -47,20 +44,7 @@ Requirement `R-STYLE-001`의 model/element slice와 `R-DOC-001`을 구현한다. ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "DomainModel|Mitc4Geometry|EulerBeam3D|Mitc4Shell" --output-on-failure -$files = @( - (rg --files include/fesa/model include/fesa/elements -g "*.h"), - (rg --files src/fesa/model src/fesa/elements -g "*.cpp"), - (rg --files tests/unit/model tests/unit/elements -g "*.cpp") -) -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror $files -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. RED에서는 updated test callsite가 old production API와 불일치해야 한다. GREEN에서는 focused suites와 전체 CTest가 통과해야 한다. diff --git a/phases/cpp-object-oriented-modular-refactoring/step5.md b/phases/cpp-object-oriented-modular-refactoring/step5.md index 79181a8..f2a715a 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step5.md +++ b/phases/cpp-object-oriented-modular-refactoring/step5.md @@ -1,18 +1,15 @@ # Step 5: Solver Workflow Google Style -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - `/include/fesa/analysis/analysis_model.hpp`, `/include/fesa/analysis/analysis_state.hpp`, `/include/fesa/analysis/linear_static_analysis.hpp` @@ -63,24 +60,7 @@ Requirement `R-STYLE-001`의 solver workflow slice와 `R-DOC-001`을 구현한 ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_integration_tests -ctest --test-dir .harness/build -C Debug ` - -R "DofManager|LoadAssembly|SparseAssembly|EssentialConstraints|AnalysisState|ResultRecovery|LinearStaticCli|Mitc4ShellCli" ` - --output-on-failure -$files = @( - (rg --files include/fesa/analysis include/fesa/assembly include/fesa/constraints ` - include/fesa/fem include/fesa/results -g "*.h"), - (rg --files src/fesa/analysis src/fesa/assembly src/fesa/constraints ` - src/fesa/fem src/fesa/results -g "*.cpp"), - (rg --files tests/unit/analysis tests/unit/assembly tests/unit/constraints ` - tests/unit/fem tests/unit/results tests/integration/analysis -g "*.cpp") -) -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror $files -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step6.md b/phases/cpp-object-oriented-modular-refactoring/step6.md index 34de802..6357517 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step6.md +++ b/phases/cpp-object-oriented-modular-refactoring/step6.md @@ -1,20 +1,17 @@ # Step 6: I/O and Application Google Style -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-mitc4-shell/io.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - `/include/fesa/io/abaqus/domain_mapper.hpp`, `/include/fesa/io/abaqus/input_reader.hpp`, `/include/fesa/io/abaqus/input_syntax.hpp` @@ -58,22 +55,7 @@ Requirement `R-STYLE-001`의 I/O/application slice와 `R-DOC-001`을 구현한 ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests ` - fesa_integration_tests fesa_reference_tests -ctest --test-dir .harness/build -C Debug ` - -R "InpSyntax|InpDomainMapping|Hdf5ResultsWriter|FesaApplication|ReferenceComparison|B33ReferenceComparison|Mitc4Reference|Mitc4S4Reference" ` - --output-on-failure -$files = @( - (rg --files include/fesa/io include/fesa/app -g "*.h"), - (rg --files src/fesa/io src/fesa/app -g "*.cpp"), - (rg --files tests/unit/io tests/integration/app tests/reference -g "*.h" -g "*.cpp") -) -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror $files -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step7.md b/phases/cpp-object-oriented-modular-refactoring/step7.md index 90fdd51..36db03f 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step7.md +++ b/phases/cpp-object-oriented-modular-refactoring/step7.md @@ -1,18 +1,15 @@ # Step 7: Vector3 Value Type -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - `/include/fesa/math/vector.h` - `/src/fesa/math/vector.cpp` - `/tests/unit/math/vector_test.cpp` @@ -59,17 +56,7 @@ class Vector3 { ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "Vector3" --output-on-failure -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - include/fesa/math/vector3.h tests/unit/math/vector3_test.cpp -& "C:/Program Files/LLVM/bin/clang-tidy.exe" --config-file=.clang-tidy ` - include/fesa/math/vector3.h -- -x c++ -std=c++17 -Iinclude -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/cpp-object-oriented-modular-refactoring/step8.md b/phases/cpp-object-oriented-modular-refactoring/step8.md index 1fed189..5bdd627 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step8.md +++ b/phases/cpp-object-oriented-modular-refactoring/step8.md @@ -1,18 +1,15 @@ # Step 8: Element and Geometry Vector3 Migration -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-mitc4-shell/formulation.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - `/include/fesa/math/vector3.h`, `/tests/unit/math/vector3_test.cpp` - `/include/fesa/elements/euler_beam_3d.h`, `/src/fesa/elements/euler_beam_3d.cpp` - `/include/fesa/elements/mitc4_shell.h`, `/src/fesa/elements/mitc4_shell.cpp` @@ -40,19 +37,7 @@ Requirement `R-DUP-001`의 element/model consumer migration을 구현한다. ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "Vector3|EulerBeam3D|Mitc4Shell|Mitc4Geometry" --output-on-failure -rg -n "(double|Vector3) (Dot|Cross|Norm|Add|Subtract|Scale)\(" ` - src/fesa/elements src/fesa/model -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - src/fesa/elements/euler_beam_3d.cpp src/fesa/elements/mitc4_shell.cpp ` - src/fesa/model/shell_geometry.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. The `rg` command must return no duplicate local primitive definition; member calls such as `.Dot()` are allowed. diff --git a/phases/cpp-object-oriented-modular-refactoring/step9.md b/phases/cpp-object-oriented-modular-refactoring/step9.md index 660b082..271e2b2 100644 --- a/phases/cpp-object-oriented-modular-refactoring/step9.md +++ b/phases/cpp-object-oriented-modular-refactoring/step9.md @@ -1,19 +1,16 @@ # Step 9: Result and I/O Vector3 Migration -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/cpp-object-oriented-modular-refactoring/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/CODINGSTYLE.md` -- `/docs/ARCHITECTURE.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-mitc4-shell/io.md` -- `/docs/cpp-object-oriented-modular-refactoring/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/cpp-object-oriented-modular-refactoring/README.md` - `/include/fesa/math/vector3.h` - Step 8에서 migration한 element/model files - `/include/fesa/results/result_recovery.h`, `/src/fesa/results/result_recovery.cpp` @@ -41,20 +38,7 @@ Requirement `R-DUP-001`의 remaining production consumers를 구현한다. ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug ` - -R "ResultRecovery|InpDomainMapping|Hdf5ResultsWriter" --output-on-failure -rg -n "(double|Vector3) (Dot|Cross|Norm|Add|Subtract|Scale)\(" ` - src/fesa/results src/fesa/io -& "C:/Program Files/LLVM/bin/clang-format.exe" --dry-run --Werror ` - src/fesa/results/result_recovery.cpp ` - src/fesa/io/abaqus/domain_mapper.cpp ` - src/fesa/io/hdf5/hdf5_results_writer.cpp -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. The duplicate scan must return no local primitive definitions. Existing HDF5 and reference tests must pass without tolerance/schema edits. diff --git a/phases/linear-static-3d-euler-beam/step0.md b/phases/linear-static-3d-euler-beam/step0.md index 2122ad3..98a8a43 100644 --- a/phases/linear-static-3d-euler-beam/step0.md +++ b/phases/linear-static-3d-euler-beam/step0.md @@ -1,23 +1,19 @@ # Step 0: Requirements Baseline -## 담당 역할과 필수 스킬 - -- 담당 역할: `requirement-agent` -- 필수 스킬: `fesa-requirements-baseline` -- 작업을 시작하기 전에 위 스킬의 `SKILL.md`를 끝까지 읽고 경계를 준수하라. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 먼저 아래 파일을 읽고 승인된 범위와 프로젝트 규칙을 파악하라. - `/AGENTS.md` -- `/docs/PRD.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/SOLVER_AGENT_DESIGN.md` -- `/.codex/skills/fesa-requirements-baseline/SKILL.md` -- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` - `/reference/cantilever beam/cantilever beam.inp` 승인된 설계 문서의 `status: approved`와 2026-08-09 amendment를 이 step의 사용자 승인 @@ -25,7 +21,7 @@ ## 작업 -`docs/linear-static-3d-euler-beam/requirements.md`를 생성하라. 문서는 다음 계약을 +`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라. 문서는 다음 계약을 downstream agent가 추측 없이 사용할 수 있는 `shall` 요구조건과 검증 행렬로 바꿔야 한다. - Metadata: `feature_id: linear-static-3d-euler-beam`, `status: approved`, diff --git a/phases/linear-static-3d-euler-beam/step1.md b/phases/linear-static-3d-euler-beam/step1.md index 3619395..078d396 100644 --- a/phases/linear-static-3d-euler-beam/step1.md +++ b/phases/linear-static-3d-euler-beam/step1.md @@ -1,26 +1,22 @@ # Step 1: Research Evidence -## 담당 역할과 필수 스킬 - -- 담당 역할: `research-agent` -- 필수 스킬: `fesa-research-evidence`, `fem-theory-query` -- 두 스킬의 `SKILL.md`를 끝까지 읽고, FEM wiki query를 우선 사용하라. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/SOLVER_AGENT_DESIGN.md` -- `/.codex/skills/fesa-research-evidence/SKILL.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` Step 0 산출물과 phase index의 완료 summary를 확인한 뒤 작업하라. ## 작업 FEM wiki에서 다음 연구 질문을 query하고 -`docs/linear-static-3d-euler-beam/research.md`를 생성하라. +`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라. - Abaqus B31과 B33의 formulation 차이 및 B33을 Euler–Bernoulli 의미로 사용하는 근거 - 2절점 spatial Euler beam의 cubic Hermite interpolation, 6 rigid modes, rank 6, diff --git a/phases/linear-static-3d-euler-beam/step10.md b/phases/linear-static-3d-euler-beam/step10.md index f6c6c89..a965806 100644 --- a/phases/linear-static-3d-euler-beam/step10.md +++ b/phases/linear-static-3d-euler-beam/step10.md @@ -1,19 +1,16 @@ # Step 10: Domain Model -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/core/source_identity.hpp` - `/include/fesa/core/status.hpp` - `/src/fesa/CMakeLists.txt` @@ -67,29 +64,16 @@ insertion order/index, deep ownership, const access, one static step storage, eq RED targeted command 후 최소 구현으로 GREEN을 만든다. -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R DomainModel --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R DomainModel --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 1. Domain tests를 먼저 추가하고 compile/test RED를 확인한다. 2. 최소 semantic types와 immutable Domain ownership으로 GREEN을 만든다. 3. full VERIFY와 public dependency direction을 확인한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 10 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 10을 `completed`로 갱신하고 model types/stable identity를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step11.md b/phases/linear-static-3d-euler-beam/step11.md index bbdf622..8eafe4d 100644 --- a/phases/linear-static-3d-euler-beam/step11.md +++ b/phases/linear-static-3d-euler-beam/step11.md @@ -1,18 +1,15 @@ # Step 11: Abaqus INP Syntax Parser -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/core/diagnostic.hpp` - `/include/fesa/core/status.hpp` - `/src/fesa/CMakeLists.txt` @@ -64,31 +61,18 @@ malformed syntax, legacy cantilever syntax parse를 포함하고 `InpSyntax` reg RED targeted command: -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R InpSyntax --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R InpSyntax --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 1. syntax tests를 먼저 추가하고 reader 부재 RED를 확인한다. 2. semantic 판단이 없는 최소 reader로 GREEN을 만든다. 3. legacy input을 read-only fixture로 읽고 전체 VERIFY를 수행한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 11 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 11을 `completed`로 갱신하고 parsed syntax/source-location evidence를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step12.md b/phases/linear-static-3d-euler-beam/step12.md index ad48448..0fcf4a7 100644 --- a/phases/linear-static-3d-euler-beam/step12.md +++ b/phases/linear-static-3d-euler-beam/step12.md @@ -1,20 +1,17 @@ # Step 12: INP to Domain Mapping -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/model/model_types.hpp` - `/include/fesa/model/domain.hpp` - `/src/fesa/model/domain.cpp` @@ -79,31 +76,18 @@ duplicate/dangling/invalid numeric와 approved legacy input mapping을 포함하 RED targeted command: -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R InpDomainMapping --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R InpDomainMapping --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 1. semantic positive/negative tests를 production mapper보다 먼저 작성하고 RED를 확인한다. 2. 승인 subset에 필요한 최소 mapping/validation만 구현해 GREEN을 만든다. 3. diagnostic field/order와 Domain non-mutation을 점검하고 전체 VERIFY를 수행한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 12 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 12를 `completed`로 갱신하고 supported mapping/negative diagnostics를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step13.md b/phases/linear-static-3d-euler-beam/step13.md index 1218e47..88ba591 100644 --- a/phases/linear-static-3d-euler-beam/step13.md +++ b/phases/linear-static-3d-euler-beam/step13.md @@ -1,17 +1,15 @@ # Step 13: AnalysisModel Active View -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/model/model_types.hpp` - `/include/fesa/model/domain.hpp` - `/src/fesa/model/domain.cpp` @@ -60,31 +58,18 @@ Domain 불변성, missing/multiple step rejection을 포함하고 `AnalysisModel RED targeted command: -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R AnalysisModel --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R AnalysisModel --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 1. active-view tests를 먼저 작성하고 missing class/behavior RED를 확인한다. 2. stable ID view의 최소 구현으로 GREEN을 만든다. 3. Domain address/state 불변성과 전체 MSVC x64 Debug VERIFY를 확인한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 13 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 13을 `completed`로 바꾸고 active view/non-copy evidence를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step14.md b/phases/linear-static-3d-euler-beam/step14.md index 153e80d..b68dc2d 100644 --- a/phases/linear-static-3d-euler-beam/step14.md +++ b/phases/linear-static-3d-euler-beam/step14.md @@ -1,19 +1,16 @@ # Step 14: DofManager -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/model/domain.hpp` - `/include/fesa/analysis/analysis_model.hpp` - `/src/fesa/analysis/analysis_model.cpp` @@ -67,31 +64,18 @@ round-trip를 포함하고 `DofManager` regex로 등록한다. ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R DofManager --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 위 command의 RED를 확인한 뒤 구현하고 다음 GREEN/VERIFY를 실행한다. -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R DofManager --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 1. numbering/constraint/pattern tests를 먼저 작성하고 RED를 확인한다. 2. deterministic mapping에 필요한 최소 구현으로 GREEN을 만든다. 3. model objects에 equation ID가 추가되지 않았는지 review하고 full VERIFY를 수행한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 14 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 14를 `completed`로 갱신하고 numbering/pattern evidence를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step15.md b/phases/linear-static-3d-euler-beam/step15.md index 8106b93..6582cd0 100644 --- a/phases/linear-static-3d-euler-beam/step15.md +++ b/phases/linear-static-3d-euler-beam/step15.md @@ -1,19 +1,16 @@ # Step 15: AnalysisState -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/math/vector.hpp` - `/include/fesa/analysis/analysis_model.hpp` - `/include/fesa/fem/dof_manager.hpp` @@ -66,31 +63,18 @@ copy/move policy, forbidden-state API 부재 review를 포함하고 `AnalysisSta ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R AnalysisState --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. RED 후 GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R AnalysisState --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 1. state ownership tests를 먼저 작성하고 RED를 확인한다. 2. V0에서 필요한 field만 최소 구현해 GREEN을 만든다. 3. 전체 VERIFY와 output row identity/order를 확인한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 15 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 15를 `completed`로 갱신하고 allocated fields/omitted fields를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step16.md b/phases/linear-static-3d-euler-beam/step16.md index 6cecf2a..ceaa813 100644 --- a/phases/linear-static-3d-euler-beam/step16.md +++ b/phases/linear-static-3d-euler-beam/step16.md @@ -1,25 +1,23 @@ # Step 16: 3D Euler Beam Element -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-3d-euler-beam/numerical-review.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/math/vector.hpp` - `/include/fesa/math/matrix.hpp` - `/include/fesa/model/model_types.hpp` - `/include/fesa/results/result_records.hpp` -- `/docs/linear-static-3d-euler-beam/implementation-report.md` +- `../../docs/linear-static-3d-euler-beam/README.md` ## 소유 파일 @@ -75,31 +73,18 @@ stress formula를 포함하고 `EulerBeam3D` regex로 등록한다. ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R EulerBeam3D --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. RED 후 GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R EulerBeam3D --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 1. formulation invariant/analytical tests를 먼저 작성해 RED를 확인한다. 2. 가장 작은 kernel 구현으로 GREEN을 만들고 normalized tolerance를 그대로 적용한다. 3. 수식/코드 component ordering을 대조하고 전체 MSVC x64 Debug VERIFY를 수행한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 16 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 16을 `completed`로 갱신하고 element/recovery test evidence를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step17.md b/phases/linear-static-3d-euler-beam/step17.md index 53575fc..c5047ce 100644 --- a/phases/linear-static-3d-euler-beam/step17.md +++ b/phases/linear-static-3d-euler-beam/step17.md @@ -1,17 +1,14 @@ # Step 17: oneTBB ParallelFor Adapter -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/core/status.hpp` - `/include/fesa/elements/euler_beam_3d.hpp` - `/src/fesa/elements/euler_beam_3d.cpp` @@ -54,27 +51,11 @@ index-addressed output, exception propagation policy를 검증하고 `ParallelFo ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R ParallelFor --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. RED 후 GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R ParallelFor --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -$leaks = rg -n "oneapi/tbb|tbb/" include/fesa -if ($LASTEXITCODE -eq 0) { throw "oneTBB API leaked into public headers:`n$leaks" } -if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' } -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 마지막 scan은 public header에서 no-match여야 한다. @@ -83,7 +64,7 @@ if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' } 1. adapter conformance tests를 먼저 작성하고 RED를 확인한다. 2. Serial과 oneTBB 최소 구현으로 GREEN을 만든다. 3. public boundary scan과 전체 VERIFY를 실행한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 17 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 17을 `completed`로 갱신하고 deterministic-use contract를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step18.md b/phases/linear-static-3d-euler-beam/step18.md index 18202d2..75a0f72 100644 --- a/phases/linear-static-3d-euler-beam/step18.md +++ b/phases/linear-static-3d-euler-beam/step18.md @@ -1,18 +1,15 @@ # Step 18: Deterministic Sparse Assembly -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/math/vector.hpp` - `/include/fesa/math/matrix.hpp` - `/include/fesa/fem/dof_manager.hpp` @@ -72,31 +69,18 @@ serial-vs-TBB byte-identical row/column/value vectors, repeated runs를 포함 ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R SparseAssembly --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. RED 후 GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R SparseAssembly --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 1. CSR invariant/determinism tests를 먼저 작성하고 RED를 확인한다. 2. ordered COO reduction과 CSR ownership의 최소 구현으로 GREEN을 만든다. 3. repeated serial/TBB equivalence와 전체 VERIFY를 수행한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 18 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 18을 `completed`로 갱신하고 CSR/determinism evidence를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step19.md b/phases/linear-static-3d-euler-beam/step19.md index e4600be..e987384 100644 --- a/phases/linear-static-3d-euler-beam/step19.md +++ b/phases/linear-static-3d-euler-beam/step19.md @@ -1,19 +1,16 @@ # Step 19: Essential Constraints and Matrix Partition -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/math/vector.hpp` - `/include/fesa/math/sparse_matrix.hpp` - `/include/fesa/fem/dof_manager.hpp` @@ -62,31 +59,18 @@ full-free-constrained round trip, invalid dimensions/order를 검증하고 ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R EssentialConstraints --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. RED 후 GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R EssentialConstraints --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 1. partition/mapping tests를 먼저 추가하고 RED를 확인한다. 2. elimination에 필요한 최소 block extraction으로 GREEN을 만든다. 3. nonzero `dc`와 전체 VERIFY를 확인한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 19 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 19를 `completed`로 갱신하고 partition/reconstruction evidence를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step2.md b/phases/linear-static-3d-euler-beam/step2.md index dc54fc6..f172369 100644 --- a/phases/linear-static-3d-euler-beam/step2.md +++ b/phases/linear-static-3d-euler-beam/step2.md @@ -1,26 +1,22 @@ # Step 2: Formulation Alignment -## 담당 역할과 필수 스킬 - -- 담당 역할: `formulation-agent` -- 필수 스킬: `fesa-formulation-spec` -- 스킬의 `SKILL.md`를 끝까지 읽고 수학 계약과 구현 계약의 경계를 지켜라. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/SOLVER_AGENT_DESIGN.md` -- `/.codex/skills/fesa-formulation-spec/SKILL.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/research.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/solver-core/README.md` Step 0–1 산출물과 완료 summary를 확인하라. ## 작업 -기존 `docs/linear-static-3d-euler-beam/formulation.md`를 승인된 V0 요구조건과 +기존 `../../docs/linear-static-3d-euler-beam/formulation.md`를 승인된 V0 요구조건과 연구 근거에 맞춰 정렬하라. 기존 정식화의 정확한 수학적 의미를 유지해야 하며, 이 step은 새 요소를 다시 설계하는 작업이 아니다. diff --git a/phases/linear-static-3d-euler-beam/step20.md b/phases/linear-static-3d-euler-beam/step20.md index d22f89f..edc1246 100644 --- a/phases/linear-static-3d-euler-beam/step20.md +++ b/phases/linear-static-3d-euler-beam/step20.md @@ -1,18 +1,15 @@ # Step 20: MKL PARDISO Linear Solver -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/core/status.hpp` - `/include/fesa/core/diagnostic.hpp` - `/include/fesa/math/vector.hpp` @@ -68,27 +65,11 @@ singular/indefinite matrix, solve-before-factorize, dimension mismatch를 포함 ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R MklPardisoSolver --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. RED 후 GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R MklPardisoSolver --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -$leaks = rg -n "mkl\.h|MKL_INT|pardiso" include/fesa -if ($LASTEXITCODE -eq 0) { throw "PARDISO API leaked into public headers:`n$leaks" } -if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' } -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 마지막 scan은 public header에서 no-match여야 한다. @@ -97,7 +78,7 @@ if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' } 1. adapter tests를 먼저 작성하고 missing solver RED를 확인한다. 2. factorize/solve phase를 분리한 최소 PARDISO adapter로 GREEN을 만든다. 3. repeated RHS, RAII, residual, public boundary와 전체 VERIFY를 확인한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 20 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 20을 `completed`로 갱신하고 factorization/substitution evidence를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step21.md b/phases/linear-static-3d-euler-beam/step21.md index 8720722..bcaca94 100644 --- a/phases/linear-static-3d-euler-beam/step21.md +++ b/phases/linear-static-3d-euler-beam/step21.md @@ -1,20 +1,17 @@ # Step 21: Nodal Load Assembly and Effective RHS -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/analysis/analysis_model.hpp` - `/include/fesa/fem/dof_manager.hpp` - `/include/fesa/constraints/essential_constraints.hpp` @@ -57,31 +54,18 @@ zero loads를 포함하고 `LoadAssembly` regex로 등록한다. ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R LoadAssembly --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. RED 후 GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R LoadAssembly --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 1. nodal load/effective RHS tests를 먼저 작성하고 RED를 확인한다. 2. nodal-only deterministic assembly와 RHS 최소 구현으로 GREEN을 만든다. 3. nonzero prescribed displacement와 전체 VERIFY를 확인한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 21 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 21을 `completed`로 갱신하고 load/RHS evidence를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step22.md b/phases/linear-static-3d-euler-beam/step22.md index 23b05e6..5e39649 100644 --- a/phases/linear-static-3d-euler-beam/step22.md +++ b/phases/linear-static-3d-euler-beam/step22.md @@ -1,20 +1,17 @@ # Step 22: Result Recovery -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/analysis/analysis_model.hpp` - `/include/fesa/analysis/analysis_state.hpp` - `/include/fesa/fem/dof_manager.hpp` @@ -64,31 +61,18 @@ interior endpoint match/mismatch와 stable representative를 포함하고 `Resul ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R ResultRecovery --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. RED 후 GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R ResultRecovery --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 1. reaction/recovery/sign/normalization tests를 먼저 작성하고 RED를 확인한다. 2. residual 기반 최소 recovery 구현으로 GREEN을 만든다. 3. formulation component ordering과 full VERIFY를 확인한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 22 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 22를 `completed`로 갱신하고 recovered quantities/residual evidence를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step23.md b/phases/linear-static-3d-euler-beam/step23.md index b4d2982..cfbee8b 100644 --- a/phases/linear-static-3d-euler-beam/step23.md +++ b/phases/linear-static-3d-euler-beam/step23.md @@ -1,19 +1,16 @@ # Step 23: HDF5 Results Writer -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/core/diagnostic.hpp` - `/include/fesa/model/domain.hpp` - `/include/fesa/analysis/analysis_state.hpp` @@ -84,27 +81,11 @@ points centroid, failed path/no partial final, successful replacement을 포함 ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R Hdf5ResultsWriter --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. RED 후 GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R Hdf5ResultsWriter --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -$leaks = rg -n "H5[A-Z_a-z0-9]*|hid_t" include/fesa -if ($LASTEXITCODE -eq 0) { throw "HDF5 API leaked into public headers:`n$leaks" } -if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' } -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 마지막 scan은 public header에서 no-match여야 한다. @@ -113,7 +94,7 @@ if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' } 1. schema/atomicity tests를 먼저 작성하고 writer 부재 RED를 확인한다. 2. exact schema와 RAII/temporary finalization의 최소 구현으로 GREEN을 만든다. 3. HDF5 inspection, failure cleanup, public boundary와 전체 VERIFY를 확인한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 23 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 23을 `completed`로 갱신하고 schema/atomicity evidence를 summary에 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step24.md b/phases/linear-static-3d-euler-beam/step24.md index afb07dd..f86c80d 100644 --- a/phases/linear-static-3d-euler-beam/step24.md +++ b/phases/linear-static-3d-euler-beam/step24.md @@ -1,21 +1,18 @@ # Step 24: Linear Static Orchestration and CLI -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 모든 C++ build/test와 최종 VERIFY는 MSVC x64 Debug 기준으로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/reference-model.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/io/abaqus/input_reader.hpp` - `/include/fesa/io/abaqus/domain_mapper.hpp` - `/include/fesa/analysis/analysis_model.hpp` @@ -102,7 +99,7 @@ executable target은 내부 이름이 다르더라도 `OUTPUT_NAME fesa`를 설 Test-only reference support를 `tests/reference/` 아래 구현하라. -- approved input으로 `.harness/build/reference/cantilever-beam-b33/results.h5`를 생성한다. +- approved input으로 과거 검증 자료(정리됨)를 생성한다. - legacy displacement/reaction/elemental-force CSV를 read-only로 parse하고 실제 CAE header `U-U*`, `UR-UR*`, `RF-RF*`, `RM-RM*`, `SF-SF1`, `SM-SM*`을 canonical component로 normalize한다. - row matching 전에 expected header, B33 input, unique identity, missing/extra/nonfinite를 검사한다. @@ -111,7 +108,7 @@ Test-only reference support를 `tests/reference/` 아래 구현하라. - section resultants는 node station과 `SF1->N`, `SM1->My`, `SM2->Mz`, `SM3->T`로 비교한다. - Stress comparison은 N/A로 기록하되 HDF5 stress dataset/test 통과를 요구한다. - max absolute, component-scale normalized, RMS, norm, worst row/component를 - `.harness/build/reference/cantilever-beam-b33/comparison.json`에 결정적으로 기록한다. + 과거 검증 자료(정리됨)에 결정적으로 기록한다. - 같은 JSON에 matched FESA/reference rows, full free residual norm, applied/reaction force와 origin 기준 moment 합, endpoint consistency를 `physics_evidence`로 기록해 Step 27이 source/test 변경 없이 물리 sanity를 독립 검토할 수 있게 한다. @@ -123,27 +120,11 @@ CTest regex/label은 `LinearStaticCli`, `ReferenceComparisonContract`, ## Acceptance Criteria -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R "LinearStaticCli|ReferenceComparisonContract|B33ReferenceComparison" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 위 command에서 missing orchestration/CLI/reference utility RED를 확인한 후 구현한다. -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "LinearStaticCli|ReferenceComparisonContract|B33ReferenceComparison" --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -if (-not (Test-Path '.harness/build/reference/cantilever-beam-b33/results.h5')) { throw 'Missing reference-run HDF5' } -if (-not (Test-Path '.harness/build/reference/cantilever-beam-b33/comparison.json')) { throw 'Missing comparison metrics' } -git diff --exit-code -- reference/ -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 @@ -151,7 +132,7 @@ git diff --exit-code -- reference/ 2. exact lifecycle과 minimal CLI/test utility로 targeted GREEN을 만든다. 3. approved input end-to-end, comparison metrics, CTest discovery/full VERIFY를 실행한다. 4. reference artifacts가 unchanged인지 확인한다. -5. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +5. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 24 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output, 변경 파일과 generated HDF5/comparison evidence를 기록한다. 6. Step 24를 `completed`로 갱신하고 CLI path, exit codes, generated HDF5/metrics와 diff --git a/phases/linear-static-3d-euler-beam/step25.md b/phases/linear-static-3d-euler-beam/step25.md index 1292089..12b2bcc 100644 --- a/phases/linear-static-3d-euler-beam/step25.md +++ b/phases/linear-static-3d-euler-beam/step25.md @@ -1,30 +1,26 @@ # Step 25: Build and Test Verification -## 담당 역할과 필수 스킬 - -- 담당 역할: `build-test-executor-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 이 step은 검증과 보고만 수행한다. 실패를 production 변경으로 덮지 않는다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` -- `/docs/linear-static-3d-euler-beam/implementation-report.md` -- `/docs/linear-static-3d-euler-beam/numerical-review.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/reference-model.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/CMakeLists.txt`와 모든 CMake/test registration - `/phases/linear-static-3d-euler-beam/index.json`의 Step 7–24 summary ## 작업 fresh MSVC x64 Debug configure/build/test evidence를 수집해 -`docs/linear-static-3d-euler-beam/build-test.md`를 생성하라. +`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라. - Metadata status는 모든 gate 통과 시 `pass-for-reference-verification`이다. - Environment/dependency revision과 config-resolved command를 기록한다. @@ -40,18 +36,7 @@ fresh MSVC x64 Debug configure/build/test evidence를 수집해 아래 명령을 fresh evidence로 실행한다. -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -$discovery = ctest --test-dir .harness/build -C Debug --show-only=json-v1 | ConvertFrom-Json -if ($discovery.tests.Count -lt 1) { throw 'CTest discovered zero tests' } -ctest --test-dir .harness/build -C Debug -L linear-static-3d-euler-beam --output-on-failure -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Report structural check: diff --git a/phases/linear-static-3d-euler-beam/step26.md b/phases/linear-static-3d-euler-beam/step26.md index 538b62a..8f0e718 100644 --- a/phases/linear-static-3d-euler-beam/step26.md +++ b/phases/linear-static-3d-euler-beam/step26.md @@ -1,22 +1,18 @@ # Step 26: Abaqus B33 Reference Verification -## 담당 역할과 필수 스킬 - -- 담당 역할: `reference-verification-agent` -- 필수 스킬: `fesa-reference-comparison` -- `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT` 순서를 지켜라. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/docs/linear-static-3d-euler-beam/build-test.md` -- `/docs/linear-static-3d-euler-beam/reference-model.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/implementation-report.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/reference/cantilever beam/cantilever beam.inp` - `/reference/cantilever beam/cantilever beam displacements.csv` - `/reference/cantilever beam/cantilever beam reactions.csv` @@ -28,7 +24,7 @@ Build/Test report status가 `pass-for-reference-verification`인지 먼저 확인한다. 통과했다면 승인 input으로 solver output을 재생성하고, test-only comparison utility가 기록한 raw normalized rows/metrics를 독립 검토해 -`docs/linear-static-3d-euler-beam/reference-comparison.md`를 작성하라. +`../../docs/linear-static-3d-euler-beam/README.md`를 작성하라. Artifact check: @@ -60,18 +56,7 @@ source/test/CMake/reference/tolerance가 모두 unchanged임을 기록한다. ## Acceptance Criteria -```powershell -if (-not (Select-String -LiteralPath 'docs/linear-static-3d-euler-beam/build-test.md' ` - -SimpleMatch 'status: `pass-for-reference-verification`' -Quiet)) { - throw 'Build/test gate is not passing' -} -ctest --test-dir .harness/build -C Debug -R B33ReferenceComparison -V --output-on-failure -$metricsPath = '.harness/build/reference/cantilever-beam-b33/comparison.json' -if (-not (Test-Path $metricsPath)) { throw 'Missing comparison metrics' } -$metrics = Get-Content -Raw $metricsPath | ConvertFrom-Json -if ($metrics.passed -ne $true) { throw "Reference comparison failed: passed=$($metrics.passed)" } -git diff --exit-code -- reference/ -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ```powershell $path = 'docs/linear-static-3d-euler-beam/reference-comparison.md' diff --git a/phases/linear-static-3d-euler-beam/step27.md b/phases/linear-static-3d-euler-beam/step27.md index ad9c1eb..2542534 100644 --- a/phases/linear-static-3d-euler-beam/step27.md +++ b/phases/linear-static-3d-euler-beam/step27.md @@ -1,31 +1,27 @@ # Step 27: Physics Sanity -## 담당 역할과 필수 스킬 - -- 담당 역할: `physics-evaluation-agent` -- 필수 스킬: `fesa-physics-sanity` -- reference tolerance를 다시 판정하지 말고 documented physical expectation만 평가하라. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/.codex/skills/fesa-physics-sanity/SKILL.md` -- `/docs/linear-static-3d-euler-beam/reference-comparison.md` -- `/docs/linear-static-3d-euler-beam/reference-model.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-3d-euler-beam/numerical-review.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/.harness/build/reference/cantilever-beam-b33/results.h5` -- `/.harness/build/reference/cantilever-beam-b33/comparison.json` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- 과거 검증 자료(정리됨) +- 과거 검증 자료(정리됨) - `/reference/cantilever beam/`의 승인된 read-only artifact ## 작업 Reference Verification status가 `pass-for-physics-evaluation`인지 먼저 확인하고 -`docs/linear-static-3d-euler-beam/physics-evaluation.md`를 생성하라. +`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라. 다음 physical check를 documented expectation과 observed HDF5/comparison evidence로 각각 판정한다. @@ -47,17 +43,7 @@ Stress는 Abaqus reference comparison 없이 schema/unit/analytical evidence로 ## Acceptance Criteria -```powershell -$referenceReport = 'docs/linear-static-3d-euler-beam/reference-comparison.md' -if (-not (Select-String -LiteralPath $referenceReport ` - -SimpleMatch 'status: `pass-for-physics-evaluation`' -Quiet)) { - throw 'Reference verification gate is not passing' -} -ctest --test-dir .harness/build -C Debug -R "EulerBeam3D|ResultRecovery|B33ReferenceComparison" --output-on-failure -if (-not (Test-Path '.harness/build/reference/cantilever-beam-b33/results.h5')) { throw 'Missing solver HDF5 evidence' } -if (-not (Test-Path '.harness/build/reference/cantilever-beam-b33/comparison.json')) { throw 'Missing normalized comparison/physics evidence' } -git diff --exit-code -- reference/ -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ```powershell $path = 'docs/linear-static-3d-euler-beam/physics-evaluation.md' diff --git a/phases/linear-static-3d-euler-beam/step28.md b/phases/linear-static-3d-euler-beam/step28.md index e35654e..b520270 100644 --- a/phases/linear-static-3d-euler-beam/step28.md +++ b/phases/linear-static-3d-euler-beam/step28.md @@ -1,35 +1,31 @@ # Step 28: Release Readiness -## 담당 역할과 필수 스킬 - -- 담당 역할: `release-agent` -- 필수 스킬: `fesa-release-readiness` -- `GATE AUDIT -> TRACEABILITY CHECK -> RELEASE DOCUMENTATION -> RELEASE VERDICT` 순서를 지켜라. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/PRD.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/.codex/skills/fesa-release-readiness/SKILL.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/research.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-3d-euler-beam/numerical-review.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/reference-model.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` -- `/docs/linear-static-3d-euler-beam/implementation-report.md` -- `/docs/linear-static-3d-euler-beam/build-test.md` -- `/docs/linear-static-3d-euler-beam/reference-comparison.md` -- `/docs/linear-static-3d-euler-beam/physics-evaluation.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/phases/linear-static-3d-euler-beam/index.json`의 모든 completed summary ## 작업 모든 gate evidence를 감사하고 -`docs/linear-static-3d-euler-beam/release.md`를 생성하라. +`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라. - 같은 feature ID, source design revision, implementation scope와 artifact identity가 모든 문서에서 일치하는지 확인한다. diff --git a/phases/linear-static-3d-euler-beam/step3.md b/phases/linear-static-3d-euler-beam/step3.md index 2489460..d5b89a5 100644 --- a/phases/linear-static-3d-euler-beam/step3.md +++ b/phases/linear-static-3d-euler-beam/step3.md @@ -1,24 +1,20 @@ # Step 3: Numerical Review -## 담당 역할과 필수 스킬 - -- 담당 역할: `numerical-review-agent` -- 필수 스킬: `fesa-numerical-review` -- 스킬을 끝까지 읽고 formulation 작성자와 독립된 reviewer 관점으로 작업하라. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/SOLVER_AGENT_DESIGN.md` -- `/.codex/skills/fesa-numerical-review/SKILL.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/research.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/solver-core/README.md` ## 작업 -`docs/linear-static-3d-euler-beam/numerical-review.md`를 생성해 구현 전 수치 +`../../docs/linear-static-3d-euler-beam/README.md`를 생성해 구현 전 수치 검토를 수행하라. - Metadata와 `Review Verdict`를 포함하고 통과 시 diff --git a/phases/linear-static-3d-euler-beam/step4.md b/phases/linear-static-3d-euler-beam/step4.md index fd6efe7..90b225b 100644 --- a/phases/linear-static-3d-euler-beam/step4.md +++ b/phases/linear-static-3d-euler-beam/step4.md @@ -1,20 +1,16 @@ # Step 4: I/O Contract -## 담당 역할과 필수 스킬 - -- 담당 역할: `io-definition-agent` -- 필수 스킬: `fesa-io-contract` -- 스킬을 끝까지 읽고 semantic contract만 정의하라. C++ API는 다음 gate가 담당한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/SOLVER_AGENT_DESIGN.md` -- `/.codex/skills/fesa-io-contract/SKILL.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-3d-euler-beam/numerical-review.md` -- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/solver-core/README.md` - `/reference/cantilever beam/cantilever beam.inp` - `/reference/cantilever beam/cantilever beam displacements.csv` - `/reference/cantilever beam/cantilever beam reactions.csv` @@ -22,7 +18,7 @@ ## 작업 -`docs/linear-static-3d-euler-beam/io.md`를 생성하라. Metadata status는 +`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라. Metadata status는 `ready-for-implementation-planning`으로 둔다. - 지원 keyword별 위치, parameter, data grammar, case policy, source-location 보존, diff --git a/phases/linear-static-3d-euler-beam/step5.md b/phases/linear-static-3d-euler-beam/step5.md index 70b6bca..4523f8c 100644 --- a/phases/linear-static-3d-euler-beam/step5.md +++ b/phases/linear-static-3d-euler-beam/step5.md @@ -1,22 +1,18 @@ # Step 5: Reference Model Contract -## 담당 역할과 필수 스킬 - -- 담당 역할: `reference-model-agent` -- 필수 스킬: `fesa-reference-models` -- 스킬을 끝까지 읽고 artifact 설계와 artifact 생성의 경계를 준수하라. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/SOLVER_AGENT_DESIGN.md` -- `/.codex/skills/fesa-numerical-review/SKILL.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/research.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-3d-euler-beam/numerical-review.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/solver-core/README.md` - `/reference/cantilever beam/cantilever beam.inp` - `/reference/cantilever beam/cantilever beam displacements.csv` - `/reference/cantilever beam/cantilever beam reactions.csv` @@ -24,7 +20,7 @@ ## 작업 -`docs/linear-static-3d-euler-beam/reference-model.md`를 생성하라. +`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라. Metadata status는 `ready-for-implementation-planning`으로 둔다. - code verification, analytical solution verification, B33 reference comparison을 분리한다. diff --git a/phases/linear-static-3d-euler-beam/step6.md b/phases/linear-static-3d-euler-beam/step6.md index 806ef16..eefea4d 100644 --- a/phases/linear-static-3d-euler-beam/step6.md +++ b/phases/linear-static-3d-euler-beam/step6.md @@ -1,30 +1,24 @@ # Step 6: Implementation Plan -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-planning-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 스킬의 planning workflow를 끝까지 읽고 코드나 테스트를 작성하지 않은 채 계획만 작성하라. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/SOLVER_AGENT_DESIGN.md` -- `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/.codex/agents/implementation-planning-agent.toml` -- `/.codex/agents/correction-agent.toml` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/research.md` -- `/docs/linear-static-3d-euler-beam/formulation.md` -- `/docs/linear-static-3d-euler-beam/numerical-review.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/reference-model.md` -- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/formulation.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/solver-core/README.md` - `/phases/linear-static-3d-euler-beam/step7.md`부터 `/step24.md`까지 ## 작업 -`docs/linear-static-3d-euler-beam/implementation-plan.md`를 생성하라. 승인 설계가 이 +`../../docs/linear-static-3d-euler-beam/README.md`를 생성하라. 승인 설계가 이 경로를 명시하므로 README의 기본 suffix보다 이 경로를 우선한다. - Metadata와 Readiness Check를 작성하고 upstream status가 모두 준비된 경우 @@ -48,36 +42,7 @@ ## Acceptance Criteria -```powershell -$path = 'docs/linear-static-3d-euler-beam/implementation-plan.md' -if (-not (Test-Path $path)) { throw "Missing $path" } -$required = @( - 'status: `ready-for-implementation`', - '## Readiness Check', - '## Work Breakdown', - '## TDD Test Plan', - '## CMake and CTest Plan', - '## Acceptance Traceability Matrix', - 'cmake -S . -B .harness/build -A x64', - 'ctest --test-dir .harness/build -C Debug --output-on-failure', - 'reference/cantilever beam/' -) -foreach ($text in $required) { - if (-not (Select-String -LiteralPath $path -SimpleMatch $text -Quiet)) { - throw "Missing implementation-plan contract: $text" - } -} -$modules = @('cmake-test-foundation','core-diagnostics','dense-math-adapters','domain-model', - 'inp-syntax-parser','inp-domain-mapping','analysis-model','dof-manager','analysis-state', - 'euler-beam-element','parallel-for-tbb','sparse-assembly','essential-constraints', - 'mkl-pardiso-solver','load-assembly','result-recovery','hdf5-results-writer','linear-static-cli') -foreach ($module in $modules) { - if (-not (Select-String -LiteralPath $path -SimpleMatch $module -Quiet)) { - throw "Missing work-breakdown module: $module" - } -} -git diff --check -- $path -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 diff --git a/phases/linear-static-3d-euler-beam/step7.md b/phases/linear-static-3d-euler-beam/step7.md index 5ac5256..ae54c68 100644 --- a/phases/linear-static-3d-euler-beam/step7.md +++ b/phases/linear-static-3d-euler-beam/step7.md @@ -1,20 +1,17 @@ # Step 7: CMake and GoogleTest Foundation -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` -- 구현 전에 스킬과 Step 6 implementation plan을 끝까지 읽어라. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` -- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md` -- `/docs/HARNESS_WORKFLOW.md` -- `/docs/HARNESS.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` - `/CMakeLists.txt`가 이미 생겼다면 그 파일 ## 소유 파일 @@ -26,7 +23,7 @@ - Create: `/src/fesa/CMakeLists.txt` - Create: `/tests/CMakeLists.txt` - Create: `/tests/unit/build_info_test.cpp` -- Create: `/docs/linear-static-3d-euler-beam/implementation-report.md` +- Create: `../../docs/linear-static-3d-euler-beam/README.md` ## 작업 @@ -44,7 +41,7 @@ MSVC x64 Debug에서 이후 모든 C++ step을 TDD로 실행할 최소 build/tes - `tests/CMakeLists.txt`, `tests/unit/build_info_test.cpp`: GoogleTest 연결, `gtest_discover_tests`, `BuildInfo` regex와 공통 `linear-static-3d-euler-beam` label을 가진 최소 제품 test. 이후 이 phase의 모든 CTest는 같은 공통 label을 상속한다. -- `docs/linear-static-3d-euler-beam/implementation-report.md`: +- `../../docs/linear-static-3d-euler-beam/README.md`: feature metadata, dependency/configure evidence와 Step 7–24별 RED/GREEN/VERIFY command, exit code, 핵심 output, 변경 파일, requirement/test trace를 누적할 implementation report. @@ -66,21 +63,7 @@ if ($gtestRevision -ne '04ee1b4f2aefdffb0135d7cf2a2c519fe50dabe4') { 구성·build·discovery·test를 실행한다. -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R BuildInfo --output-on-failure -$discovery = ctest --test-dir .harness/build -C Debug --show-only=json-v1 | ConvertFrom-Json -if ($discovery.tests.Count -lt 1) { throw 'CTest discovered zero tests' } -ctest --test-dir .harness/build -C Debug --output-on-failure -if (-not (Test-Path 'docs/linear-static-3d-euler-beam/implementation-report.md')) { - throw 'Missing implementation evidence report' -} -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 절차 diff --git a/phases/linear-static-3d-euler-beam/step8.md b/phases/linear-static-3d-euler-beam/step8.md index e382da9..3a40f8b 100644 --- a/phases/linear-static-3d-euler-beam/step8.md +++ b/phases/linear-static-3d-euler-beam/step8.md @@ -1,18 +1,16 @@ # Step 8: Core Diagnostics -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/io.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/build_info.hpp` - `/src/fesa/CMakeLists.txt` - `/tests/CMakeLists.txt` @@ -70,24 +68,11 @@ Test suite label/regex는 RED에서는 production 파일을 만들기 전에 다음 targeted command가 missing header/symbol로 실패하는 것을 확인하고 구현 report 또는 step summary용 evidence를 남긴다. -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R CoreDiagnostics --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 구현 후 GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R CoreDiagnostics --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Tests는 value/error exclusivity, move/copy, failed access, exact diagnostic fields와 deterministic ordering을 검증해야 한다. @@ -97,7 +82,7 @@ deterministic ordering을 검증해야 한다. 1. GoogleTest를 먼저 추가하고 targeted RED를 관찰한다. 2. 최소 production 구현으로 targeted GREEN을 만든다. 3. 전체 MSVC x64 Debug build/CTest VERIFY를 실행한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 8 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. public header dependency를 검토하고 Step 8에 `completed`와 RED/GREEN/VERIFY 요약을 기록한다. diff --git a/phases/linear-static-3d-euler-beam/step9.md b/phases/linear-static-3d-euler-beam/step9.md index c736daf..519d471 100644 --- a/phases/linear-static-3d-euler-beam/step9.md +++ b/phases/linear-static-3d-euler-beam/step9.md @@ -1,17 +1,15 @@ # Step 9: Dense Math Adapters -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-3d-euler-beam/README.md)을 따른다. ## 읽어야 할 파일 - `/AGENTS.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/linear-static-3d-euler-beam/requirements.md` -- `/docs/linear-static-3d-euler-beam/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` +- `../../docs/linear-static-3d-euler-beam/README.md` - `/include/fesa/core/status.hpp` - `/src/fesa/CMakeLists.txt` - `/tests/CMakeLists.txt` @@ -71,27 +69,11 @@ row-major GEMV/GEMM과 known BLAS values를 검증하고 `DenseMath` regex로 RED targeted command: -```powershell -cmake --build .harness/build --config Debug --target fesa_tests -ctest --test-dir .harness/build -C Debug -R DenseMath --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. GREEN/VERIFY: -```powershell -cmake -S . -B .harness/build -A x64 ` - -DFESA_GTEST_SOURCE_DIR=C:/git/googletest ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R DenseMath --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -$leaks = rg -n "mkl\.h|MKL_INT|CBLAS_" include/fesa -if ($LASTEXITCODE -eq 0) { throw "MKL API leaked into public headers:`n$leaks" } -if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' } -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 마지막 `rg`는 no-match여야 한다. @@ -100,7 +82,7 @@ if ($LASTEXITCODE -ne 1) { throw 'Public-header dependency scan failed' } 1. `vector_test.cpp`, `matrix_test.cpp`를 먼저 작성하고 missing behavior RED를 확인한다. 2. 최소 adapter/ownership 구현으로 GREEN을 만든다. 3. 전체 MSVC x64 Debug VERIFY와 public-header dependency scan을 실행한다. -4. `/docs/linear-static-3d-euler-beam/implementation-report.md`의 +4. `../../docs/linear-static-3d-euler-beam/README.md`의 Step 9 section에 실제 RED/GREEN/VERIFY command, exit code, 핵심 output과 변경 파일을 기록한다. 5. Step 9를 `completed`로 바꾸고 operations/test evidence를 summary에 기록한다. diff --git a/phases/linear-static-mitc4-shell/step0.md b/phases/linear-static-mitc4-shell/step0.md index dd5b64f..41816b0 100644 --- a/phases/linear-static-mitc4-shell/step0.md +++ b/phases/linear-static-mitc4-shell/step0.md @@ -1,29 +1,24 @@ # Step 0: Shell Semantic Model -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step만 `RED -> observed failure -> minimal GREEN -> focused/full VERIFY`로 수행한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md` -- `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` - `/AGENTS.md` -- `/docs/PRD.md` -- `/docs/ARCHITECTURE.md` -- `/docs/ADR.md` -- `/docs/HARNESS.md` -- `/docs/HARNESS_WORKFLOW.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` - `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` -- `/docs/linear-static-mitc4-shell/io.md` -- `/docs/linear-static-mitc4-shell/numerical-review.md` -- `/docs/linear-static-mitc4-shell/reference-model.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` - `/phases/index.json` - `/phases/linear-static-mitc4-shell/index.json` - `/phases/linear-static-mitc4-shell/step0.md` @@ -54,40 +49,16 @@ Requirements 002-016, 024의 semantic ownership만 구현한다. 먼저 다음 configure를 실행한다. -```powershell -$requiredBuildPaths = @( - "C:/git/googletest", - "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl", - "C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb", - "C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -) -foreach ($requiredBuildPath in $requiredBuildPaths) { - if (-not (Test-Path -LiteralPath $requiredBuildPath)) { throw "Missing $requiredBuildPath" } -} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. RED test를 작성한 뒤 아래 build/test가 missing shell semantic behavior 때문에 실패함을 기록한다. Compile failure면 그 expected failure를 기록하고 CTest는 GREEN 뒤 실행한다. -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "DomainModel" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. GREEN 뒤 focused와 full VERIFY: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "DomainModel" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/linear-static-mitc4-shell/step1.md b/phases/linear-static-mitc4-shell/step1.md index 56d981d..925e120 100644 --- a/phases/linear-static-mitc4-shell/step1.md +++ b/phases/linear-static-mitc4-shell/step1.md @@ -1,22 +1,19 @@ # Step 1: Shell Domain Mapping -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` -- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` Requirements 001-010, 017-023 -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` -- `/docs/linear-static-mitc4-shell/numerical-review.md` -- `/docs/linear-static-mitc4-shell/reference-model.md` -- `/docs/linear-static-mitc4-shell/io.md` Sections 1-5, 8-9 +- `/AGENTS.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `/.codex/hooks.json` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Requirements 001-010, 017-023 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Sections 1-5, 8-9 - `/phases/index.json`, task index, `/phases/linear-static-mitc4-shell/step1.md` - Step 0에서 수정한 model/Domain paths와 Step 0 summary - `/include/fesa/io/abaqus/domain_mapper.hpp` @@ -40,28 +37,12 @@ ## Acceptance Criteria -```powershell -$requiredBuildPaths=@("C:/git/googletest","C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl","C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb","C:/Program Files/HDF_Group/HDF5/2.1.1/cmake") -foreach($p in $requiredBuildPaths){if(-not(Test-Path -LiteralPath $p)){throw "Missing $p"}} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "InpDomainMapping" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Valid S4/S4R mapping 또는 negative diagnostic assertion의 expected RED를 기록한 뒤 minimal GREEN만 작성한다. GREEN 뒤: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "InpSyntax|InpDomainMapping|DomainModel" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/linear-static-mitc4-shell/step10.md b/phases/linear-static-mitc4-shell/step10.md index 08ed892..44cbadf 100644 --- a/phases/linear-static-mitc4-shell/step10.md +++ b/phases/linear-static-mitc4-shell/step10.md @@ -1,22 +1,19 @@ # Step 10: Shell Result Recovery -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` -- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` Requirements 029/035/041-046/048/057 -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` Sections 14, 16 -- `/docs/linear-static-mitc4-shell/numerical-review.md` -- `/docs/linear-static-mitc4-shell/io.md` Sections 6.3-6.5 -- `/docs/linear-static-mitc4-shell/reference-model.md` +- `/AGENTS.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `/.codex/hooks.json` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Requirements 029/035/041-046/048/057 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` Sections 14, 16 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Sections 6.3-6.5 +- `../../docs/linear-static-mitc4-shell/README.md` - phase indexes, `step10.md`, completed Steps 5/9 paths and summaries - `/include/fesa/results/result_recovery.hpp` - `/src/fesa/results/result_recovery.cpp` @@ -35,27 +32,11 @@ ## Acceptance Criteria -```powershell -$requiredBuildPaths=@("C:/git/googletest","C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl","C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb","C:/Program Files/HDF_Group/HDF5/2.1.1/cmake") -foreach($p in $requiredBuildPaths){if(-not(Test-Path -LiteralPath $p)){throw "Missing $p"}} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "ResultRecovery" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Beam-only recovery/absent shell rows의 expected RED 후 minimal GREEN. 이후: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "ResultRecovery|AnalysisState|Mitc4ShellPhysicalRecovery" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/linear-static-mitc4-shell/step11.md b/phases/linear-static-mitc4-shell/step11.md index 870b43a..619f1ce 100644 --- a/phases/linear-static-mitc4-shell/step11.md +++ b/phases/linear-static-mitc4-shell/step11.md @@ -1,22 +1,19 @@ # Step 11: Shell HDF5 Output -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` -- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` Requirements 039-048 -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` -- `/docs/linear-static-mitc4-shell/numerical-review.md` -- `/docs/linear-static-mitc4-shell/io.md` Section 6 exact schema -- `/docs/linear-static-mitc4-shell/reference-model.md` +- `/AGENTS.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `/.codex/hooks.json` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Requirements 039-048 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Section 6 exact schema +- `../../docs/linear-static-mitc4-shell/README.md` - phase indexes, `step11.md`, completed Steps 9/10 paths and summaries - `/include/fesa/results/results_writer.hpp` - `/include/fesa/io/hdf5/hdf5_results_writer.hpp` @@ -38,27 +35,11 @@ ## Acceptance Criteria -```powershell -$requiredBuildPaths=@("C:/git/googletest","C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl","C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb","C:/Program Files/HDF_Group/HDF5/2.1.1/cmake") -foreach($p in $requiredBuildPaths){if(-not(Test-Path -LiteralPath $p)){throw "Missing $p"}} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "Hdf5ResultsWriter" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Missing shell schema/atomic validation RED 후 minimal GREEN. 이후: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "Hdf5ResultsWriter|ResultRecovery|AnalysisState" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/linear-static-mitc4-shell/step12.md b/phases/linear-static-mitc4-shell/step12.md index adf8a69..3b5d877 100644 --- a/phases/linear-static-mitc4-shell/step12.md +++ b/phases/linear-static-mitc4-shell/step12.md @@ -1,22 +1,19 @@ # Step 12: Shell Linear Static Flow -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` -- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` Requirements 024-030/051/057 -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` -- `/docs/linear-static-mitc4-shell/numerical-review.md` -- `/docs/linear-static-mitc4-shell/io.md` CLI/diagnostic contract -- `/docs/linear-static-mitc4-shell/reference-model.md` +- `/AGENTS.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `/.codex/hooks.json` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Requirements 024-030/051/057 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` CLI/diagnostic contract +- `../../docs/linear-static-mitc4-shell/README.md` - phase indexes, `step12.md`, completed Steps 7-11 paths and summaries - `/include/fesa/analysis/linear_static_analysis.hpp` - `/src/fesa/analysis/linear_static_analysis.cpp` @@ -38,27 +35,11 @@ ## Acceptance Criteria -```powershell -$requiredBuildPaths=@("C:/git/googletest","C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl","C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb","C:/Program Files/HDF_Group/HDF5/2.1.1/cmake") -foreach($p in $requiredBuildPaths){if(-not(Test-Path -LiteralPath $p)){throw "Missing $p"}} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_integration_tests -ctest --test-dir .harness/build -C Debug -R "LinearStaticCli|Mitc4ShellCli" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Shell pipeline RED를 확인하고 minimal GREEN. 이후: -```powershell -cmake --build .harness/build --config Debug --target fesa_integration_tests -ctest --test-dir .harness/build -C Debug -R "LinearStaticCli|Mitc4ShellCli" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/linear-static-mitc4-shell/step13.md b/phases/linear-static-mitc4-shell/step13.md index 84e5ea6..ef272da 100644 --- a/phases/linear-static-mitc4-shell/step13.md +++ b/phases/linear-static-mitc4-shell/step13.md @@ -1,23 +1,19 @@ # Step 13: Shell Reference Comparison -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` -- 이 Step은 test-only reference module을 소유하며 solver production module을 소유하지 않는다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` -- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` Requirements 053/058-072 -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` -- `/docs/linear-static-mitc4-shell/numerical-review.md` -- `/docs/linear-static-mitc4-shell/io.md` Section 7 -- `/docs/linear-static-mitc4-shell/reference-model.md` +- `/AGENTS.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `/.codex/hooks.json` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Requirements 053/058-072 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Section 7 +- `../../docs/linear-static-mitc4-shell/README.md` - phase indexes, `step13.md`, completed Steps 11/12 paths and summaries - `/tests/reference/reference_comparison.hpp`와 cpp/test는 B33 identity/report precedent - Candidate new `/tests/reference/mitc4_reference_comparison.hpp` @@ -55,42 +51,11 @@ 먼저 exact expected hashes를 검증한다. -```powershell -$expectedReferenceHashes=[ordered]@{ - "reference/shell/shell.inp"="4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF" - "reference/shell/shell displacements.csv"="C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B" -} -foreach($p in $expectedReferenceHashes.Keys){ - if((Get-FileHash -Algorithm SHA256 -LiteralPath $p).Hash -ne $expectedReferenceHashes[$p]){ - throw "Reference artifact changed: $p" - } -} -$requiredBuildPaths=@("C:/git/googletest","C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl","C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb","C:/Program Files/HDF_Group/HDF5/2.1.1/cmake") -foreach($p in $requiredBuildPaths){if(-not(Test-Path -LiteralPath $p)){throw "Missing $p"}} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_reference_tests -ctest --test-dir .harness/build -C Debug -R "Mitc4ReferenceComparison|Mitc4S4Reference" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 기존 mixed-tolerance 구현에 대한 fixed-boundary RED를 확인하고 test-only minimal GREEN. 이후: -```powershell -cmake --build .harness/build --config Debug --target fesa_reference_tests -ctest --test-dir .harness/build -C Debug -R "Mitc4ReferenceComparison|Mitc4S4Reference" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -foreach($p in $expectedReferenceHashes.Keys){ - if((Get-FileHash -Algorithm SHA256 -LiteralPath $p).Hash -ne $expectedReferenceHashes[$p]){ - throw "Reference artifact changed: $p" - } -} -git diff --check -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/linear-static-mitc4-shell/step2.md b/phases/linear-static-mitc4-shell/step2.md index 513fb3e..0f16f09 100644 --- a/phases/linear-static-mitc4-shell/step2.md +++ b/phases/linear-static-mitc4-shell/step2.md @@ -1,22 +1,19 @@ # Step 2: Shell Director Geometry -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` -- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` Requirements 011-016/050/051/054 -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` Sections 4, 9, 17 -- `/docs/linear-static-mitc4-shell/numerical-review.md` Sections 5.2, 5.5, 6.1 -- `/docs/linear-static-mitc4-shell/io.md` Sections 3.3, 8-9 -- `/docs/linear-static-mitc4-shell/reference-model.md` +- `/AGENTS.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `/.codex/hooks.json` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Requirements 011-016/050/051/054 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` Sections 4, 9, 17 +- `../../docs/linear-static-mitc4-shell/README.md` Sections 5.2, 5.5, 6.1 +- `../../docs/linear-static-mitc4-shell/README.md` Sections 3.3, 8-9 +- `../../docs/linear-static-mitc4-shell/README.md` - phase indexes, `step2.md`, Step 0-1 modified paths/summaries - Candidate new `/include/fesa/model/shell_geometry.hpp` - Candidate new `/src/fesa/model/shell_geometry.cpp` @@ -36,27 +33,11 @@ ## Acceptance Criteria -```powershell -$requiredBuildPaths=@("C:/git/googletest","C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl","C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb","C:/Program Files/HDF_Group/HDF5/2.1.1/cmake") -foreach($p in $requiredBuildPaths){if(-not(Test-Path -LiteralPath $p)){throw "Missing $p"}} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "Mitc4Geometry" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Expected missing geometry API/behavior RED를 확인한 뒤 minimal GREEN. 이후: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "Mitc4Geometry|DomainModel|InpDomainMapping" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/linear-static-mitc4-shell/step3.md b/phases/linear-static-mitc4-shell/step3.md index adc84f3..970c70e 100644 --- a/phases/linear-static-mitc4-shell/step3.md +++ b/phases/linear-static-mitc4-shell/step3.md @@ -1,22 +1,19 @@ # Step 3: MITC4 Kinematics and Constitutive Law -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` -- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` Requirements 031-038/050-052 -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` Sections 3-11, 17 -- `/docs/linear-static-mitc4-shell/numerical-review.md` Sections 5.1-5.6, 6.1-6.2 -- `/docs/linear-static-mitc4-shell/io.md` -- `/docs/linear-static-mitc4-shell/reference-model.md` +- `/AGENTS.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `/.codex/hooks.json` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Requirements 031-038/050-052 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` Sections 3-11, 17 +- `../../docs/linear-static-mitc4-shell/README.md` Sections 5.1-5.6, 6.1-6.2 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` - phase indexes, `step3.md`, Step 2 geometry paths/summary - `/include/fesa/elements/euler_beam_3d.hpp`와 cpp는 concrete value-kernel style 참고용 - Candidate new `/include/fesa/elements/mitc4_shell.hpp` @@ -40,27 +37,11 @@ ## Acceptance Criteria -```powershell -$requiredBuildPaths=@("C:/git/googletest","C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl","C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb","C:/Program Files/HDF_Group/HDF5/2.1.1/cmake") -foreach($p in $requiredBuildPaths){if(-not(Test-Path -LiteralPath $p)){throw "Missing $p"}} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "Mitc4ShellKinematics|Mitc4ShellConstitutive" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Expected missing kernel/kinematics RED를 기록한 뒤 minimal GREEN. 이후: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "Mitc4ShellKinematics|Mitc4ShellConstitutive|Mitc4Geometry" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/linear-static-mitc4-shell/step4.md b/phases/linear-static-mitc4-shell/step4.md index e5cb661..64e03c8 100644 --- a/phases/linear-static-mitc4-shell/step4.md +++ b/phases/linear-static-mitc4-shell/step4.md @@ -1,22 +1,19 @@ # Step 4: MITC4 Stiffness and Drilling Stabilization -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` -- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` Requirements 031-038/050-056 -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` Sections 10-14, 17 -- `/docs/linear-static-mitc4-shell/numerical-review.md` Sections 5.7, 6.1-6.2 -- `/docs/linear-static-mitc4-shell/io.md` -- `/docs/linear-static-mitc4-shell/reference-model.md` +- `/AGENTS.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `/.codex/hooks.json` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Requirements 031-038/050-056 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` Sections 10-14, 17 +- `../../docs/linear-static-mitc4-shell/README.md` Sections 5.7, 6.1-6.2 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` - phase indexes, `step4.md`, completed Step 3 kernel/header/test and summary ## 작업 @@ -34,27 +31,11 @@ ## Acceptance Criteria -```powershell -$requiredBuildPaths=@("C:/git/googletest","C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl","C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb","C:/Program Files/HDF_Group/HDF5/2.1.1/cmake") -foreach($p in $requiredBuildPaths){if(-not(Test-Path -LiteralPath $p)){throw "Missing $p"}} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "Mitc4ShellKernel|Mitc4ShellPatch|Mitc4ShellDrilling" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Expected missing stiffness/drilling RED를 확인한 뒤 minimal GREEN. 이후: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "Mitc4ShellKernel|Mitc4ShellPatch|Mitc4ShellDrilling|Mitc4ShellKinematics" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/linear-static-mitc4-shell/step5.md b/phases/linear-static-mitc4-shell/step5.md index 7295216..22775a5 100644 --- a/phases/linear-static-mitc4-shell/step5.md +++ b/phases/linear-static-mitc4-shell/step5.md @@ -1,22 +1,19 @@ # Step 5: MITC4 Physical Recovery -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` -- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` Requirements 035/042-046/052/056 -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` Sections 14, 16 -- `/docs/linear-static-mitc4-shell/numerical-review.md` -- `/docs/linear-static-mitc4-shell/io.md` result component/location order -- `/docs/linear-static-mitc4-shell/reference-model.md` +- `/AGENTS.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `/.codex/hooks.json` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Requirements 035/042-046/052/056 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` Sections 14, 16 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` result component/location order +- `../../docs/linear-static-mitc4-shell/README.md` - phase indexes, `step5.md`, completed Steps 3-4 kernel/header/test and summaries ## 작업 @@ -33,27 +30,11 @@ ## Acceptance Criteria -```powershell -$requiredBuildPaths=@("C:/git/googletest","C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl","C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb","C:/Program Files/HDF_Group/HDF5/2.1.1/cmake") -foreach($p in $requiredBuildPaths){if(-not(Test-Path -LiteralPath $p)){throw "Missing $p"}} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "Mitc4ShellDrilling|Mitc4ShellPhysicalRecovery" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Expected missing recovery seam/pure-drill exclusion RED 후 minimal GREEN. 이후: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "Mitc4ShellDrilling|Mitc4ShellPhysicalRecovery|Mitc4ShellPatch" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/linear-static-mitc4-shell/step6.md b/phases/linear-static-mitc4-shell/step6.md index 406b1b3..91ea6ab 100644 --- a/phases/linear-static-mitc4-shell/step6.md +++ b/phases/linear-static-mitc4-shell/step6.md @@ -1,22 +1,19 @@ # Step 6: Shell DOF Scatter -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` -- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` Requirements 005/025 -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` -- `/docs/linear-static-mitc4-shell/numerical-review.md` -- `/docs/linear-static-mitc4-shell/io.md` -- `/docs/linear-static-mitc4-shell/reference-model.md` +- `/AGENTS.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `/.codex/hooks.json` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Requirements 005/025 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` - phase indexes, `step6.md`, Step 0 shell model and Step 5 summary - `/include/fesa/fem/dof_manager.hpp`, `/src/fesa/fem/dof_manager.cpp` - `/tests/unit/fem/dof_manager_test.cpp` @@ -34,27 +31,11 @@ ## Acceptance Criteria -```powershell -$requiredBuildPaths=@("C:/git/googletest","C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl","C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb","C:/Program Files/HDF_Group/HDF5/2.1.1/cmake") -foreach($p in $requiredBuildPaths){if(-not(Test-Path -LiteralPath $p)){throw "Missing $p"}} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "DofManager|EssentialConstraints" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Current 12-entry-only behavior의 expected RED 뒤 minimal GREEN. 이후: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "DofManager|EssentialConstraints|DomainModel" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/linear-static-mitc4-shell/step7.md b/phases/linear-static-mitc4-shell/step7.md index 7ea08ce..3cd783c 100644 --- a/phases/linear-static-mitc4-shell/step7.md +++ b/phases/linear-static-mitc4-shell/step7.md @@ -1,22 +1,19 @@ # Step 7: Shell Sparse Assembly -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` -- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` Requirements 027/030/037/050/056 -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` -- `/docs/linear-static-mitc4-shell/numerical-review.md` -- `/docs/linear-static-mitc4-shell/io.md` -- `/docs/linear-static-mitc4-shell/reference-model.md` +- `/AGENTS.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `/.codex/hooks.json` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Requirements 027/030/037/050/056 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` - phase indexes, `step7.md`, completed Steps 4/6 paths and summaries - `/include/fesa/assembly/sparse_assembler.hpp` - `/src/fesa/assembly/sparse_assembler.cpp` @@ -36,27 +33,11 @@ ## Acceptance Criteria -```powershell -$requiredBuildPaths=@("C:/git/googletest","C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl","C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb","C:/Program Files/HDF_Group/HDF5/2.1.1/cmake") -foreach($p in $requiredBuildPaths){if(-not(Test-Path -LiteralPath $p)){throw "Missing $p"}} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "SparseAssembly" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Four-node/24-DOF RED를 확인하고 minimal GREEN. 이후: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "SparseAssembly|DofManager|Mitc4ShellKernel" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/linear-static-mitc4-shell/step8.md b/phases/linear-static-mitc4-shell/step8.md index 75e5659..30780d4 100644 --- a/phases/linear-static-mitc4-shell/step8.md +++ b/phases/linear-static-mitc4-shell/step8.md @@ -1,22 +1,19 @@ # Step 8: Shell Load Validation -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` -- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` Requirements 017-020/028 -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` Sections 8, 13 -- `/docs/linear-static-mitc4-shell/numerical-review.md` -- `/docs/linear-static-mitc4-shell/io.md` Sections 4.2-4.3 -- `/docs/linear-static-mitc4-shell/reference-model.md` +- `/AGENTS.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `/.codex/hooks.json` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Requirements 017-020/028 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` Sections 8, 13 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Sections 4.2-4.3 +- `../../docs/linear-static-mitc4-shell/README.md` - phase indexes, `step8.md`, completed Steps 2/7 paths and summaries - `/include/fesa/assembly/load_assembler.hpp` - `/src/fesa/assembly/load_assembler.cpp` @@ -35,27 +32,11 @@ ## Acceptance Criteria -```powershell -$requiredBuildPaths=@("C:/git/googletest","C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl","C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb","C:/Program Files/HDF_Group/HDF5/2.1.1/cmake") -foreach($p in $requiredBuildPaths){if(-not(Test-Path -LiteralPath $p)){throw "Missing $p"}} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "LoadAssembly|EssentialConstraints" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Moment projection/diagnostic RED 뒤 minimal GREEN. 이후: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "LoadAssembly|EssentialConstraints|InpDomainMapping" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/linear-static-mitc4-shell/step9.md b/phases/linear-static-mitc4-shell/step9.md index af2989a..3d063df 100644 --- a/phases/linear-static-mitc4-shell/step9.md +++ b/phases/linear-static-mitc4-shell/step9.md @@ -1,22 +1,19 @@ # Step 9: Shell Analysis State -## 담당 역할과 필수 스킬 - -- 담당 역할: `implementation-agent` -- 필수 스킬: `harness`, `fesa-cpp-msvc-tdd` +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/linear-static-mitc4-shell/README.md)을 따른다. ## 읽어야 할 파일 -- `/.agents/skills/harness/SKILL.md`, `/.codex/skills/fesa-cpp-msvc-tdd/SKILL.md` -- `/AGENTS.md`, `/docs/PRD.md`, `/docs/ARCHITECTURE.md`, `/docs/ADR.md` -- `/docs/HARNESS.md`, `/docs/HARNESS_WORKFLOW.md`, `/.codex/hooks.json` -- `/docs/linear-static-mitc4-shell/implementation-plan.md` -- `/docs/linear-static-mitc4-shell/requirements.md` Requirements 026/041-046/048 -- `/docs/linear-static-mitc4-shell/research.md` -- `/docs/linear-static-mitc4-shell/formulation.md` -- `/docs/linear-static-mitc4-shell/numerical-review.md` -- `/docs/linear-static-mitc4-shell/io.md` Sections 6.3-6.5 -- `/docs/linear-static-mitc4-shell/reference-model.md` +- `/AGENTS.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md`, `../../docs/solver-core/README.md`, `/.codex/hooks.json` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Requirements 026/041-046/048 +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/formulation.md` +- `../../docs/linear-static-mitc4-shell/README.md` +- `../../docs/linear-static-mitc4-shell/README.md` Sections 6.3-6.5 +- `../../docs/linear-static-mitc4-shell/README.md` - phase indexes, `step9.md`, Step 5 recovery types and Step 8 summary - `/include/fesa/results/result_records.hpp` - `/include/fesa/analysis/analysis_state.hpp` @@ -37,27 +34,11 @@ ## Acceptance Criteria -```powershell -$requiredBuildPaths=@("C:/git/googletest","C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl","C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb","C:/Program Files/HDF_Group/HDF5/2.1.1/cmake") -foreach($p in $requiredBuildPaths){if(-not(Test-Path -LiteralPath $p)){throw "Missing $p"}} -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "AnalysisState" --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Missing shell state/rollback RED 뒤 minimal GREEN. 이후: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug -R "AnalysisState|DomainModel" --output-on-failure -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. ## 검증 및 상태 갱신 diff --git a/phases/mitc4-shell-feast-eigen-execution-prep/index.json b/phases/mitc4-shell-feast-eigen-execution-prep/index.json index 44ba34b..363d8d1 100644 --- a/phases/mitc4-shell-feast-eigen-execution-prep/index.json +++ b/phases/mitc4-shell-feast-eigen-execution-prep/index.json @@ -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" -} \ No newline at end of file +} diff --git a/phases/mitc4-shell-feast-eigen-execution-prep/step0.md b/phases/mitc4-shell-feast-eigen-execution-prep/step0.md index da6075d..c1bf234 100644 --- a/phases/mitc4-shell-feast-eigen-execution-prep/step0.md +++ b/phases/mitc4-shell-feast-eigen-execution-prep/step0.md @@ -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가 대신 수정하지 않는다. diff --git a/phases/mitc4-shell-feast-eigen/index.json b/phases/mitc4-shell-feast-eigen/index.json index 274316a..51c6143 100644 --- a/phases/mitc4-shell-feast-eigen/index.json +++ b/phases/mitc4-shell-feast-eigen/index.json @@ -30,7 +30,7 @@ "tests/unit/io/abaqus/input_reader_test.cpp", "tests/unit/io/abaqus/domain_mapping_context_test.cpp", "tests/unit/io/abaqus/frequency_domain_test.cpp", - "docs/mitc4-shell-feast-eigen/implementation-step0-evidence.md" + "docs/mitc4-shell-feast-eigen/README.md" ] }, { @@ -48,7 +48,7 @@ "tests/integration/analysis/mitc4_covariance_test.cpp", "src/fesa/CMakeLists.txt", "tests/CMakeLists.txt", - "docs/mitc4-shell-feast-eigen/implementation-step1-evidence.md" + "docs/mitc4-shell-feast-eigen/README.md" ] }, { @@ -68,7 +68,7 @@ "src/fesa/assembly/shell_mass_assembler.cpp", "tests/unit/elements/element_factory_test.cpp", "tests/unit/assembly/shell_mass_assembler_test.cpp", - "docs/mitc4-shell-feast-eigen/implementation-step2-evidence.md" + "docs/mitc4-shell-feast-eigen/README.md" ] }, { @@ -84,7 +84,7 @@ "tests/unit/analysis/eigen_reduction_test.cpp", "src/fesa/CMakeLists.txt", "tests/CMakeLists.txt", - "docs/mitc4-shell-feast-eigen/implementation-step3-evidence.md" + "docs/mitc4-shell-feast-eigen/README.md" ] }, { @@ -108,7 +108,7 @@ "tests/unit/solvers/eigen/eigen_solver_test.cpp", "tests/unit/solvers/eigen/mkl_feast_eigen_solver_test.cpp", "tests/unit/solvers/eigen/feast_search_test.cpp", - "docs/mitc4-shell-feast-eigen/implementation-step4-evidence.md" + "docs/mitc4-shell-feast-eigen/README.md" ] }, { @@ -127,7 +127,7 @@ "include/fesa/analysis/linear_frequency_procedure.h", "src/fesa/analysis/linear_frequency_procedure.cpp", "tests/integration/analysis/linear_frequency_procedure_test.cpp", - "docs/mitc4-shell-feast-eigen/implementation-step5-evidence.md" + "docs/mitc4-shell-feast-eigen/README.md" ] }, { @@ -155,7 +155,7 @@ "tests/integration/app/fesa_application_test.cpp", "tests/integration/app/frequency_application_test.cpp", "tests/integration/analysis/linear_frequency_procedure_test.cpp", - "docs/mitc4-shell-feast-eigen/implementation-step6-evidence.md" + "docs/mitc4-shell-feast-eigen/README.md" ] }, { @@ -170,11 +170,7 @@ "tests/reference/eigen_reference_cases_test.cpp", "tests/reference/mitc4_eigen_static_regression_test.cpp", "tests/integration/analysis/linear_frequency_procedure_test.cpp", - "docs/mitc4-shell-feast-eigen/implementation-report.md", - "docs/mitc4-shell-feast-eigen/build-test.md", - "docs/mitc4-shell-feast-eigen/reference-comparison.md", - "docs/mitc4-shell-feast-eigen/reference-comparison-detail.md", - "docs/mitc4-shell-feast-eigen/implementation-step7-evidence.md" + "docs/mitc4-shell-feast-eigen/README.md" ] } ] diff --git a/phases/mitc4-shell-feast-eigen/step0.md b/phases/mitc4-shell-feast-eigen/step0.md index 6f7712b..9c89090 100644 --- a/phases/mitc4-shell-feast-eigen/step0.md +++ b/phases/mitc4-shell-feast-eigen/step0.md @@ -1,23 +1,9 @@ # Step 0: Frequency semantic model과 exact 입력 subset -> **과거 실행 기록:** 아래 지시·소유 경로는 당시 계획이며 현재 실행 입력이 아니다. -> 원문은 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는 변경하지 않는다. -> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../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` - Dependency: execution-prep의 실제 completed·registered Stop 성공 및 새 main invocation @@ -30,45 +16,42 @@ Feature 폴더는 `docs/mitc4-shell-feast-eigen/`다. 아래 current r2 입력을 읽고 기존 완료 Step 코드와 evidence를 대조한다. 연결된 upstream contract는 read-only다. - [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) -이 Step의 직접 계약: [io-input.md#i3-density-material-mapping](../../docs/mitc4-shell-feast-eigen/io.md#io-input--i3-density-material-mapping), [io-mapping.md#m1-input에서-equationresult까지](../../docs/mitc4-shell-feast-eigen/io.md#io-mapping--m1-input에서-equationresult까지), [formulation-eigen.md#e1-조립-단위-scaling과-실제-global-제약](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e1-조립-단위-scaling과-실제-global-제약), [io-input.md](../../docs/mitc4-shell-feast-eigen/io.md#io-input), [io-schema.md#o2-metadata-모델과-source-요청](../../docs/mitc4-shell-feast-eigen/io.md#io-schema--o2-metadata-모델과-source-요청), [io-mapping.md#m5-구현test-obligations와-requirement-연결](../../docs/mitc4-shell-feast-eigen/io.md#io-mapping--m5-구현test-obligations와-requirement-연결). -논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)을 함께 적용한다. +이 Step의 직접 계약: [io-input.md#i3-density-material-mapping](../../docs/mitc4-shell-feast-eigen/README.md), [io-mapping.md#m1-input에서-equationresult까지](../../docs/mitc4-shell-feast-eigen/README.md), [formulation-eigen.md#e1-조립-단위-scaling과-실제-global-제약](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e1-조립-단위-scaling과-실제-global-제약), [io-input.md](../../docs/mitc4-shell-feast-eigen/README.md), [io-schema.md#o2-metadata-모델과-source-요청](../../docs/mitc4-shell-feast-eigen/README.md), [io-mapping.md#m5-구현test-obligations와-requirement-연결](../../docs/mitc4-shell-feast-eigen/README.md). +논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/README.md)을 함께 적용한다. ## Owned paths @@ -141,7 +124,6 @@ ctest --preset mfe-workspace-msvc-ninja-debug -R '^(ModelTypes|FrequencyStep|Dom Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다. - ### 필수 신규 test discovery inventory - `FrequencyStep.MfeC23SemanticOwnership` @@ -154,32 +136,15 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc 현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다. -```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 -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' } -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 전체 discovery의 test count와 실제 실행 count를 대조하고 skipped/missing/unobserved를 성공으로 합치지 않는다. 기존 target의 `/W4 /WX`를 유지하고 새 compiler/link warning0을 확인한다. 등록 Stop의 전체 검증은 그대로 수행되며 수동 hook 실행·state/reentry 조작으로 대체하지 않는다. Step 0에서 영향받는 C++ binary가 바뀌면 기존 reference helper의 cache 재사용 여부와 실제 solve 호출을 구분한다. 최종 fresh portfolio의 권위는 Step 7이다. ## Evidence와 종료 -- `docs/mitc4-shell-feast-eigen/implementation-step0-evidence.md` - -이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored `.harness/build/mitc4-eigen-evidence/step0/`에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. +- `../../docs/mitc4-shell-feast-eigen/README.md` +이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored 과거 검증 자료(정리됨)에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. 보고서 작성 시점에는 마지막 registered Stop/Codex exit가 아직 발생하지 않을 수 있다. Implementation은 실제 완료된 manual 검증과 미관찰 Stop을 구분하고 미래 성공을 선기록하지 않는다. `completed` payload는 그 자체로 Stop 성공 증거가 아니다. Executor 종료 뒤 Coordinator가 raw output·등록 Hook evidence·actual exit를 management 문서에서 사후 감사한다. Specialist 보고서 본문은 Coordinator가 대신 수정하지 않는다. diff --git a/phases/mitc4-shell-feast-eigen/step1.md b/phases/mitc4-shell-feast-eigen/step1.md index 80812f6..af5625c 100644 --- a/phases/mitc4-shell-feast-eigen/step1.md +++ b/phases/mitc4-shell-feast-eigen/step1.md @@ -1,23 +1,9 @@ # Step 1: 공변 drilling scale과 정적 회귀 -> **과거 실행 기록:** 아래 지시·소유 경로는 당시 계획이며 현재 실행 입력이 아니다. -> 원문은 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는 변경하지 않는다. -> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../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` - Dependency: 동일 phase의 Step 0 completed @@ -30,45 +16,42 @@ Feature 폴더는 `docs/mitc4-shell-feast-eigen/`다. 아래 current r2 입력을 읽고 기존 완료 Step 코드와 evidence를 대조한다. 연결된 upstream contract는 read-only다. - [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) -이 Step의 직접 계약: [formulation-stabilization.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-stabilization), [numerical-review-evidence.md#nr-mfe-001-직접-계산-반례](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-evidence--nr-mfe-001-직접-계산-반례), [numerical-review-controls.md#c7-승인된-정적-회귀-기준](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-controls--c7-승인된-정적-회귀-기준). -논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)을 함께 적용한다. +이 Step의 직접 계약: [formulation-stabilization.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-stabilization), [numerical-review-evidence.md#nr-mfe-001-직접-계산-반례](../../docs/mitc4-shell-feast-eigen/README.md), [numerical-review-controls.md#c7-승인된-정적-회귀-기준](../../docs/mitc4-shell-feast-eigen/README.md). +논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/README.md)을 함께 적용한다. ## Owned paths @@ -118,7 +101,6 @@ ctest --preset mfe-workspace-msvc-ninja-debug -R '^(Mitc4DrillingScale|Mitc4Shel Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다. - ### 필수 신규 test discovery inventory - `Mitc4Covariance.MfeC08PartialBcCovariance` @@ -132,32 +114,15 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc 현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다. -```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 -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' } -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 전체 discovery의 test count와 실제 실행 count를 대조하고 skipped/missing/unobserved를 성공으로 합치지 않는다. 기존 target의 `/W4 /WX`를 유지하고 새 compiler/link warning0을 확인한다. 등록 Stop의 전체 검증은 그대로 수행되며 수동 hook 실행·state/reentry 조작으로 대체하지 않는다. Step 1에서 영향받는 C++ binary가 바뀌면 기존 reference helper의 cache 재사용 여부와 실제 solve 호출을 구분한다. 최종 fresh portfolio의 권위는 Step 7이다. ## Evidence와 종료 -- `docs/mitc4-shell-feast-eigen/implementation-step1-evidence.md` - -이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored `.harness/build/mitc4-eigen-evidence/step1/`에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. +- `../../docs/mitc4-shell-feast-eigen/README.md` +이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored 과거 검증 자료(정리됨)에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. 보고서 작성 시점에는 마지막 registered Stop/Codex exit가 아직 발생하지 않을 수 있다. Implementation은 실제 완료된 manual 검증과 미관찰 Stop을 구분하고 미래 성공을 선기록하지 않는다. `completed` payload는 그 자체로 Stop 성공 증거가 아니다. Executor 종료 뒤 Coordinator가 raw output·등록 Hook evidence·actual exit를 management 문서에서 사후 감사한다. Specialist 보고서 본문은 Coordinator가 대신 수정하지 않는다. diff --git a/phases/mitc4-shell-feast-eigen/step2.md b/phases/mitc4-shell-feast-eigen/step2.md index 7c2e48b..8a3087c 100644 --- a/phases/mitc4-shell-feast-eigen/step2.md +++ b/phases/mitc4-shell-feast-eigen/step2.md @@ -1,23 +1,9 @@ # Step 2: Consistent→lumped 질량과 deterministic 조립 -> **과거 실행 기록:** 아래 지시·소유 경로는 당시 계획이며 현재 실행 입력이 아니다. -> 원문은 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는 변경하지 않는다. -> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../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` - Dependency: 동일 phase의 Step 1 completed @@ -30,45 +16,42 @@ Feature 폴더는 `docs/mitc4-shell-feast-eigen/`다. 아래 current r2 입력을 읽고 기존 완료 Step 코드와 evidence를 대조한다. 연결된 upstream contract는 read-only다. - [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) -이 Step의 직접 계약: [formulation-mass.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-mass), [numerical-review-evidence.md#독립-mass-oracle](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-evidence--독립-mass-oracle), [numerical-review-controls.md#c2-matrix-mass-stabilization와-reduction](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-controls--c2-matrix-mass-stabilization와-reduction), [formulation-mass.md#m4-계산된-consistent-moment에서-nodal-block-유도](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-mass--m4-계산된-consistent-moment에서-nodal-block-유도), [formulation-mass.md#m5-보존되는-양과-근사되는-양](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-mass--m5-보존되는-양과-근사되는-양), [formulation-eigen.md#e1-조립-단위-scaling과-실제-global-제약](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e1-조립-단위-scaling과-실제-global-제약). -논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)을 함께 적용한다. +이 Step의 직접 계약: [formulation-mass.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-mass), [numerical-review-evidence.md#독립-mass-oracle](../../docs/mitc4-shell-feast-eigen/README.md), [numerical-review-controls.md#c2-matrix-mass-stabilization와-reduction](../../docs/mitc4-shell-feast-eigen/README.md), [formulation-mass.md#m4-계산된-consistent-moment에서-nodal-block-유도](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-mass--m4-계산된-consistent-moment에서-nodal-block-유도), [formulation-mass.md#m5-보존되는-양과-근사되는-양](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-mass--m5-보존되는-양과-근사되는-양), [formulation-eigen.md#e1-조립-단위-scaling과-실제-global-제약](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e1-조립-단위-scaling과-실제-global-제약). +논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/README.md)을 함께 적용한다. ## Owned paths @@ -130,7 +113,6 @@ ctest --preset mfe-workspace-msvc-ninja-debug -R '^(Mitc4ShellMass|Mitc4ShellKin Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다. - ### 필수 신규 test discovery inventory - `Mitc4ShellMass.MfeC01FlatMomentOracle` @@ -147,32 +129,15 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc 현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다. -```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 -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' } -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 전체 discovery의 test count와 실제 실행 count를 대조하고 skipped/missing/unobserved를 성공으로 합치지 않는다. 기존 target의 `/W4 /WX`를 유지하고 새 compiler/link warning0을 확인한다. 등록 Stop의 전체 검증은 그대로 수행되며 수동 hook 실행·state/reentry 조작으로 대체하지 않는다. Step 2에서 영향받는 C++ binary가 바뀌면 기존 reference helper의 cache 재사용 여부와 실제 solve 호출을 구분한다. 최종 fresh portfolio의 권위는 Step 7이다. ## Evidence와 종료 -- `docs/mitc4-shell-feast-eigen/implementation-step2-evidence.md` - -이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored `.harness/build/mitc4-eigen-evidence/step2/`에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. +- `../../docs/mitc4-shell-feast-eigen/README.md` +이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored 과거 검증 자료(정리됨)에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. 보고서 작성 시점에는 마지막 registered Stop/Codex exit가 아직 발생하지 않을 수 있다. Implementation은 실제 완료된 manual 검증과 미관찰 Stop을 구분하고 미래 성공을 선기록하지 않는다. `completed` payload는 그 자체로 Stop 성공 증거가 아니다. Executor 종료 뒤 Coordinator가 raw output·등록 Hook evidence·actual exit를 management 문서에서 사후 감사한다. Specialist 보고서 본문은 Coordinator가 대신 수정하지 않는다. diff --git a/phases/mitc4-shell-feast-eigen/step3.md b/phases/mitc4-shell-feast-eigen/step3.md index fa6f44a..97fe79a 100644 --- a/phases/mitc4-shell-feast-eigen/step3.md +++ b/phases/mitc4-shell-feast-eigen/step3.md @@ -1,23 +1,9 @@ # Step 3: 실제 제약의 null 공간과 sparse whitening -> **과거 실행 기록:** 아래 지시·소유 경로는 당시 계획이며 현재 실행 입력이 아니다. -> 원문은 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는 변경하지 않는다. -> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../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` - Dependency: 동일 phase의 Step 2 completed @@ -30,45 +16,42 @@ Feature 폴더는 `docs/mitc4-shell-feast-eigen/`다. 아래 current r2 입력을 읽고 기존 완료 Step 코드와 evidence를 대조한다. 연결된 upstream contract는 read-only다. - [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) -이 Step의 직접 계약: [formulation-eigen.md#e1-조립-단위-scaling과-실제-global-제약](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e1-조립-단위-scaling과-실제-global-제약), [formulation-eigen.md#e2-nullpositive-basis를-node마다-결정](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e2-nullpositive-basis를-node마다-결정), [formulation-eigen.md#e5-spd-whitening-복원과-sparsity](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e5-spd-whitening-복원과-sparsity), [numerical-review-controls.md#c2-matrix-mass-stabilization와-reduction](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-controls--c2-matrix-mass-stabilization와-reduction). -논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)을 함께 적용한다. +이 Step의 직접 계약: [formulation-eigen.md#e1-조립-단위-scaling과-실제-global-제약](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e1-조립-단위-scaling과-실제-global-제약), [formulation-eigen.md#e2-nullpositive-basis를-node마다-결정](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e2-nullpositive-basis를-node마다-결정), [formulation-eigen.md#e5-spd-whitening-복원과-sparsity](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e5-spd-whitening-복원과-sparsity), [numerical-review-controls.md#c2-matrix-mass-stabilization와-reduction](../../docs/mitc4-shell-feast-eigen/README.md). +논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/README.md)을 함께 적용한다. ## Owned paths @@ -116,7 +99,6 @@ ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenReduction|DofManager|Sh Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다. - ### 필수 신규 test discovery inventory - `EigenReduction.MfeC13ExactBoundaryNullIntersection` @@ -130,32 +112,15 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc 현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다. -```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 -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' } -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 전체 discovery의 test count와 실제 실행 count를 대조하고 skipped/missing/unobserved를 성공으로 합치지 않는다. 기존 target의 `/W4 /WX`를 유지하고 새 compiler/link warning0을 확인한다. 등록 Stop의 전체 검증은 그대로 수행되며 수동 hook 실행·state/reentry 조작으로 대체하지 않는다. Step 3에서 영향받는 C++ binary가 바뀌면 기존 reference helper의 cache 재사용 여부와 실제 solve 호출을 구분한다. 최종 fresh portfolio의 권위는 Step 7이다. ## Evidence와 종료 -- `docs/mitc4-shell-feast-eigen/implementation-step3-evidence.md` - -이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored `.harness/build/mitc4-eigen-evidence/step3/`에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. +- `../../docs/mitc4-shell-feast-eigen/README.md` +이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored 과거 검증 자료(정리됨)에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. 보고서 작성 시점에는 마지막 registered Stop/Codex exit가 아직 발생하지 않을 수 있다. Implementation은 실제 완료된 manual 검증과 미관찰 Stop을 구분하고 미래 성공을 선기록하지 않는다. `completed` payload는 그 자체로 Stop 성공 증거가 아니다. Executor 종료 뒤 Coordinator가 raw output·등록 Hook evidence·actual exit를 management 문서에서 사후 감사한다. Specialist 보고서 본문은 Coordinator가 대신 수정하지 않는다. diff --git a/phases/mitc4-shell-feast-eigen/step4.md b/phases/mitc4-shell-feast-eigen/step4.md index dcf41a2..fe009c4 100644 --- a/phases/mitc4-shell-feast-eigen/step4.md +++ b/phases/mitc4-shell-feast-eigen/step4.md @@ -1,23 +1,9 @@ # Step 4: MKL FEAST adapter와 bounded lowest-N 검색 -> **과거 실행 기록:** 아래 지시·소유 경로는 당시 계획이며 현재 실행 입력이 아니다. -> 원문은 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는 변경하지 않는다. -> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../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` - Dependency: 동일 phase의 Step 3 completed @@ -30,45 +16,42 @@ Feature 폴더는 `docs/mitc4-shell-feast-eigen/`다. 아래 current r2 입력을 읽고 기존 완료 Step 코드와 evidence를 대조한다. 연결된 upstream contract는 read-only다. - [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) -이 Step의 직접 계약: [formulation-eigen.md#e7-feast-경계와-deterministic-실행](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e7-feast-경계와-deterministic-실행), [numerical-review-controls.md#c5-feast-controls와-bounded-interval-정책](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-controls--c5-feast-controls와-bounded-interval-정책), [numerical-review-controls.md#c6-initial-subspace-thread와-storage](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-controls--c6-initial-subspace-thread와-storage), [io-mapping.md#m2-backend와-failure-lifecycle](../../docs/mitc4-shell-feast-eigen/io.md#io-mapping--m2-backend와-failure-lifecycle), [formulation-eigen.md#e6-유한-search-interval과-요청-개수](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e6-유한-search-interval과-요청-개수), [io-schema.md#o4-backend와-검증-evidence](../../docs/mitc4-shell-feast-eigen/io.md#io-schema--o4-backend와-검증-evidence). -논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)을 함께 적용한다. +이 Step의 직접 계약: [formulation-eigen.md#e7-feast-경계와-deterministic-실행](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e7-feast-경계와-deterministic-실행), [numerical-review-controls.md#c5-feast-controls와-bounded-interval-정책](../../docs/mitc4-shell-feast-eigen/README.md), [numerical-review-controls.md#c6-initial-subspace-thread와-storage](../../docs/mitc4-shell-feast-eigen/README.md), [io-mapping.md#m2-backend와-failure-lifecycle](../../docs/mitc4-shell-feast-eigen/README.md), [formulation-eigen.md#e6-유한-search-interval과-요청-개수](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e6-유한-search-interval과-요청-개수), [io-schema.md#o4-backend와-검증-evidence](../../docs/mitc4-shell-feast-eigen/README.md). +논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/README.md)을 함께 적용한다. ## Owned paths @@ -134,7 +117,6 @@ ctest --preset mfe-workspace-msvc-ninja-debug -R '^(FeastBackend|FeastInitialSpa Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다. - ### 필수 신규 test discovery inventory - `MklFeastEigenSolver.MfeC17KnownLowestSpectra` @@ -150,32 +132,15 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc 현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다. -```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 -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' } -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 전체 discovery의 test count와 실제 실행 count를 대조하고 skipped/missing/unobserved를 성공으로 합치지 않는다. 기존 target의 `/W4 /WX`를 유지하고 새 compiler/link warning0을 확인한다. 등록 Stop의 전체 검증은 그대로 수행되며 수동 hook 실행·state/reentry 조작으로 대체하지 않는다. Step 4에서 영향받는 C++ binary가 바뀌면 기존 reference helper의 cache 재사용 여부와 실제 solve 호출을 구분한다. 최종 fresh portfolio의 권위는 Step 7이다. ## Evidence와 종료 -- `docs/mitc4-shell-feast-eigen/implementation-step4-evidence.md` - -이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored `.harness/build/mitc4-eigen-evidence/step4/`에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. +- `../../docs/mitc4-shell-feast-eigen/README.md` +이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored 과거 검증 자료(정리됨)에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. 보고서 작성 시점에는 마지막 registered Stop/Codex exit가 아직 발생하지 않을 수 있다. Implementation은 실제 완료된 manual 검증과 미관찰 Stop을 구분하고 미래 성공을 선기록하지 않는다. `completed` payload는 그 자체로 Stop 성공 증거가 아니다. Executor 종료 뒤 Coordinator가 raw output·등록 Hook evidence·actual exit를 management 문서에서 사후 감사한다. Specialist 보고서 본문은 Coordinator가 대신 수정하지 않는다. diff --git a/phases/mitc4-shell-feast-eigen/step5.md b/phases/mitc4-shell-feast-eigen/step5.md index 3815844..92f80b6 100644 --- a/phases/mitc4-shell-feast-eigen/step5.md +++ b/phases/mitc4-shell-feast-eigen/step5.md @@ -1,23 +1,9 @@ # Step 5: 전체 c 검증과 별도 frequency procedure -> **과거 실행 기록:** 아래 지시·소유 경로는 당시 계획이며 현재 실행 입력이 아니다. -> 원문은 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는 변경하지 않는다. -> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../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` - Dependency: 동일 phase의 Step 4 completed @@ -30,45 +16,42 @@ Feature 폴더는 `docs/mitc4-shell-feast-eigen/`다. 아래 current r2 입력을 읽고 기존 완료 Step 코드와 evidence를 대조한다. 연결된 upstream contract는 read-only다. - [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) -이 Step의 직접 계약: [formulation-verification.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-verification), [numerical-review-controls.md#c3-eigenpair-및-물리-내부-판정](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-controls--c3-eigenpair-및-물리-내부-판정), [numerical-review-controls.md#c4-repeated-subspace와-결정론](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-controls--c4-repeated-subspace와-결정론), [io-schema.md#o3-고유치와-modal-vectors](../../docs/mitc4-shell-feast-eigen/io.md#io-schema--o3-고유치와-modal-vectors), [io-schema.md#o4-backend와-검증-evidence](../../docs/mitc4-shell-feast-eigen/io.md#io-schema--o4-backend와-검증-evidence), [io-mapping.md#m1-input에서-equationresult까지](../../docs/mitc4-shell-feast-eigen/io.md#io-mapping--m1-input에서-equationresult까지), [io-mapping.md#m2-backend와-failure-lifecycle](../../docs/mitc4-shell-feast-eigen/io.md#io-mapping--m2-backend와-failure-lifecycle), [formulation-eigen.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen), [formulation-stabilization.md#s6-nr-mfe-001의-새-algebraic-target과-정적-대응](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-stabilization--s6-nr-mfe-001의-새-algebraic-target과-정적-대응). -논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)을 함께 적용한다. +이 Step의 직접 계약: [formulation-verification.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-verification), [numerical-review-controls.md#c3-eigenpair-및-물리-내부-판정](../../docs/mitc4-shell-feast-eigen/README.md), [numerical-review-controls.md#c4-repeated-subspace와-결정론](../../docs/mitc4-shell-feast-eigen/README.md), [io-schema.md#o3-고유치와-modal-vectors](../../docs/mitc4-shell-feast-eigen/README.md), [io-schema.md#o4-backend와-검증-evidence](../../docs/mitc4-shell-feast-eigen/README.md), [io-mapping.md#m1-input에서-equationresult까지](../../docs/mitc4-shell-feast-eigen/README.md), [io-mapping.md#m2-backend와-failure-lifecycle](../../docs/mitc4-shell-feast-eigen/README.md), [formulation-eigen.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen), [formulation-stabilization.md#s6-nr-mfe-001의-새-algebraic-target과-정적-대응](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-stabilization--s6-nr-mfe-001의-새-algebraic-target과-정적-대응). +논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/README.md)을 함께 적용한다. ## Owned paths @@ -129,7 +112,6 @@ ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenAnalysisState|EigenVali Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다. - ### 필수 신규 test discovery inventory - `EigenValidation.MfeC16OriginalMassAndPairing` @@ -146,32 +128,15 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc 현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다. -```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 -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' } -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 전체 discovery의 test count와 실제 실행 count를 대조하고 skipped/missing/unobserved를 성공으로 합치지 않는다. 기존 target의 `/W4 /WX`를 유지하고 새 compiler/link warning0을 확인한다. 등록 Stop의 전체 검증은 그대로 수행되며 수동 hook 실행·state/reentry 조작으로 대체하지 않는다. Step 5에서 영향받는 C++ binary가 바뀌면 기존 reference helper의 cache 재사용 여부와 실제 solve 호출을 구분한다. 최종 fresh portfolio의 권위는 Step 7이다. ## Evidence와 종료 -- `docs/mitc4-shell-feast-eigen/implementation-step5-evidence.md` - -이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored `.harness/build/mitc4-eigen-evidence/step5/`에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. +- `../../docs/mitc4-shell-feast-eigen/README.md` +이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored 과거 검증 자료(정리됨)에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. 보고서 작성 시점에는 마지막 registered Stop/Codex exit가 아직 발생하지 않을 수 있다. Implementation은 실제 완료된 manual 검증과 미관찰 Stop을 구분하고 미래 성공을 선기록하지 않는다. `completed` payload는 그 자체로 Stop 성공 증거가 아니다. Executor 종료 뒤 Coordinator가 raw output·등록 Hook evidence·actual exit를 management 문서에서 사후 감사한다. Specialist 보고서 본문은 Coordinator가 대신 수정하지 않는다. diff --git a/phases/mitc4-shell-feast-eigen/step6.md b/phases/mitc4-shell-feast-eigen/step6.md index 241ac0a..fe11e59 100644 --- a/phases/mitc4-shell-feast-eigen/step6.md +++ b/phases/mitc4-shell-feast-eigen/step6.md @@ -1,23 +1,9 @@ # Step 6: Additive HDF5와 CLI candidate transaction -> **과거 실행 기록:** 아래 지시·소유 경로는 당시 계획이며 현재 실행 입력이 아니다. -> 원문은 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는 변경하지 않는다. -> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../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` - Dependency: 동일 phase의 Step 5 completed @@ -30,45 +16,42 @@ Feature 폴더는 `docs/mitc4-shell-feast-eigen/`다. 아래 current r2 입력을 읽고 기존 완료 Step 코드와 evidence를 대조한다. 연결된 upstream contract는 read-only다. - [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) -이 Step의 직접 계약: [io-schema.md](../../docs/mitc4-shell-feast-eigen/io.md#io-schema), [io-mapping.md#m2-backend와-failure-lifecycle](../../docs/mitc4-shell-feast-eigen/io.md#io-mapping--m2-backend와-failure-lifecycle), [io-input.md#i6-fail-closed-validation과-diagnostics](../../docs/mitc4-shell-feast-eigen/io.md#io-input--i6-fail-closed-validation과-diagnostics), [formulation-eigen.md#e8-mode-identity-normalization과-상태](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e8-mode-identity-normalization과-상태). -논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)을 함께 적용한다. +이 Step의 직접 계약: [io-schema.md](../../docs/mitc4-shell-feast-eigen/README.md), [io-mapping.md#m2-backend와-failure-lifecycle](../../docs/mitc4-shell-feast-eigen/README.md), [io-input.md#i6-fail-closed-validation과-diagnostics](../../docs/mitc4-shell-feast-eigen/README.md), [formulation-eigen.md#e8-mode-identity-normalization과-상태](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen--e8-mode-identity-normalization과-상태). +논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/README.md)을 함께 적용한다. ## Owned paths @@ -138,7 +121,6 @@ ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenResultsWriter|EigenHdf5 Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다. - ### 필수 신규 test discovery inventory - `EigenHdf5Schema.MfeC24RoundTripAndRejection` @@ -153,32 +135,15 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc 현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다. -```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 -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' } -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 전체 discovery의 test count와 실제 실행 count를 대조하고 skipped/missing/unobserved를 성공으로 합치지 않는다. 기존 target의 `/W4 /WX`를 유지하고 새 compiler/link warning0을 확인한다. 등록 Stop의 전체 검증은 그대로 수행되며 수동 hook 실행·state/reentry 조작으로 대체하지 않는다. Step 6에서 영향받는 C++ binary가 바뀌면 기존 reference helper의 cache 재사용 여부와 실제 solve 호출을 구분한다. 최종 fresh portfolio의 권위는 Step 7이다. ## Evidence와 종료 -- `docs/mitc4-shell-feast-eigen/implementation-step6-evidence.md` - -이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored `.harness/build/mitc4-eigen-evidence/step6/`에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. +- `../../docs/mitc4-shell-feast-eigen/README.md` +이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored 과거 검증 자료(정리됨)에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. 보고서 작성 시점에는 마지막 registered Stop/Codex exit가 아직 발생하지 않을 수 있다. Implementation은 실제 완료된 manual 검증과 미관찰 Stop을 구분하고 미래 성공을 선기록하지 않는다. `completed` payload는 그 자체로 Stop 성공 증거가 아니다. Executor 종료 뒤 Coordinator가 raw output·등록 Hook evidence·actual exit를 management 문서에서 사후 감사한다. Specialist 보고서 본문은 Coordinator가 대신 수정하지 않는다. diff --git a/phases/mitc4-shell-feast-eigen/step7.md b/phases/mitc4-shell-feast-eigen/step7.md index bc1e54b..ad05d38 100644 --- a/phases/mitc4-shell-feast-eigen/step7.md +++ b/phases/mitc4-shell-feast-eigen/step7.md @@ -1,23 +1,9 @@ # Step 7: Value-only comparator·fresh reference·구현 evidence -> **과거 실행 기록:** 아래 지시·소유 경로는 당시 계획이며 현재 실행 입력이 아니다. -> 원문은 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는 변경하지 않는다. -> 이미 GREEN인 source를 RED를 만들기 위해 되돌리지 않는다. 새로운 production 변경에는 원래 test-first 계약을 적용한다. +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../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` - Dependency: 동일 phase의 Step 6 completed @@ -30,45 +16,42 @@ Feature 폴더는 `docs/mitc4-shell-feast-eigen/`다. 아래 current r2 입력을 읽고 기존 완료 Step 코드와 evidence를 대조한다. 연결된 upstream contract는 read-only다. - [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) -이 Step의 직접 계약: [io-mapping.md#m3-원본-txt-grammar와-deterministic-value-projection](../../docs/mitc4-shell-feast-eigen/io.md#io-mapping--m3-원본-txt-grammar와-deterministic-value-projection), [io-mapping.md#m4-판정보고와-기존-static의-역할](../../docs/mitc4-shell-feast-eigen/io.md#io-mapping--m4-판정보고와-기존-static의-역할), [reference-model.md](../../docs/mitc4-shell-feast-eigen/reference-model.md), [../TOLERANCE.md](../../docs/mitc4-shell-feast-eigen/../TOLERANCE.md), [requirements-evidence.md#필수-회귀-포트폴리오와-identity](../../docs/mitc4-shell-feast-eigen/requirements.md#requirements-evidence--필수-회귀-포트폴리오와-identity), [numerical-review-cases.md#p4-ioreference운영-closure](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-cases--p4-ioreference운영-closure). -논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)을 함께 적용한다. +이 Step의 직접 계약: [io-mapping.md#m3-원본-txt-grammar와-deterministic-value-projection](../../docs/mitc4-shell-feast-eigen/README.md), [io-mapping.md#m4-판정보고와-기존-static의-역할](../../docs/mitc4-shell-feast-eigen/README.md), [reference-model.md](../../docs/mitc4-shell-feast-eigen/README.md), [../TOLERANCE.md](../../docs/solver-core/README.md), [requirements-evidence.md#필수-회귀-포트폴리오와-identity](../../docs/mitc4-shell-feast-eigen/README.md), [numerical-review-cases.md#p4-ioreference운영-closure](../../docs/mitc4-shell-feast-eigen/README.md). +논리 case의 전체 parameter/threshold/음성 inventory는 NR 원문과 [verification mapping](../../docs/mitc4-shell-feast-eigen/README.md)을 함께 적용한다. ## Owned paths @@ -134,7 +117,6 @@ ctest --preset mfe-workspace-msvc-ninja-debug -R '^(EigenReferenceComparison|Ref Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, discovered selected tests>0, failures0이어야 한다. 각 호출의 `$LASTEXITCODE`를 즉시 기록하고 실패 뒤 후속 명령으로 덮어쓰지 않는다. - ### 필수 신규 test discovery inventory - `EigenReferenceCases.MfeC25FreshTenValueFamilies` @@ -148,36 +130,19 @@ Configure exit는 항상0이어야 한다. GREEN에서는 위 모든 exit0, disc 현재 backend는 local user preset `mfe-workspace-msvc-ninja-debug`/MSVC x64 Debug다. 이 Step의 명령을 직접 실행하며 local config/preset과 다른 graph로 fallback하지 않는다. -```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 -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' } -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 전체 discovery의 test count와 실제 실행 count를 대조하고 skipped/missing/unobserved를 성공으로 합치지 않는다. 기존 target의 `/W4 /WX`를 유지하고 새 compiler/link warning0을 확인한다. 등록 Stop의 전체 검증은 그대로 수행되며 수동 hook 실행·state/reentry 조작으로 대체하지 않는다. Step 7에서 영향받는 C++ binary가 바뀌면 기존 reference helper의 cache 재사용 여부와 실제 solve 호출을 구분한다. 이 Step에서 최종 fresh portfolio를 완료한다. ## Evidence와 종료 -- `docs/mitc4-shell-feast-eigen/implementation-report.md` -- `docs/mitc4-shell-feast-eigen/build-test.md` -- `docs/mitc4-shell-feast-eigen/reference-comparison.md` -- `docs/mitc4-shell-feast-eigen/reference-comparison-detail.md` -- `docs/mitc4-shell-feast-eigen/implementation-step7-evidence.md` - -이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored `.harness/build/mitc4-eigen-evidence/step7/`에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. +- `../../docs/mitc4-shell-feast-eigen/README.md` +- `../../docs/mitc4-shell-feast-eigen/README.md` +- `../../docs/mitc4-shell-feast-eigen/README.md` +- `../../docs/mitc4-shell-feast-eigen/README.md` +- `../../docs/mitc4-shell-feast-eigen/README.md` +이 Step의 evidence에는 Feature/owner/r2, exact owned changed paths, RED→GREEN 명령·actual exits·기간·핵심 수치, focused/full counts, MSVC/x64/Debug/dependency/runtime selection, warning 수, upstream case/requirement 연결, 미실행 및 residual risk를 기록한다. Raw logs는 Git ignored 과거 검증 자료(정리됨)에 보존한다. 각 CTest 호출 직후 해당 `Testing/Temporary/LastTest.log`를 고유 RED/focused/full 이름으로 복사하여 이후 Stop 로그와 섞지 않는다. Binary/reference/result hash와 run freshness는 적용되는 경우 기록한다. 보고서 작성 시점에는 마지막 registered Stop/Codex exit가 아직 발생하지 않을 수 있다. Implementation은 실제 완료된 manual 검증과 미관찰 Stop을 구분하고 미래 성공을 선기록하지 않는다. `completed` payload는 그 자체로 Stop 성공 증거가 아니다. Executor 종료 뒤 Coordinator가 raw output·등록 Hook evidence·actual exit를 management 문서에서 사후 감사한다. Specialist 보고서 본문은 Coordinator가 대신 수정하지 않는다. diff --git a/phases/nonlinear-static-newton-raphson/step0.md b/phases/nonlinear-static-newton-raphson/step0.md index 470a55c..f9c2b0e 100644 --- a/phases/nonlinear-static-newton-raphson/step0.md +++ b/phases/nonlinear-static-newton-raphson/step0.md @@ -1,15 +1,18 @@ # Step 0: cli-output-lease-and-derived-names +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/nonlinear-static-newton-raphson/README.md)을 따른다. + ## 읽어야 할 파일 - `AGENTS.md` -- `docs/SOLVER_AGENT_DESIGN.md` -- `docs/HARNESS.md` -- `docs/HARNESS_WORKFLOW.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` - `.codex/hooks.json` -- `docs/nonlinear-static-newton-raphson/implementation-plan.md` -- `docs/nonlinear-static-newton-raphson/io.md` -- `docs/nonlinear-static-newton-raphson/requirements.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` - `src/fesa/app/fesa_application.cpp` - `include/fesa/app/fesa_application.h` - `include/fesa/analysis/analysis.h` @@ -110,7 +113,7 @@ ctest --preset windows-msvc-ninja-debug -R "FesaApplication|OutputPath" --output ## VERIFY -Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. Run: +Use the ignored 과거 검증 자료(정리됨) preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. Run: ```powershell cmake --preset windows-msvc-ninja-debug diff --git a/phases/nonlinear-static-newton-raphson/step1.md b/phases/nonlinear-static-newton-raphson/step1.md index 73f9b0d..dcd01a7 100644 --- a/phases/nonlinear-static-newton-raphson/step1.md +++ b/phases/nonlinear-static-newton-raphson/step1.md @@ -1,14 +1,17 @@ # Step 1: nonlinear-static-domain-contract +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/nonlinear-static-newton-raphson/README.md)을 따른다. + ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/nonlinear-static-newton-raphson/requirements.md` -- `docs/nonlinear-static-newton-raphson/io.md` -- `docs/nonlinear-static-newton-raphson/reference-model.md` -- `docs/nonlinear-static-newton-raphson/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` - `include/fesa/model/model_types.h` - `include/fesa/model/domain.h` - `src/fesa/model/domain.cpp` @@ -118,7 +121,7 @@ ctest --preset windows-msvc-ninja-debug --show-only=json-v1 ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. +Use the ignored 과거 검증 자료(정리됨) preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step10.md b/phases/nonlinear-static-newton-raphson/step10.md index 83d26e1..05b7a4d 100644 --- a/phases/nonlinear-static-newton-raphson/step10.md +++ b/phases/nonlinear-static-newton-raphson/step10.md @@ -1,14 +1,17 @@ # Step 10: prepared-analysis-flow-and-full-procedure +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/nonlinear-static-newton-raphson/README.md)을 따른다. + ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/nonlinear-static-newton-raphson/requirements.md` -- `docs/nonlinear-static-newton-raphson/formulation.md` -- `docs/nonlinear-static-newton-raphson/numerical-review.md` -- `docs/nonlinear-static-newton-raphson/io.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/formulation.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` - `include/fesa/analysis/analysis.h` - `include/fesa/analysis/linear_static_analysis.h` - `src/fesa/analysis/linear_static_analysis.cpp` @@ -161,7 +164,7 @@ ctest --preset windows-msvc-ninja-debug --show-only=json-v1 ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. +Use the ignored 과거 검증 자료(정리됨) preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step11.md b/phases/nonlinear-static-newton-raphson/step11.md index eec9c14..865f7e7 100644 --- a/phases/nonlinear-static-newton-raphson/step11.md +++ b/phases/nonlinear-static-newton-raphson/step11.md @@ -1,5 +1,8 @@ # Step 11: equilibrium-projection-and-reference-gate +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/nonlinear-static-newton-raphson/README.md)을 따른다. + ## 목적 USER-DECISION-004 option 1과 `AUDIT-001`을 구현·검증한다. 같은 accepted factor-one state에서 @@ -13,19 +16,19 @@ comparator gate를 사용하며 runtime configuration 또는 product solver acce ## 읽어야 할 파일 - `AGENTS.md` -- `docs/PRD.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/CODINGSTYLE.md` -- `docs/TOLERANCE.md` -- `docs/nonlinear-static-newton-raphson/requirements.md` -- `docs/nonlinear-static-newton-raphson/research.md` -- `docs/nonlinear-static-newton-raphson/formulation.md` §§11.4, 13.1, 13.4, 14.1 -- `docs/nonlinear-static-newton-raphson/numerical-review.md` §§3.2, 6.2, 6.3 -- `docs/nonlinear-static-newton-raphson/reference-model.md` §§3–6 -- `docs/nonlinear-static-newton-raphson/io.md` §§7.3–7.5.1, 8.1–8.7 -- `docs/nonlinear-static-newton-raphson/implementation-plan.md` -- `docs/nonlinear-static-newton-raphson/corrections.md` §13 +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/formulation.md` §§11.4, 13.1, 13.4, 14.1 +- `../../docs/nonlinear-static-newton-raphson/README.md` §§3.2, 6.2, 6.3 +- `../../docs/nonlinear-static-newton-raphson/README.md` §§3–6 +- `../../docs/nonlinear-static-newton-raphson/README.md` §§7.3–7.5.1, 8.1–8.7 +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` §13 - `phases/nonlinear-static-newton-raphson/index.json` - `include/fesa/analysis/nonlinear_analysis_state.h` - `include/fesa/analysis/nonlinear_static_procedure.h` @@ -45,7 +48,7 @@ comparator gate를 사용하며 runtime configuration 또는 product solver acce - `tests/reference/nonlinear_static_reference_comparison.cpp` - `tests/reference/nonlinear_static_reference_cases_test.cpp` - `tests/CMakeLists.txt` -- `.harness/config.json` +- 과거 검증 자료(정리됨) - `CMakePresets.json` ## 이전 Step과 보존 전제 @@ -203,7 +206,7 @@ For internal blocking gates: NSNR-069: nonzero matching external scale uses `||residual||inf/max(||internal||inf,||external||inf) <= 1e-2`; exact-zero external scale uses typed absolute `<=1e-3`. Finite checks occur first. -- `docs/TOLERANCE.md` is not used for these internal gates. +- `../../docs/solver-core/README.md` is not used for these internal gates. ## RED @@ -326,7 +329,7 @@ bytes to a unique build-local directory; run only the copy; consume copied-sibli mask-derived keys and complete common-policy error reports. - `RM3` and all stress values have no numerical family. Stress files remain hash-audited optional inventory; the known fine malformed optional stress key is not repaired. -- External families use exactly `docs/TOLERANCE.md`: reference-only `S=max(abs(reference))`, +- External families use exactly `../../docs/solver-core/README.md`: reference-only `S=max(abs(reference))`, `B=0.01*S`, near-zero row `abs(error)<=B`, other-row relative `<=0.05`, family `RMS(error)/S<=0.01`, exact-zero family exact-zero FESA only. No absolute floor, averaging, collapse, row-order identity, clamp or tolerance relaxation. @@ -365,7 +368,7 @@ The Harness launch environment must be VsDevCmd x64 and inherit `FESA_GTEST_SOUR - Fine/coarse global force and moment normalized metrics are each `<=1e-8`; exact-zero scale follows the exact-zero rule. - Fine/coarse accepted free force and moment residual gates pass NSNR-069 independently. -- Fine/coarse U blocking and linear U regression pass `docs/TOLERANCE.md`. +- Fine/coarse U blocking and linear U regression pass `../../docs/solver-core/README.md`. - UR differences remain warning-only. Local RF/RM findings remain review-only and cannot fail the blocking verdict. RM3/stress remain excluded. - Missing/extra/duplicate/nonfinite blocking rows fail before tolerance; warning/review findings are diff --git a/phases/nonlinear-static-newton-raphson/step12.md b/phases/nonlinear-static-newton-raphson/step12.md index 1fc8873..2216786 100644 --- a/phases/nonlinear-static-newton-raphson/step12.md +++ b/phases/nonlinear-static-newton-raphson/step12.md @@ -1,5 +1,8 @@ # Step 12: execution-closure-and-evidence-docs +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/nonlinear-static-newton-raphson/README.md)을 따른다. + ## 목적 Step 11이 실제로 통과한 뒤에만 fresh MSVC/CTest와 reference gate evidence를 수집하고 Stage 6 @@ -9,25 +12,25 @@ canonical reports를 actual output으로 작성한다. 직접 superseded된 PRD/ ## 읽어야 할 파일 - `AGENTS.md` -- `docs/PRD.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/CODINGSTYLE.md` -- `docs/TOLERANCE.md` -- `docs/SOLVER_AGENT_DESIGN.md` -- `docs/HARNESS.md` -- `docs/HARNESS_WORKFLOW.md` -- `docs/nonlinear-static-newton-raphson/requirements.md` -- `docs/nonlinear-static-newton-raphson/formulation.md` §§11.4, 13.1, 13.4, 14.1 -- `docs/nonlinear-static-newton-raphson/numerical-review.md` §§3.2, 6.2, 6.3 -- `docs/nonlinear-static-newton-raphson/reference-model.md` §§3–6 -- `docs/nonlinear-static-newton-raphson/io.md` §§7.5.1, 8.1–8.7 -- `docs/nonlinear-static-newton-raphson/implementation-plan.md` -- `docs/nonlinear-static-newton-raphson/corrections.md` §13 +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/formulation.md` §§11.4, 13.1, 13.4, 14.1 +- `../../docs/nonlinear-static-newton-raphson/README.md` §§3.2, 6.2, 6.3 +- `../../docs/nonlinear-static-newton-raphson/README.md` §§3–6 +- `../../docs/nonlinear-static-newton-raphson/README.md` §§7.5.1, 8.1–8.7 +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` §13 - `phases/nonlinear-static-newton-raphson/index.json` - `phases/nonlinear-static-newton-raphson/step11.md` - All source/test/CMake files actually changed by Steps 0–11 -- `.harness/config.json` +- 과거 검증 자료(정리됨) - `CMakePresets.json` ## 시작 전 hard gate @@ -39,13 +42,13 @@ canonical reports를 actual output으로 작성한다. 직접 superseded된 PRD/ ## 소유 파일 -- Modify only directly superseded statements: `docs/PRD.md` -- Modify only directly superseded statements: `docs/ARCHITECTURE.md` +- Modify only directly superseded statements: `../../docs/solver-core/README.md` +- Modify only directly superseded statements: `../../docs/solver-core/README.md` - Modify only directly superseded decisions or add the minimum accepted decision record: - `docs/ADR.md` -- Create from actual outputs: `docs/nonlinear-static-newton-raphson/implementation-report.md` -- Create from actual outputs: `docs/nonlinear-static-newton-raphson/build-test.md` -- Create from actual outputs: `docs/nonlinear-static-newton-raphson/reference-comparison.md` + `../../docs/solver-core/README.md` +- Create from actual outputs: `../../docs/nonlinear-static-newton-raphson/README.md` +- Create from actual outputs: `../../docs/nonlinear-static-newton-raphson/README.md` +- Create from actual outputs: `../../docs/nonlinear-static-newton-raphson/README.md` No C++ production, public header, test, CMake, Harness, reference or tolerance file is owned by this Step. @@ -84,7 +87,7 @@ evidence provenance conflict. ## GREEN: fresh evidence execution -Use the ignored `.harness/config.json` and tracked `windows-msvc-ninja-debug` preset. The parent +Use the ignored 과거 검증 자료(정리됨) and tracked `windows-msvc-ninja-debug` preset. The parent environment must be VsDevCmd x64 and contain `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR`. @@ -122,7 +125,7 @@ ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticReference|Reference ``` Compare by `(case_id, accepted_state, canonical_instance_name, source_node_label, component)`, never -by row order. Apply `docs/TOLERANCE.md` only to external U/UR/local-review families. Apply internal +by row order. Apply `../../docs/solver-core/README.md` only to external U/UR/local-review families. Apply internal `1e-8` force/moment balance and NSNR-069 free-residual gates separately. Preserve the exact blocking/warning/review/excluded dispositions. @@ -221,7 +224,6 @@ to Coordinator; it does not itself dispatch Physics or Release. are execution evidence, not predictions. - Do not change C++ code, tests, CMake, Harness configuration, tolerance or reference artifacts. 이유: Step 12 is evidence closure only. -- Do not run `scripts/execute.py` from this Step. 이유: Executor already owns the active Step session. - Do not reorder or collapse `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT`. 이유: schema and identity failures must precede tolerance and verdict. - Do not make local RF/RM blocking, omit their errors, or compare RM3/stress. 이유: diff --git a/phases/nonlinear-static-newton-raphson/step2.md b/phases/nonlinear-static-newton-raphson/step2.md index 6db7f0d..40a8444 100644 --- a/phases/nonlinear-static-newton-raphson/step2.md +++ b/phases/nonlinear-static-newton-raphson/step2.md @@ -1,13 +1,16 @@ # Step 2: finite-rotation-state +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/nonlinear-static-newton-raphson/README.md)을 따른다. + ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/nonlinear-static-newton-raphson/formulation.md` -- `docs/nonlinear-static-newton-raphson/numerical-review.md` -- `docs/nonlinear-static-newton-raphson/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/nonlinear-static-newton-raphson/formulation.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` - `include/fesa/math/vector3.h` - `include/fesa/math/matrix.h` - `tests/unit/math/vector3_test.cpp` @@ -84,7 +87,7 @@ ctest --preset windows-msvc-ninja-debug --show-only=json-v1 ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. +Use the ignored 과거 검증 자료(정리됨) preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step3.md b/phases/nonlinear-static-newton-raphson/step3.md index 77647fd..0966337 100644 --- a/phases/nonlinear-static-newton-raphson/step3.md +++ b/phases/nonlinear-static-newton-raphson/step3.md @@ -1,13 +1,16 @@ # Step 3: nonlinear-mitc4-kinematics-and-recovery +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/nonlinear-static-newton-raphson/README.md)을 따른다. + ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/nonlinear-static-newton-raphson/formulation.md` -- `docs/nonlinear-static-newton-raphson/numerical-review.md` -- `docs/nonlinear-static-newton-raphson/io.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/nonlinear-static-newton-raphson/formulation.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` - `include/fesa/elements/mitc4_shell.h` - `src/fesa/elements/mitc4_shell.cpp` - `tests/unit/elements/mitc4_shell_test.cpp` @@ -107,7 +110,7 @@ ctest --preset windows-msvc-ninja-debug --show-only=json-v1 ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. +Use the ignored 과거 검증 자료(정리됨) preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step4.md b/phases/nonlinear-static-newton-raphson/step4.md index e494133..54b6417 100644 --- a/phases/nonlinear-static-newton-raphson/step4.md +++ b/phases/nonlinear-static-newton-raphson/step4.md @@ -1,12 +1,15 @@ # Step 4: nonlinear-mitc4-residual-and-tangent +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/nonlinear-static-newton-raphson/README.md)을 따른다. + ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/nonlinear-static-newton-raphson/formulation.md` -- `docs/nonlinear-static-newton-raphson/numerical-review.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/nonlinear-static-newton-raphson/formulation.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` - `include/fesa/elements/nonlinear_mitc4_shell.h` - `src/fesa/elements/nonlinear_mitc4_shell.cpp` - `tests/unit/elements/nonlinear_mitc4_shell_test.cpp` @@ -81,7 +84,7 @@ ctest --preset windows-msvc-ninja-debug --show-only=json-v1 ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. +Use the ignored 과거 검증 자료(정리됨) preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step5.md b/phases/nonlinear-static-newton-raphson/step5.md index 750fd42..b0903d4 100644 --- a/phases/nonlinear-static-newton-raphson/step5.md +++ b/phases/nonlinear-static-newton-raphson/step5.md @@ -1,13 +1,16 @@ # Step 5: load-boundary-path-and-convergence-gates +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/nonlinear-static-newton-raphson/README.md)을 따른다. + ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/nonlinear-static-newton-raphson/requirements.md` -- `docs/nonlinear-static-newton-raphson/formulation.md` -- `docs/nonlinear-static-newton-raphson/numerical-review.md` -- `docs/nonlinear-static-newton-raphson/io.md` +- `../../docs/solver-core/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/formulation.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` - `include/fesa/core/diagnostic.h` - `include/fesa/fem/dof_manager.h` - `include/fesa/math/sparse_matrix.h` @@ -168,7 +171,7 @@ ctest --preset windows-msvc-ninja-debug --show-only=json-v1 ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. +Use the ignored 과거 검증 자료(정리됨) preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step6.md b/phases/nonlinear-static-newton-raphson/step6.md index d96916b..8f2cd3b 100644 --- a/phases/nonlinear-static-newton-raphson/step6.md +++ b/phases/nonlinear-static-newton-raphson/step6.md @@ -1,12 +1,15 @@ # Step 6: backend-neutral-tangent-solver +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/nonlinear-static-newton-raphson/README.md)을 따른다. + ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/nonlinear-static-newton-raphson/formulation.md` -- `docs/nonlinear-static-newton-raphson/numerical-review.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/nonlinear-static-newton-raphson/formulation.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` - `include/fesa/solvers/linear/linear_solver.h` - `include/fesa/solvers/linear/mkl_pardiso_solver.h` - `src/fesa/solvers/linear/mkl_pardiso_solver.cpp` @@ -88,7 +91,7 @@ ctest --preset windows-msvc-ninja-debug --show-only=json-v1 ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. +Use the ignored 과거 검증 자료(정리됨) preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step7.md b/phases/nonlinear-static-newton-raphson/step7.md index b5257e9..9865f53 100644 --- a/phases/nonlinear-static-newton-raphson/step7.md +++ b/phases/nonlinear-static-newton-raphson/step7.md @@ -1,12 +1,15 @@ # Step 7: newton-iteration-log-writer +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/nonlinear-static-newton-raphson/README.md)을 따른다. + ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/nonlinear-static-newton-raphson/io.md` -- `docs/nonlinear-static-newton-raphson/formulation.md` -- `docs/nonlinear-static-newton-raphson/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/formulation.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` - Step 0 files: `include/fesa/app/output_paths.h`, `src/fesa/app/output_paths.cpp`, `include/fesa/analysis/analysis.h` - Step 5 files: `include/fesa/analysis/nonlinear_static_control.h` @@ -120,7 +123,7 @@ ctest --preset windows-msvc-ninja-debug --show-only=json-v1 ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. +Use the ignored 과거 검증 자료(정리됨) preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step8.md b/phases/nonlinear-static-newton-raphson/step8.md index f543ae0..28dafb6 100644 --- a/phases/nonlinear-static-newton-raphson/step8.md +++ b/phases/nonlinear-static-newton-raphson/step8.md @@ -1,13 +1,16 @@ # Step 8: nonlinear-state-commit-rollback +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/nonlinear-static-newton-raphson/README.md)을 따른다. + ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/nonlinear-static-newton-raphson/requirements.md` -- `docs/nonlinear-static-newton-raphson/formulation.md` -- `docs/nonlinear-static-newton-raphson/io.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/formulation.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` - `include/fesa/analysis/analysis_state.h` - `src/fesa/analysis/analysis_state.cpp` - `include/fesa/core/source_identity.h` @@ -150,7 +153,7 @@ ctest --preset windows-msvc-ninja-debug --show-only=json-v1 ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. +Use the ignored 과거 검증 자료(정리됨) preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step9.md b/phases/nonlinear-static-newton-raphson/step9.md index 6231257..e07815b 100644 --- a/phases/nonlinear-static-newton-raphson/step9.md +++ b/phases/nonlinear-static-newton-raphson/step9.md @@ -1,12 +1,15 @@ # Step 9: nonlinear-hdf5-schema-v1-writer +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/nonlinear-static-newton-raphson/README.md)을 따른다. + ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/nonlinear-static-newton-raphson/io.md` -- `docs/nonlinear-static-newton-raphson/reference-model.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` +- `../../docs/nonlinear-static-newton-raphson/README.md` - `include/fesa/io/hdf5/hdf5_results_writer.h` - `include/fesa/results/results_writer.h` - `src/fesa/io/hdf5/hdf5_results_writer.cpp` @@ -100,7 +103,7 @@ ctest --preset windows-msvc-ninja-debug --show-only=json-v1 ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. +Use the ignored 과거 검증 자료(정리됨) preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/shell-surface-pressure-load/step1.md b/phases/shell-surface-pressure-load/step1.md index 6acf2b6..fd0816b 100644 --- a/phases/shell-surface-pressure-load/step1.md +++ b/phases/shell-surface-pressure-load/step1.md @@ -1,5 +1,8 @@ # Step 1: map-pressure-input-contract +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/shell-surface-pressure-load/README.md)을 따른다. + ## 실행 범위와 상태 소유권 이 Step의 단일 책임은 valid assembly-level `*SURFACE, TYPE=ELEMENT`와 sole static Step의 `*DSLOAD P`를 immutable Domain/Step semantic objects와 non-owning `AnalysisModel` view로 mapping하는 것이다. 이 Step 안에서 `RED -> observed expected failure -> minimal GREEN -> focused VERIFY -> full/Stop VERIFY`를 끝내고 green 상태로 종료한다. @@ -11,20 +14,20 @@ Implementation Agent는 Executor가 선택한 이 Step만 수행한다. 성공 먼저 전부 읽는다. - `AGENTS.md` -- `docs/PRD.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/CODINGSTYLE.md` -- `docs/HARNESS.md` -- `docs/HARNESS_WORKFLOW.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` - `.codex/hooks.json` -- `docs/shell-surface-pressure-load/requirements.md` -- `docs/shell-surface-pressure-load/research.md` -- `docs/shell-surface-pressure-load/formulation.md` -- `docs/shell-surface-pressure-load/numerical-review.md` -- `docs/shell-surface-pressure-load/reference-model.md` -- `docs/shell-surface-pressure-load/io.md` -- `docs/shell-surface-pressure-load/implementation-plan.md` +- `../../docs/shell-surface-pressure-load/README.md` +- `../../docs/shell-surface-pressure-load/README.md` +- `../../docs/shell-surface-pressure-load/formulation.md` +- `../../docs/shell-surface-pressure-load/README.md` +- `../../docs/shell-surface-pressure-load/README.md` +- `../../docs/shell-surface-pressure-load/README.md` +- `../../docs/shell-surface-pressure-load/README.md` - `include/fesa/io/abaqus/input_syntax.h` - `include/fesa/io/abaqus/input_reader.h` - `src/fesa/io/abaqus/input_reader.cpp` @@ -160,15 +163,7 @@ The mixed-instance fixture declares `Instance-A` and `Instance-B` in distinct de After test edits and CMake test registration, run: -```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(InpSyntax|ShellSurfacePressureInput|ShellSurfacePressureDomain)\." -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Expected RED: missing mapper/header/semantic accessors produces compile/link failure, or current unsupported `SURFACE`/`DSLOAD` behavior fails assertions. The mixed-instance fixture must fail because the two explicit instances/mixed direct+ELSET are not resolved or committed identity/provenance is absent. Record command, exit code, duration and meaningful output tail. An unrelated existing failure is `regression`; an unexpected pass is an `evidence-gap`. Stop before production changes until the expected RED is observed. @@ -184,16 +179,9 @@ Expected RED: missing mapper/header/semantic accessors produces compile/link fai ## VERIFY and Acceptance Criteria -If `.harness/config.json` exists at execution time, its complete configure/build/test selection takes precedence and the exact resolved commands must be recorded. Otherwise execute: +If 과거 검증 자료(정리됨) exists at execution time, its complete configure/build/test selection takes precedence and the exact resolved commands must be recorded. Otherwise execute: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(InpSyntax|ShellSurfacePressureInput|ShellSurfacePressureDomain)\." -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(InpDomainMapping|DomainMappingComponents|InpSyntax)\." -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Acceptance requires exit `0`, nonzero discovered tests, all named tests present/pass, no new MSVC `/W4 /WX` warnings, and all legacy tests green. The automatic Stop hook performs another whole-project MSVC validation; do not call hook scripts manually. @@ -212,5 +200,3 @@ Trace: `FESA-REQ-SHELL-PRESSURE-001`–`004`, `010`, `013`; `io.md` §§2–6; ` - Do not implement pressure force/tangent or procedure assembly. 이유: Steps 3–5 ownership이다. - Do not support `*DLOAD`, implicit-instance ELSET, part surface, generalized distributed loads or additional element types. 이유: approved subset 밖이다. - Do not change HDF5 schema, CLI output contract, upstream docs, tolerance or reference artifacts. -- Do not run Abaqus/reference solvers, create output JSON, invoke `scripts/execute.py`, select Step 2, commit or push. - diff --git a/phases/shell-surface-pressure-load/step2.md b/phases/shell-surface-pressure-load/step2.md index 401f932..65d095b 100644 --- a/phases/shell-surface-pressure-load/step2.md +++ b/phases/shell-surface-pressure-load/step2.md @@ -1,5 +1,8 @@ # Step 2: reject-invalid-pressure-input +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/shell-surface-pressure-load/README.md)을 따른다. + ## 실행 범위와 상태 소유권 이 Step의 단일 책임은 Step 1의 pressure input/model mapping에 deterministic fail-closed negative semantics, duplicate rules, diagnostics and atomic commit behavior를 완결하는 것이다. 동일 Step 안에서 RED부터 full green까지 끝낸다. @@ -9,17 +12,17 @@ Implementation Agent는 Executor-selected Step 2만 수행하고 task index의 S ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/CODINGSTYLE.md` -- `docs/HARNESS.md` -- `docs/HARNESS_WORKFLOW.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` - `.codex/hooks.json` -- `docs/shell-surface-pressure-load/requirements.md` -- `docs/shell-surface-pressure-load/formulation.md` -- `docs/shell-surface-pressure-load/numerical-review.md` -- `docs/shell-surface-pressure-load/io.md` -- `docs/shell-surface-pressure-load/implementation-plan.md` +- `../../docs/shell-surface-pressure-load/README.md` +- `../../docs/shell-surface-pressure-load/formulation.md` +- `../../docs/shell-surface-pressure-load/README.md` +- `../../docs/shell-surface-pressure-load/README.md` +- `../../docs/shell-surface-pressure-load/README.md` - `include/fesa/core/ascii.h` - `include/fesa/core/diagnostic.h` - `include/fesa/model/source_target_resolver.h` @@ -71,10 +74,7 @@ Add these named tests first: Run before production edits: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(ShellSurfacePressureInput|ShellSurfacePressureDomain)\." -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Expected RED: the Step 1 happy-path mapper accepts at least one unsupported form, lacks complete stable diagnostics, or does not distinguish exact same-side normalization from conflicting-side failure. Record command, exit, duration and tail. Unexpected pass is an evidence gap; unrelated failure is regression and must be resolved/classified before GREEN. @@ -89,16 +89,9 @@ Expected RED: the Step 1 happy-path mapper accepts at least one unsupported form ## VERIFY and Acceptance Criteria -If `.harness/config.json` exists, use its resolved commands first. Otherwise run: +If 과거 검증 자료(정리됨) exists, use its resolved commands first. Otherwise run: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(ShellSurfacePressureInput|ShellSurfacePressureDomain)\." -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(InpDomainMapping|DomainMappingComponents|InpSyntax)\." -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Acceptance requires every named negative test and legacy parser/domain test green, exact diagnostic tuple `(severity,code,file,line,keyword,entity_identity,message)`, repeated-run diagnostic order exact, no partial Domain, nonzero CTest discovery, no new warning and full CTest pass. Let Stop hook run automatically. @@ -117,5 +110,3 @@ Trace: `FESA-REQ-SHELL-PRESSURE-002`–`004`, `013`–`017`; `io.md` §§2–6, - Do not implement the evaluator/assembler, change tolerance, rewrite artifacts or refactor the general parser. 이유: 이 Step의 negative semantic scope 밖이다. - Do not weaken the valid multi-explicit-instance contract from Step 1. - Do not modify upstream docs, HDF5 writers, source reference files or phase statuses other than Step 2's Executor-selected record. -- Do not run Abaqus, create output JSON, invoke `scripts/execute.py`, advance Step 3, commit or push. - diff --git a/phases/shell-surface-pressure-load/step3.md b/phases/shell-surface-pressure-load/step3.md index 4585730..824213f 100644 --- a/phases/shell-surface-pressure-load/step3.md +++ b/phases/shell-surface-pressure-load/step3.md @@ -1,5 +1,8 @@ # Step 3: evaluate-shell-pressure-kernel +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/shell-surface-pressure-load/README.md)을 따른다. + ## 실행 범위와 상태 소유권 이 Step의 단일 책임은 one four-node shell facet의 reference/current surface-pressure `24x1` external force와 exact `24x24` external tangent를 backend-neutral하게 계산하는 것이다. Parser, full-space assembler, analysis procedure and HDF5 integration은 범위 밖이다. Same Step에서 RED, expected failure, minimal GREEN and focused VERIFY를 수행한 뒤 종료하며, automatic Stop hook이 exactly one whole-project full verification을 소유한다. @@ -9,17 +12,17 @@ Implementation Agent는 Step 3 record의 `status`와 한 줄 `summary`/`error_me ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/CODINGSTYLE.md` -- `docs/HARNESS.md` -- `docs/HARNESS_WORKFLOW.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` - `.codex/hooks.json` -- `docs/shell-surface-pressure-load/requirements.md` -- `docs/shell-surface-pressure-load/formulation.md` §§6, 9–10, 13–14 -- `docs/shell-surface-pressure-load/numerical-review.md` §§3–6 -- `docs/shell-surface-pressure-load/io.md` §§4–6, 9 -- `docs/shell-surface-pressure-load/implementation-plan.md` +- `../../docs/shell-surface-pressure-load/README.md` +- `../../docs/shell-surface-pressure-load/formulation.md` §§6, 9–10, 13–14 +- `../../docs/shell-surface-pressure-load/README.md` §§3–6 +- `../../docs/shell-surface-pressure-load/README.md` §§4–6, 9 +- `../../docs/shell-surface-pressure-load/README.md` - `include/fesa/model/model_types.h` - `include/fesa/model/shell_geometry.h` - `src/fesa/model/shell_geometry.cpp` @@ -90,15 +93,7 @@ Write and register these tests before the new production header/source: Run: -```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^ShellSurfacePressureKernel\." -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Expected RED: compile/link fails because the evaluator declaration/definition is absent. If the header is staged first, physics assertions must fail until implementation exists. Record exact command, exit, duration and tail. Do not use existing MITC4 internal-force code as pressure GREEN. Unexpected pass is evidence-gap; unrelated failure is regression. @@ -115,14 +110,9 @@ Expected RED: compile/link fails because the evaluator declaration/definition is ## VERIFY and Acceptance Criteria -Use `.harness/config.json` first if present; otherwise: +Use 과거 검증 자료(정리됨) first if present; otherwise: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^ShellSurfacePressureKernel\." -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(Mitc4Shell|NonlinearMitc4Shell|NonlinearMitc4ShellTangent)\." -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Acceptance: @@ -153,4 +143,3 @@ Trace: `FESA-REQ-SHELL-PRESSURE-005`–`009`, `016`, `020`–`021`; formulation - Do not implement full-space assembly or linear/nonlinear procedure changes; those belong to Steps 4–5. - Do not modify parser contracts, upstream docs, HDF5, tolerance or reference artifacts. - Do not run reference solvers, create output JSON, invoke Executor, advance Step 4, commit or push. - diff --git a/phases/shell-surface-pressure-load/step4.md b/phases/shell-surface-pressure-load/step4.md index 7ad2772..f7d22e7 100644 --- a/phases/shell-surface-pressure-load/step4.md +++ b/phases/shell-surface-pressure-load/step4.md @@ -1,5 +1,8 @@ # Step 4: integrate-linear-shell-pressure +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/shell-surface-pressure-load/README.md)을 따른다. + ## 실행 범위와 상태 소유권 이 Step의 single responsibility는 Step 3 local evaluator를 deterministic full-space pressure assembler와 linear-static reference-configuration path에 연결하고 existing schema-0/CLI/reaction/equilibrium behavior를 검증하는 것이다. Nonlinear follower procedure는 Step 5 범위다. @@ -9,17 +12,17 @@ Complete test-first RED, expected failure, minimal GREEN and focused VERIFY in t ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/CODINGSTYLE.md` -- `docs/HARNESS.md` -- `docs/HARNESS_WORKFLOW.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` - `.codex/hooks.json` -- `docs/shell-surface-pressure-load/requirements.md` -- `docs/shell-surface-pressure-load/formulation.md` §§9, 11–14 -- `docs/shell-surface-pressure-load/numerical-review.md` §6 -- `docs/shell-surface-pressure-load/io.md` §§6–7, 9–10 -- `docs/shell-surface-pressure-load/implementation-plan.md` +- `../../docs/shell-surface-pressure-load/README.md` +- `../../docs/shell-surface-pressure-load/formulation.md` §§9, 11–14 +- `../../docs/shell-surface-pressure-load/README.md` §6 +- `../../docs/shell-surface-pressure-load/README.md` §§6–7, 9–10 +- `../../docs/shell-surface-pressure-load/README.md` - Prior semantic outputs: `include/fesa/model/model_types.h`, `include/fesa/model/domain.h`, `src/fesa/model/domain.cpp`, `include/fesa/analysis/analysis_model.h`, `src/fesa/analysis/analysis_model.cpp` - Prior evaluator outputs: `include/fesa/loads/shell_surface_pressure.h`, `src/fesa/loads/shell_surface_pressure.cpp`, `tests/unit/loads/shell_surface_pressure_test.cpp` - `include/fesa/assembly/load_assembler.h` @@ -101,15 +104,7 @@ Write/register first: Run before production implementation: -```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_integration_tests -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(SurfacePressureAssembly|LinearShellSurfacePressure|ShellSurfacePressureApplication)\." -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Expected RED: assembler compile/link failure, or linear procedure assembles only CLOAD so pressure resultant/reaction remains zero and pressure CLI assertions fail. Record command, exit, duration and output tail. Unexpected pass is evidence-gap; unrelated failure is regression. @@ -125,14 +120,9 @@ Expected RED: assembler compile/link failure, or linear procedure assembles only ## VERIFY and Acceptance Criteria -Use `.harness/config.json` first if present; otherwise: +Use 과거 검증 자료(정리됨) first if present; otherwise: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_integration_tests -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(SurfacePressureAssembly|LinearShellSurfacePressure|ShellSurfacePressureApplication)\." -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(LoadAssembly|SparseAssembly|LinearStaticCli|Mitc4ShellCli|Hdf5ResultsWriter)\." -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 위 targeted build, focused feature/regression tests와 nonzero discovery evidence를 기록한 뒤 Step status/summary를 갱신하고 agent turn을 종료한다. Implementation Agent는 target 없는 whole-project build 또는 unfiltered full CTest를 실행하지 않는다. Automatic Stop hook이 exactly one whole-project MSVC x64 Debug build/full CTest를 수행한다. @@ -163,4 +153,3 @@ Trace: `FESA-REQ-SHELL-PRESSURE-005`–`007`, `010`–`013`, `016`–`020`; io - Do not refactor existing load hierarchy beyond the new pressure assembler or expose MKL/TBB/HDF5 in public core. - Do not modify upstream docs, tolerance/reference artifacts or Abaqus files. - Do not run Abaqus, create output JSON, invoke Executor, advance Step 5, commit or push. - diff --git a/phases/shell-surface-pressure-load/step5.md b/phases/shell-surface-pressure-load/step5.md index 27e3385..f2f6cbd 100644 --- a/phases/shell-surface-pressure-load/step5.md +++ b/phases/shell-surface-pressure-load/step5.md @@ -1,5 +1,8 @@ # Step 5: integrate-nonlinear-follower-pressure +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/shell-surface-pressure-load/README.md)을 따른다. + ## 실행 범위와 상태 소유권 이 Step의 단일 책임은 current-configuration follower pressure force와 generally nonsymmetric exact external tangent를 nonlinear full-Newton trial/commit lifecycle과 existing schema-1 output에 연결하는 것이다. Same Step에서 test-first RED, expected failure, minimal GREEN and focused VERIFY를 완료한 뒤 종료하며, automatic Stop hook이 exactly one whole-project full verification을 소유한다. @@ -9,17 +12,17 @@ Implementation Agent는 Executor-selected Step 5만 수행하고 Step 5 `status` ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/CODINGSTYLE.md` -- `docs/HARNESS.md` -- `docs/HARNESS_WORKFLOW.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` - `.codex/hooks.json` -- `docs/shell-surface-pressure-load/requirements.md` -- `docs/shell-surface-pressure-load/formulation.md` §§9.2–9.4, 11–14 -- `docs/shell-surface-pressure-load/numerical-review.md` §6 nonlinear suite -- `docs/shell-surface-pressure-load/io.md` §§6–7, 9–10 -- `docs/shell-surface-pressure-load/implementation-plan.md` +- `../../docs/shell-surface-pressure-load/README.md` +- `../../docs/shell-surface-pressure-load/formulation.md` §§9.2–9.4, 11–14 +- `../../docs/shell-surface-pressure-load/README.md` §6 nonlinear suite +- `../../docs/shell-surface-pressure-load/README.md` §§6–7, 9–10 +- `../../docs/shell-surface-pressure-load/README.md` - Prior outputs: `include/fesa/model/model_types.h`, `include/fesa/model/domain.h`, `src/fesa/model/domain.cpp`, `include/fesa/analysis/analysis_model.h`, `src/fesa/analysis/analysis_model.cpp` - Prior evaluator/assembler: `include/fesa/loads/shell_surface_pressure.h`, `src/fesa/loads/shell_surface_pressure.cpp`, `include/fesa/assembly/surface_pressure_assembler.h`, `src/fesa/assembly/surface_pressure_assembler.cpp`, their unit tests - `include/fesa/analysis/nonlinear_static_control.h` @@ -92,15 +95,7 @@ Write/register first: Run before production edits: -```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_integration_tests -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(NonlinearShellSurfacePressure|ShellSurfacePressureApplication)\." -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Expected RED: current nonlinear procedure includes fixed CLOAD only, so follower force/tangent, objectivity, sign, convergence or balance tests fail. Record command, exit, duration and tail. Unexpected pass is evidence-gap; unrelated failure is regression. @@ -116,14 +111,9 @@ Expected RED: current nonlinear procedure includes fixed CLOAD only, so follower ## VERIFY and Acceptance Criteria -Use `.harness/config.json` first if present; otherwise: +Use 과거 검증 자료(정리됨) first if present; otherwise: -```powershell -cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_integration_tests -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(NonlinearShellSurfacePressure|ShellSurfacePressureApplication)\." -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(NonlinearStaticProcedure|NonlinearStaticControl|TangentSolver|NonlinearHdf5ResultsWriter|NonlinearStaticReference)\." -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 위 targeted build, focused feature/regression tests와 nonzero discovery evidence를 기록한 뒤 Step status/summary를 갱신하고 agent turn을 종료한다. Implementation Agent는 target 없는 whole-project build 또는 unfiltered full CTest를 실행하지 않는다. Automatic Stop hook이 exactly one whole-project MSVC x64 Debug build/full CTest를 수행한다. @@ -144,4 +134,3 @@ Trace: `FESA-REQ-SHELL-PRESSURE-008`–`013`, `016`–`019`, `021`; io §§6–7 - Do not alter Step 3 force/tangent math or Step 4 linear path except a test-proven defect returned to the owning Step through Coordinator. - Do not modify upstream docs, tolerance/reference artifacts or run Abaqus. - Do not create output JSON, invoke Executor, advance Step 6, commit or push. - diff --git a/phases/shell-surface-pressure-load/step6.md b/phases/shell-surface-pressure-load/step6.md index 9e179ad..234fe2e 100644 --- a/phases/shell-surface-pressure-load/step6.md +++ b/phases/shell-surface-pressure-load/step6.md @@ -1,5 +1,8 @@ # Step 6: compare-pressure-reference +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/shell-surface-pressure-load/README.md)을 따른다. + ## 실행 범위와 상태 소유권 이 Step's single responsibility is to add deterministic comparison support between FESA schema-1 factor-one HDF5 and the exact stored shell-pressure displacement CSV using the unchanged common tolerance. It does not generate reference data and does not write final Gate 6 reports; Step 7 owns closure reports. @@ -9,18 +12,18 @@ Complete RED, expected failure, minimal GREEN and focused VERIFY here, then end ## 읽어야 할 파일 - `AGENTS.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/CODINGSTYLE.md` -- `docs/HARNESS.md` -- `docs/HARNESS_WORKFLOW.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` - `.codex/hooks.json` -- `docs/TOLERANCE.md` -- `docs/shell-surface-pressure-load/requirements.md` -- `docs/shell-surface-pressure-load/numerical-review.md` §§6.2–6.3 -- `docs/shell-surface-pressure-load/reference-model.md` -- `docs/shell-surface-pressure-load/io.md` §8 -- `docs/shell-surface-pressure-load/implementation-plan.md` +- `../../docs/solver-core/README.md` +- `../../docs/shell-surface-pressure-load/README.md` +- `../../docs/shell-surface-pressure-load/README.md` §§6.2–6.3 +- `../../docs/shell-surface-pressure-load/README.md` +- `../../docs/shell-surface-pressure-load/README.md` §8 +- `../../docs/shell-surface-pressure-load/README.md` - All prior implemented/test files from Steps 1–5, especially `tests/integration/analysis/shell_surface_pressure_nonlinear_test.cpp` - `tests/reference/reference_tolerance_policy.h` - `tests/reference/reference_tolerance_policy.cpp` @@ -41,7 +44,7 @@ Complete RED, expected failure, minimal GREEN and focused VERIFY here, then end - Optional review-only reaction CSV: `reference/shellNL-meshfine-pressure/shellNL-meshfine-pressure reactions.csv`, never verdict-changing. - Excluded stress CSV: `reference/shellNL-meshfine-pressure/shellNL-meshfine-pressure stresses.csv`, no comparison family. -Never rename, rewrite, normalize, repair, regenerate or reorder any artifact. Never run Abaqus or another reference solver. Run FESA only on a byte-identical copy under `.harness/build/reference/shell-surface-pressure-load/`. +Never rename, rewrite, normalize, repair, regenerate or reorder any artifact. Never run Abaqus or another reference solver. Run FESA only on a byte-identical copy under 과거 검증 자료(정리됨). ## 소유 파일과 interface boundary @@ -85,15 +88,7 @@ Write/register first: Run before comparator implementation: -```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_reference_tests -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^ShellSurfacePressureReference\." -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Expected RED: current nonlinear registry has no pressure case/disposition and assumes a legacy artifact portfolio, so the exact two-required-file contract, schema/frame projection or 729/2187 cardinality fails. Record command, exit, duration and tail. Unexpected pass is evidence-gap; unrelated failure is regression. @@ -109,14 +104,9 @@ Expected RED: current nonlinear registry has no pressure case/disposition and as ## VERIFY and Acceptance Criteria -Use `.harness/config.json` first if present; otherwise: +Use 과거 검증 자료(정리됨) first if present; otherwise: -```powershell -cmake --build .harness/build --config Debug --target fesa_reference_tests -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^ShellSurfacePressureReference\." -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(NonlinearStaticReference|ReferenceTolerancePolicy|Mitc4Reference)\." -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. 위 targeted build, focused pressure/reference regressions와 nonzero discovery evidence를 기록한 뒤 Step status/summary를 갱신하고 agent turn을 종료한다. Implementation Agent는 target 없는 whole-project build 또는 unfiltered full CTest를 실행하지 않는다. Automatic Stop hook이 exactly one whole-project MSVC x64 Debug build/full CTest를 수행한다. @@ -136,4 +126,3 @@ Trace: `FESA-REQ-SHELL-PRESSURE-017`–`019`, `021`–`024`; io §8; reference-m - Do not generate/edit/rename reference files, change tolerance, promote reaction/stress, add metadata requirements or run Abaqus. - Do not modify solver production unless failure is returned through Coordinator to the owning implementation Step. - Do not write final reports yet, create output JSON, invoke Executor, advance Step 7, commit or push. - diff --git a/phases/shell-surface-pressure-load/step7.md b/phases/shell-surface-pressure-load/step7.md index b58e765..327790e 100644 --- a/phases/shell-surface-pressure-load/step7.md +++ b/phases/shell-surface-pressure-load/step7.md @@ -1,5 +1,8 @@ # Step 7: verify-and-report-pressure-feature +> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다. +> 현재 구현과 검증 한계는 [기능 요약](../../docs/shell-surface-pressure-load/README.md)을 따른다. + ## 실행 범위와 상태 소유권 This final Implementation-owned Step inspects all prior artifacts, performs fresh targeted MSVC/focused CTest and exact pressure-reference gates, and completes the three Gate 6 evidence documents. Code changes are not the default scope. The required sequence is literally `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT` after agent-owned focused gates; automatic Stop owns exactly one whole-project full verification. @@ -9,16 +12,16 @@ Implementation Agent may update only Step 7's `status` and one-line `summary`/`e ## 읽어야 할 파일 - `AGENTS.md` -- `docs/PRD.md` -- `docs/ARCHITECTURE.md` -- `docs/ADR.md` -- `docs/CODINGSTYLE.md` -- `docs/HARNESS.md` -- `docs/HARNESS_WORKFLOW.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` +- `../../docs/solver-core/README.md` - `.codex/hooks.json` -- `.harness/config.json` if it exists at execution time +- 과거 검증 자료(정리됨) if it exists at execution time - `CMakeLists.txt`, `src/fesa/CMakeLists.txt`, `tests/CMakeLists.txt` -- Every `docs/shell-surface-pressure-load/*.md` upstream and approved plan +- Every `../../docs/shell-surface-pressure-load/README.md` upstream and approved plan - `phases/shell-surface-pressure-load/index.json` - All production/test files created or modified in Steps 1–6 - `tests/reference/shell_surface_pressure_reference_test.cpp` @@ -29,9 +32,9 @@ Read all prior Step summaries and changed files. Verify that every production ch ## 소유 파일 -- Create/complete: `docs/shell-surface-pressure-load/implementation-report.md` -- Create/complete: `docs/shell-surface-pressure-load/build-test.md` -- Create/complete: `docs/shell-surface-pressure-load/reference-comparison.md` +- Create/complete: `../../docs/shell-surface-pressure-load/README.md` +- Create/complete: `../../docs/shell-surface-pressure-load/README.md` +- Create/complete: `../../docs/shell-surface-pressure-load/README.md` Production, tests, CMake and phase files are read-only in this Step except Step 7's selected status/payload. If verification exposes an implementation defect, classify and return it to Coordinator/the owning earlier Step; do not silently repair it here. @@ -43,19 +46,9 @@ Record the preflight result before running final gates. ## Fresh MSVC x64 Debug gates -If `.harness/config.json` exists, it takes precedence and the reports must record its exact resolved configure/build/test commands. Otherwise run exactly: +If 과거 검증 자료(정리됨) exists, it takes precedence and the reports must record its exact resolved configure/build/test commands. Otherwise run exactly: -```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=C:/git/googletest" ` - "-DMKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl" ` - "-DTBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb" ` - "-DHDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake" -cmake --build .harness/build --config Debug --target fesa_unit_tests fesa_integration_tests fesa_reference_tests -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^(InpSyntax|ShellSurfacePressureInput|ShellSurfacePressureDomain|ShellSurfacePressureKernel|SurfacePressureAssembly|LinearShellSurfacePressure|NonlinearShellSurfacePressure|ShellSurfacePressureApplication|ShellSurfacePressureReference)\." -ctest --test-dir .harness/build -C Debug --output-on-failure -R "^ShellSurfacePressureReference\." -``` +과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다. Acceptance requires every agent-owned exit `0`, nonzero discovered tests including every named feature suite, focused CTest pass, no new `/W4 /WX` warning, correct MSVC/x64/Debug selection and successful MKL/TBB/HDF5 runtime staging. Record these results, complete the reports and selected Step status/summary, then end the agent turn. Do not run a targetless whole-project build or unfiltered full CTest: automatic Stop runs exactly one whole-project MSVC x64 Debug build/unfiltered CTest and its result is authoritative Harness evidence. No Harness/Python files are in scope, so do not run Python tests unless separately authorized Harness/Python changes actually occurred; then record `uv run --with pytest python -m pytest -v -rs` and why. @@ -70,7 +63,7 @@ Before running the pressure case, record path, SHA-256, bytes and timestamp for: - reaction CSV as review-only inventory; - stress CSV as excluded inventory. -Confirm source history/commands do not invoke Abaqus. Copy only the exact input to `.harness/build/reference/shell-surface-pressure-load/`. +Confirm source history/commands do not invoke Abaqus. Copy only the exact input to 과거 검증 자료(정리됨). ### COMPARE @@ -108,6 +101,4 @@ Do not claim release readiness. A passing Gate 6 report recommends only `pass-fo ## 금지사항 - Do not fix source/tests/CMake silently, generate reference data, run Abaqus, alter tolerance, upstream docs or artifact bytes. -- Do not approve physics/release gates, create Executor output JSON, invoke `scripts/execute.py`, update timestamps, commit or push. - Do not select another Step. 이유: this is the final Executor-selected implementation evidence Step only. - diff --git a/tests/AGENTS.md b/tests/AGENTS.md index ca97f12..38c09ad 100644 --- a/tests/AGENTS.md +++ b/tests/AGENTS.md @@ -1,6 +1,6 @@ # 검증과 reference evidence -Tests는 solver 동작·수학적 일관성·외부 비교 및 개발 실행기의 검증을 소유한다. +Tests는 solver 동작·수학적 일관성·외부 비교와 C++ 개발 규약의 검증을 소유한다. 테스트를 통과시키기 위해 제품 계약이나 reference 원본을 변경하지 않는다. - C++ unit·integration·reference와 Python suite는 서로 다른 범위다. CTest 성공을 @@ -13,5 +13,4 @@ Tests는 solver 동작·수학적 일관성·외부 비교 및 개발 실행기 기준 경계·zero scale·family 분리와 결정적 보고를 테스트한다. - Reference의 경로·값·naming·metadata를 임의 수정하지 않는다. 검증용 algebra fixture의 입력 자유도를 공개 CLI 지원으로 승격하지 않는다. -- 과거 profile·phase를 요구하는 테스트가 현행 절차와 다르면 별도 정리 대상으로 보고한다. - 미실행·skip·제외·실패를 PASS로 계산하거나 폐기된 workflow를 복원하지 않는다. +- 미실행·skip·제외·실패를 PASS로 계산하거나 폐기된 workflow를 복원하지 않는다.