docs: simplify FESA reference validation policy
This commit is contained in:
@@ -42,8 +42,11 @@ Agent는 역할과 책임 단위이고, skill은 여러 Agent가 반복적으로
|
||||
3. Formulation Agent는 `fesa-formulation-spec`을 사용해 strong form, weak form, shape functions, B matrix, element stiffness, output recovery를 정리한다.
|
||||
4. Numerical Review Agent는 `fesa-numerical-review`를 사용해 rigid body modes, patch test, stiffness symmetry, Jacobian, locking 위험을 검토하고 `pass-for-implementation-planning` 여부를 판단한다.
|
||||
5. I/O Definition Agent는 `fesa-io-contract`를 사용해 지원할 Abaqus `.inp` keyword subset, `results.h5` schema, reference CSV comparison row schema를 정의한다.
|
||||
6. Reference Model Agent는 `fesa-reference-models`를 사용해 `reference/<model-id>/` artifact bundle 계약과 coverage matrix를 작성한다.
|
||||
7. Implementation Planning Agent와 Implementation Agent는 `fesa-cpp-msvc-tdd`를 사용해 테스트 작성, 실패 확인, 최소 구현, CMake/CTest 등록, validation을 수행한다.
|
||||
6. Reference Model Agent는 `fesa-reference-models`를 사용해 기존 input/required CSV
|
||||
reference-case inventory와 비교 mapping을 작성한다.
|
||||
7. Implementation Planning Agent는 먼저 project-local `harness`를 사용해 사용자 승인용
|
||||
multi-Step 초안을 만들고, 승인 후 phase files를 생성한다. 그 뒤 Implementation Agent와
|
||||
함께 `fesa-cpp-msvc-tdd` 계약에 따라 RED/GREEN/VERIFY를 수행한다.
|
||||
8. Reference Verification Agent는 `fesa-reference-comparison`을 사용해 구현 solver `results.h5` rows와 Abaqus reference CSV rows를 tolerance 기준으로 비교한다.
|
||||
9. Physics Evaluation Agent는 `fesa-physics-sanity`를 사용해 global equilibrium, reaction consistency, displacement direction, symmetry, model coverage를 검토한다.
|
||||
10. Release Agent는 `fesa-release-readiness`를 사용해 gate evidence, acceptance traceability, known limitations, release notes draft를 작성한다.
|
||||
@@ -77,6 +80,8 @@ Agent는 역할과 책임 단위이고, skill은 여러 Agent가 반복적으로
|
||||
- dimensions, signs, DOF ordering, coordinate transforms, Jacobian, integration rule, stiffness symmetry, rigid body modes, patch test, hourglass, locking을 확인한다.
|
||||
- `pass-for-implementation-planning`은 구현 계획 가능 상태만 의미한다.
|
||||
- 정식화 문서를 직접 수정하지 않는다.
|
||||
- 이후 Reference Model 문서, artifact naming, README, metadata, provenance 또는 portfolio가
|
||||
없다는 이유로 formulation verdict를 실패시키지 않는다.
|
||||
|
||||
### `fesa-io-contract`
|
||||
|
||||
@@ -87,10 +92,11 @@ Agent는 역할과 책임 단위이고, skill은 여러 Agent가 반복적으로
|
||||
|
||||
### `fesa-reference-models`
|
||||
|
||||
- smoke, analytical, patch test, benchmark, regression, negative/invalid-input 모델을 구분한다.
|
||||
- `reference/<model-id>/` artifact bundle 계약을 정의한다.
|
||||
- `model.inp`와 요구된 `<model-id>_displacements.csv`, `<model-id>_reactions.csv`, `<model-id>_internalforces.csv`, `<model-id>_stresses.csv`를 기준 artifact로 둔다. 필수 provenance는 Reference Model Contract에 기록하고, 선택 `metadata.json`이 존재하면 read-only로 대조한다.
|
||||
- required Abaqus reference CSV가 없으면 완료 상태가 아니라 `needs-reference-artifacts`로 둔다.
|
||||
- 기능이 실제로 사용하는 기존 reference case를 inventory한다.
|
||||
- Exact input/required CSV path, case purpose, blocking/warning quantity, HDF5 projection,
|
||||
source ID/component matching과 tolerance만 정의한다.
|
||||
- Required comparison file이 없을 때만 `needs-reference-artifacts`로 둔다. Canonical naming,
|
||||
README, metadata, provenance와 비교하지 않는 quantity CSV는 요구하지 않는다.
|
||||
|
||||
### `fesa-cpp-msvc-tdd`
|
||||
|
||||
@@ -115,10 +121,21 @@ uv run --with pytest python -m pytest -v -rs
|
||||
- 실패는 `configure | compile | link | test | reference-comparison | harness | environment | upstream-contract`로 분류한다.
|
||||
- 요구조건, 정식화, I/O 계약, reference artifact, tolerance policy를 바꾸지 않는다.
|
||||
|
||||
### project-local `harness`
|
||||
|
||||
- Implementation Planning Agent가 구현 요청을 여러 독립 Step으로 분해할 때 사용한다.
|
||||
- 한 Step은 하나의 layer/module만 소유하고 prerequisite file, TDD RED/GREEN/VERIFY,
|
||||
exact acceptance command와 구체적 금지사항을 포함한다.
|
||||
- 사용자에게 Step 초안을 먼저 제시한다. 승인 후에만 `phases/index.json`,
|
||||
`phases/<task-name>/index.json`, `phases/<task-name>/stepN.md`를 생성한다.
|
||||
- 계획 작성과 executor 실행을 구분하며, `scripts/execute.py`는 별도 사용자 요청 없이
|
||||
실행하지 않는다.
|
||||
|
||||
### `fesa-reference-comparison`
|
||||
|
||||
- `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT` 순서로 수행한다.
|
||||
- `model.inp`, `results.h5`, Abaqus reference CSV files, Reference Model Contract의 provenance, schema version, units, coordinate system, step/frame identity, ID matching, output location, tolerance source를 확인한다. 선택 `metadata.json`이 존재하면 inventory하고 계약과 대조하되, 부재만으로 비교를 중단하지 않는다.
|
||||
- 선언된 input, required Abaqus CSV, `results.h5`, source ID/component mapping과 tolerance를
|
||||
확인한다. Missing/extra/duplicate/nonfinite required row는 비교 전에 실패한다.
|
||||
- max absolute error, max relative error, RMS error, norm error, missing rows, extra rows를 보고한다.
|
||||
- Reference pass는 physics validation이나 release readiness를 의미하지 않는다.
|
||||
|
||||
@@ -147,7 +164,7 @@ uv run --with pytest python -m pytest -v -rs
|
||||
| Numerical Review Agent | `fesa-numerical-review` |
|
||||
| I/O Definition Agent | `fesa-io-contract` |
|
||||
| Reference Model Agent | `fesa-reference-models` |
|
||||
| Implementation Planning Agent | `fesa-formulation-spec`, `fesa-reference-models`, `fesa-cpp-msvc-tdd` |
|
||||
| Implementation Planning Agent | project-local `harness`, `fesa-formulation-spec`, `fesa-reference-models`, `fesa-cpp-msvc-tdd` |
|
||||
| Implementation Agent | `fesa-cpp-msvc-tdd` |
|
||||
| Build/Test Executor Agent | `fesa-cpp-msvc-tdd` |
|
||||
| Correction Agent | `fesa-cpp-msvc-tdd` |
|
||||
|
||||
Reference in New Issue
Block a user