I have published an agent skill (a reusable set of instructions for coding agents) for researching MPS APIs, paired with a repository to serve as a knowledge base where your agent can both find previously researched information and contribute new findings through pull requests.
Why write a skill at all? When working with agents on mops, my CLI for
MPS, I found that doing thorough research before implementing a feature saved time on both coding and debugging. But I
needed to define what thorough research entails. Without a detailed prompt, the agents would miss aspects that are
obvious to an MPS developer, such as checking whether a method requires a read or write lock, or must be called on a
particular thread. And since I wanted mops to support multiple MPS versions, I needed to know whether and how the APIs
that I rely on change between MPS versions.
The skill started as a small Markdown file that was very specific to mops and to the directory layout on my laptop. In
particular, I originally designed the skill to store the findings directly in the mops repository. When I needed the
same kind of research in the context of another project, I decided to separate the skill and its findings from mops
and turn them into a shared knowledge base.
To make contributing easier, I recommend cloning the repository rather than copying the skill itself. After cloning it,
link or copy the skill to your agent’s global skills
directory (~/.agents/skills or ~/.claude/skills).
Invoke the skill from the context of your project (for example, I use it in mops or mps-build-backends) with a
question whenever you need to understand something about MPS internals, such as:
$mps-api-research how do I run an MPS unit test programmatically?
The skill first searches the existing notes. If they do not answer the question, it examines the relevant MPS sources or binaries and turns its findings into a project-independent research note. With your authorization, the agent can then contribute the note to the repository through a pull request.
There are already research notes that answer questions, such as:
- How does one look up a concept by name?
- Will a headless MPS instance automatically pick up file system changes? Will it reload classes? How do I make it do it?
- How does one diagnose why a certain language refuses to load?
- How does one run a unit test programmatically?
In the current form the mps-api-research repository and skill are likely to be mostly useful for people who work on
MPS infrastructure (a small audience, admittedly) but I believe that a similar approach could be used for collecting
more user-facing MPS documentation (similar to the mps-platform-docs website
that Alexander Pann started in the pre-AI days).
If your agent has to investigate an MPS API, try the skill, and consider contributing the resulting note so that the next person does not have to repeat the research.