Context
EnvironmentContext::gather() calls git subprocess synchronously without spawn_blocking, on every skill reload.
Solution
Compute once at bootstrap, cache on Agent, refresh only git_branch on skill reload.
Epic: #860 | Effort: S | Crate: zeph-core