docs: plan phase1 structure alignment refactor

This commit is contained in:
NINI
2026-05-05 00:19:35 +09:00
parent 7b332df1a8
commit 0aecc8233e
14 changed files with 785 additions and 4 deletions
+37 -1
View File
@@ -13,10 +13,44 @@ Every new agent session must read this file together with `PLAN.md` before plann
- Do not remove history unless the user explicitly asks for archival cleanup.
## Current Status
Phase 1 has a completed rebaseline execution path in `phases/1-linear-static-mitc4-rebaseline`. Steps 0 through 15 are complete, and P1R-15 recorded a pass-with-documented-gaps evaluator closeout. `quad_02_phase1.inp` is now the normalized Phase 1-compatible input path for the stored `quad_02` S4 reference pair, while the original `quad_02.inp` remains preserved unsupported provenance. Core numeric aliases, DOF mapping, validation harness, model diagnostic context, the Phase 1 parser/domain subset, validation/singular diagnostics, DofManager/reaction foundation, minimum result model metadata, displacement CSV comparator foundation, MITC4 geometry/director scaffolding, MITC4 displacement/strain/tying row scaffolding, MITC4 material/transform/integration scaffolding, MITC4 stiffness/drilling/internal-force scaffolding, MITC4 patch/locking-sensitivity tests, full-space assembly, reduced projection, sparse-pattern scaffold, solver adapter injection, full-vector internal/reaction force state, active AnalysisModel construction, input-to-AnalysisState-to-U/RF result workflow, and the first stored Abaqus displacement regression have been revalidated. Full PRD Phase 1 completion still depends on the open reference gaps R-010 and R-013. The old `phases/1-linear-static-mitc4` path is historical and superseded after the MITC4 formulation reset.
Phase 1 has a completed rebaseline execution path in `phases/1-linear-static-mitc4-rebaseline`. Steps 0 through 15 are complete, and P1R-15 recorded a pass-with-documented-gaps evaluator closeout. A follow-up architecture refactor phase is now planned in `phases/1-structure-alignment-refactor` because the current production implementation is concentrated in `include/fesa/fesa.hpp` instead of the module directories documented in `docs/ARCHITECTURE.md`. `quad_02_phase1.inp` is the normalized Phase 1-compatible input path for the stored `quad_02` S4 reference pair, while the original `quad_02.inp` remains preserved unsupported provenance. Core numeric aliases, DOF mapping, validation harness, model diagnostic context, the Phase 1 parser/domain subset, validation/singular diagnostics, DofManager/reaction foundation, minimum result model metadata, displacement CSV comparator foundation, MITC4 geometry/director scaffolding, MITC4 displacement/strain/tying row scaffolding, MITC4 material/transform/integration scaffolding, MITC4 stiffness/drilling/internal-force scaffolding, MITC4 patch/locking-sensitivity tests, full-space assembly, reduced projection, sparse-pattern scaffold, solver adapter injection, full-vector internal/reaction force state, active AnalysisModel construction, input-to-AnalysisState-to-U/RF result workflow, and the first stored Abaqus displacement regression have been revalidated. Full PRD Phase 1 completion still depends on the open architecture/reference gaps R-014, R-010, and R-013. The old `phases/1-linear-static-mitc4` path is historical and superseded after the MITC4 formulation reset.
## Completed Work
### 2026-05-05 - Phase 1 structure-alignment refactor phase planned
Author: Codex
Changed files:
- `phases/index.json`
- `phases/1-structure-alignment-refactor/index.json`
- `phases/1-structure-alignment-refactor/step0.md`
- `phases/1-structure-alignment-refactor/step1.md`
- `phases/1-structure-alignment-refactor/step2.md`
- `phases/1-structure-alignment-refactor/step3.md`
- `phases/1-structure-alignment-refactor/step4.md`
- `phases/1-structure-alignment-refactor/step5.md`
- `phases/1-structure-alignment-refactor/step6.md`
- `phases/1-structure-alignment-refactor/step7.md`
- `phases/1-structure-alignment-refactor/step8.md`
- `phases/1-structure-alignment-refactor/step9.md`
- `PLAN.md`
- `PROGRESS.md`
Summary:
- Added a dedicated Phase 1 structure-alignment refactor phase to correct the architecture drift where production code is concentrated in `include/fesa/fesa.hpp`.
- Decomposed the refactor into 10 Harness steps: audit, scaffold/facade, Core/Util plus Boundary/Load/Property extraction, Math/Solver extraction, IO parser extraction, Results/reference extraction, MITC4 geometry/strain extraction, MITC4 material/stiffness extraction, Assembly/Analysis extraction, and independent evaluator closeout.
- Updated `PLAN.md` with R-014 and P1A-00 through P1A-09 so new agents can execute the refactor without private context.
Verification:
- Parsed `phases/index.json` and `phases/1-structure-alignment-refactor/index.json` with PowerShell `ConvertFrom-Json`.
- Verified all 10 structure-alignment step files contain the required sprint contract sections from `docs/HARNESS_ENGINEERING.md`.
- `python scripts/validate_workspace.py` configured CMake, built `fesa_core` and `fesa_tests`, and ran CTest successfully.
- CTest result: 1 test executable passed.
Follow-up:
- Start with P1A-00 architecture drift audit.
- Keep R-010 and R-013 visible; the structure refactor does not solve missing reaction CSV or the three-reference PRD target.
### 2026-05-04 - P1R-15 evaluator closeout completed
Author: Codex
@@ -844,6 +878,7 @@ Verification:
- `python scripts/validate_workspace.py` ran, but reported no configured validation commands.
## Known Blockers
- Phase 1 architecture is not yet accepted: production code is concentrated in `include/fesa/fesa.hpp` instead of the `src/` module layout documented in `docs/ARCHITECTURE.md`.
- No reaction-force reference artifact exists yet under `references/`.
- The PRD target of three stored Phase 1 reference cases is not yet satisfied; only `quad_02_phase1` is an active stored displacement regression.
- The current initial `quad_01.inp` reference contains `S4R`, `Part/Assembly/Instance`, `*Density`, and `NLGEOM=YES`, so it is not a Phase 1 parser acceptance case as-is.
@@ -854,3 +889,4 @@ Verification:
- Future work could accidentally parse the original `quad_02.inp` instead of the normalized `quad_02_phase1.inp` before parser compatibility is explicitly expanded.
- Reaction output may be wrong if full-space stiffness/load data is not preserved or reconstructed.
- Large-model support may be weakened if any module narrows ids or sparse indices below int64.
- The structure-alignment refactor could accidentally change solver behavior unless each step preserves characterization tests and `quad_02_phase1` regression coverage.