mcpField
B
balatro-mod-dev

balatro-mod-dev

github.com/liafonx開発347 回インストール34 週間前に更新
リポジトリ

balatro-mod-dev について

balatro-mod-devは、Steamodded、Lovely、SMODSを使ったBalatroのMOD開発とデバッグ向けスキルです。MODの初期化、コード調査、ログによるデバッグ、テスト、リリースのワークフローを提供します。

主な機能

  1. 01MODの構成を初期化・管理
  2. 02ゲームソースとSMODS APIを調査
  3. 03Lovelyパッチのパターンを検索
  4. 04ログを使ったデバッグと検証
  5. 05リリースパッケージ作成と文書更新

活用シーン

  1. 01新しいBalatro MODプロジェクトを開始
  2. 02MODのエラーや互換性の問題を調査
  3. 03MODの文書を整えてリリースを準備

インストール

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

$npx skills add https://github.com/liafonx/open-balatro --skill balatro-mod-dev

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

同梱ファイル

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

patterns/
lovely-patches.md
mobile-compat.md
smods-api.md
ui-system.md
references/
game-files.md
globals.md
lua-gotchas.md
sub-agents.md

詳細

Balatro Mod 開発

Steamodded、Lovely、SMODS を使用して Balatro の Mod を作成し、デバッグします。

エージェントをすばやく選択

調査やコード作成を行うときは、Task ツールを使って適切なサブエージェントを起動します。

調べたい内容使用するエージェントモデル検索範囲
ゲーム関数の実装game-source-researchersonnetBalatro_src/ のみ
SMODS API の使用方法/フックsmods-api-researchersonnetsmods/ のみ
他の Mod での実装方法mod-pattern-researchersonnetMods/ フォルダーのみ
Lovely のパッチ構文lovely-patch-researchersonnetlovely ファイルのみ
プロジェクトのアーキテクチャ/調査project-explorersonnet現在のプロジェクトのみ
計画に沿ったコード作成code-writersonnet現在のプロジェクトのみ
データ取得用の一時スクリプトの実行script-runnerhaiku該当なし(実行)
コードの正確性レビューcode-revieweropus現在のプロジェクトのみ
複数の情報源から調査結果を統合research-analystopus現在のプロジェクトのみ
複雑な実装の計画strategic-planneropus現在のプロジェクトのみ
ランタイムログ、ダンプ、互換性の調査debug-inspectorsonnetLovely のログ/ダンプのみ

メインエージェントが直接担当: ユーザーとのやり取り、小規模な編集(20 行未満)、結果の提示。

並行処理: 異なる情報源を調査するときは、1 つのメッセージ内で複数の Task 呼び出しを行います。 逐次処理: 2 つ目の問い合わせが 1 つ目の結果に依存するときに使います。

5 段階のワークフロー、反復検索プロトコル、委任ルールについては、references/sub-agents.md を参照してください。

リポジトリの種類を把握する

自動判定: Mod のマニフェストの author と Git のリモートユーザー名を比較します。

# Get git remote username
git_user=$(git remote get-url origin 2>/dev/null | sed -E 's|.*[:/]([^/]+)/[^/]+\.git$|\1|' | tr '[:upper:]' '[:lower:]')

# Get mod author from manifest (first author, lowercase)
mod_author=$(jq -r '.author[0] // .author // ""' *.json 2>/dev/null | head -1 | tr '[:upper:]' '[:lower:]')

# Compare: match = own, no match = fork
[[ "$git_user" == "$mod_author" ]] && echo "own" || echo "fork"
種類判定意味
new空のリポジトリ(ファイルなし)ドキュメント一式、Logger.lua、ローカライズ
own作者が Git ユーザーと一致ドキュメント一式、構成の標準化
fork作者が Git ユーザーと異なる変更は最小限にし、一時ログのみ

ファイルの規則

ファイル目的Git
AGENTS.mdMod の構成、関数、依存関係、制約、クイックリファレンス(AI エージェント向け)無視
mod.config.json同期/リリーススクリプト用のファイル一覧無視
docs/knowledge-base.md問題と学び無視

