108 lines
3.7 KiB
Markdown
108 lines
3.7 KiB
Markdown
# Reference Verification Report 작성 가이드
|
|
|
|
Reference Verification Agent는 Build/Test 통과 뒤 FESA `results.h5`와 기능이 선언한
|
|
Abaqus CSV quantity를 비교한다. 비교 대상은 observable value이며 Abaqus 내부 formulation
|
|
동등성이 아니다.
|
|
|
|
기본 문서명은 `docs/reference-verifications/<feature-id>-reference-verification.md`다.
|
|
|
|
## 실행 순서
|
|
|
|
```text
|
|
ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT
|
|
```
|
|
|
|
`ARTIFACT CHECK`는 다음만 요구한다.
|
|
|
|
- declared `.inp`
|
|
- generated FESA `results.h5`
|
|
- every feature-required Abaqus CSV
|
|
- HDF5 dataset projection
|
|
- source-ID/component mapping
|
|
- blocking/warning behavior
|
|
- approved tolerance
|
|
|
|
Canonical naming, README, metadata, Abaqus version/provenance, duplicated units/coordinates/
|
|
step-frame fields와 reference CSV schema version은 기본 gate가 아니다.
|
|
|
|
Missing, extra, duplicate 또는 nonfinite required row는 tolerance 전에 실패한다. Row order
|
|
alone으로 대응하지 않는다. FESA/Reference 값을 zero-clamp하거나 tolerance에 맞게 보정하지
|
|
않는다.
|
|
|
|
## 보고 항목
|
|
|
|
각 blocking 또는 warning-only quantity에 대해 다음을 보고한다.
|
|
|
|
- exact input and CSV path
|
|
- FESA HDF5 dataset
|
|
- source ID/component mapping
|
|
- compared, missing, extra, duplicate, nonfinite row counts
|
|
- max absolute and relative error
|
|
- RMS and norm error when required
|
|
- worst source ID/component
|
|
- pass, fail, or warning
|
|
|
|
## Failure Classification
|
|
|
|
- `missing-reference-artifact`: declared input or required CSV missing
|
|
- `missing-solver-output`: `results.h5` or comparison command missing
|
|
- `schema-mismatch`: required source ID/component columns unavailable
|
|
- `id-mismatch`: required source row sets do not match
|
|
- `tolerance-failure`: blocking value exceeds approved tolerance
|
|
- `nonfinite-result`: required FESA or reference value is not finite
|
|
- `upstream-contract`: quantity, HDF5 projection, mapping, or tolerance missing/contradictory
|
|
- `environment`: local comparison cannot run
|
|
|
|
## 문서 템플릿
|
|
|
|
```markdown
|
|
# <Feature Title> Reference Verification Report
|
|
|
|
## Metadata
|
|
- feature_id: <feature-id>
|
|
- status: pass-for-physics-evaluation | needs-correction | needs-reference-artifacts | needs-solver-results | needs-upstream-decision | blocked
|
|
- owner_agent: reference-verification-agent
|
|
- date: <YYYY-MM-DD>
|
|
|
|
## Artifact Inventory
|
|
| item | path | status | notes |
|
|
| --- | --- | --- | --- |
|
|
| input | <exact path> | present | missing | <summary> |
|
|
| required_csv | <exact path> | present | missing | <summary> |
|
|
| solver_hdf5 | <path>/results.h5 | present | missing | <summary> |
|
|
|
|
## Comparison Contract
|
|
- hdf5_dataset: <path>
|
|
- source_id_mapping: <rule>
|
|
- components: <blocking/warning inventory>
|
|
- row_precheck: exact set; unique; finite
|
|
- tolerance_source: <path/requirement>
|
|
- tolerance_policy: <formula>
|
|
|
|
## Quantity Results
|
|
| quantity | components | behavior | compared | missing | extra | max_abs | max_rel | rms | norm | worst_id/component | result |
|
|
| --- | --- | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- | --- |
|
|
| <quantity> | <components> | blocking | warning-only | <values> |
|
|
|
|
## Failure Classification
|
|
- classification: <value or N/A>
|
|
- evidence: <summary>
|
|
|
|
## Handoff Recommendation
|
|
- <target and exact evidence>
|
|
|
|
## No-Change Assertion
|
|
- source_files_modified: false
|
|
- test_files_modified: false
|
|
- cmake_files_modified: false
|
|
- reference_artifacts_modified: false
|
|
- tolerance_policies_modified: false
|
|
|
|
## Open Issues
|
|
- <only actual comparison blockers>
|
|
```
|
|
|
|
`pass-for-physics-evaluation`은 required blocking comparison 통과만 의미한다. Warning-only
|
|
quantity는 경고를 남기되 verdict를 바꾸지 않는다. Physics validation과 release readiness는
|
|
각 후속 agent가 판정한다.
|