> For the complete documentation index, see [llms.txt](https://docs.riff.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.riff.ai/reference/riff-agent/skills/skill-catalogue.md).

# Skill catalogue

Skills are reusable instructions or workflows you can load into the Riff agent at any point in a conversation.

This page is for learning the *shape* of the library — which kinds of job already have a brief written for them, and how to get to the right one in about two seconds. Read it once and you will stop describing from scratch the things the agent already has instructions for.

> Skills load into your message; they do not run on their own. You pick one, add your own detail after it — which page, which table, which file — and then send. See Skills for how that works.

### Find a skill by typing its prefix

Every skill name has the same three parts:

```
category  -  verb  -  what it acts on

data-design-database-schema
ui-implement-dark-mode
deployment-check-security
```

The first word is the category, and it is the whole trick. Typing `/data` in the chat input narrows forty skills to ten. `/deployment` narrows them to eleven. `/integration` gets you the one.

So the skill you need is never more than two decisions away: **which of six categories does my problem belong to**, then **which line in a short list**. The rest of this page teaches the first decision.

### The six categories

<table><thead><tr><th width="218.7364501953125">Stage</th><th width="133.18603515625">Type</th><th width="61.48846435546875">Skills</th><th>What you are doing</th></tr></thead><tbody><tr><td>Get the data in</td><td><code>/data</code></td><td>10</td><td>Schema, uploads, imports, exports — everything before there is something to look at</td></tr><tr><td>Build the screens</td><td><code>/ui</code></td><td>8</td><td>The pages people actually open: search, tables, forms, notifications</td></tr><tr><td>Build the server side</td><td><code>/backend</code></td><td>6</td><td>Roles, queues, chatbots, error tracking — the work that happens out of sight</td></tr><tr><td>Make it feel finished</td><td><code>/improvement</code></td><td>4</td><td>Caching, loading states, analytics, error handling</td></tr><tr><td>Connect another system</td><td><code>/integration</code></td><td>1</td><td>One specific OAuth setup — see the note below</td></tr><tr><td>Ship it</td><td><code>/deployment</code></td><td>11</td><td>Security, responsiveness, audit trails, documentation</td></tr></tbody></table>

Two of the six categories are about the edges of a project — data going in, the app going out — and that is where more than half the skills are. The building in the middle is the part the agent handles best unaided.

***

### Get the data in

`/data` — 10 skills

Nothing else works until the data is in. This group runs in both directions: files arriving, and data leaving again. If your app needs to read a spreadsheet, a CSV or an existing Power BI dashboard, do not describe the file format to the agent by hand — the import already has a brief.

| Skill                                   | What it does                                                                                       |
| --------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `data-design-database-schema`           | Design tables, relationships, and indexes                                                          |
| `data-analyze-csv-data`                 | Analyze CSV data without asking what to do                                                         |
| `data-implement-file-upload`            | Create file upload with validation and storage                                                     |
| `data-implement-large-file-upload`      | Robust pipeline to upload large files                                                              |
| `data-implement-upload-csv-to-database` | Enables the user to upload updated CSV files to the database                                       |
| `data-implement-xlsx-import`            | Upload an Excel (.xlsx) file and store the data in the database, or visualize data from a workbook |
| `data-implement-powerbi-migration`      | Enables a user to migrate a Power BI dashboard into Riff                                           |
| `data-implement-data-export`            | Add data export to file formats                                                                    |
| `data-migrate-table-dev-prod`           | Flow to copy data from dev tables to prod tables                                                   |
| `data-optimize-database-queries`        | Identify and fix slow database queries                                                             |

**Start with `data-design-database-schema`.** Deciding the tables before anything is built is the single change that saves the most rework later.

### Build the screens

`/ui` — 8 skills

The pages people open. These are the patterns every internal tool eventually grows — search, pagination, validation, notifications — and they are the ones most worth loading as a skill rather than describing, because a skill carries the details you would not think to ask for.

| Skill                               | What it does                                                                        |
| ----------------------------------- | ----------------------------------------------------------------------------------- |
| `ui-implement-search-functionality` | Add search with filtering and results display                                       |
| `ui-implement-pagination`           | Add pagination to data tables and lists                                             |
| `ui-add-form-validation`            | Add client and server-side validation                                               |
| `ui-implement-notifications`        | Build in-app notification system                                                    |
| `ui-implement-data-reference-page`  | Build an in-app reference page for data fields, code mappings, business logic, KPIs |
| `ui-implement-dark-mode`            | Add dark mode with theme toggle                                                     |
| `ui-make-responsive`                | Fix pages that look wrong on different screen sizes, or presentation mode           |
| `ui-split-large-frontend-pages`     | When a frontend page file exceeds 15,000 characters                                 |

**`ui-implement-data-reference-page` is the one people do not know to ask for.** If your app carries codes, statuses or KPI definitions that only two people in the building understand, this puts them on a page inside the app instead of in a document nobody opens.

### Build the server side

`/backend` — 6 skills

The work that happens out of sight. Half of these stand up a whole subsystem in one go — a chatbot over your tables, a job queue, an MCP server — rather than adding a feature to an existing one.

| Skill                                   | What it does                                                                             |
| --------------------------------------- | ---------------------------------------------------------------------------------------- |
| `backend-implement-chatbot`             | implement a chatbot which has tools to query specific tables to answer user queries      |
| `backend-implement-job-queue`           | Build asynchronous job processing with retry logic                                       |
| `backend-implement-mcp-server`          | Build and Secure an MCP Server for Claude Desktop                                        |
| `backend-implement-user-roles`          | Add role-based access control with database and API                                      |
| `backend-setup-error-tracking`          | Integrate error tracking and alerting                                                    |
| `backend-split-large-backend-api-files` | When a backend API file is too large to edit reliably (typically over 20,000 characters) |

**`backend-implement-user-roles` before you share the link.** Who can see what is far cheaper to decide before there are users than after.

### Make it feel finished

`/improvement` — 4 skills

The smallest group, and the easiest to skip. Each of the four is the difference between an app that works and an app people trust.

| Skill                                | What it does                                        |
| ------------------------------------ | --------------------------------------------------- |
| `improvement-add-loading-states`     | Add loading indicators and skeleton screens         |
| `improvement-improve-error-handling` | Implement user-friendly error messages and recovery |
| `improvement-add-caching-layer`      | Implement caching for frequently accessed data      |
| `improvement-add-analytics-tracking` | Add analytics events for user behavior              |

**Loading states are worth more than they sound.** A page that looks frozen for three seconds is the most common reason someone decides an internal tool is broken.

### Connect another system

`/integration` — 1 skill

| Skill                      | What it does                                              |
| -------------------------- | --------------------------------------------------------- |
| `integration-connect-xero` | Connect this app to the OAuth Gateway (Xero) - setup only |

One skill, and a specific one. This category is **not** where the integrations story lives — connecting to an ERP, an API, a supplier portal or anything else is covered by Integrations and Secrets, not by a skill. If you are looking for how to give an app access to a system that already holds your data, start there.

### Ship it

`/deployment` — 11 skills

The largest group, and the one to read *before* you need it. These are the questions someone will ask you in the week after you share the link: who supports this, can I open it on my phone, what happens if I delete the wrong row, who else can see it.

| Skill                                       | What it does                                                      |
| ------------------------------------------- | ----------------------------------------------------------------- |
| `deployment-check-security`                 | Run through the codebase to identify critical security flaws      |
| `deployment-perform-security-audit`         | Systematic security review for vulnerabilities                    |
| `deployment-verify-authentication`          | Test authentication and authorization setup                       |
| `deployment-check-integration`              | Run through all integrations in the app and document them         |
| `deployment-audit-package-versions`         | Check package versions and security vulnerabilities               |
| `deployment-implement-responsive-layout`    | Make pages work on mobile, tablet, and desktop                    |
| `deployment-add-audit-trail-and-restore`    | Audit logs, version history, undo/rollback, point-in-time restore |
| `deployment-implement-bug-reporting`        | Adds a bug reporting system (form + admin page)                   |
| `deployment-implement-in-app-documentation` | Add a polished, interactive documentation page                    |
| `deployment-add-contact-info`               | Adds a contact/maintainer info card to the app                    |
| `deployment-review-naming-consistency`      | Check user-facing text for terminology consistency                |

**These are a checklist, not a menu.** Run them as a pass rather than picking one: security, then authentication, then integrations, then the responsive layout, then the things that make the app supportable — contact info, bug reporting, documentation. How to deploy an application walks the same ground in order.

### When something has already gone wrong

Three skills exist for a situation rather than a feature. They are worth knowing about before you meet them, because none of them is something you would think to ask for.

| Skill                                   | Reach for it when                                                                           |
| --------------------------------------- | ------------------------------------------------------------------------------------------- |
| `backend-split-large-backend-api-files` | The agent starts failing to edit a backend file reliably — typically past 20,000 characters |
| `ui-split-large-frontend-pages`         | The same symptom on a frontend page, past 15,000 characters                                 |
| `data-optimize-database-queries`        | A page that was fast on sample data has got slow on real data                               |

If the agent is making repeated unsuccessful edits to one large file, that is the signal for the first two. Splitting the file is usually faster than trying the edit again.

### Keeping this current

Forty skills at the time of writing. The list in your `/` menu is always the current one — if something here is missing from it, or something there is missing here, trust the `/` menu.

Skills are configured in the agent's settings. Reach out to the Riff team if you would like a new one added.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.riff.ai/reference/riff-agent/skills/skill-catalogue.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
