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:

  1. Keyword matching — Each skill defines activation keywords (e.g., swift, swiftui, xcode for the swift-ios skill).
  2. 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.
  3. No manual effort needed — You don't have to think about which skill to activate. Yukkai detects the context and applies the right expertise.
For example, if you ask Yukkai to "refactor this SwiftUI view," the 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 list first — 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-ios or python-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.