48 lines
1.6 KiB
Markdown
48 lines
1.6 KiB
Markdown
# Step 4: legacy-definition-extraction
|
|
|
|
## Read First
|
|
|
|
Read these files before editing:
|
|
|
|
- `/AGENTS.md`
|
|
- `/docs/AGENT_RULES.md`
|
|
- `/docs/implementation-plans/domain-runtime-storage-implementation-plan.md`
|
|
- `/include/fesa/core/Domain.hpp`
|
|
- `/src/core/Domain.cpp`
|
|
- `/tests/core/domain_storage_test.cpp`
|
|
- `/CMakeLists.txt`
|
|
|
|
## Task
|
|
|
|
Remove parser-definition DTO persistence from `Domain`.
|
|
|
|
Rules:
|
|
|
|
- `Domain` must no longer include or store:
|
|
- `fesa/core/BoundaryCondition.hpp`
|
|
- `fesa/core/ElementDefinition.hpp`
|
|
- `fesa/core/LoadDefinition.hpp`
|
|
- `fesa/core/MaterialDefinition.hpp`
|
|
- `fesa/core/PropertyDefinition.hpp`
|
|
- `Domain` may still include `StepDefinition.hpp` until a runtime step object is designed.
|
|
- Definition classes may remain in the repository and their focused tests may remain, but they must not be part of Domain storage or Domain public API.
|
|
- Do not implement parser or factory behavior in this step.
|
|
|
|
## Tests To Write First
|
|
|
|
- Add or update a compile-time assertion in `/tests/core/domain_storage_test.cpp` or a dedicated domain API test proving Domain retrieval returns runtime types for elements, materials, properties, loads, and boundary conditions.
|
|
|
|
## Acceptance Criteria
|
|
|
|
```powershell
|
|
python -m unittest discover -s scripts -p "test_*.py"
|
|
python scripts/validate_workspace.py
|
|
git diff --check
|
|
```
|
|
|
|
## Verification Notes
|
|
|
|
1. Confirm no `Domain` method returns a definition DTO except `LinearStaticStepDefinition`.
|
|
2. Confirm `include/fesa/element/Element.hpp` no longer includes `ElementDefinition.hpp`.
|
|
3. Update `phases/domain-runtime-storage/index.json` for this step result.
|