Skills, agents and toolsComing soon
How a plugin's agents are written, which tools they may call, and what read, write and consequential mean.
Coming soon
Skills
A plugin's skills are ordinary SKILL.md files: a name, a description that says when to use it, and instructions. They apply only to this plugin's runs; other plugins and the coding agents don't see them.
Use skills for what stays true across runs: the brand voice, a checklist, the format of a support reply.
Agents
An agent file is Markdown with frontmatter. The body is the agent's instructions for a run.
You write launch content for the team's product.
What you get
- On a release: read the release notes CoderHelm wrote, and the merged pull requests in it, with
get_release_notes. - On the weekly schedule: the releases since last Monday. If there were none, stop and save nothing.
- On a brief: the person's brief and the channels they picked.
What you do
- Read the
brand-voiceandlaunch-checklistskills. - Look up earlier posts on the same feature with
query_documents, so you do not repeat them. - Write one draft per channel:
- blog: save it in Sanity with
create_draft, then save ablogdraft that links to it. - social: three LinkedIn variants as separate
socialdrafts. - email: one
emaildraft with a subject line.
- blog: save it in Sanity with
- Run the launch checklist on each draft and fix what fails.
What you never do
- Never call
publish_postyourself. Publishing happens only after an editor approves a draft, and CoderHelm makes that call with the approved text. - Never invent numbers, customers or quotes.
| Field | Meaning |
|---|---|
name | The agent's id. Defaults to the file name. |
description | One line saying what it does. |
tools | The tools it uses. Each must be granted in plugin.yaml; the validator refuses any that aren't. |
The plugin's page in the dashboard lists its skills and agents under Skills and agents.
Tools
Tools are declared in the manifest's tools list, in one of two shapes.
Tools from an MCP server on the team's Connections page. List the tool names (or * globs) the plugin may call; every other tool on that server is hidden from the run.
tools:
- ref: mcp:sanity
allow: [get_document, query_documents, create_draft]
risk: writeNamed tools: one of CoderHelm's built-in tools (kind: builtin), or a tool the plugin defines to call an outside service with the team's connection (kind: http).
tools:
- name: get_release_notes
kind: builtin
risk: read
- name: publish_post
kind: http
description: Publish an approved post to the company's LinkedIn page.
risk: consequentialThe plugin's page shows every tool and its risk under What it can do.
Risk levels
Every tool has one of three risk levels.
| Risk | Means | Runs |
|---|---|---|
read | Only looks: search, fetch, list. | Whenever the agent calls it. |
write | Changes something a person can still review before anyone sees it, such as a draft in a CMS. | Only if the team lets plugins save drafts without a person (below). |
consequential | Reaches people or money: publish, send, post. | Only through a publish output, after a person approves the exact version of a draft. |
What may happen without a person
Each team chooses, on the Plugins page, the most a plugin may do on its own:
- Plugins only read without a person: every write waits for a yes too.
- Plugins may save drafts without a person (read and save drafts).
Publishing, sending and posting always wait for an approval, whatever the team picks.
A tool missing from the manifest can't be called, by any agent, in any run.