ActivityState component tracks the activity an NPC is currently performing at their routine destination (activity name, phase, started_tick). The enter_activity system runs after movement validation and sets ActivityState when an NPC has arrived with no active path. Cleared on phase transitions. Feeds TellTrigger::DuringActivity and D-028 Layer 2 situation matching. Unit tests verified via shift_change room integration. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>