Skills are structured documentation “packs” injected into prompts to improve answer quality in specific domains (Spec2, Roassal, Collections, Bloc, etc.).
A skill is a subclass of ChatPharoSkill with:
name (unique ID)descriptionkeywords (for matching)contextString (the injected documentation)Skills are discovered by scanning subclasses and are managed by ChatPharoSkillRegistry.
Manually enabled skills are always injected as:
### ENABLED SKILLS CONTEXT ###
<skill context...>
If enabled, ChatPharo extracts keywords from the current query and injects matching skills that are marked as auto-enabled:
### AUTO-DETECTED SKILLS CONTEXT ###
(Based on detected keywords: ...)
<skill context...>
When skillToolsEnabled is enabled, the model can call tools such as:
list_available_skillsget_skill_contextThis lets the model request specialized docs on demand.
ChatPharoSkill.name, description, keywords, and contextString.Users can provide extra skills as plain files on disk without writing any Pharo code. In Settings > Skills, click Add skill file… and pick a file. ChatPharo will load it on the next refresh and show it in the skills list like any built-in skill.
The file may start with an optional header block of key: value lines
terminated by a line containing only ---, followed by the skill body:
name: MyProjectConventions
description: Coding conventions for my project
keywords: conventions, style, myproject
---
## My Project Coding Conventions
- Always use descriptive selectors…
- Prefer composition over inheritance…
Recognised header keys are name, description, and keywords (comma
separated). If no header is present the entire file is used as the skill
body and the file name becomes the skill name.
Registered file paths are persisted in ChatPharoSettings>>skillFilePaths
and reloaded at startup.