Skills

Skills are specialized knowledge modules that Posit Assistant loads automatically when they’re relevant to your request. You don’t need to activate them manually. When you ask a question, the assistant loads any related skills.

Posit Assistant loading a skill during a conversation

Built-in Skills

SkillDescription
connect-cloud-deployDeploy apps and documents to Posit Connect Cloud
create-skillCreate new Agent Skills following the specification
import-instructionsMigrate Positron, Copilot, Claude Code, and VS Code instruction files into Posit Assistant skills
predictive-modeling-pythonModeling and machine learning with scikit-learn in Python
predictive-modeling-rModeling and machine learning with tidymodels in R
quarto-authoringWrite and author Quarto documents (.qmd)
reportCreate Quarto documents or notebooks from conversations
r-package-developmentR package development with devtools, testthat, and roxygen2
shiny-bslibBuild modern Shiny dashboards and apps with bslib
shiny-bslib-themingAdvanced theming for Shiny apps using bslib and Bootstrap 5
snowflakeConnect to Snowflake and query data via semantic views

Adding Custom Skills

You can add your own skills at two levels:

  • User-level~/.positai/skills/{skill-name}/ or ~/.agents/skills/{skill-name}/ — available across all projects
  • Project-level.positai/skills/{skill-name}/ or .agents/skills/{skill-name}/ in your project root — scoped to a single project

Project skills take priority over user skills, and both override built-in skills with the same name.

Skill Directory Structure

my-skill/
├── SKILL.md        # Required: skill definition with metadata
├── scripts/        # Optional: executable scripts (R, Python, Bash)
├── references/     # Optional: additional documentation
└── assets/         # Optional: templates, schemas, data files

SKILL.md Format

Each skill requires a SKILL.md file with YAML frontmatter:

---
name: my-skill
description: When to use this skill — a clear description that helps the assistant decide when to load it.
---
# My Skill

Instructions, examples, and reference material for the assistant to follow
when this skill is active.

Required fields:

  • name — Lowercase letters, numbers, and hyphens only. Must match the directory name. Max 64 characters.
  • description — Explains when the skill should be used. Max 1024 characters.

Optional fields:

  • license — Licensing terms (e.g., MIT)
  • compatibility — Environmental requirements
  • metadata — Arbitrary key-value pairs (author, version, etc.)

Example

To create a skill for your team’s internal API:

mkdir -p ~/.positai/skills/internal-api

Then create ~/.positai/skills/internal-api/SKILL.md:

---
name: internal-api
description: Use when the user asks about our internal REST API, including authentication, endpoints, and data schemas.
---

# Internal API

Our API is at https://api.example.com/v2.

## Authentication

Use Bearer tokens from the /auth/token endpoint...

The skill will be available in your next conversation. You can also use the built-in create-skill skill to help generate new skills interactively.

Custom Skill Locations

By default, Posit Assistant searches for skills in these directories. When the same skill name exists in more than one location, the version from the later directory is used:

  1. ~/.agents/skills/
  2. ~/.positai/skills/
  3. .agents/skills/ — relative to each workspace root
  4. .positai/skills/ — relative to each workspace root

You can customize these paths with the skills.paths setting in your ~/.positai/settings.json:

{
  "skills": {
    "paths": [
      "~/.agents/skills",
      "~/.positai/skills",
      ".agents/skills",
      ".positai/skills",
      "~/my-company/shared-skills"
    ]
  }
}

Paths starting with ~ expand to your home directory. Relative paths are resolved against each workspace root. If both a global and project-level config define skills.paths, the project value completely replaces the global one — they are not merged.

Further Reading

Skills follow the Agent Skills specification.