roblox-luau-core — скилл Luau для Claude Code и Cursor
Скилл для написания и отладки Luau: подсказывает семантику языка и ловит синтаксис, перенесённый из JavaScript или Python.
npx skills add TabooHarmony/roblox-brain --skill roblox-luau-core -a claude-codeЧто делает roblox-luau-core
Скилл включается, когда агент пишет, правит или разбирает код на Luau: таблицы, ветвления, строковые паттерны, области видимости, замыкания. Отдельно закрывает ошибки синтаксиса, обращение к nil, странное поведение циклов и таблиц, форматирование строк и вычитку кода на корректность.
Внутри — краткая справка по семантике и разбор типичных ловушек перевода. Например, в Luau ложны только false и nil, а 0, пустая строка и пустая таблица истинны; равенство не приводит типы, поэтому 0 == "0" даёт false, а неравенство записывается как ~=. Индексы массивов начинаются с единицы, порядок обхода словаря не определён, присваивание nil удаляет ключ из таблицы. Строковые паттерны Luau — не регулярные выражения, и это стоит держать в голове при переносе кода.
Есть раздел про перевод с JavaScript и Python: ===, null, опциональная цепочка, стрелочные функции и методы массивов в Luau не существуют, как и None, списки с нуля, исключения и кортежи. Конструкция x or fallback проверяет истинность, а не отсутствие значения, поэтому затрёт честный false. Разбор деталей лежит в references/full.md. Скилл рассчитан на работу вместе с roblox-luau-types и roblox-luau-patterns, а API движка вынесены в отдельные доменные скиллы.
Какие задачи решает
- перевести функцию с JavaScript на Luau без чужих конструкций
- найти обращение к nil в цепочке таблиц
- проверить, что обход словаря не опирается на порядок ключей
- разобрать ошибку синтаксиса в строковых паттернах
- вычитать код на случайные ссылки на одну и ту же таблицу
Примеры запросов агенту
- перепиши этот модуль с JavaScript на Luau и объясни, что здесь не переводится напрямую
- проверь скрипт на nil-разрывы в массиве и на зависимость от порядка обхода словаря
- почему этот цикл ведёт себя не так, как в Python? разбери по семантике Luau
Как установить roblox-luau-core
1Через Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-luau-core -a claude-code2Вручную: положить файлы
~/.claude/skills/roblox-luau-core/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/roblox-luau-core/
1Через Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-luau-core -a codex2Вручную: положить файлы
.agents/skills/roblox-luau-core/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-luau-core -a cursor2Вручную: положить файлы
.cursor/skills/roblox-luau-core/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install TabooHarmony/roblox-brain roblox-luau-core2Вручную: положить файлы
.github/skills/roblox-luau-core/SKILL.md1Через Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-luau-core -a gemini-cli2Командой платформы
gemini skills install https://github.com/TabooHarmony/roblox-brain --path skills/core/roblox-luau-coreВручную: положить файлы
.devin/skills/roblox-luau-core/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add TabooHarmony/roblox-brain --skill roblox-luau-core -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Из того же набора28
Похожие
Рядом в теме «Языки программирования»
Все скиллы по теме «Языки программирования» →Вопросы о roblox-luau-core
Как установить roblox-luau-core в Claude?
Выполните npx skills add TabooHarmony/roblox-brain --skill roblox-luau-core -a claude-code. Скилл окажется в ~/.claude/skills/roblox-luau-core/SKILL.md.
Что делает roblox-luau-core?
Даёт агенту справку по семантике Luau и разбор ловушек при переносе кода с JavaScript и Python. Помогает при написании, правке и отладке скриптов.
С какими скиллами его использовать?
Для типов есть roblox-luau-types, для жизненного цикла — roblox-luau-patterns, а API движка вынесены в доменные скиллы. Этот скилл закрывает только ядро языка.
Исходный текст
SKILL.md · MIT
---
name: roblox-luau-core
description: "Use when writing, editing, or debugging any Luau: tables, control flow, string patterns, scope, closures, and errors ported from JS/Python."
when_to_use: "Also for Luau syntax errors, nil indexing, wrong loop or table behavior, string formatting, and reviewing Luau code for correctness."
last_reviewed: 2026-10-14
sources:
- https://luau.org/syntax
- https://create.roblox.com/docs/luau/control-structures
- https://luau.org/library
- https://raw.githubusercontent.com/Kampfkarren/kampfkarren-luau-guidelines/main/README.md
- https://raw.githubusercontent.com/Roblox/creator-docs/main/content/en-us/reference/engine/libraries/vector.yaml
---
# Luau Core Language
## When to Load
Load for Luau semantics and JS/Python translation. Types: `roblox-luau-types`; lifecycle: `roblox-luau-patterns`; engine APIs: domain skills.
## Quick Reference
- Only `false` and `nil` are falsy. `0`, `""`, and `{}` are truthy.
- Equality does not coerce types. `0 == "0"` is false. Inequality is `~=`.
- Array conventions are 1-based. `#array` is meaningful only for a sequence without nil gaps.
- Assigning `nil` removes a table key; assigning a table copies the reference; `table.clone` is shallow.
- Dictionary iteration order is unspecified. Do not make behavior depend on it.
- Dynamic keys require brackets: `record[field]`. Dot syntax uses a literal identifier.
- Missing arguments become `nil`; extra results and arguments can be discarded.
- Prefer an `if` expression over `condition and a or b` when `a` may be falsy.
- Locals start at their declaration; `repeat` locals reach `until`. Forward-declare mutual recursion.
- Luau string patterns are not regular expressions. Their syntax and capabilities differ.
- Backtick interpolation and `..` are valid. Join many fragments once in hot loops.
- NaN does not equal itself and defeats `<`/`>`; test with `x ~= x`.
- Binary data uses the `buffer` library: fixed size, 0-based offsets, explicit-width reads/writes. Avoid `buffer.readinteger`/`writeinteger` (stubs, not released runtime).
- For Base64, hashing, or compression use `EncodingService` (buffers, not strings; JSON via `HttpService`). Details: see full reference.
```luau
local label = if enabled then "On" else "Off"
local message = `{name}: {score}`
local byId: {[number]: string} = {}
byId[userId] = name
for index, value in values do
print(index, value)
end
```
### Translation traps
- JavaScript `===`, `!==`, `null`, optional chaining, spread, arrow functions, and array methods are not Luau syntax.
- Python `None`, zero-based list assumptions, list comprehensions, exceptions, and implicit tuple behavior do not translate directly.
- `x or fallback` tests truthiness, not only absence. It replaces a valid `false` value.
- `typeof(value)` recognizes Roblox datatypes; `type(value)` reports the underlying Luau type category.
### Review
Valid Luau, no nil gaps, no assumed dictionary order, no accidental aliases, no cross-language syntax, no fallbacks hiding `false` or `nil`.
> Detailed language traps and translation examples: [references/full.md](references/full.md)
© TabooHarmony · MIT · TabooHarmony/roblox-brain