Files
FESADev/phases/property-model-foundation/step2.md
T
2026-06-09 11:56:42 +09:00

50 lines
1.4 KiB
Markdown

# Step 2: shell-property-polymorphism
## Read First
Read these files before editing:
- `/AGENTS.md`
- `/docs/AGENT_RULES.md`
- `/docs/implementation-plans/property-model-foundation-implementation-plan.md`
- `/include/fesa/property/Property.hpp`
- `/include/fesa/property/ShellProperty.hpp`
- `/src/property/ShellProperty.cpp`
- `/tests/property/shell_property_test.cpp`
## Task
Make `ShellProperty` derive from `Property`.
Required behavior:
- `ShellProperty::id()` overrides `Property::id()`.
- `ShellProperty::kind()` returns `PropertyKind::Shell`.
- `ShellProperty` keeps `materialId()` and `thickness()` accessors.
- Constructor still rejects `thickness <= 0.0`.
Rules:
- Do not rename `ShellProperty` in this phase.
- Do not add shell section stiffness.
- Do not add material lookup inside `ShellProperty`; Domain validates cross references.
## Tests To Write First
- Extend `/tests/property/shell_property_test.cpp`.
- Test `const Property& base = shell_property` exposes id and kind.
- Preserve positive-thickness validation tests.
## Acceptance Criteria
```powershell
ctest --test-dir build/msvc-debug --output-on-failure -C Debug -R model-object
python scripts/validate_workspace.py
```
## Verification Notes
1. Run targeted CTest before production edits and confirm failure.
2. Keep `ShellProperty` free of solver state.
3. Update `phases/property-model-foundation/index.json` for this step result.