スキル一覧に戻る
s4k10503

di-configuration

by s4k10503

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

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

SKILL.md


name: di-configuration description: Configures VContainer DI settings. MUST use proactively when adding new services, use cases, repositories, or modifying dependency injection. Also triggers on "DI", "VContainer", "LifetimeScope". allowed-tools: Read, Grep, Glob, Edit

DI Configuration

Execution Mode

調査フェーズ推奨: 既存DI設定確認時はサブエージェントでコンテキスト節約。

調査フェーズ(Exploreサブエージェント)

既存登録状況の確認が必要な場合:

runSubagent(
  description: "既存DI設定確認",
  prompt: """
以下の調査を実行し、結果をサマリーで返してください:

1. Assets/Scripts/Composition/Installers/ 配下のLifetimeScopeファイル一覧を取得
2. 各LifetimeScopeの登録内容を把握:
   - Singleton登録一覧
   - Scoped登録一覧
   - インターフェースバインディング
3. 新規追加対象: [クラス名]

## 返却フォーマット
- 既存登録状況(同様のパターンがあるか)
- 推奨登録先(どのLifetimeScopeか)
- 推奨Lifetime(Singleton/Scoped)
"""
)

実装フェーズ(メイン)

調査結果に基づき、メインコンテキストでDI登録を実装。

References

DI設定の詳細は以下を参照:

既存実装の参考:Assets/Scripts/Composition/Installers/

Quick Reference

Lifetime対象登録場所
SingletonUseCase, Service, RepositoryMainSceneLifetimeScope
SingletonCameraAdapter, Coordinator各Page固有Installer
ScopedPresenter, EventHandlerPageScopeManager

Camera Adapter登録パターン

Camera AdapterはPage固有のInstallerに登録する(SharedではなくPage単位):

Adapter登録先Installer
CinemachineAvatarCameraAdapterAvatarEditPageInstaller
CinemachineTPSCameraAdapterRoomPageInstaller
CinemachineOverheadCameraAdapterRoomEditPageInstaller

Registration Patterns

// インターフェース → 実装
builder.Register<HttpApiClientService>(Lifetime.Singleton)
       .As<IRequestSenderService>();

// UseCase
builder.Register<LoginUseCase>(Lifetime.Singleton)
       .AsImplementedInterfaces();

// MonoBehaviour
builder.RegisterComponent(uiDocument);

New Dependency Checklist

  1. Domain層にインターフェース追加
  2. Infrastructure層で実装クラス作成
  3. LifetimeScopeで登録
  4. コンストラクタインジェクションで受け取り
  5. テストでモック差し替え確認

新Feature追加時のDI設定

新しいFeature(例: Features/Shop/)を追加する場合:

1. Installerの作成判断

条件アクション
Feature固有のUseCase/Serviceがある{FeatureName}Installer.cs を作成
Shared層で十分既存Installerに追加

2. 登録先

対象登録先Lifetime
Feature固有UseCase{FeatureName}InstallerSingleton
Feature固有Service{FeatureName}InstallerSingleton
PresenterPageScopeManagerScoped

3. MainSceneLifetimeScope への追加

// Composition/Installers/MainSceneLifetimeScope.cs
using var featureInstaller = new {FeatureName}Installer();
featureInstaller.Install(builder);

参照パターン

既存Feature実装を参照: Assets/Scripts/Composition/Installers/{Avatar,Room}SystemInstaller.cs

スコア

総合スコア

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

レビュー

💬

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