refactor: store runtime objects in domain
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user