К основному содержанию
скилл CX Codex

lua-basics — скилл для Claude Code: правила Lua для FiveM

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

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add germanfndez/fiveai-skills --skill lua-basics -a claude-code
Открыть на GitHub

Что делает 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.

Какие задачи решает

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

Примеры запросов агенту

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

Как установить lua-basics

1Через Skills CLI (Vercel)

npx skills add germanfndez/fiveai-skills --skill lua-basics -a claude-code

2Вручную: положить файлы

~/.claude/skills/lua-basics/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/lua-basics/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о lua-basics

Как установить lua-basics в Claude?

Выполните npx skills add germanfndez/fiveai-skills --skill lua-basics -a claude-code. После этого файл скилла лежит в ~/.claude/skills/lua-basics/SKILL.md.

Что делает lua-basics?

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

Чем этот скилл отличается от обычных советов по Lua?

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

Исходный текст

SKILL.md · MIT
---
name: lua-basics
description: "Trigger: Lua code, Lua functions, tables, variables, conditionals, error handling, naming conventions, review Lua, optimize Lua. Write effective, performant Lua for FiveM resources."
license: MIT
metadata:
  author: germanfndez
  version: "1.0.0"
---

# Lua Basics

Idiomatic, performant Lua patterns for FiveM: functions, tables, variables, conditionals and errors.

## Activation Contract

Load this skill when writing or reviewing any Lua in a FiveM resource, or when the user asks about Lua naming, structure, performance, tables or error handling.

## Hard Rules

- Naming: `ALL_CAPS` constants, `camelCase` locals, `PascalCase` globals, `_` for unused variables.
- Prefer `local`; declare locals as close to first use as possible; group file-level globals at the top of a single client/server file.
- Do not use `table.insert`; append with `t[#t + 1] = v` or maintain your own size counter.
- Iterate arrays with numeric `for i = 1, #t`; imply array indices (`{ a, b }`) instead of writing them out.
- Extract repeated table dereferences into locals; use `t.key` for constant keys and `t[var]` for dynamic keys.
- Use guard clauses and early returns; never write `if x then return true else return false end`.
- Prefer positive boolean expressions; set defaults with `value = value or default`.
- Use `assert` for pre-conditions instead of `if not x then error() end`; fail loudly on unexpected state; return errors as values for expected failures.
- Limit parameters; avoid boolean parameters in APIs (use enums); pass named local functions instead of inline ones.
- Keep functions small, single-level of abstraction, and document exports.

## Decision Gates

| Situation | Pattern |
|---|---|
| Expected failure (not found, invalid input) | return `nil, err` or `false` |
| Programmer error / impossible state | `assert` / `error` |
| Flag with more than two meanings | enum table, not boolean |
| Function reused more than once as argument | `local function` then pass by name |
| Append to array | `t[#t + 1] = v` |

## Execution Steps

1. Apply naming and scope rules to every identifier.
2. Replace nested `if` with guard clauses.
3. Replace `table.insert` and `pairs` on arrays with index writes and numeric loops.
4. Add `assert` pre-conditions at function entry.
5. Re-read for size: split any function mixing high- and low-level code.

## Output Contract

Return Lua that follows the naming, locality, table and error-handling rules above; annotate any deliberate deviation.

## References

- rules/functions.md — size, naming, parameters, exports, guard clauses.
- rules/tables.md — indices, dereferencing, table.insert, iteration, size.
- rules/variables.md — naming, enums vs booleans, declaration location.
- rules/conditionals.md — defaults, boolean expressions, readability.
- rules/errors.md — assert, pre-conditions, errors as values, fail loudly.
- rules/reference-links.md — official Lua and FiveM documentation.

Upstream docs: https://www.lua.org/manual/5.4/

© germanfndez · MIT · germanfndez/fiveai-skills

Похожие скиллы

Все скиллы по теме «Языки программирования» →
lua Mindrally Задаёт агенту правила письма на Lua: таблицы, метатаблицы, обработка ошибок, игровой цикл и работа с памятью. Пригодится, если проект на Lua или Love2D. CX Codex +1 1 300установок roblox-performance sentinelcore Скилл для ИИ-агентов, который помогает находить узкие места в Roblox-игре: просадки FPS, лишние draw calls, тяжёлые циклы. CX Codex +1 826установок fivem-dev melihbozkurt10 Ведёт разработку ресурсов FiveM под QBox, QBCore и ESX: подтягивает нативы, API фреймворков и модели ассетов вместо догадок. CX Codex +1 483установок lua-lsp официальный Anthropic Подключает языковой сервер Lua к Claude: подсказки по коду и диагностика для файлов .lua. ★ 44 635звёзд репо ux-review Donchitos Прогоняет UX-спеку, дизайн HUD или библиотеку паттернов по чек-листу и выдаёт вердикт: от APPROVED до MAJOR REVISION NEEDED. CX Codex +1 474установок create-control-manifest Donchitos Собирает короткий список обязательных и запрещённых правил кодинга по слоям архитектуры из принятых ADR. Пригодится, когда ADR уже утверждены, а команде нужна шпаргалка. CX Codex +1 411установок

Из того же набора4

Спонсоры проекта

Компании, которые помогают держать аналитику открытой