What is a Skill?
Skills are specialized knowledge modules that activate automatically based on project context, injecting domain expertise into Yukkai's system prompt.
A Skill in Yukkai is a specialized knowledge module that gives the AI domain-specific expertise. Each skill carries a dedicated system prompt, optional procedures/knowledge files, and activation keywords. When a user message or project context matches a skill's keywords, the skill is automatically injected into the system prompt.
How Skills Work
Skills operate on a principle of automatic, context-aware activation:
- Keyword matching — Each skill defines activation keywords (e.g.,
swift,swiftui,xcodefor theswift-iosskill). - Automatic injection — When your message contains those keywords (or when a project's file patterns match), the skill's system prompt is prepended to the conversation.
- No manual effort needed — You don't have to think about which skill to activate. Yukkai detects the context and applies the right expertise.
swift-ios skill activates automatically, giving the AI knowledge of Swift conventions, SwiftUI patterns, and Xcode workflows.
Skill Lifecycle
Listing Skills
skill(action: "list")
Returns all skills (both built-in and custom) with their status (active/inactive), author (builtin/user), and description.
Getting Details
skill(action: "info", id: "swift-ios")
Shows the full system prompt, activation keywords, file patterns, and preferred tools for a specific skill.
Activating / Deactivating
skill(action: "activate", id: "swift-ios")
skill(action: "deactivate", id: "swift-ios")
Auto-activation via keywords is the default. Explicit activate/deactivate is for always-on or always-off overrides — forcing a skill to be active regardless of keyword matches, or preventing it from activating even when keywords match.
Creating Custom Skills
skill(action: "create", name: "Kubernetes", description: "K8s deployment expertise",
system_prompt: "You are a Kubernetes expert...",
activation_keywords: ["k8s", "kubernetes", "helm", "kubectl"])
See Creating Custom Skills for a detailed guide.
Learning from a Project
skill(action: "learn", path: "/Users/you/Projects/MyApp")
Yukkai can auto-generate a skill by analyzing a project directory — deriving file patterns, conventions, and domain knowledge from the codebase itself.
Searching Skills
skill(action: "search", query: "database optimization")
Performs a semantic search across all available skills to find ones relevant to your query.
Built-in vs. Custom Skills
| Source | Author | Notes |
|---|---|---|
| Built-in | builtin |
Ship with Yukkai, always available |
| Custom | user |
Created by you or the AI, fully manageable (CRUD) |
Both coexist in the same list and work identically when activated. The only difference is that built-in skills can't be deleted (only deactivated), while custom skills can be deleted.
Best Practices
- Always check
listfirst — The skill catalog changes over time. A relevant skill (e.g., accounting, legal, a specific framework) may already exist. - Keep skills narrow — One clear domain per skill. Don't create a "general programming" skill — use specific ones like
swift-iosorpython-data. - Avoid duplication — Before creating a new skill, check for overlap with existing ones. Update the existing skill instead of duplicating coverage.
- Use
search— When unsure if a domain is covered, search rather than assuming.