mcpField
L
lua-basics

lua-basics

github.com/germanfndez開発19386 回インストール2 週間前に更新
リポジトリ

lua-basics について

lua-basicsは、FiveMのリソースでLuaを書く際やレビューする際に使うスキルです。コード構成、テーブル、パフォーマンス、エラー処理の具体的な規則を示します。

主な機能

  1. 01命名と変数スコープの規則
  2. 02配列の反復とテーブル操作パターン
  3. 03ガード節とブール値のデフォルト
  4. 04assertとエラー値の扱い方
  5. 05関数規模とAPI設計の指針

活用シーン

  1. 01FiveMリソース向けLuaの作成
  2. 02Luaの命名や構成のレビュー
  3. 03配列とテーブル処理の改善
  4. 04想定内・想定外エラーの処理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/germanfndez/fiveai-skills --skill lua-basics

インストール後、Claude Code で/lua-basicsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

rules/
conditionals.md
errors.md
functions.md
reference-links.md
tables.md
variables.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

実行手順

  1. すべての識別子に命名規則とスコープのルールを適用します。
  2. ネストされた if をガード節に置き換えます。
  3. table.insert と、配列に対する pairs をインデックスへの代入と数値ループに置き換えます。
  4. 関数の先頭に assert による前提条件の検証を追加します。
  5. 関数の規模を見直します。高レベルと低レベルのコードが混在する関数は分割します。

出力の条件

上記の命名、ローカル変数、テーブル、エラー処理のルールに従った 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/

コメント