# lua-basics

Скилл задаёт ИИ-агенту стиль Lua-кода для ресурсов FiveM: именование, локальные переменные, таблицы и обработка ошибок.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 381 установка · ★ 18
- Автор: germanfndez
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/germanfndez/fiveai-skills/tree/HEAD/skills/lua-basics/SKILL.md
- Обновлён: 2026-10-17
- HTML: https://affpapa.org/nevibecode/skills/lua-basics

## Что делает

Скилл включается, когда агент пишет или проверяет Lua в ресурсе FiveM, а также когда вы спрашиваете про именование, структуру, производительность, таблицы или ошибки. Внутри — набор жёстких правил: константы в `ALL_CAPS`, локальные переменные в `camelCase`, глобальные в `PascalCase`, `_` для неиспользуемых. Локальные объявляются как можно ближе к первому использованию, а файловые глобальные собираются в начале одного клиентского или серверного файла.

Отдельная таблица решений разводит ожидаемые сбои и ошибки программиста. Если что-то не найдено или пришёл неверный ввод — возвращайте `nil, err` или `false`. Невозможное состояние ловится через `assert`. Флаг с более чем двумя смыслами превращается в enum-таблицу, а не в boolean. Для добавления в массив скилл советует `t[#t + 1] = v` вместо `table.insert`.

Скилл ссылается на собственные файлы правил: `rules/functions.md`, `rules/tables.md`, `rules/variables.md`, `rules/conditionals.md`, `rules/errors.md` и `rules/reference-links.md`. Если вы пишете Lua вне FiveM, часть советов про таблицы и локальные переменные всё равно применима, но контракт активации привязан именно к ресурсам FiveM.

## Установка

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

1. **Через Skills CLI (Vercel)**
```bash
npx skills add germanfndez/fiveai-skills --skill lua-basics -a claude-code
```

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

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add germanfndez/fiveai-skills --skill lua-basics -a codex
```

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

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add germanfndez/fiveai-skills --skill lua-basics -a cursor
```

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

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install germanfndez/fiveai-skills lua-basics
```

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

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add germanfndez/fiveai-skills --skill lua-basics -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/germanfndez/fiveai-skills --path skills/lua-basics
```

### Windsurf (Devin Desktop)

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

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add germanfndez/fiveai-skills --skill lua-basics -a opencode
```

### Claude.ai

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

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

## Когда брать
- привести именование переменных и функций в ресурсе к одному виду
- заменить `table.insert` на прямую запись по индексу
- развернуть вложенные `if` в guard clauses с ранним возвратом
- развести ожидаемые сбои и ошибки программиста через `assert`
- вынести повторные обращения к полям таблицы в локальные переменные

## Примеры запросов агенту
- проверь этот Lua-файл по правилам lua-basics
- перепиши функцию с `table.insert` на индексную запись
- добавь guard clauses и `assert` в начало этой функции

## Похожие
- [lua](https://affpapa.org/nevibecode/skills/lua.md) — скилл · 1300 установок
- [roblox-performance](https://affpapa.org/nevibecode/skills/sentinelcore-roblox-performance.md) — скилл · 826 установок
- [fivem-dev](https://affpapa.org/nevibecode/skills/fivem-dev.md) — скилл · 483 установки
- [lua-lsp](https://affpapa.org/nevibecode/plugins/lua-lsp.md) — плагин · ★ 44635
- [ux-review](https://affpapa.org/nevibecode/skills/ux-review.md) — скилл · 474 установки
- [create-control-manifest](https://affpapa.org/nevibecode/skills/create-control-manifest.md) — скилл · 411 установок

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

_Часть страницы не вошла по размеру — она есть в HTML-версии._

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