lua-basics について
lua-basicsは、FiveMのリソースでLuaを書く際やレビューする際に使うスキルです。コード構成、テーブル、パフォーマンス、エラー処理の具体的な規則を示します。
主な機能
- 01命名と変数スコープの規則
- 02配列の反復とテーブル操作パターン
- 03ガード節とブール値のデフォルト
- 04assertとエラー値の扱い方
- 05関数規模とAPI設計の指針
活用シーン
- 01FiveMリソース向けLuaの作成
- 02Luaの命名や構成のレビュー
- 03配列とテーブル処理の改善
- 04想定内・想定外エラーの処理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ germanfndez/ fiveai-skills --skill lua-basicsインストール後、Claude Code で/lua-basicsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
rules/conditionals.mderrors.mdfunctions.mdreference-links.mdtables.mdvariables.md詳細
Lua の基本
FiveM 向けの、慣用的でパフォーマンスに優れた Lua のパターン:関数、テーブル、変数、条件分岐、エラー。
有効化の条件
FiveM リソースで Lua を記述またはレビューするとき、あるいはユーザーが Lua の命名規則、構成、パフォーマンス、テーブル、エラー処理について質問したときに、このスキルを読み込みます。
厳守ルール
- 命名規則:定数は
ALL_CAPS、ローカル変数はcamelCase、グローバル変数はPascalCase、未使用の変数には_を使用します。 localを優先します。ローカル変数は初めて使う箇所のできるだけ近くで宣言し、ファイルレベルのグローバル変数は単一のクライアント/サーバーファイルの先頭にまとめます。table.insertは使用しません。t[#t + 1] = vで追加するか、独自のサイズカウンターを管理します。- 配列は数値インデックスの
for i = 1, #tで反復処理します。インデックスを明示せず、暗黙の配列インデックス({ a, b })を使用します。 - テーブルの参照を繰り返す場合はローカル変数に取り出します。固定キーには
t.key、動的キーにはt[var]を使用します。 - ガード節と早期リターンを使用します。
if x then return true else return false endは決して記述しません。 - 肯定形のブール式を優先します。デフォルト値は
value = value or defaultで設定します。 - 前提条件の検証には
if not x then error() endではなくassertを使用します。予期しない状態では明確に失敗させ、想定される失敗は値としてエラーを返します。 - パラメーターの数を抑え、API ではブール値のパラメーターを避けます(列挙型を使用します)。インライン関数ではなく、名前付きのローカル関数を渡します。
- 関数は小さく保ち、抽象度を統一し、エクスポートを文書化します。
判断基準
| 状況 | パターン |
|---|---|
| 想定される失敗(見つからない、入力が無効) | nil, err または false を返す |
| プログラマーのミス/不可能な状態 | assert / error |
| 2 つを超える意味を持つフラグ | ブール値ではなく列挙型のテーブル |
| 引数として複数回使用する関数 | local function を定義してから、名前で渡す |
| 配列への追加 | t[#t + 1] = v |
実行手順
- すべての識別子に命名規則とスコープのルールを適用します。
- ネストされた
ifをガード節に置き換えます。 table.insertと、配列に対するpairsをインデックスへの代入と数値ループに置き換えます。- 関数の先頭に
assertによる前提条件の検証を追加します。 - 関数の規模を見直します。高レベルと低レベルのコードが混在する関数は分割します。
出力の条件
上記の命名、ローカル変数、テーブル、エラー処理のルールに従った Lua を返します。意図的にルールから逸脱する場合は、その旨を注記します。
参考資料
- rules/functions.md — 関数の規模、命名、パラメーター、エクスポート、ガード節。
- rules/tables.md — インデックス、参照、table.insert、反復処理、サイズ。
- rules/variables.md — 命名、ブール値と列挙型の使い分け、宣言位置。
- rules/conditionals.md — デフォルト値、ブール式、読みやすさ。
- rules/errors.md — assert、前提条件、値としてのエラー、明確な失敗。
- rules/reference-links.md — Lua と FiveM の公式ドキュメント。
上流のドキュメント:https://www.lua.org/manual/5.4/
コメント
Markdown 対応