---
title: "Skill"
description: "The `Skill` entity."
section: "Reference"
group: "Types"
order: 189
---

## Definition

```ts
interface Skill {
  id: string;
  workspaceId: string | null;
  name: string;
  description: string | null;
  kind: "concept" | "procedure";
  target: "cli" | "assistant" | "mcp";
  body: string;
  system: boolean;
  resources: Array<{
    id: string;
    skillId: string;
    path: string;
    content?: string | undefined;
  }>;
  createdBy: string | null;
  deletedAt: string | null;
  retentionTier: "short" | "medium" | "long" | "none" | null;
  createdAt: string;
  updatedAt: string;
}
```

## Fields

| Field           | Type                                                                                   | Notes                                                                                                                                        |
| --------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`            | `string`                                                                               | `readonly` `required`                                                                                                                        |
| `workspaceId`   | `string \| null`                                                                       | `required` — Workspace that owns this skill; null for system skills.                                                                         |
| `name`          | `string`                                                                               | `required` — Kebab-case skill slug (e.g. 'aeontel-primitives').                                                                              |
| `description`   | `string \| null`                                                                       | `required` — Short description of what the skill teaches or does.                                                                            |
| `kind`          | `"concept" \| "procedure"`                                                             | `required` — Content shape: 'concept' for reference material, 'procedure' for step-by-step.                                                  |
| `target`        | `"cli" \| "assistant" \| "mcp"`                                                        | `required` — Consumer of the skill (assistant, mcp, cli, …).                                                                                 |
| `body`          | `string`                                                                               | `required` — Markdown body loaded when the skill is retrieved.                                                                               |
| `system`        | `boolean`                                                                              | `required` — True for built-in system skills that cannot be edited or deleted.                                                               |
| `resources`     | `Array<{ id: string; skillId: string; path: string; content?: string \| undefined; }>` | `required` — Bundled resource files available via skills.getResource.                                                                        |
| `createdBy`     | `string \| null`                                                                       | `required` — User who created the skill; null for system skills.                                                                             |
| `deletedAt`     | `string \| null`                                                                       | `required` — ISO-8601 timestamp of soft-delete; null while active. Cleanup worker hard-deletes once `deletedAt + retentionTier.days` passes. |
| `retentionTier` | `"short" \| "medium" \| "long" \| "none" \| null`                                      | `required` — Retention tier snapshotted at delete time. `short`=7d, `medium`=30d, `long`=90d, `none`=never. Null while active.               |
| `createdAt`     | `string`                                                                               | `readonly` `required` — ISO-8601 timestamp of creation.                                                                                      |
| `updatedAt`     | `string`                                                                               | `readonly` `required` — ISO-8601 timestamp of the last update.                                                                               |
