Skills

Skills are YAML files that become sub-agents. Six ship built in; you can add your own by dropping YAML files into a directory and pointing SKILL_DIRS at it.

Built-in skills

NameDisplay nameFocus
securitySecurity OperationsSecurity auditing, RBAC analysis, network policy enforcement, compliance checks.
administrationCluster AdministrationDeployments, scaling, rollouts, upgrades, namespace management, resource lifecycle.
networkingNetworking OperationsServices, ingress, DNS diagnostics, network policies, connectivity troubleshooting.
monitoringMonitoring & ObservabilityResource usage analysis, HPA behaviour, event monitoring, Prometheus integration.
troubleshootingTroubleshooting & Incident ResponseRoot cause analysis, crash diagnostics, scheduling failures.
cost_optimizationCost Optimization & FinOpsRight-sizing, idle workload detection, orphaned resource review. See the guide.

All skills use the same four executor tools (run_kubectl, run_helm, run_shell, read_resource), so the safety and approval rules apply identically regardless of which skill is acting.

Anatomy of a skill

A skill definition has a handful of fields. Abridged from the built-in cost-optimization skill:

name: cost_optimization
display_name: Cost Optimization & FinOps
description: >
  Autonomous cost analysis — resource right-sizing, idle workload
  detection, orphaned resource cleanup, and efficiency recommendations.
category: finops

system_prompt: |
  You are a Kubernetes FinOps specialist focused on cost efficiency.
  - RIGHT-SIZING: Compare actual CPU/memory usage to requests and limits.
  - IDLE DETECTION: Find deployments with 0 ready replicas, unused
    Services, Jobs that completed long ago but weren't cleaned up.
  ...
  Rules:
  - Never delete resources without explicit confirmation.
  - Always show current vs recommended values.

documentation: |
  # Quick Reference
  - Pod usage vs requests: compare `kubectl top pods` with requests
  - PVC status: `kubectl get pvc -A` — look for non-Bound entries

system_prompt shapes how the sub-agent investigates; documentation is reference material included with the skill.

Custom skills

At startup Kopilot loads YAML files from the built-in directory plus any directories listed in the SKILL_DIRS environment variable (colon-separated on Linux/macOS, semicolon-separated on Windows):

SKILL_DIRS=/etc/kubedevaiops/skills

A skill is only activated if its name also appears in ENABLED_SKILLS. To add a custom skill named backup_review:

ENABLED_SKILLS=["security","administration","networking","monitoring","troubleshooting","cost_optimization","backup_review"]
SKILL_DIRS=/etc/kubedevaiops/skills

In-cluster, mount a ConfigMap containing your skill YAMLs and point SKILL_DIRS at the mount path. The Helm chart exposes this as the extraSkillDirs value.

AISkill CRD

The Helm chart installs an AISkill CRD (kubedevaiops.io/v1alpha1). Loading skill definitions from cluster resources is planned but not implemented yet — today skills load from YAML files only. The portable skill manifests exposed at /skills/portable declare this honestly as a planned_sources entry; see Interoperability.