I obviously love MCP, but I also use skills extremely heavily in my day-to-day work. Being exposed to both has made me very aware of a tension:
- Anything with dynamic information, I ship over MCP. This takes work to set up and requires conversational boilerplate to refresh in every conversation.
- Anything behavioral, I put in skills. They're lightweight, used automatically, and feel great. But I would never put dynamic information in a skill because keeping it up to date is a pain. And yet the idea of having an agent skill that includes relevant and timely data is so appealing!
So: think of Colin as a skills-native templating engine. The goal is to compile context documents from dynamic sources (GitHub, Linear, Notion, MCP servers, etc.) in a way that makes them easy to automatically update. Colin traces dependencies to determine staleness and has intelligent caching to minimize the burden of recompiling. It's general purpose, but it turns out to be extremely useful for writing skills that contain dynamic knowledge and need to stay current.
We've just released it. It's experimental and early, but it's a direction I'm actively exploring and would love feedback.
Here's a post with more background, if interested: https://www.jlowin.dev/blog/colin