docs: remove retired workflow instructions and repair references

This commit is contained in:
KOKO\Mimi
2026-10-17 22:37:04 +09:00
parent abfe0ee0ce
commit 4bd19f5bf0
120 changed files with 1436 additions and 3130 deletions
@@ -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.