docs: remove retired workflow instructions and repair references
This commit is contained in:
@@ -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 → 검증 실행기의 책임과 실패 처리
|
||||
│ ├── <feature-id>/ → 해당 기능의 요구·결정·수식·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·수치 기준·빌드 방법
|
||||
│ └── <feature-id>/ → 기능 요약과 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/<feature-id>/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를 실행하지 않는다. 동작 변경은 관련 검사부터,
|
||||
|
||||
@@ -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 → 검증 실행기의 책임과 실패 처리
|
||||
│ ├── <feature-id>/ → 해당 기능의 요구·결정·수식·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·수치 기준·빌드 방법
|
||||
│ └── <feature-id>/ → 기능 요약과 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/<feature-id>/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를 실행하지 않는다. 동작 변경은 관련 검사부터,
|
||||
|
||||
+20
-40
@@ -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하지 않았다.
|
||||
|
||||
@@ -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다.
|
||||
|
||||
|
||||
@@ -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는 같은 새 모델이다.
|
||||
|
||||
@@ -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 | 모델/조작 | 반드시 확인할 결과 |
|
||||
| --- | --- | --- |
|
||||
|
||||
@@ -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. 적용 가정과 보존량
|
||||
|
||||
|
||||
@@ -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. 실제 연산 경로
|
||||
|
||||
|
||||
@@ -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 선택과 물리 동등성의 조건
|
||||
|
||||
|
||||
@@ -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. 적용 가정과 물리 계약
|
||||
|
||||
|
||||
@@ -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의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다.
|
||||
|
||||
@@ -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 다른 후보와 채택하지 않은 이유
|
||||
|
||||
|
||||
@@ -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 다른 후보와 채택하지 않은 이유
|
||||
|
||||
|
||||
@@ -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. 가정과 검산
|
||||
|
||||
|
||||
@@ -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의 승인 계약을 참조하며 본 수식 문서가 새로운 영속 문자열을 정하지 않는다.
|
||||
|
||||
@@ -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의 보고서가 소유하며 본 문서가 스스로 승인하지 않는다.
|
||||
|
||||
@@ -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)을 적용했다.
|
||||
|
||||
<a id="formulation--핵심-계약"></a>
|
||||
### 핵심 계약
|
||||
@@ -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과 동일하다는 주장이 아니다.
|
||||
|
||||
<a id="formulation-stabilization--s1-초기-physical-trace로-고정하는-단일-scale"></a>
|
||||
@@ -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으로 확
|
||||
<a id="formulation-stabilization--s6-nr-mfe-001의-새-algebraic-target과-정적-대응"></a>
|
||||
### 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)를 그대로 적용한다.
|
||||
|
||||
<a id="formulation-verification--v1-공통-scale과-zero-branch"></a>
|
||||
### 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의 계약이다.
|
||||
|
||||
@@ -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 상대오차가 아니다.
|
||||
|
||||
@@ -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)에 기록했다. 이 수학 계약 자체를 실행 통과로 해석하지 않는다.
|
||||
|
||||
@@ -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 완화의 근거가 아니다.
|
||||
|
||||
물리·방법의 과거 미결정은 이번 승인 계약으로 대체되었다. 남은 독립 작업은 위 수치
|
||||
|
||||
@@ -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을 재귀 실행하면 안 된다.
|
||||
|
||||
@@ -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이 포함되지 않는다.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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<SparseMatrix> 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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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가 통과해야 한다.
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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`,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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은 새 요소를 다시 설계하는 작업이 아니다.
|
||||
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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와
|
||||
|
||||
@@ -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:
|
||||
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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가 모든
|
||||
문서에서 일치하는지 확인한다.
|
||||
|
||||
@@ -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`를 포함하고 통과 시
|
||||
|
||||
@@ -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 보존,
|
||||
|
||||
@@ -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을 분리한다.
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 절차
|
||||
|
||||
|
||||
@@ -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 요약을 기록한다.
|
||||
|
||||
|
||||
@@ -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에 기록한다.
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -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
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
## 검증 및 상태 갱신
|
||||
|
||||
|
||||
@@ -7,15 +7,11 @@
|
||||
"name": "bounded-execution-deadlines",
|
||||
"status": "blocked",
|
||||
"owned_paths": [
|
||||
"scripts/execute.py",
|
||||
".codex/hooks.json",
|
||||
"scripts/hooks/stop_validation.py",
|
||||
"scripts/msvc_harness/models.py",
|
||||
"scripts/msvc_harness/process.py",
|
||||
"tests/test_execute.py",
|
||||
"tests/test_harness_timeouts.py",
|
||||
"docs/HARNESS_WORKFLOW.md",
|
||||
"docs/mitc4-shell-feast-eigen/implementation-prep-evidence.md"
|
||||
"docs/solver-core/README.md",
|
||||
"docs/mitc4-shell-feast-eigen/README.md"
|
||||
],
|
||||
"started_at": "2026-09-06T10:04:44+0900",
|
||||
"attempt_history": [
|
||||
@@ -75,4 +71,4 @@
|
||||
}
|
||||
],
|
||||
"created_at": "2026-09-06T10:04:44+0900"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,24 +1,9 @@
|
||||
# Step 0: 유한 실행시간 조정과 정상 검증 경로 보존
|
||||
|
||||
> **과거 실행 기록:** 아래 지시·소유 경로는 당시 계획이며 현재 실행 입력이 아니다.
|
||||
> 원문은 Git `858e87b`에서 확인한다. 문서 링크는 통합된 기록으로 연결하며 새 작업은
|
||||
> [현재 문서 안내](../../docs/README.md)와 기능 PRD를 따른다.
|
||||
|
||||
> **현재 실행 계약(r2):** 모든 configure/build/CTest는 `mfe-workspace-msvc-ninja-debug`를 사용한다.
|
||||
> MSVC x64 Debug, 동일 Ninja graph의 manual/registered 검증과 `CMAKE_BUILD_PARALLEL_LEVEL=1`을 유지한다.
|
||||
> 과거 `.harness/build` VS 명령과 public preset 명령은 이 Step의 실행 명령을 대체하지 않는다.
|
||||
> Targets/regex/필수 test identity·owned_paths·수치 계약은 그대로다. [E10.2/E11](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)을 적용한다.
|
||||
> 긴 도구 호출은 **결과 전체**를 전달한다. `session_id`가 있으면 `write_stdin`으로 종료까지 이어받고,
|
||||
> functions가 running cell을 반환했을 때만 해당 `cell_id`로 `functions.wait`를 사용한다.
|
||||
> `r.output`만 비었다고 같은 명령을 다시 실행하지 않는다. 통과한 focused 검증은 새 변경/실패 없이 반복하지 않는다.
|
||||
> Executor가 이미 만든 top/current control dirty 상태는 보호 snapshot이며 구현 소유권 위반으로 단정하지 않는다.
|
||||
> 선택 Step의 result fields만 반환하고 timestamps/history/다른 metadata는 변경하지 않는다.
|
||||
> 현재 prep는 이미 GREEN인 runtime/classifier의 재검증이다. 아래 초기 RED/GREEN 절차는 보존된 증거와 대조하며
|
||||
> RED를 만들기 위해 source를 되돌리지 않는다. 새 source Correction 없이 현재 manual full 검증을 완료한다.
|
||||
> 과거 개발 계획이다. 아래 작업·상태·예시는 현재 실행 지시가 아니다.
|
||||
> 현재 구현과 검증 한계는 [기능 요약](../../docs/mitc4-shell-feast-eigen/README.md)을 따른다.
|
||||
|
||||
- Feature ID: `mitc4-shell-feast-eigen`
|
||||
- Plan owner: `implementation-planning-agent`
|
||||
- Execution owner: `implementation-agent`
|
||||
- Input contract revision: `r2`
|
||||
- Phase: `mitc4-shell-feast-eigen-execution-prep`
|
||||
- Requirement: `FEM-REQ-MITC4-EIGEN-023/025`; `MFE-C27`, `IO-T11`
|
||||
@@ -29,53 +14,45 @@
|
||||
Feature 폴더 `docs/mitc4-shell-feast-eigen/`와 다음 management/approved bundle을 읽는다.
|
||||
|
||||
- [AGENTS.md](../../AGENTS.md)
|
||||
- [docs/SOLVER_AGENT_DESIGN.md](../../docs/SOLVER_AGENT_DESIGN.md)
|
||||
- [docs/FEATURE_DOCUMENTATION.md](../../docs/FEATURE_DOCUMENTATION.md)
|
||||
- [docs/PRD.md](../../docs/PRD.md)
|
||||
- [docs/ARCHITECTURE.md](../../docs/ARCHITECTURE.md)
|
||||
- [docs/ADR.md](../../docs/ADR.md)
|
||||
- [docs/CODINGSTYLE.md](../../docs/CODINGSTYLE.md)
|
||||
- [docs/TOLERANCE.md](../../docs/TOLERANCE.md)
|
||||
- [.codex/skills/fem-implementation-tdd/SKILL.md](../../.codex/skills/fem-implementation-tdd/SKILL.md)
|
||||
- [.agents/skills/harness/SKILL.md](../../.agents/skills/harness/SKILL.md)
|
||||
- [.codex/agents/implementation-agent.toml](../../.codex/agents/implementation-agent.toml)
|
||||
- [docs/mitc4-shell-feast-eigen/FEATURED_AGENTS.md](../../docs/mitc4-shell-feast-eigen/FEATURED_AGENTS.md)
|
||||
- [docs/mitc4-shell-feast-eigen/PRD.md](../../docs/mitc4-shell-feast-eigen/PRD.md)
|
||||
- [docs/mitc4-shell-feast-eigen/ADR.md](../../docs/mitc4-shell-feast-eigen/ADR.md)
|
||||
- [docs/mitc4-shell-feast-eigen/coordination.md](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)
|
||||
- [docs/mitc4-shell-feast-eigen/requirements.md](../../docs/mitc4-shell-feast-eigen/requirements.md#requirements)
|
||||
- [docs/mitc4-shell-feast-eigen/requirements-evidence.md](../../docs/mitc4-shell-feast-eigen/requirements.md#requirements-evidence)
|
||||
- [docs/mitc4-shell-feast-eigen/research.md](../../docs/mitc4-shell-feast-eigen/research.md#research)
|
||||
- [docs/mitc4-shell-feast-eigen/research-evidence.md](../../docs/mitc4-shell-feast-eigen/research.md#research-evidence)
|
||||
- [docs/SOLVER_AGENT_DESIGN.md](../../docs/solver-core/README.md)
|
||||
- [docs/FEATURE_DOCUMENTATION.md](../../docs/solver-core/README.md)
|
||||
- [docs/PRD.md](../../docs/solver-core/README.md)
|
||||
- [docs/ARCHITECTURE.md](../../docs/solver-core/README.md)
|
||||
- [docs/ADR.md](../../docs/solver-core/README.md)
|
||||
- [docs/CODINGSTYLE.md](../../docs/solver-core/README.md)
|
||||
- [docs/TOLERANCE.md](../../docs/solver-core/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/FEATURED_AGENTS.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/PRD.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/ADR.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/coordination.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/requirements.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/requirements-evidence.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/research.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/research-evidence.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/formulation.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation)
|
||||
- [docs/mitc4-shell-feast-eigen/formulation-mass.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-mass)
|
||||
- [docs/mitc4-shell-feast-eigen/formulation-eigen.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-eigen)
|
||||
- [docs/mitc4-shell-feast-eigen/formulation-verification.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-verification)
|
||||
- [docs/mitc4-shell-feast-eigen/formulation-stabilization.md](../../docs/mitc4-shell-feast-eigen/formulation.md#formulation-stabilization)
|
||||
- [docs/mitc4-shell-feast-eigen/numerical-review.md](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review)
|
||||
- [docs/mitc4-shell-feast-eigen/numerical-review-evidence.md](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-evidence)
|
||||
- [docs/mitc4-shell-feast-eigen/numerical-review-controls.md](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-controls)
|
||||
- [docs/mitc4-shell-feast-eigen/numerical-review-cases.md](../../docs/mitc4-shell-feast-eigen/numerical-review.md#numerical-review-cases)
|
||||
- [docs/mitc4-shell-feast-eigen/reference-model.md](../../docs/mitc4-shell-feast-eigen/reference-model.md)
|
||||
- [docs/mitc4-shell-feast-eigen/io.md](../../docs/mitc4-shell-feast-eigen/io.md#io)
|
||||
- [docs/mitc4-shell-feast-eigen/io-input.md](../../docs/mitc4-shell-feast-eigen/io.md#io-input)
|
||||
- [docs/mitc4-shell-feast-eigen/io-schema.md](../../docs/mitc4-shell-feast-eigen/io.md#io-schema)
|
||||
- [docs/mitc4-shell-feast-eigen/io-mapping.md](../../docs/mitc4-shell-feast-eigen/io.md#io-mapping)
|
||||
- [docs/mitc4-shell-feast-eigen/implementation-plan.md](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)
|
||||
- [docs/mitc4-shell-feast-eigen/implementation-environment.md](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)
|
||||
- [docs/mitc4-shell-feast-eigen/implementation-interfaces.md](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)
|
||||
- [docs/mitc4-shell-feast-eigen/implementation-verification.md](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)
|
||||
- [docs/mitc4-shell-feast-eigen/numerical-review.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/numerical-review-evidence.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/numerical-review-controls.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/numerical-review-cases.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/reference-model.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/io.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/io-input.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/io-schema.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/io-mapping.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/implementation-plan.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/implementation-environment.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/implementation-interfaces.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
- [docs/mitc4-shell-feast-eigen/implementation-verification.md](../../docs/mitc4-shell-feast-eigen/README.md)
|
||||
|
||||
추가 필수: [현재 Executor](../../scripts/execute.py), 등록 hooks (당시 경로: `../../.codex/hooks.json`, 현재 checkout에 없음),
|
||||
Stop (당시 경로: `../../scripts/hooks/stop_validation.py`, 현재 checkout에 없음), [CommandSpec](../../scripts/msvc_harness/models.py),
|
||||
[process](../../scripts/msvc_harness/process.py), [config](../../scripts/msvc_harness/config.py),
|
||||
[CMake adapter](../../scripts/msvc_harness/adapters/cmake.py), [HARNESS](../../docs/HARNESS.md),
|
||||
[WORKFLOW](../../docs/HARNESS_WORKFLOW.md), [환경·activation 상세](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지).
|
||||
[WORKFLOW](../../docs/solver-core/README.md), [환경·activation 상세](../../docs/mitc4-shell-feast-eigen/README.md).
|
||||
현재 config schema에는 timeout option이 없다. 이번에 새 config field를 만들지 않는다.
|
||||
|
||||
재개 시 [복구 계획](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)과
|
||||
실제 classifier 재현 (당시 경로: `../../.harness/build/mitc4-eigen-evidence/prep/attempt1/classifier-observation.json`, 현재 checkout에 없음)을
|
||||
추가 입력으로 읽는다. 아래 classifier delta는 기존 owned scripts/execute.py/tests/test_execute.py에
|
||||
재개 시 [복구 계획](../../docs/mitc4-shell-feast-eigen/README.md)과
|
||||
실제 classifier 재현 (당시 경로: 과거 검증 자료(정리됨), 현재 checkout에 없음)을
|
||||
한정된 TDD 작업이다. 현재 blocked history와 실제 Hook 쓰기 거부는 그대로 보존한다.
|
||||
현재 WIP 보존 뒤 별도 Correction Agent가 classifier 소스/테스트와 corrections.md를 먼저
|
||||
완성한다. 그 실제 결과·별도 checkpoint 감사·수정 classifier를 읽는 새 process activation이
|
||||
@@ -84,21 +61,9 @@ Stop (당시 경로: `../../scripts/hooks/stop_validation.py`, 현재 checkout
|
||||
|
||||
## Owned paths
|
||||
|
||||
```json
|
||||
[
|
||||
"scripts/execute.py",
|
||||
".codex/hooks.json",
|
||||
"scripts/hooks/stop_validation.py",
|
||||
"scripts/msvc_harness/models.py",
|
||||
"scripts/msvc_harness/process.py",
|
||||
"tests/test_execute.py",
|
||||
"tests/test_harness_timeouts.py",
|
||||
"docs/HARNESS_WORKFLOW.md",
|
||||
"docs/mitc4-shell-feast-eigen/implementation-prep-evidence.md"
|
||||
]
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
타 owner 변경을 보존한다. `docs/HARNESS_WORKFLOW.md`는 실제 deadline 값의 설명 문단만 수정하고 workflow/approval/Git/Hook 계약을 바꾸지 않는다.
|
||||
타 owner 변경을 보존한다. `../../docs/solver-core/README.md`는 실제 deadline 값의 설명 문단만 수정하고 workflow/approval/Git/Hook 계약을 바꾸지 않는다.
|
||||
|
||||
## RED
|
||||
|
||||
@@ -124,25 +89,13 @@ Stop (당시 경로: `../../scripts/hooks/stop_validation.py`, 현재 checkout
|
||||
missing-result 오류, 실제 wrapper timeout만 최대2회 재시도되는 기존 분기를 검증한다.
|
||||
이 positive regression들은 최초부터 pass할 수 있으므로 새 RED로 주장하지 않는다.
|
||||
|
||||
```powershell
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase" tests/test_execute.py -k 'environment_classifier or successful_source_echo'
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
Case3개의 collection inventory/parameter 전개와 actual failure를 기록한다. 무관 import/setup
|
||||
오류는 classifier RED가 아니다. 마지막 attempt1의 test-only `.value` 수정은 별도 미검증이므로
|
||||
기존 focused 명령으로 실제 재확인하고 원 보고서도 Implementation owner가 수정한다.
|
||||
|
||||
```powershell
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase" tests/test_harness_timeouts.py
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
Actual nonzero exit와 기존1800 기본값 때문에 실패한 assertions를 기록한다. Import/setup/인증 오류는 RED가 아니다.
|
||||
|
||||
@@ -153,63 +106,36 @@ Actual nonzero exit와 기존1800 기본값 때문에 실패한 assertions를
|
||||
|
||||
| 파일 / symbol | 기존 | 새 값 |
|
||||
| --- | ---: | ---: |
|
||||
| scripts/execute.py / StepExecutor.CODEX_TIMEOUT_SECONDS | 1800 | 14400 |
|
||||
| .codex/hooks.json / Stop command timeout | 1800 | 7500 |
|
||||
| scripts/hooks/stop_validation.py / TOTAL_TIMEOUT_SECONDS | 1800 | 7200 |
|
||||
| scripts/msvc_harness/models.py / CommandSpec.timeout_seconds | 1800 | 7200 |
|
||||
| scripts/msvc_harness/process.py / execute_plan total_timeout_seconds default | 1800 | 7200 |
|
||||
|
||||
Classifier GREEN은 `_codex_environment_failure`의 helper marker 판별만 좁힌다. 성공한
|
||||
source/tool 출력의 임의 substring을 runtime diagnostic으로 사용하지 않는다. Stderr의 실제
|
||||
helper diagnostic과 관찰된 명시 runtime failure 형식을 보존하고, JSONL 성공 command의
|
||||
command/aggregated_output 같은 source payload는 제외한다. Plain `Source excerpt:` 문장도
|
||||
진짜 runtime error 형식이 아니므로 무시한다. 모든 exit0을 정상으로 간주하거나 stderr 검사를
|
||||
제거하지 않는다. 필요한 작은 private 판별 함수는 같은 scripts/execute.py 안에 둔다.
|
||||
기존 auth/CLI nonzero 진단, explicit terminal·history, retry 분기와 횟수는 바꾸지 않는다.
|
||||
|
||||
`min(command cap, shared remaining)` 알고리즘은 그대로 둔다. 이 classifier delta 외의 함수·
|
||||
sandbox·transport/Coordinator retry·Hook scope/active flags·ownership/Git/API를 변경하지 않는다.
|
||||
`docs/HARNESS_WORKFLOW.md`의 이전1800 설명은 위 유한 deadline/새 process activation을 정확히
|
||||
`../../docs/solver-core/README.md`의 이전1800 설명은 위 유한 deadline/새 process activation을 정확히
|
||||
반영한다. Config field/환경변수/새 public CLI timeout option은 만들지 않는다.
|
||||
|
||||
## Focused VERIFY
|
||||
|
||||
```powershell
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase" tests/test_harness_timeouts.py tests/test_execute.py tests/test_execute_ownership.py tests/test_hook_validation_scope.py tests/test_harness_preset_contract.py
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
Exit0, failures0, 현재 sandbox/terminal/ownership regressions 보존을 확인한다. PreToolUse/Stop unit tests는 mock 테스트이고 실제 등록 Stop 통과 evidence가 아니다.
|
||||
|
||||
위 신규 classifier test3개의 실제 collection 이름과 parameter case 존재도 확인한다.
|
||||
등록된 기존 suite만 실행되었다고 새로운 behavior가 검증됐다고 보고하지 않는다.
|
||||
|
||||
이미 GREEN인 timeout/classifier source는 기존 [Correction evidence](../../docs/mitc4-shell-feast-eigen/development-notes.md#실패와-재발-방지)와
|
||||
이미 GREEN인 timeout/classifier source는 기존 [Correction evidence](../../docs/mitc4-shell-feast-eigen/README.md)와
|
||||
보존된 RED/GREEN을 읽고 재검증한다. RED를 다시 만들려고 source를 되돌리지 않는다.
|
||||
현재 classifier37/timeout4/focused136과 전체 pytest를 실제 확인한다.
|
||||
|
||||
## Full VERIFY
|
||||
|
||||
```powershell
|
||||
$env:CMAKE_BUILD_PARALLEL_LEVEL = '1'
|
||||
cmake --preset mfe-workspace-msvc-ninja-debug
|
||||
if ($LASTEXITCODE -ne 0) { throw 'configure failed' }
|
||||
cmake --build --preset mfe-workspace-msvc-ninja-debug --clean-first --verbose
|
||||
if ($LASTEXITCODE -ne 0) { throw 'build failed' }
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --show-only=json-v1
|
||||
if ($LASTEXITCODE -ne 0) { throw 'discovery failed' }
|
||||
ctest --preset mfe-workspace-msvc-ninja-debug --output-on-failure
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full CTest failed' }
|
||||
$mfePython = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-venv/Scripts/python.exe'
|
||||
$mfePytestCache = Join-Path (Get-Location).Path '.harness/build/mitc4-eigen-evidence/prep/classifier-correction/pytest-cache'
|
||||
$mfePytestBase = Join-Path (Get-Location).Path ('.harness/build/p-' + [guid]::NewGuid().ToString('N').Substring(0,8))
|
||||
if ($mfePytestBase.Length -gt 80 -or (Test-Path -LiteralPath $mfePytestBase)) { throw 'Fresh short pytest basetemp required' }
|
||||
& $mfePython -B -X utf8 -m pytest -v -rs -o "cache_dir=$mfePytestCache" "--basetemp=$mfePytestBase"
|
||||
if ($LASTEXITCODE -ne 0) { throw 'full pytest failed' }
|
||||
```
|
||||
과거 도구 실행·출력 지시는 정리했으며, 현재 검증 방법은 기능 요약을 따른다.
|
||||
|
||||
이 clean-first/verbose는 새 Ninja graph의 실제 세 executable link/POST_BUILD discovery를 직렬로 실행한다.
|
||||
`fesa_unit_tests_576e7e9d_discovery.cmake`, `fesa_integration_tests_d537bc73_discovery.cmake`,
|
||||
@@ -228,8 +154,7 @@ C++는 수정하지 않는다. 기존 same-binary cache를 쓰는 helper와 항
|
||||
|
||||
## Evidence / result
|
||||
|
||||
`docs/mitc4-shell-feast-eigen/implementation-prep-evidence.md`에 feature/owner/r2, 각 RED/GREEN command/exit/duration, 전체 pytest/CTest counts, cap before/after, 실제 code diff 범위, current loaded wrapper14400과 실제 등록 Stop7500/shared7200, 그 시점에 관찰된 Stop/Codex exit 또는 아직 확인 대기인 항목을 기록한다. Raw logs는 ignored `.harness/build/mitc4-eigen-evidence/prep/`다. CTest log는 즉시 복사 보존한다.
|
||||
|
||||
`../../docs/mitc4-shell-feast-eigen/README.md`에 feature/owner/r2, 각 RED/GREEN command/exit/duration, 전체 pytest/CTest counts, cap before/after, 실제 code diff 범위, current loaded wrapper14400과 실제 등록 Stop7500/shared7200, 그 시점에 관찰된 Stop/Codex exit 또는 아직 확인 대기인 항목을 기록한다. Raw logs는 ignored 과거 검증 자료(정리됨)다. CTest log는 즉시 복사 보존한다.
|
||||
|
||||
보고서 작성 시점에는 마지막 registered Stop/Codex exit가 아직 발생하지 않을 수 있다. Implementation은 실제 완료된 manual 검증과 미관찰 Stop을 구분하고 미래 성공을 선기록하지 않는다. `completed` payload는 그 자체로 Stop 성공 증거가 아니다. Executor 종료 뒤 Coordinator가 raw output·등록 Hook evidence·actual exit를 management 문서에서 사후 감사한다. Specialist 보고서 본문은 Coordinator가 대신 수정하지 않는다.
|
||||
|
||||
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -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가 대신 수정하지 않는다.
|
||||
|
||||
|
||||
@@ -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가 대신 수정하지 않는다.
|
||||
|
||||
|
||||
@@ -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가 대신 수정하지 않는다.
|
||||
|
||||
|
||||
@@ -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가 대신 수정하지 않는다.
|
||||
|
||||
|
||||
@@ -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가 대신 수정하지 않는다.
|
||||
|
||||
|
||||
@@ -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가 대신 수정하지 않는다.
|
||||
|
||||
|
||||
@@ -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가 대신 수정하지 않는다.
|
||||
|
||||
|
||||
@@ -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가 대신 수정하지 않는다.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user