スキル一覧に戻る
s4k10503

master-data-helper

by s4k10503

Unityによるアバターシステムクライアント

0🍴 0📅 2026年1月24日
GitHubで見るManusで実行

SKILL.md


name: master-data-helper description: Manages MasterMemory master data. MUST use proactively when adding or modifying master tables, creating Domain models for static data, or syncing JSON files. Also triggers on "マスターデータ", "MasterMemory". allowed-tools: Read, Grep, Glob, Edit, Write

Master Data Helper

References

File Locations

種類パス
マスターCSVMasterData/CSV/(プロジェクトルート、編集用)
バイナリAssets/StreamingAssets/MasterData/master_data.bytes
テーブル定義Assets/Scripts/MasterData/Tables/
リポジトリ実装Features/Contexts/*/Infrastructure/Repositories/MasterData/(Context別)
共有リポジトリShared/Infrastructure/Repositories/MasterData/

新規テーブル追加フロー

Step 1: CSVファイル作成

MasterData/CSV/sample_master.csv
id,category,name,description
1,weapon,Sword,A basic sword
2,weapon,Shield,A wooden shield
3,armor,Helmet,Iron helmet

ヘッダー命名規則: snake_case(C#プロパティはPascalCaseに自動変換)

Step 2: テーブルクラス定義

// Assets/Scripts/MasterData/Tables/SampleMaster.cs
[MemoryTable("sample_master")]
public sealed record SampleMaster
{
    [PrimaryKey]
    public int Id { get; init; }

    [SecondaryKey(0)]
    public string Category { get; init; }

    public string Name { get; init; }

    public string Description { get; init; }
}

Step 3: バイナリ生成

Unity Editorメニュー:

Tools → MasterData → Generate Binary from CSV

生成先: Assets/StreamingAssets/MasterData/master_data.bytes

Step 4: リポジトリ実装(必要な場合)

// Features/[Feature]/Infrastructure/Repositories/MasterData/SampleMasterRepository.cs
public sealed class SampleMasterRepository : ISampleMasterRepository
{
    private readonly MemoryDatabase _database;

    public SampleMasterRepository(MemoryDatabase database)
    {
        _database = database;
    }

    public SampleMaster FindById(int id)
        => _database.SampleMasterTable.FindById(id);

    public IEnumerable<SampleMaster> FindByCategory(string category)
        => _database.SampleMasterTable.FindByCategory(category);
}

Model Template

[MemoryTable("table-name")]
public sealed record TableName
{
    [PrimaryKey]
    public int Id { get; init; }

    [SecondaryKey(0)]  // インデックス番号で複数キー対応
    public string Category { get; init; }

    public string Name { get; init; }

    // 複合キーの例
    [SecondaryKey(1, keyOrder: 0)]
    public int GroupId { get; init; }

    [SecondaryKey(1, keyOrder: 1)]
    public int SubId { get; init; }
}

Troubleshooting

よくあるエラーと対処

エラー原因対処
KeyNotFoundExceptionCSVに存在しないIDで検索CSVデータを確認、TryFindメソッド使用
DuplicateKeyException主キーが重複CSVの重複行を削除
SerializationException型不一致CSVの値とC#型を確認(int/string等)
バイナリ反映されない古いキャッシュUnity再起動、バイナリ再生成

デバッグ用コマンド

# CSVファイル一覧確認
ls MasterData/CSV/

# バイナリ更新日時確認
ls -la Assets/StreamingAssets/MasterData/

Checklist

  • CSVファイル作成(ヘッダーはsnake_case)
  • テーブルクラス作成([MemoryTable], [PrimaryKey]
  • バイナリ生成(Tools → MasterData → Generate Binary from CSV
  • 主キーが一意であることを確認
  • SecondaryKeyのインデックス番号が正しい
  • リポジトリ実装(検索メソッドが必要な場合)
  • DIコンテナへの登録

スコア

総合スコア

55/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

レビュー

💬

レビュー機能は近日公開予定です