# Sprint Contract: Architecture Drift Audit ## Objective Create a precise migration map from the current monolithic `include/fesa/fesa.hpp` implementation to the module ownership model documented in `docs/ARCHITECTURE.md`, without changing production solver behavior. ## Required Reading - /AGENTS.md - /PROGRESS.md - /PLAN.md - /docs/README.md - /docs/HARNESS_ENGINEERING.md - /docs/ARCHITECTURE.md - /docs/ADR.md - /docs/NUMERICAL_CONVENTIONS.md - /phases/1-linear-static-mitc4-rebaseline/step15-evaluator-report.md ## Scope - Audit current symbols, functions, classes, and tests that are concentrated in `include/fesa/fesa.hpp` and `tests/test_main.cpp`. - Assign every Phase 1 production symbol to one target module from `docs/ARCHITECTURE.md`: `Analysis`, `Assembly`, `Boundary`, `Core`, `Element`, `IO`, `Load`, `Math`, `Material`, `Property`, `Results`, or `Util`. - Produce a handoff artifact at `phases/1-structure-alignment-refactor/step0-architecture-map.md`. - Identify public API compatibility rules for keeping `include/fesa/fesa.hpp` as an umbrella facade during the refactor. ## Allowed Files - `phases/1-structure-alignment-refactor/step0-architecture-map.md` - `phases/1-structure-alignment-refactor/index.json` - `PLAN.md` - `PROGRESS.md` ## Explicit Non-Goals - Do not move C++ code in this step. - Do not change `CMakeLists.txt`. - Do not change parser support, MITC4 formulas, solver behavior, reference tolerances, or numerical conventions. - Do not create new architecture decisions unless the audit proves `docs/ARCHITECTURE.md` itself must change. ## Tests To Write First - None. This is an audit and handoff step. - Before writing the audit artifact, run `python scripts/validate_workspace.py` to capture the pre-refactor baseline. ## Reference Artifacts - `references/quad_02_phase1.inp` - `references/quad_02_displacements.csv` These artifacts are baseline evidence only. Do not edit them. ## Acceptance Commands ```bash python scripts/validate_workspace.py ``` ## Evaluator Checklist - The map assigns all major Phase 1 production areas from `fesa.hpp` to target modules. - The map calls out dependency direction and extraction order. - The map preserves `include/fesa/fesa.hpp` as an umbrella facade unless an ADR changes the public API. - The map explicitly records that this phase is behavior-preserving. - PLAN/PROGRESS reflect this architecture debt as active work. ## Handoff Requirements - Update this step status in `phases/1-structure-alignment-refactor/index.json`. - Record changed files, validation output, and any blockers in `PROGRESS.md`. - Keep the next refactor step in `PLAN.md`. ## Do Not - Do not treat this audit as approval to change formulas or parser scope. - Do not use this phase to close R-010 or R-013.