It's just a skill
Six years ago, during the COVID-19 pandemic and while on paternity leave for my daughter, I built a side project called Ruminate.io, a tool for creating decision matrices.
It was also an excuse to build something with Elixir and Phoenix. Between sleepless nights, being stuck at home and looking for a creative outlet, it turned out to be a fun way to spend a few weeks. Along the way, I wrote a series of articles documenting the entire journey.
With LLMs getting better and better, I started thinking about adding AI features to Ruminate.io. I even experimented with using AI to modernize parts of the codebase. But when I stepped back, I realized I might be approaching this from the wrong angle.
Interface vs Capability
Ruminate.io isn't defined by its web application. The app is simply one interface to its core capability, helping someone think through a decision using a structured decision matrix.
Once you see it this way, the question changes. Instead of asking how to add AI to the app, you start asking how the capability itself should be surfaced. That distinction becomes important when you start thinking in terms of AI interfaces.
An LLM is remarkably good at guiding that process through conversation. With the right instructions, it can ask follow-up questions, suggest criteria, discuss trade-offs, and gradually build the matrix together with you.
LLM as Interface, Skill as Capability
That realization led me to implement it as a Nexus skill. What used to require opening a dedicated web application is now just another capability my AI assistant can invoke through /decision-matrix.
In Ruminate.io, you have to define the criteria you want to weigh against a set of options. This is not always easy, which is why I also included a bunch of templates to help users kick-start the process.
With the skill, the assistant takes on that scaffolding role. It asks for context, suggests possible criteria and options, and helps you shape the structure before you commit. From there, you can brainstorm together, adjust weightings, and refine the matrix. It can even assign initial scores as a baseline or incorporate your notes for additional context before recalculating.
How the App and Skill Work Together
The skill works well on its own, but I also wanted it to work with existing matrices and templates in Ruminate.io. To support this, I added the ability for it to accept a link to a decision matrix or template to start the session.

That means you can begin a session from something already created in the web app instead of starting from scratch. The assistant uses the link as context and pulls in the relevant matrix before continuing the conversation.
Packaged with the skill is a small Python script that fetches the HTML page and extracts the decision matrix from Ruminate.io. It can work without it, but the script makes the process more reliable and token-efficient compared to having the model generate ad-hoc code to fetch and parse the page.

This makes it easier to work with existing matrices, whether to refine them, explore alternatives, or use them as a starting point for new thinking within the conversation.
Skill or Feature
The /decision-matrix skill doesn't replicate everything Ruminate.io offers. Features like real-time collaboration, shared editing, and easy embedding into web pages are still very much web application territory. For now, AI assistants are still mostly single-player experiences.
Rather than asking “How do I add AI features to the app?”, I found myself asking a different question: "Should this be a skill?"
Not every feature belongs as a skill, just as not every capability belongs inside an application. Some experiences are inherently visual, collaborative, or persistent. Others are conversational, exploratory, and reasoning-heavy.
The interesting part is that AI gives us another interface to access software. Instead of assuming every new capability needs another screen, menu or workflow, we can choose the interface that best fits the job.
For Ruminate.io, that meant realizing that the capability of creating a decision matrix doesn’t have to live within a web application.
Sometimes, it doesn’t need to be a feature. Sometimes, it’s just a skill.
Comments