isentinel について
isentinel は roblox-ts プロジェクト向けのツール選定と開発規約です。TypeScript 開発者を対象に、パッケージ管理、厳格な型チェック、Lint、Jest-roblox によるテストを定めています。
主な機能
- 01pnpm によるパッケージ管理
- 02厳格な roblox TypeScript 設定
- 03ESLint によるチェックと整形
- 04Jest-roblox を使ったテスト駆動開発
- 05Conventional Commits と Git フック
活用シーン
- 01roblox-ts プロジェクト設定の統一
- 02厳格な TypeScript チェックの適用
- 03Lint と整形手順の標準化
- 04Jest-roblox テストの構成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ christopher-buss/ skills --skill isentinelインストール後、Claude Code で/isentinelを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/error-handling.mdlinting.mdtesting.mdtooling.mdtypescript.md詳細
isentinel の設定
roblox-ts 開発向けの、明確な方針に基づくツールとパターンです。
概要
| カテゴリ | 推奨事項 |
|---|---|
| パッケージマネージャー | pnpm(bun は任意のランタイムとして使用) |
| 言語 | TypeScript(strict +追加チェック) |
| TypeScript 設定 | @isentinel/tsconfig |
| リント | @isentinel/eslint-config(Prettier なし) |
| テスト | Jest-roblox、TDD アプローチ |
| Git フック | husky + lint-staged |
| コミット | Conventional Commits |
パッケージマネージャー(pnpm)
パッケージマネージャーとして pnpm を使用します。スクリプトのランタイムとして bun も使用できます。
@antfu/ni
パッケージマネージャーのコマンドを統一するため、@antfu/ni を使用します(ロックファイルに基づいてパッケージマネージャー(pnpm/npm/yarn/bun)を自動検出します)。
| コマンド | 説明 |
|---|---|
ni | 依存関係をインストール |
ni <pkg> | 依存関係を追加 |
ni -D <pkg> | 開発依存関係を追加 |
nr <script> | スクリプトを実行 |
nu | 依存関係を更新 |
nun <pkg> | 依存関係をアンインストール |
nci | クリーンインストール |
nlx <pkg> | パッケージを実行 |
TypeScript
roblox プリセットを使って @isentinel/tsconfig を使用します。strict モードに加えて、次のチェックを有効にします。
exactOptionalPropertyTypesnoUncheckedIndexedAccessnoPropertyAccessFromIndexSignaturenoImplicitOverridenoImplicitReturnsnoFallthroughCasesInSwitch
{
"extends": "@isentinel/tsconfig/roblox"
}
リント
@isentinel/eslint-config を使用します。Prettier は使用せず、ESLint でフォーマットを処理します。
// eslint.config.ts
import { isentinel } from "@isentinel/eslint-config";
export default isentinel();
nr lint --fix でエラーを修正します。
エラー処理
失敗を黙って見逃すのではなく、アサーションを優先します。速やかに、明確に失敗させます。
パターンについては、error-handling.md を参照してください。
テスト駆動開発
Red → Green → Refactor:
- 失敗するテストを書く
- テストを通すための最小限のコードを書く
- テストで保護しながらリファクタリングする
シンプルさのルール(優先順)
- すべてのテストに合格する
- 意図が明確に表現されている
- 重複がない
- 要素が最小限である
似たコードが 3 行あるほうが、時期尚早な抽象化よりも適切です。
Jest-roblox のセットアップについては、testing.md を参照してください。
リファレンス
| トピック | リファレンス |
|---|---|
| ツールの詳細 | tooling.md |
| TypeScript 設定 | typescript.md |
| リントルール | linting.md |
| テスト(TDD) | testing.md |
| エラー処理 | error-handling.md |
コメント
Markdown 対応