REQ-SELF-FROZEN-001 pass blocking since 0.1.0
Statement: The core models (Spec, Requirement, Evidence, Hazard, ODD, IOContract, TraceLink) shall be frozen Pydantic models.
Rationale: Frozen models prevent accidental mutation and guarantee hashability for traceability graphs.
Verification Method: test
Last Checked: 2026-04-17 18:13 UTC
Acceptance Criteria
- Every core model has model_config = {"frozen": True}.
- Attempting to set an attribute on a constructed model raises a ValidationError.
Evidence
| ID | Kind | Verdict | Observed | Details |
|---|---|---|---|---|
| EV-PYTEST-0017 | test | pass | 2026-04-17 18:13 | source: pytest-vnvspec, nodeid: tests/test_self_spec.py::TestFrozenModels::test_mutation_raises, test_name: test_mutation_raises |
| EV-PYTEST-0016 | test | pass | 2026-04-17 18:13 | source: pytest-vnvspec, nodeid: tests/test_self_spec.py::TestFrozenModels::test_all_core_models_frozen, test_name: test_all_core_models_frozen |