tool_load always re-reads the tool from disk (reload semantics). tool_list calls RefreshLoaded to update schemas for all promoted tools. Skills registry gets the same treatment: dynamic discovery, no cache.
- Drop pkg/ prefix (Go anti-pattern): ollie/pkg/X → ollie/X - Split tools/execute god package: - execute/: shell execution, sandboxing, elevation client, remote SSH - tools/: interfaces + registry + discovery + schema parsing - detach/: background process management (ring buffer, signal) - Promote internal/sandbox → sandbox/ - Absorb config/ into agent/config.go (agent definition loading) - Merge remote/ into execute/remote.go (RemoteServer) All tests pass.