Spec
機能仕様書: OpenUPM配布のUPMパッケージ署名対応(Unity 6.3+)
要件ID: SPEC-636fc0af
作成日: 2025-12-17
ステータス: 下書き
入力: ユーザー説明: "署名対応をしてもらいたいので、それが出来る仕組みを考えてください。仕様やTDD対応もしてください。"
ユーザーシナリオ&テスト (必須)
ユーザーストーリー1 - Unity 6.3+で署名警告を出さずに利用したい (優先度: P1)
Unity 6.3 以降で com.akiojin.unity-cli-bridge を OpenUPM から導入したとき、Package Manager の署名ステータスが「署名なし(警告)」にならず、出所と改ざん検知の観点で安心して利用したい。
この優先度の理由: ユーザー体験(警告表示/不安)に直結し、パッケージの信頼性に関する一次情報として最重要のため。
独立テスト: Unity 6.3 (6000.3) 以降の Editor で OpenUPM から該当バージョンを導入し、Package Manager の署名インジケータが警告(署名なし/無効)ではないことを確認する。
受け入れシナリオ:
- 前提 Unity 6.3+ の新規プロジェクト、実行 OpenUPM から
com.akiojin.unity-cli-bridge@X.Y.Z をインストール、結果 署名ステータスが警告(署名なし/無効)にならない
- 前提 同上、実行 パッケージを再インポート/再解決、結果 署名ステータスが安定して同一の結果になる
ユーザーストーリー2 - タグリリースで署名付きパッケージを自動公開したい (優先度: P2)
メンテナとして、vX.Y.Z タグ作成後に CI が署名付き UPM tarball(.tgz)を生成し、OpenUPM レジストリへ公開してほしい。手動での署名生成や公開を避け、リリースの一貫性を保ちたい。
この優先度の理由: P1 を継続的に満たすためのリリース基盤であり、ヒューマンエラー(署名忘れ/公開漏れ)を防ぐため。
独立テスト: CI 上で「署名 tarball 生成」工程が .attestation.p7m の存在を検証し、OpenUPM publish が成功することを確認する。
受け入れシナリオ:
- 前提
main で vX.Y.Z タグが作成済み、実行 Publish ワークフローが起動、結果 署名付き .tgz が生成され OpenUPM に公開される
- 前提 署名に必要な Secrets が未設定、実行 Publish ワークフローが起動、結果 OpenUPM publish は失敗し、原因(不足している設定)がログで明確にわかる
ユーザーストーリー3 - ローカルでも署名生成を再現したい (優先度: P3)
メンテナ/開発者として、CI 以外でも署名付き UPM tarball の生成を再現し、問題発生時に切り分け(署名生成/パッケージ内容/公開)を行いたい。
この優先度の理由: CI 依存のブラックボックス化を避け、障害時の復旧速度を上げるため。
独立テスト: 署名生成用スクリプトを --dry-run で実行し、引数検証と実行コマンド生成が正しいことをユニットテストで確認する。
受け入れシナリオ:
- 前提 Unity 6000.3 以降の Editor が利用可能、実行 署名生成スクリプトを実行、結果 署名付き
.tgz が生成される
- 前提
--dry-run 指定、実行 スクリプトを実行、結果 実行予定コマンド/出力先が表示され、ファイルは生成しない
エッジケース
package.json の version とタグ vX.Y.Z が不一致の場合、署名/公開を中止して原因を明示する
- 出力 tarball に
.attestation.p7m が含まれない場合、署名失敗として扱い公開しない
- OpenUPM 側に同一 version が既に存在する場合、公開失敗を検知し二重公開を防止する
- Secrets(OpenUPM token / Unity Cloud Org ID / Unity 認証情報)が欠落している場合、失敗理由をログに残す
要件 (必須)
機能要件
- FR-001: リリースタグ
vX.Y.Z をトリガーに、Unity UPM パッケージ(com.akiojin.unity-cli-bridge)の署名付き tarball(.tgz)を生成できる必要がある
- FR-002: 生成した tarball は
.attestation.p7m を含み、Package Manager が検証可能な署名情報を持つ必要がある
- FR-003: 署名付き tarball を OpenUPM レジストリへ公開できる必要がある
- FR-004: 署名生成/公開に必要な Secrets や前提条件が欠ける場合、失敗理由が即時に分かるエラーメッセージを出す必要がある
- FR-005: 署名生成のローカル再現手段(スクリプト)を提供し、少なくとも
--dry-run はユニットテストで検証される必要がある
成功基準 (必須)
測定可能な成果
- SC-001: Unity 6.3+ で OpenUPM から導入した
com.akiojin.unity-cli-bridge が署名なし警告(黄色)にならない
- SC-002:
vX.Y.Z リリースで OpenUPM の同バージョンが自動公開され、.attestation.p7m を含む
- SC-003: 署名生成スクリプトの引数検証/コマンド生成がユニットテストで担保され、回帰が検出できる
Plan
TODO
Tasks
TODO
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
機能仕様書: OpenUPM配布のUPMパッケージ署名対応(Unity 6.3+)
要件ID:
SPEC-636fc0af作成日: 2025-12-17
ステータス: 下書き
入力: ユーザー説明: "署名対応をしてもらいたいので、それが出来る仕組みを考えてください。仕様やTDD対応もしてください。"
ユーザーシナリオ&テスト (必須)
ユーザーストーリー1 - Unity 6.3+で署名警告を出さずに利用したい (優先度: P1)
Unity 6.3 以降で
com.akiojin.unity-cli-bridgeを OpenUPM から導入したとき、Package Manager の署名ステータスが「署名なし(警告)」にならず、出所と改ざん検知の観点で安心して利用したい。この優先度の理由: ユーザー体験(警告表示/不安)に直結し、パッケージの信頼性に関する一次情報として最重要のため。
独立テスト: Unity 6.3 (6000.3) 以降の Editor で OpenUPM から該当バージョンを導入し、Package Manager の署名インジケータが警告(署名なし/無効)ではないことを確認する。
受け入れシナリオ:
com.akiojin.unity-cli-bridge@X.Y.Zをインストール、結果 署名ステータスが警告(署名なし/無効)にならないユーザーストーリー2 - タグリリースで署名付きパッケージを自動公開したい (優先度: P2)
メンテナとして、
vX.Y.Zタグ作成後に CI が署名付き UPM tarball(.tgz)を生成し、OpenUPM レジストリへ公開してほしい。手動での署名生成や公開を避け、リリースの一貫性を保ちたい。この優先度の理由: P1 を継続的に満たすためのリリース基盤であり、ヒューマンエラー(署名忘れ/公開漏れ)を防ぐため。
独立テスト: CI 上で「署名 tarball 生成」工程が
.attestation.p7mの存在を検証し、OpenUPM publish が成功することを確認する。受け入れシナリオ:
mainでvX.Y.Zタグが作成済み、実行 Publish ワークフローが起動、結果 署名付き.tgzが生成され OpenUPM に公開されるユーザーストーリー3 - ローカルでも署名生成を再現したい (優先度: P3)
メンテナ/開発者として、CI 以外でも署名付き UPM tarball の生成を再現し、問題発生時に切り分け(署名生成/パッケージ内容/公開)を行いたい。
この優先度の理由: CI 依存のブラックボックス化を避け、障害時の復旧速度を上げるため。
独立テスト: 署名生成用スクリプトを
--dry-runで実行し、引数検証と実行コマンド生成が正しいことをユニットテストで確認する。受け入れシナリオ:
.tgzが生成される--dry-run指定、実行 スクリプトを実行、結果 実行予定コマンド/出力先が表示され、ファイルは生成しないエッジケース
package.jsonの version とタグvX.Y.Zが不一致の場合、署名/公開を中止して原因を明示する.attestation.p7mが含まれない場合、署名失敗として扱い公開しない要件 (必須)
機能要件
vX.Y.Zをトリガーに、Unity UPM パッケージ(com.akiojin.unity-cli-bridge)の署名付き tarball(.tgz)を生成できる必要がある.attestation.p7mを含み、Package Manager が検証可能な署名情報を持つ必要がある--dry-runはユニットテストで検証される必要がある成功基準 (必須)
測定可能な成果
com.akiojin.unity-cli-bridgeが署名なし警告(黄色)にならないvX.Y.Zリリースで OpenUPM の同バージョンが自動公開され、.attestation.p7mを含むPlan
TODO
Tasks
TODO
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