# surrealql-functions

Подсказывает агенту точные сигнатуры встроенных функций SurrealDB по установленной версии, а не по памяти модели.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 413 установок · ★ 28
- Автор: surrealdb
- Лицензия: MIT · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/surrealdb/agent-skills/tree/HEAD/skills/surrealql-functions/SKILL.md
- Обновлён: 2026-09-29
- HTML: https://affpapa.org/nevibecode/skills/surrealql-functions

## Что делает

SurrealDB поставляет сотни встроенных функций, сгруппированных по пространствам имён: `string::`, `array::`, `math::`, `type::` и другим. Имена и сигнатуры меняются от релиза к релизу, поэтому скилл берёт их не из памяти модели, а из тулинга SurrealQL. Внутри — языковой сервер surrealql-language-server и грамматика surrealql-tree-sitter, с которой этот сервер разбирает код.

Ставится языковой сервер из crates.io: `cargo install surrealql-language-server` кладёт бинарник в `~/.cargo/bin`. Проверить, что он виден в PATH, можно через `surrealql-language-server --help`. Сборка из исходников нужна только для разработки или чтобы поймать нерелизнутые изменения, и тогда грамматику tree-sitter придётся положить соседней директорией. Для встраивания в браузер или редактор собирается wasm-bindgen пакет скриптом `bash scripts/build-wasm.sh` с выводом в `pkg/`.

В редакторе LSP-клиент указывает на бинарник `surrealql-language-server` для файлов `*.surql`. Дальше агент набирает префикс пространства имён, например `string::`, и по автодополнению видит список функций установленной версии; наведение и signature help показывают типы аргументов. Это защищает от переименованных или удалённых функций из старых релизов. Полный каталог пространств имён со ссылками на документацию лежит в `references/catalog.md` — без него документацию по каждой группе придётся искать вручную.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add surrealdb/agent-skills --skill surrealql-functions -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/surrealql-functions/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/surrealql-functions/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add surrealdb/agent-skills --skill surrealql-functions -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/surrealql-functions/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add surrealdb/agent-skills --skill surrealql-functions -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/surrealql-functions/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install surrealdb/agent-skills surrealql-functions
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/surrealql-functions/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add surrealdb/agent-skills --skill surrealql-functions -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/surrealdb/agent-skills --path skills/surrealql-functions
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/surrealql-functions/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add surrealdb/agent-skills --skill surrealql-functions -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/surrealdb/agent-skills/tree/HEAD/skills/surrealql-functions/SKILL.md

## Когда брать
- узнать точную сигнатуру встроенной функции SurrealQL
- проверить, что функция вообще есть в установленной версии SurrealDB
- получить автодополнение и подсказки по типам в `.surql` файлах
- найти нужную функцию среди пространств имён `string::`, `array::`, `math::`
- не тащить в код функцию, переименованную в новом релизе

## Примеры запросов агенту
- покажи все функции пространства имён `string::` в моей версии SurrealDB
- какая сигнатура у этой функции и какие у неё аргументы
- проверь, что `type::` функция из моего запроса существует в установленной версии

## Похожие
- [convex-functions](https://affpapa.org/nevibecode/skills/convex-functions.md) — скилл · 3200 установок
- [add-lang](https://affpapa.org/nevibecode/skills/add-lang.md) — скилл · 1200 установок
- [golang-gopls](https://affpapa.org/nevibecode/skills/golang-gopls.md) — скилл · 11000 установок
- [smart-explore](https://affpapa.org/nevibecode/skills/smart-explore.md) — скилл · 7300 установок
- [rust-symbol-analyzer](https://affpapa.org/nevibecode/skills/rust-symbol-analyzer.md) — скилл · 3100 установок
- [platform-lsp-integrate](https://affpapa.org/nevibecode/skills/platform-lsp-integrate.md) — скилл · 2600 установок

Из того же набора: [surrealdb/agent-skills](https://affpapa.org/nevibecode/by/surrealdb/agent-skills.md) — 5 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