AGENTS.md の目的: エージェント間のシームレスな引き継ぎを可能にします。別のエージェントが 1 つのファイルだけで Mod の構成、関数、依存関係、制約、リポジトリの種類をすばやく把握できるようにします。

ファイル配置ルール

ルートに置ける .md ファイルは次のもののみです。

  • README.md、README_zh.md
  • CHANGELOG.md、CHANGELOG_zh.md
  • AGENTS.md
  • LICENSE.md

その他すべての .md ファイルは docs/ に配置する必要があります。

外部参照(シンボリックリンク不要)

絶対パスを使って参照コードに直接アクセスできます。セットアップは不要です。

ソースの場所(macOS)
リソースパス
ゲームソース(デスクトップ)~/Development/GitWorkspace/Balatro_src/desktop/
ゲームソース(モバイル)~/Development/GitWorkspace/Balatro_src/ios_plus/
Steamodded ソース~/Development/GitWorkspace/smods/src/
Steamodded Lovely~/Development/GitWorkspace/smods/lovely/
Lovely ドキュメント~/Development/GitWorkspace/lovely-injector/
インストール済み Mod~/Library/Application Support/Balatro/Mods/
Lovely ログ~/Library/Application Support/Balatro/Mods/lovely/log/
ソースの場所(Windows)
リソースパス
ゲームソース環境によって異なります
インストール済み Mod%APPDATA%/Balatro/Mods/
Lovely ログ%APPDATA%/Balatro/Mods/lovely/log/

パターンのリファレンス

特定のトピックについては、以下のファイルを参照してください。

トピックリファレンスファイル
Lovely.toml の構文patterns/lovely-patches.md
SMODS のフック、設定、ローカライズpatterns/smods-api.md
デスクトップとモバイルの違いpatterns/mobile-compat.md
UIBox、CardArea、描画順序patterns/ui-system.md
ゲームのソースファイル一覧と検索のヒントreferences/game-files.md
G.GAME、G.STATES、G.P_* グローバルreferences/globals.md
Lua/LuaJIT の落とし穴、よくある MOD の不具合references/lua-gotchas.md

新しい MOD のセットアップ(タイプ:new)

${CLAUDE_PLUGIN_ROOT}/templates/ フォルダー内のテンプレート:
ファイル用途
agents-md-template.md標準的な MOD 用の AGENTS.md テンプレート
agents-texture-pack-template.mdMalverk テクスチャパック用の AGENTS.md
mod-config-template.jsonスクリプト設定
gitignore-template標準の .gitignore
logger-template.lua一元化されたロギングユーティリティ
メタファイル:
ファイル用途
mod-json-template.jsonSMODS MOD マニフェスト({ModName}.json)
manifest-json-template.jsonThunderstore マニフェスト
templates/docs/ 内のユーザードキュメント:
ファイル用途
description-template.mddocs/ 用の簡潔な README
NEXUSMODS_DESCRIPTION-template.txtNexusMods 用 BBCode
knowledge-base-template.md問題と学んだこと
基本的な MOD 構成(新しいリポジトリ):
{ModName}/
├── main.lua                 # Entry point, mod registration
├── config.lua               # Config defaults (optional)
├── lovely.toml              # Lovely patches (if needed)
├── {ModName}.json           # SMODS mod manifest
├── manifest.json            # Thunderstore manifest
├── mod.config.json          # Script configuration
├── Utils/
│   └── Logger.lua           # Centralized logging
├── localization/
│   ├── en-us.lua            # English (required)
│   └── zh_CN.lua            # Chinese
├── assets/                  # Sprites, shaders
├── scripts/                 # Utility scripts
└── docs/                    # Documentation

