/skill-name slash commands, or programmatically through SkillManager.invoke().
Quick Start
How It Works
| Mode | When to use |
|---|---|
| Auto-trigger | Skill description is in the system prompt; the LLM decides when to follow it |
| Slash command | User types /deploy staging; body is rendered with $ARGUMENTS substituted |
Skill files are read as UTF-8. Run
praisonai skills validate --path ./my-skill to catch encoding issues before deploy.Argument Substitution
InsideSKILL.md bodies you can reference arguments passed after the skill name:
- $ARGUMENTS
- Indexed
- Shorthand
- Context vars
/deploy staging prod becomes Deploy staging prod now.Inline Shell Substitution
Inline backtick form
Inline backtick form
Fenced block form
Fenced block form
Invocation Policy
When
true the skill is hidden from the system-prompt listing, so the LLM cannot auto-trigger it. Users can still invoke it via /skill-name. Use for side-effecting commands like /deploy.When
false the slash-router ignores the skill. Use for background knowledge you want auto-triggered by the LLM but not exposed as a user command.Allowed Tools Pre-approval
Space-separated string (
Read Grep) or YAML list. When a user invokes the skill, those tool names are pre-approved via the approval registry for the current agent so the LLM can run them without the interactive confirmation prompt.Common Patterns
Programmatic invoke
YAML
CLI
Precedence
Skills are discovered in this order (first wins on name collision):Collisions are logged at INFO level so you can see which skill won.
Best Practices
Use slash commands for side effects
Use slash commands for side effects
Set
disable-model-invocation: true on deploy, restart, or delete skills so the LLM cannot trigger them accidentally — users invoke them explicitly with /skill-name.Keep user-invocable false for background knowledge
Keep user-invocable false for background knowledge
Set
user-invocable: false when a skill should only auto-activate from the system prompt, not appear as a slash command.Opt in to shell blocks deliberately
Opt in to shell blocks deliberately
Leave
shell_exec=False (default) in production. Pass shell_exec=True only in trusted environments where inline !`cmd` blocks are required.Validate encoding before deploy
Validate encoding before deploy
Save
SKILL.md as UTF-8. Run praisonai skills validate --path ./my-skill to catch Windows encoding issues early.Related
Agent Skills
Author SKILL.md files and configure skills on agents
Skill Bundles
Select a named, reusable set of skills with a single @bundle marker
Skill Manage
Create, edit, and approve agent-proposed skills
Approval Protocol
How
allowed-tools pre-approval plugs into the approval registrySkills Config
SkillsConfig options for discovery and paths
