What to build
Agent.from_dict does status=data.get('status', 'idle') but never validates against allowed values ("idle", "working", "sleeping"). A corrupted JSON file creates an Agent that violates the state machine contract.
Add: if status not in VALID_STATUSES: status = "idle".
Acceptance criteria
Blocked by
None - can start immediately
Parent
Tracks the campus framework v1 code review: #27
What to build
Agent.from_dictdoesstatus=data.get('status', 'idle')but never validates against allowed values ("idle", "working", "sleeping"). A corrupted JSON file creates an Agent that violates the state machine contract.Add:
if status not in VALID_STATUSES: status = "idle".Acceptance criteria
Blocked by
None - can start immediately
Parent
Tracks the campus framework v1 code review: #27