利用可能なコマンド(合計 16 個 — プラグインに同梱、自動読み込み)

  • /balatro-mod-dev:familiar - この MOD の概要を把握します(AGENTS.md を読み、アーキテクチャを整理します)
  • /balatro-mod-dev:init - 新しい MOD を初期化します
  • /balatro-mod-dev:sync-mod - ウォッチモードで同期を開始します(開始時に一度だけ実行)
  • /balatro-mod-dev:bump-version [patch|minor|major] - バージョンを更新し、変更履歴を更新します
  • /balatro-mod-dev:release - リリースパッケージを作成します(マニフェストからバージョンを自動検出)
  • /balatro-mod-dev:fix-sprites <directory> [--preview] - スプライトの灰色の縁を修正します
  • /balatro-mod-dev:refactor [focus-area] - 冗長なコード、古くなったフォールバック、モジュール化についてコードを確認します
  • /balatro-mod-dev:debug - Lovely のログを確認して修正を検証します(リポジトリから MOD キーを自動検出)
  • /balatro-mod-dev:test [scenario] - テストシナリオを実行し、Lovely のログで MOD の動作を検証します
  • /balatro-mod-dev:draft-pr - PR メッセージの下書きを作成します(フォーク向け)
  • /balatro-mod-dev:check - プロジェクトの健全性を監査し、不足しているルールを追加します
  • /balatro-mod-dev:update-docs - すべてのドキュメントについて、正確さ、古さ、重複、冗長さを確認します
  • /balatro-mod-dev:update-plugin - 新たな知見に基づいてプラグインを更新します
  • /balatro-mod-dev:knowledge - セッションの作業を振り返り、発見したことを記録します
  • /balatro-mod-dev:compact - 今すぐコンテキストを圧縮すべきかを判断します
  • /balatro-mod-dev:help - 利用可能なコマンドとエージェントをすべて一覧表示します

サブエージェント(合計 11 個 — プラグインに同梱)

  • game-source-researcher - ゲームの関数と挿入ポイントを探します(sonnet)
  • smods-api-researcher - SMODS API のパターンと使用方法を探します(sonnet)
  • mod-pattern-researcher - 他の MOD による機能の実装方法を探します(sonnet)
  • lovely-patch-researcher - Lovely のパッチ構文と例を探します(sonnet)
  • project-explorer - コードベースを幅広く調査します(sonnet)
  • code-writer - 実装計画を実行し、コードを作成します(sonnet)
  • script-runner - 一時スクリプトを実行し、結果を返します(haiku)
  • code-reviewer - 正確性とエッジケースについてコードをレビューします(opus)
  • research-analyst - 複数の調査結果をまとめます(opus)
  • strategic-planner - 複雑な機能の実装戦略を立てます(opus)
  • debug-inspector - 実行時ログ、ダンプ、MOD の互換性を調査します(sonnet)

ロギング

新規/自分のリポジトリの場合:

${CLAUDE_PLUGIN_ROOT}/templates/logger-template.lua の Utils/Logger.lua を使用します。

local Logger = require("Utils.Logger")
local log = Logger.create("ModuleName")
log("info", "Initialized")
log("error", "Failed: " .. err)
フォーク/他者のリポジトリの場合:

一時ログのみを使用してください(PR の前に削除します)。

pcall(print, "[Debug] checkpoint: " .. tostring(var))

ユーティリティスクリプト

スクリプト目的
${CLAUDE_PLUGIN_ROOT}/scripts/sync_to_mods.template.shMod ファイルをゲームの Mods フォルダーに同期します
${CLAUDE_PLUGIN_ROOT}/scripts/create_release.template.shリリースパッケージを作成します
${CLAUDE_PLUGIN_ROOT}/scripts/fix_transparent_pixels.pyスプライトの灰色の縁を修正します

ワークフロー:デバッグ

  1. 既知の落とし穴(FFI cdata、nil のスコープ、ブール値の正規化)について、references/lua-gotchas.md を確認します
  2. プラットフォーム(デスクトップかモバイルか)を確認します
  3. ゲームのソースコードで関数を検索します
  4. 他の Mod の実装を確認します
  5. ログを追加します(自分の Mod には Logger.lua、フォークには一時的なログを使用します)
  6. Lovely のログを確認します
  7. 修正に3回以上失敗した場合: research-analyst(opus)を呼び出して、デバッグに関するすべての情報をまとめます

ワークフロー:ユーザードキュメントの更新

ユーザーが「すべてのユーザードキュメントを更新して」と言った場合:

  1. すべてのファイルを確認します:README(_zh).md、CHANGELOG(_zh).md
  2. docs/ を確認します:description.md、NEXUSMODS_DESCRIPTION.txt
  3. {ModName}.json、manifest.json のバージョンを更新します
  4. EN/ZH の一貫性を確認します

コメント