The one-line summary + lazy-load pattern is exactly where we landed too after trying to stuff schemas into context. What I'd add: the harder problem is invalidation, those skill files accumulate stale knowledge fast, and the agent silently uses outdated API info unless you build some kind of "this endpoint changed" feedback loop. We handle it in that-agent (https://github.com/that-labs/that-agent) by having the runtime surface tool errors back into the skill update cycle, but it's still messy. Curious how Viktor handles skill file staleness at scale.
Our agent is prompted to update the skill files, whenever it encounters errors, or sees something outdated. We also have a seperate clean up agent on a cron that every week cleans up skill files, deduplicates info, and deletes unecessary detailed explanations.