Saved Prompts (Skills)
A per-user library of reusable AI prompts - playbooks, frequently-used instructions, complex multi-step queries. Stored as Knowledge Base documents in a private "Skills" folder so they're full Tiptap rich text, searchable, organisable into subfolders, and editable in the KB.
Limit: 50 skills per user (counted across the entire Skills folder tree).
Where They Live
A "Skills" system folder is auto-created in your Knowledge Base on first KB visit (alongside the Transcripts folder). Each skill is a regular Document row inside that folder. You can:
- Save new skills from the chat UI ("Save this prompt").
- Browse, edit, and reorganise them as rich documents in the KB.
- Create subfolders to organise skills by category.
- Delete skills directly from the KB or via the API.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/ai/skills | List skill documents from the Skills folder tree, newest first. Plain text extracted from structured JSON. |
| POST | /api/ai/skills | Create a skill in the Skills folder. JSON body with title and content. Title max 120 chars, content max 5000 chars. 50-skill limit enforced. |
| DELETE | /api/ai/skills/:id | Delete a skill (must live under the Skills folder tree in the current org). |
| POST | /api/ai/skills/:id | Mark skill as used. JSON body action: "use". No-op, kept for API compatibility. |
Discovery from the AI Side
Skills are also exposed to the AI assistant via two read-only tools:
| Tool | Description |
|---|---|
list_skills | List the user's skills with title and content snippet. |
get_skill | Retrieve a skill by ID. |
This lets the AI suggest a saved skill ("you have a 'Weekly review' skill - want to run it?") or pull one in as context for a multi-step task.
Use Cases
| Skill type | Example |
|---|---|
| Recurring report | "Summarise all matters that closed this month, grouped by board" |
| Domain primer | "You are a UK CSP analyst. Use Companies House conventions when discussing filings." |
| Compliance checklist | "For this matter, verify: KYC complete, UBO declared, share register up to date." |
| Multi-step workflow | "Find matters past their due date in the SLA-Premium board, draft a status update, attach to the matter." |
API Examples
List
GET /api/ai/skills
Response:
[
{
"id": "cm...",
"title": "Summarise matter progress",
"content": "Give me a summary of the current matter including step status...",
"createdAt": "2026-02-18T09:00:00.000Z"
},
{
"id": "cm...",
"title": "Weekly review",
"content": "Summarise all active matters and flag anything overdue...",
"createdAt": "2026-02-15T17:30:00.000Z"
}
]
Create
POST /api/ai/skills
Content-Type: application/json
{
"title": "Weekly review",
"content": "Summarise all active matters by board, flag overdue, and propose top 3 priorities for the week."
}
The title is used as the KB document name. The content is stored as plain text (auto-converted to Tiptap structured JSON for storage so it's editable inline in the KB).
Delete
DELETE /api/ai/skills/:id
Hard-deletes the underlying KB document.
Storage Detail
Skills are not a separate model - they're regular Document rows. The "is this a skill?" predicate is "does it live under the Skills folder tree in the user's KB?". This means:
- The 5000-char content limit applies on save via the API; manually editing in the KB lets you store more, though the AI may truncate when reading.
- Subfolders inside Skills are honoured for organisation.
- Skills inherit your normal KB permissions: only you can read/write your skills (they live in your private folder tree).
- Backups of your KB include your skills.
See Also
- AI Assistant - Chat - where you save and use skills.
- Voice Transcripts - the sibling private system folder.