Skills
Skills
Skills are small durable procedures for one scope. They are useful for runbooks, repeated channel workflows, service-specific investigation steps, and local conventions that should survive future turns.
This page covers managed skills: scoped skills the agent can create and update at runtime. Bundled skills in agent/skills/ ship with the app and are loaded by loadAgent(); see Agent configuration.
Config
Managed skills are off by default.
createHeypi({
state: { root: "./state" },
// ...adapters, agent, runtime
adapters: [
slack({
// ...Slack auth and delivery config
permissions: { approvers: { users: ["U123456"], groups: ["S123456"] } },
}),
],
skills: {
enabled: true,
scope: "channel",
writePolicy: "approvers",
},
});skills.scope defaults to the top-level scope.
Options
| Option | Required | Default | Description |
|---|---|---|---|
enabled |
No | false |
Enables scoped skill tools and catalog injection. |
scope |
No | Top-level scope |
Skill sharing boundary. |
writePolicy |
No | See Write policy | Who can create, patch, replace, or delete skills. |
maxSkills |
No | 20 |
Maximum skills per scope. |
maxChars |
No | 16_000 |
Maximum skill body size. |
Behavior
When enabled, heypi:
- lists skills in the selected scope,
- injects a compact skill catalog as background context,
- exposes
skill_list,skill_read,skill_write,skill_patch, andskill_delete, - allows mutation according to
skills.writePolicy, - validates skill names, size, frontmatter, obvious secrets/private keys, and prompt-injection-shaped text.
The skill catalog is intentionally small. Full skill bodies are read only when the agent calls skill_read.
Skills are user-authored guidance, not trusted policy. They can help the model remember a workflow, but they must not override app config, approval policy, access control, or runtime safety.
Format
skill_write takes name, description, and content. heypi generates the SKILL.md frontmatter:
---
name: deploy-check
description: Check deployment health.
---
Run the health check command and summarize failures.Skill names must use lowercase letters, numbers, ., _, or -.
Use skill_patch for exact replacements inside an existing skill. Ambiguous replacements fail unless replaceAll is set.
Write policy
skills.writePolicy controls mutation:
auto: the agent can create, patch, replace, and delete skills.approvers: only turns initiated by configured approver users or groups can mutate skills.off: skills can be listed, read, and injected, but cannot be changed.
Defaults:
- when adapter approvers or admins are configured:
approversforchannelanduser. - without approvers:
off. adapterandagent:offunless explicitly overridden.
Not included
heypi does not install, sync, or update third-party skill registries. It also does not expose supporting-file tools such as skill_file_write. Keep skills self-contained until that is needed.