Sperăm că aceasta a fost o prezentare utilă a Skills and Posit Assistant! Încercați una dintre abilitățile din postarea de pe blog și consultați documentele Asistentului pentru mai multe informații.
Citiți exportul conversației
# Explained Skills and their locations, loaded the `shiny-bslib` and `create-skill` skills, built a simple bslib Shiny app with palmerpenguins data, and explained how to add a third-party Skill from GitHub by cloning into `~/.positai/skills/`. ## User Can I use Skills with you? ## Databot Yes! Skills are a way to give me specialized instructions for specific domains or tasks. I have several available that I can load on demand: | Skill | Purpose | |---|---| | `modern-r-tidyverse` | Modern R/tidyverse best practices | | `predictive-modeling` | ML and modeling with tidymodels | | `quarto-authoring` | Writing and authoring Quarto documents | | `quarto-report` | Creating Quarto reports from conversations | | `shiny-bslib` | Building Shiny apps with bslib | | `shiny-bslib-theming` | Advanced Shiny/bslib theming | | `connect-cloud-deploy` | Deploying to Posit Connect Cloud | | `snowflake` | Connecting to and querying Snowflake | | `create-skill` | Creating new Agent Skills | I load the relevant skill automatically when your request matches its domain — for example, if you ask me to build a Shiny app, I'll load the `shiny-bslib` skill before I start. You can also explicitly ask me to use a specific skill. Is there something specific you'd like to work on? ## User Where would the skills be located? ## Databot
The user is asking where skills are located. Based on the system prompt, skills have a `location` property that can be either `project` or `managed`. Let me look at the available skills: - `modern-r-tidyverse` - location: project - `connect-cloud-deploy` - location: managed - `create-skill` - location: managed - `predictive-modeling` - location: managed - `quarto-authoring` - location: managed - `quarto-report` - location: managed - `shiny-bslib` - location: managed - `shiny-bslib-theming` - location: managed - `snowflake` - location: managed Most skills are managed by Posit, with only `modern-r-tidyverse` being a project-specific skill. Project skills would live in the project directory structure, while managed skills are built-in and handled by the Posit Assistant system. I should check if there's a skills directory in the workspace to understand the file structure better.
Skills are stored in two places: **Managed skills** (most of the built-ins like `shiny-bslib`, `predictive-modeling`, etc.) are bundled with Posit Assistant itself and aren't directly visible on disk. **Project/user skills** live at `~/.positai/skills/`. In your case, that's where the `modern-r-tidyverse` skill is stored: ``` ~/.positai/skills/modern-r-tidyverse/ ``` You can also place skills inside a specific project by adding them to a `.positai/agents/skills/` directory within that project folder. Would you like to explore the contents of the `modern-r-tidyverse` skill, or create a new one? ## User Can you load the shiny-bslib Skill? ## Databot
The `shiny-bslib` skill is now loaded! I'm ready to help you build modern Shiny dashboards using bslib. The skill covers: - **Page layouts** (`page_sidebar()`, `page_navbar()`, etc.) - **Grid systems** (`layout_column_wrap()`, `layout_columns()`) - **Cards, value boxes, navigation, sidebars** - **Theming** with `bs_theme()` - **Migrating** legacy Shiny apps to modern bslib What would you like to build? ## User Can you build a simple app with palmerpenguins data? ## Databot (Response canceled by user) ## User What is the best way of adding a new Skill? ## Databot
I'll tackle both at once — loading the `create-skill` skill for your second question while building the app.
The user has two questions: 1. Build a simple Shiny app with palmerpenguins data 2. What is the best way of adding a new Skill? Let me load the create-skill skill to answer the second question, and also build the Shiny app. Let me do both in parallel - load the create-skill skill and start building the app. Actually, let me think about this. I should load the create-skill skill to answer question 2, and build the app for question 1. I can do these in parallel. For the app, I'll build a simple `page_sidebar()` app with palmerpenguins data using bslib. Let me think about what to include: I'll add a sidebar with species filtering and variable selection options, then display a scatter plot or histogram in the main area. I'll throw in a couple value boxes to keep it visually interesting while staying simple and showcasing what bslib can do.
Now let me build the app:
The app is running! It includes a sidebar with axis selectors and species filters, three value boxes showing counts, and a full-screen-capable scatterplot. --- **Adding a new Skill** — there are two locations depending on scope: | Type | Location | Use when... | |---|---|---| | **User skill** | `~/.positai/skills/{skill-name}/SKILL.md` | You want it available across all projects | | **Project skill** | `.positai/skills/{skill-name}/SKILL.md` | You want it scoped to one project | Each skill needs at minimum a `SKILL.md` file. You can optionally add `scripts/`, `references/`, and `assets/` subdirectories. The skill name must be lowercase, hyphen-separated, max 64 characters. The easiest way to get started is to ask me to create one — I can write the `SKILL.md` for you following the official spec. Is there a skill you'd like to create? ## User I have one from someone else's GitHub repo. What's the best way to add it? ## Databot
The simplest approach is to clone or copy the skill files directly into your user skills directory: ```bash cd ~/.positai/skills/ git clone https://github.com/someone/their-skill-repo skill-name ``` The cloned folder just needs to contain a `SKILL.md` at its root (e.g., `~/.positai/skills/skill-name/SKILL.md`) and Posit Assistant will pick it up automatically. A few things to keep in mind: - **Naming**: The folder name becomes the skill name, so make sure it's lowercase and hyphen-separated. - **Review before use**: Since skills provide instructions that guide my behavior, it's worth reading the `SKILL.md` before loading it — treat it like any other code from a third party. - **Updates**: Because it's a git clone, you can `git pull` inside the folder to get updates from the repo owner. If the repo contains the skill nested inside a larger project (rather than at the root), you'd just copy the relevant subdirectory into `~/.positai/skills/` instead of cloning the whole repo.
The user wants to add a skill from someone else's GitHub repo. The best way would be to clone or download the skill files and place them in the appropriate skills directory. Let me think about this... The skill directory structure is: - User skill: `~/.positai/skills/{skill-name}/SKILL.md` - Project skill: `.positai/skills/{skill-name}/SKILL.md` The best way to add a skill from a GitHub repo would be to either: 1. Clone the repo into the skills directory 2. Download/copy the relevant files into the skills directory Let me think about what the most practical advice is. If someone has a skill on GitHub, they could: 1. `git clone` the repo directly into `~/.positai/skills/` 2. Download just the skill files and place them in the right location I don't need to fetch the spec for this - I can just give practical advice based on what I know about the skill directory structure.
