Spec
機能仕様書: パッケージ管理機能
機能ID: SPEC-9f4b1a7c
作成日: 2025-10-17
ステータス: 完了
入力: Unityパッケージの検索、インストール、削除、リスト取得、推奨パッケージ提案、レジストリ設定(OpenUPM/NuGet)
実行フロー (main)
1. 入力からパッケージ操作要件を解析
→ 操作タイプ(検索/インストール/削除/リスト/推奨/レジストリ設定)の特定
2. パッケージマネージャー操作の実行
→ 検索: キーワードでパッケージを検索
→ インストール: パッケージIDとバージョンを指定してインストール
→ 削除: パッケージ名を指定して削除
→ リスト: インストール済みパッケージのリスト取得
→ 推奨: カテゴリごとの推奨パッケージ提案
3. レジストリ設定操作(オプション)
→ OpenUPM/NuGetレジストリの追加/削除
→ スコープの管理
→ 人気パッケージのスコープ自動追加
4. パッケージ依存関係の解決
→ 依存パッケージの自動インストール
5. 結果の返却
→ 操作結果とパッケージ情報
6. 戻り値: SUCCESS(パッケージ情報)
⚡ クイックガイドライン
- ✅ パッケージ管理の自動化とAIエージェントによるパッケージ推奨の必要性に焦点
- ❌ 内部的なUPMの実装やパッケージ解決アルゴリズムの詳細は避ける
- 👥 ゲーム開発者・プロジェクトマネージャー・AIエージェント向けに記述
ユーザーシナリオ&テスト
主要ユーザーストーリー
開発者として、プロジェクトに必要なパッケージを簡単に追加・管理するために、パッケージ操作をプログラムで実行したい。AIエージェントとして、ユーザーの要求に応じて適切なパッケージを推奨・インストールしたい。
受け入れシナリオ
- 前提 新しいパッケージを探したい、実行 キーワードで検索、結果 マッチするパッケージのリストが返される
- 前提 TextMeshProをインストールしたい、実行 パッケージID指定でインストール、結果 パッケージがインストールされる
- 前提 特定バージョンをインストールしたい、実行 バージョン指定でインストール、結果 指定バージョンがインストールされる
- 前提 不要なパッケージを削除したい、実行 パッケージ名指定で削除、結果 パッケージが削除される
- 前提 インストール済みを確認したい、実行 リスト取得、結果 全インストール済みパッケージが返される
- 前提 組み込みパッケージも含めたい、実行 includeBuiltIn=trueでリスト取得、結果 組み込みパッケージも含まれる
- 前提 レンダリング関連のパッケージを推奨してほしい、実行 カテゴリ「rendering」で推奨取得、結果 推奨パッケージリストが返される
- 前提 OpenUPMレジストリを追加したい、実行 レジストリ追加(スコープ付き)、結果 manifest.jsonに追加される
エッジケース
- パッケージが見つからない場合、どう処理するか? → エラーメッセージと類似パッケージの提案を返す
- 既にインストール済みのパッケージをインストールしようとした場合、どうなるか? → 既にインストール済みであることを通知
- 依存関係があるパッケージを削除しようとした場合、どう処理するか? → 警告を表示し、依存パッケージのリストを返す
- インターネット接続がない場合、検索はどうなるか? → エラーメッセージとキャッシュからの検索提案を返す
- 無効なバージョンを指定した場合、どう処理するか? → エラーメッセージと利用可能なバージョンリストを返す
要件
機能要件
- FR-001: ユーザーはキーワードでパッケージを検索できる必要がある
- FR-002: システムは検索結果の最大数を制限できる必要がある(デフォルト20)
- FR-003: ユーザーはパッケージIDを指定してインストールできる必要がある
- FR-004: ユーザーは特定のバージョンを指定してインストールできる必要がある
- FR-005: システムは依存パッケージを自動的に解決してインストールする必要がある
- FR-006: ユーザーはパッケージ名を指定して削除できる必要がある
- FR-007: ユーザーはインストール済みパッケージのリストを取得できる必要がある
- FR-008: システムは組み込みパッケージを含めるオプションをサポートする必要がある
- FR-009: ユーザーはパッケージの詳細情報(名前、バージョン、説明、依存関係)を取得できる必要がある
- FR-010: システムは5つのカテゴリ(essential/rendering/tools/networking/mobile)で推奨パッケージを提案する必要がある
- FR-011: ユーザーはOpenUPMレジストリを追加できる必要がある
- FR-012: ユーザーはNuGetレジストリを追加できる必要がある
- FR-013: ユーザーはレジストリを削除できる必要がある
- FR-014: ユーザーはレジストリにスコープを追加できる必要がある
- FR-015: システムは人気パッケージのスコープを自動追加できる必要がある
- FR-016: ユーザーは現在のレジストリ設定をリスト表示できる必要がある
非機能要件
- NFR-001: パッケージ検索は5秒以内に完了する必要がある
- NFR-002: パッケージインストールは30秒以内に完了する必要がある(依存関係による)
- NFR-003: パッケージ削除は10秒以内に完了する必要がある
- NFR-004: リスト取得は2秒以内に完了する必要がある
- NFR-005: レジストリ設定更新は1秒以内に完了する必要がある
主要エンティティ
- PackageInfo: パッケージID、名前、バージョン、説明、依存関係を含むパッケージ情報
- SearchResult: パッケージID、名前、最新バージョン、説明、評価を含む検索結果
- RegistryConfig: レジストリ名、URL、スコープ、認証情報を含むレジストリ設定
- RecommendedPackage: カテゴリ、パッケージID、推奨理由、優先度を含む推奨情報
- PackageOperation: 操作タイプ(install/remove)、パッケージID、バージョン、結果を含む操作情報
レビュー&受け入れチェックリスト
コンテンツ品質
要件完全性
実行ステータス
参考実装
実装ファイル
unity-cli/src/handlers/package/PackageManagerToolHandler.js
unity-cli/src/handlers/package/RegistryConfigToolHandler.js
UnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/PackageManagerHandler.cs
技術詳細
- UnityEditor.PackageManager.Clientによるパッケージ操作
- manifest.jsonの直接編集によるレジストリ設定
- PackageManager.PackageInfo、PackageManager.Requestsの使用
- OpenUPM、NuGetレジストリのスコープ管理
Plan
実装計画: パッケージ管理機能
機能ID: SPEC-9f4b1a7c | ステータス: 実装完了
概要
本機能は既に実装済みです。このplan.mdは実装完了後に作成されました。
実装状況
- ✅ Phase 0: Research完了
- ✅ Phase 1: Design完了
- ✅ Phase 2: Task planning完了
- ✅ Phase 3: Tasks実装完了
- ✅ Phase 4: 実装完了
- ✅ Phase 5: テスト完了
参考実装
実装詳細については spec.md の「参考実装」セクションを参照してください。
本ドキュメントは実装完了後に作成されました
Tasks
タスク: パッケージ管理機能
機能ID: SPEC-9f4b1a7c | ステータス: 完了
実装状況
本機能は既に実装済みです。すべてのタスクが完了しています。
完了済みタスク
参考
実装詳細については spec.md および plan.md を参照してください。
本ドキュメントは実装完了後に作成されました
TDD
TODO
Research
TODO
Data Model
TODO
Quickstart
TODO
Contracts
Artifact files under contracts/ are managed in issue comments with contract:<name> entries.
Checklists
Artifact files under checklists/ are managed in issue comments with checklist:<name> entries.
Acceptance Checklist
Spec
機能仕様書: パッケージ管理機能
機能ID:
SPEC-9f4b1a7c作成日: 2025-10-17
ステータス: 完了
入力: Unityパッケージの検索、インストール、削除、リスト取得、推奨パッケージ提案、レジストリ設定(OpenUPM/NuGet)
実行フロー (main)
⚡ クイックガイドライン
ユーザーシナリオ&テスト
主要ユーザーストーリー
開発者として、プロジェクトに必要なパッケージを簡単に追加・管理するために、パッケージ操作をプログラムで実行したい。AIエージェントとして、ユーザーの要求に応じて適切なパッケージを推奨・インストールしたい。
受け入れシナリオ
エッジケース
要件
機能要件
非機能要件
主要エンティティ
レビュー&受け入れチェックリスト
コンテンツ品質
要件完全性
実行ステータス
参考実装
実装ファイル
unity-cli/src/handlers/package/PackageManagerToolHandler.jsunity-cli/src/handlers/package/RegistryConfigToolHandler.jsUnityCliBridge/Packages/unity-cli-bridge/Editor/Handlers/PackageManagerHandler.cs技術詳細
Plan
実装計画: パッケージ管理機能
機能ID:
SPEC-9f4b1a7c| ステータス: 実装完了概要
本機能は既に実装済みです。このplan.mdは実装完了後に作成されました。
実装状況
参考実装
実装詳細については
spec.mdの「参考実装」セクションを参照してください。本ドキュメントは実装完了後に作成されました
Tasks
タスク: パッケージ管理機能
機能ID:
SPEC-9f4b1a7c| ステータス: 完了実装状況
本機能は既に実装済みです。すべてのタスクが完了しています。
完了済みタスク
参考
実装詳細については
spec.mdおよびplan.mdを参照してください。本ドキュメントは実装完了後に作成されました
TDD
TODO
Research
TODO
Data Model
TODO
Quickstart
TODO
Contracts
Artifact files under
contracts/are managed in issue comments withcontract:<name>entries.Checklists
Artifact files under
checklists/are managed in issue comments withchecklist:<name>entries.Acceptance Checklist