pm_capability
The pm_capability tool manages capabilities — the markdown instruction blocks that define agent behavior. Capabilities are the building blocks of workflows: an agent’s system prompt composes its identity with one or more capabilities to control what it does and how.
Actions
create, get, list, update, delete, ensure, prompt, help
create
Create a new capability.
Parameters
| Field | Type | Required | Notes |
|---|---|---|---|
key | string | Yes | Unique capability key (e.g., "review.quality-gate") |
role | string | Yes | core, workflow, constraints, context, validation, or integration |
id | string | No | Explicit ID override |
name | string | No | Human-readable name |
category | string | No | Grouping category |
promptId | string | No | Linked prompt ID |
pack | string | No | Pack this capability belongs to |
Example
pm_capability {
action: "create",
key: "review.quality-gate",
role: "core",
name: "Quality Gate Enforcement",
category: "review",
promptId: "01HPROMPT..."
}get
Fetch a capability by ID or key.
Parameters
| Field | Type | Required |
|---|---|---|
id | string | One of |
key | string | One of |
list
List capabilities with optional filters.
Parameters
| Field | Type | Required | Notes |
|---|---|---|---|
search | string | No | Search text |
category | string | No | Filter by category |
promptIds | string[] | No | Filter by linked prompt |
limit | number | No | 1–1000 |
update
Update a capability. Pass null to clear optional fields like category, promptId, or pack.
Parameters
| Field | Type | Required |
|---|---|---|
id | string | Yes |
key | string | No |
name | string | No |
category | string | null | No |
promptId | string | null | No |
role | string | No |
pack | string | null | No |
delete
Delete a capability.
Parameters
| Field | Type | Required |
|---|---|---|
id | string | Yes |
ensure
Create or update a capability by key (upsert). Useful for registration flows where you want to re-run the same call safely.
Parameters
| Field | Type | Required |
|---|---|---|
key | string | Yes |
name | string | No |
category | string | No |
promptId | string | No |
role | string | No |
pack | string | No |
Example
pm_capability {
action: "ensure",
key: "review.quality-gate",
name: "Quality Gate Enforcement",
role: "core",
promptId: "01HPROMPT..."
}prompt
Fetch the linked prompt content for a capability. This is the hot-load action — agents call this on demand when they need to load a capability into context.
Parameters
| Field | Type | Required |
|---|---|---|
key | string | Yes |
Returns
{ "role": "core", "capability": "...prompt text..." }Returns capability: null if no prompt is linked.
Example
pm_capability {
action: "prompt",
key: "review.quality-gate"
}This is how agents load capabilities on demand without inflating their base system prompt. Hot-load the capability, use it, move on.
help
pm_capability { action: "help" }Related
- pm_agent — agents are bound to capabilities
- pm_prompt — capabilities link to prompts for their content
- Valdr Packs — how capabilities are authored and shipped