Vol. 01
2026.06.11
PREVIEWING CONTENT

Umaru 仕様書⇔実装 乖離調査レポート


title: Umaru 仕様書⇔実装 乖離調査レポート version: 1.0 date: 2026-06-10 project: Umaru

Umaru 仕様書⇔実装 乖離調査レポート

docs 配下の全仕様書群(規範系 docs/spec/、機能別 docs/ 直下、完了棚 docs/end/)と、実装コード(src/ / backend/ / src-tauri/、main ブランチ 9ec07b1 = v1.3.0)を突合し、**「仕様にあるが未実装」「実装にあるが仕様に無い」「Philosophy / Guideline からの逸脱」**を洗い出した結果である。

0. 調査範囲と判定区分

0.1 突合に使ったドキュメント

区分ドキュメント扱い
規範(正典)spec/Philosophy.md、PHILOSOPHY_ALIGNMENT_REVIEW.md、CODING_GUIDELINES.md、REQUIREMENTS.md、ARCHITECTURE.md、API_SPEC.md、DESIGN.md、UX_FLOW.md、TDD_WORKFLOW.md、ONBOARDING_SETUP.md、IMPLEMENTATION_BASE.md、TODO.md「あるべき姿」の基準。実装との差を厳密に判定
機能仕様spec_umaru_v0.2_features.md(v1.1 機能追加)、spec_umaru_pose_editor_v1.md、spec_controlnet_nf4_vram8gb_v1.md機能単位の仕様。スコープ宣言(In/Out)を尊重
完了棚docs/end/ の SPEC_・STATE_・SPEC_REVIEW_(差し戻し/未達)・TECH_DEBT_「実装済みとして退役した仕様」。未達指摘の解消確認に使用
統合版Umaru仕様書_完全版.md(v3)、Umaru_機能説明.md、QAシート参考(正典比較の基準には使わない)
実装版Umaru全機能仕様書_v1.3.0_実装版.md(2026-06-10 作成)実装側の写し。今回の調査で誤記 3 箇所を訂正済み(§6)

0.2 判定区分

マーク意味
[未実装]仕様書に明記されているが、コードに存在しない
[導線欠落]バックエンド等に実装はあるが、UI から到達できない
[仕様外実装]実装にあるが、正典仕様書に記載がない(いわゆるバイブコーディング由来の先行実装。docs/end の個別仕様にだけ存在するものを含む)
[実バグ]仕様と実装の食い違いが実際の不具合として発現するもの
[逸脱]Philosophy / CODING_GUIDELINES の原則に反する実装
[Doc未更新]実装が正で、仕様書側の更新漏れ
[解消済み]過去の未達指摘が現在は解消されていることを確認

0.3 総括

区分件数深刻度の高いもの
未実装 / 導線欠落9 件お祈り「最終候補生成」UI 欠落、成長アルバムのナビ導線消失
実バグ1 件ControlNet ライセンス URL が許可リスト外で開けない
逸脱(Guideline / Philosophy)4 件外部 DL の sha256 検証なし(ControlNet モデル / 軽量 VAE)
仕様外実装(正典未反映)約 40 API + 主要 4 機能API_SPEC への ControlNet DL / お気に入りの種 / 成長アルバム等の未反映
Doc 未更新広範(API_SPEC / ARCHITECTURE / DESIGN / UX_FLOW / TODO)CODING_GUIDELINES §9 のドキュメント運用ルール自体が破られている状態
過去未達の解消確認6 件すべて解消Zip Slip 対策、manifest 固定ゲート、CUDA 必須化ほか

全体所見: 実装品質そのもの(セキュリティ境界・テスト・エラー処理・同意制)は規範に概ね忠実で、思想(Philosophy)からの本質的逸脱は見られない。最大の問題は**「実装が仕様書より 2〜3 周先に進んでおり、正典ドキュメント群が 2026-05-25〜27 で止まっている」**ことに集約される。docs/end の個別仕様は充実しているため、機能ごとの根拠は追えるが、正典(API_SPEC / REQUIREMENTS / DESIGN / UX_FLOW)だけを読んだ人は現在のアプリ像を把握できない。


1. カテゴリ A: 仕様書にあるが未実装・導線欠落

A-1. VRAM モード設定 [未実装]

項目内容
仕様の出典REQUIREMENTS 4.3「VRAMモード: auto / 4gb / 8gb / 12gb_plus」、API_SPEC §3(GET /api/settings レスポンス例に "vram_mode": "auto")、DESIGN 5.11「VRAMモード、NSFW警告、EXIF削除を明確にする」
実装の現状AppSettings(backend/models.py・src/types.ts)に vram_mode キー自体が存在しない。設定画面にも項目なし
補足ControlNet 経路は VRAM 量の自動検出(<6GB: sequential offload / NF4+≥6GB: フル GPU / <12GB: model offload / ≥12GB: フル GPU)で代替されており、ユーザーが手動で上書きする手段が無い。通常生成経路にはオフロード自体が無い
推奨自動判定で足りるなら REQUIREMENTS / API_SPEC / DESIGN から項目を削除し「自動判定」と明記。手動上書きが必要なら設定として実装

A-2. お祈りラボの比較テーマ「seed」「steps」 [未実装]

項目内容
仕様の出典docs/end/SPEC_SDWebUI知見_お守りお祈りラボ成長アルバム.md §8.2 — PrayerCompareTheme = none / cfg / seed / sampler / steps / prompt_tag の 6 種。UX_FLOW §8「指示への忠実度、雰囲気の種、描き方、描き込み量、タグ差分などを割り当てる」
実装の現状backend/models.py の PrayerCompareThemenone / cfg / sampler / prompt_tag4 種のみ_build_compare_overrides にも seed / steps 分岐なし。フロント(src/types.ts)も同じ 4 種
推奨「雰囲気の種を比べる」「描き込み量を比べる」を追加実装するか、仕様側を 4 テーマに縮小して確定する

A-3. お祈り「最終候補生成(final)」の UI 導線 [導線欠落]

項目内容
仕様の出典API_SPEC §8 POST /api/prayer-sessions/{id}/final(最終候補生成)、UX_FLOW §8 のフロー「グループ勝者を確定 → 最終候補生成最終勝者を選択 → この子らしさへ保存」
実装の現状バックエンドの generate_final エンドポイントは存在するが、PrayerView の useMutation は create / generate / rank / finalize-groups / save-winners / regenerate / fillMissing のみで、/final を呼ぶ UI が無い。実フローは「決勝へ(finalize)→ 保存(save-winners)」に短縮されている
推奨現行 UI フローを正とするなら API_SPEC / UX_FLOW から「最終候補生成」段階を削除し、/final エンドポイントを退役(または温存理由を明記)。元仕様の 2 段決勝を復活させるなら UI を追加

A-4. 成長アルバムのナビ導線 [導線欠落]+[記録矛盾]

項目内容
仕様の出典TODO.md P1(完了 [x] 印付き)の実装記録に「ナビ『成長アルバム』タブ追加」と明記。UX_FLOW §8.5 に専用フロー図あり
実装の現状growth タブは AppContent にレンダリング実装があり、生成中許可タブ集合にも含まれるが、navigation.ts の baseNavItems に無く、HomeView のカードにも無い。つまり現 UI からは到達不能(experiment / release も同様だが、これらは元々ナビ掲載の確約が無い)
考察TODO の完了記録と現状が矛盾しており、ドロワー化(HF-02)等の後続改修でナビ定義から脱落した可能性が高い。機能一式(API・ビュー・テスト)は生きているのに入口だけ消えている
推奨baseNavItems への再追加(1 行)か、意図的に隠したのであれば TODO.md / UX_FLOW にその決定を記録

A-5. オンボーディング仕様の未達分 [未実装]

ONBOARDING_SETUP.md(および PHILOSOPHY_ALIGNMENT_REVIEW.md の推奨対応)のうち、未対応のもの。

仕様項目出典実装の現状
画面名を「制作環境の準備」に寄せるONBOARDING 4.1、PHILOSOPHY_REVIEW 4.2SetupView の見出しは「セットアップと診断」のまま。タブ名は「初回セットアップ/未セットアップ/ステータス」遷移
ホームの初回チェックリスト(「最初にできること」)ONBOARDING 4.2、PHILOSOPHY_REVIEW 4.3HomeView は入口カード+統計のみ。チェックリスト無し
診断結果のコピー(個人パス伏せ込み)ONBOARDING 8.3 / 10.3「診断結果をコピー」に相当する機能はリポジトリ内に存在しない(生成エラーの報告用コピーは GenerationOverlay にあるが、セットアップ診断のコピーは無い)
起動失敗時の最低保証(ログを開く / 診断コピー / 環境再構築 / 説明を見る)ONBOARDING 3.2StartupFailureScreen は「もう一度確認する」ボタンのみ
Remember の 15 枚条件を制作文脈で説明PHILOSOPHY_REVIEW 4.4「学習には15枚以上必要です。あと N 枚追加してください」のみで、「表情や角度が少しずつ違う画像が必要」という理由説明は無い
準備カード形式(基本環境/画像生成/キャラクター制作/タグ辞書/学習機能/保存場所)ONBOARDING 4.3SetupView は診断リスト+「画像生成を始めるまでの手順」形式。カテゴリ構造は近いがカード化・「あとで」ボタンは無い

※ ONBOARDING §9.1〜9.4(sd-scripts 導線 / accelerate 優先順 / CUDA 必須化 / VITE_UMARU_ALLOW_CPU_TRAINING)はすべて実装済みであることを確認した(カテゴリ E 参照)。

A-6. model_adapters テーブル [未実装(デッドスキーマ)]

  • ARCHITECTURE 8.10 に「モデルアダプタ定義」として記載され、database.py に CREATE TABLE も存在するが、INSERT / SELECT するコードがバックエンドのどこにも無い
  • モデル一覧は毎回 model_dir のファイルスキャン(detect_models)で賄われており、テーブルは初期構想の残骸。
  • 推奨: 将来のモデル登録 manifest(ONBOARDING §11 v2.0 スコープ)まで温存するなら ARCHITECTURE にその旨を注記。使わないなら削除マイグレーション。

A-7. 成長アルバムの「候補を生成する」ループ [仕様と実装の解釈差]

  • UX_FLOW 8.5 のフロー図は「候補を生成する → 選ぶ → 次の特徴を足す」と成長アルバム内に生成ステップを描いている。
  • 実装の GrowthAlbumView は生成機能を持たず、既存アルバムから採用画像を選ぶだけ(生成は「つくる」画面に依存し、prompt_append を手動で反映する導線も無い)。
  • 元仕様(SPEC_SDWebUI知見 §9)は「ユーザーが各段階で良い候補を選ぶ」が主眼なので思想的には整合するが、「段階のプロンプトで生成画面へ飛ぶ」導線が無いため、フロー図どおりの体験にはなっていない。

A-8. TODO.md の未完了項目(抜粋・現在も未対応のもの)

P0 はリリース運用系(実機確認・記録)なので除外し、コード実装に関わる P1/P2 の未対応分のみ:

TODO状態
API 契約を OpenAPI / 型生成で固定未対応(REQUIREMENTS 7 / ARCHITECTURE 12 でも既知課題として明記)
エラー code 一覧の固定化未対応(error_classify.py に分類はあるが一覧文書なし)
React Query の query key 定数化未対応(文字列直書きのまま)
UI 文言の辞書化(creator/expert 差分含む)部分対応(terminology.ts は 7 語のみ。大半の文言は各コンポーネント直書き)
migration のバージョンファイル化未対応(database.py 内に直列実装。ただし冪等で後方互換は維持)
API client のリソース別分割未対応(api.ts 単一)
album 削除時の画像ファイルと記憶画像コピーの整合性テスト専用テストは未確認
学習候補の最低枚数・警告文言の確定実装は 15 枚ハードコード(仕様確定の記録なし)

A-9. 仕様内で「未実装」と正しく宣言されているもの(乖離ではない)

以下は仕様側が明示的にスコープ外/将来としており、未実装でも整合:

  • prompt resolver の本格化(自然文変換・LLM 補完)— REQUIREMENTS 6 で初期スコープ外
  • FLUX / 動画生成 / クラウド同期 / NSFW 自動検閲 — 同上
  • ポーズ v1.1+(関節回転制約・60fps 計測・顔/手指キーポイント)— pose 仕様の Out of Scope / 残り宣言どおり
  • ControlNet B 案(低解像→高解像 2 パス)— controlnet_nf4 仕様 §0 で非スコープ宣言どおり
  • VRAM キューの LLM 停止がスタブ — REQUIREMENTS 4.7 が「将来のLLM処理」と明記しており、現状は将来枠の placeholder として整合

2. カテゴリ B: 実装にあるが正典仕様書に無い(仕様外実装)

ここに挙げるものの多くは docs/end/ の個別 SPEC には根拠があるため、「無断実装」ではなく「正典への反映漏れ」である。ただし CODING_GUIDELINES §9 は「API 変更時は API_SPEC.md を更新する」「画面導線変更時は UX_FLOW.md と DESIGN.md を更新する」と定めており、運用ルール上は逸脱状態にある。

B-1. API_SPEC.md に存在しない実装済みエンドポイント(約 40 本)

機能群未記載エンドポイント根拠仕様の所在
ControlNet モデル DLGET /api/pose/controlnet/models、POST /api/pose/controlnet/download、GET /api/pose/controlnet/download/statuspose 仕様の「残: DL導線」を実装した後発分。個別仕様も無い(完全な仕様外実装)
アルバム再生成系GET /api/album/{id}/restore、POST /api/album/{id}/open-folder、GET /api/album/{id}/downloaddocs/end/SPEC_SDWebUI知見_アルバム再生成_seedタグ表示.md
キャラタグ一括変更POST /api/album/reassign-characterv1.3.0 アプデ内容.txt のみ(docs/spec・docs/end に仕様なし)
お気に入りの種GET/POST /api/favorite-seeds、DELETE /api/favorite-seeds/{id}docs/end/SPEC_SDWebUI知見(§7)
成長アルバム/api/growth-albums 系 6 本docs/end/SPEC_SDWebUI知見(§9〜10)
お祈りラボPATCH /api/prayer-sessions/{id}/compare-themedocs/end/SPEC_SDWebUI知見(§8)
プロンプト支援GET /api/negative-charms、POST /api/prompt/cleanup、POST /api/prompt/estimate-volumedocs/end/SPEC_SDWebUI知見(§4〜6)
辞書拡張GET /api/dictionaries/entries、POST /api/dictionaries/import-custom、POST /api/tags/color-to-tagdocs/end/SPEC_辞書タグ正規化_全プロンプト候補.md、spec_umaru_v0.2_features.md
キャラクター拡張GET /api/characters/summaries、PUT/DELETE /api/characters/{id}/coverdocs/end/SPEC_実機確認追加改善(HF-04/HF-15 系)
法的通知GET /api/legal-noticesdocs/end/SPEC_ライセンス方針と生成中UX.md

B-2. API_SPEC.md と実装でレスポンス / 形式が食い違うもの [Doc未更新]

箇所API_SPEC の記載実装
POST /api/generate のレスポンスジョブ dict {id, status, progress, message}{"message": "生成を受け付けました", "job_id": "<uuid>"}(フロントも job_id 形式を期待)
GET /api/settingsvram_mode を含む含まない(A-1)。代わりに controlnet_openpose_path があるが、これは API_SPEC §5 の追記には載っている
GET /api/album「limit: 1-80。既定 40」limit=0 で全件取得が可能(AppContent が利用)。ページング自体は実装済み
ジョブ終端状態DESIGN 4.3「completed / error / cancelled」+ failed / partial / partial_failed(お祈り組)。job_store と src/app/types.ts は 6 種で同期済み

B-3. 正典に存在しない主要機能ブロック

機能実装規模正典への記載状況
ポーズエディタ全体src/features/pose 一式(21 関節リグ・11 プリセット・OpenPose 書き出し・i2i/ControlNet 投入)REQUIREMENTS / DESIGN(タブ一覧)/ UX_FLOW に一切登場しない。独立仕様 spec_umaru_pose_editor_v1.md のみ
ControlNet 生成経路backend/services/controlnet_service.py、PoseControlNetRequestREQUIREMENTS 4.6 の生成入力一覧に無し。API_SPEC には後追記あり(DL 系を除く)
軽量 VAE(TAESDXL / TAESD)enable_taesdxl 既定 ON、HF から自動取得、フォールバック付きどの仕様書にも存在しない(ControlNet NF4 仕様に間接登場するのみ)。既定 ON の外部 DL なので本来は仕様化必須(C-2 参照)
複数 LoRA(lora_list、最大 5 件・個別強度)GenerateRequest.lora_list、adapter 方式適用TODO P3 に「LoRA複数指定と個別重みを扱う」が未チェックのまま存在(実装済みなのに残タスク表示)。API_SPEC は単一 loras/lora_weight のみ記載
パイプラインキャッシュ / 通常⇔ControlNet の相互解放generation_service / controlnet_serviceARCHITECTURE 9.3 に「pipeline cache」の語のみ。動作仕様は v1.3 アプデ内容にだけ記述
つくる⇔メインのキャラ選択連動 / アルバム一括キャラ変更v1.3.0正典未反映(アプデ内容 txt のみ)
Tips(待ち時間の祈璃コメント)src/tips.tsIA-01 に仕様あり(end 棚)。DESIGN へは未反映

B-4. ARCHITECTURE.md の構成記述と現実装の差 [Doc未更新]

項目ARCHITECTURE の記載現実装
バックエンド構成「backend main.py を router 分割する(今後)」分割済み(routers/ 8 本+services/ 6 本。docs/PHASE3/4 リファクタ記録あり)
フロント構成「現状は src/App.tsx に集中。今後 feature 分割」分割済み(features/ 14 ディレクトリ)。ただし計画名 features/remembering→実際は remembersrc/shared/*→実際は src/componentssrc/app
DB スキーマmigration 1〜2 相当までfavorite_seeds・growth_album_*・compare_theme/compare_config・variation_label/generation_overrides・prayer_candidates.seed・characters.builder_state(migration 3〜7)が未記載
Tauri コマンド10 個実装は 13 個(show_main_window / select_file / save_bytes が未記載)
レイアウトDESIGN 3「左側に固定サイドバー」HF-02 でドロワー化(ハンバーガー開閉)。タブ一覧にもポーズ無し
配布 resourcesbackend / assets / resources+ LICENSES / EULA.txt / NOTICE.txt も同梱

B-5. ナビに無いタブ(experiment / release)

  • DESIGN 2 の情報設計では「実験室」「配布準備」が主ナビゲーションのタブとして定義されているが、実装の baseNavItems には無く、レンダリング分岐だけが存在する(到達手段なし)。
  • A-4 の growth と合わせ、「実装上タブとして存在するがナビから到達できない」3 タブとして同根の問題。

3. カテゴリ C: Philosophy / CODING_GUIDELINES からの逸脱

C-1. ControlNet ライセンス URL が外部 URL 許可リスト外 [実バグ]+[逸脱]

項目内容
事象SettingsView(ControlNet モデル DL カード)はモデルの license_urlhttps://huggingface.co/xinsir/controlnet-openpose-sdxl-1.0)を openExternalUrl で開く。しかし src-tauri/lib.rs の許可リストは https://github.com/DraconicDragon/https://github.com/DominikDoom/2 プレフィックスのみ。Tauri 実行時はライセンスリンクのクリックが必ずエラーになる
抵触する規範ARCHITECTURE 7「外部URLオープンはGitHub上の許可済み辞書ソースに限定する」— 方針自体は守られているが、ControlNet DL 機能の追加時に許可リスト拡張と仕様更新を怠った。ライセンス確認導線が死んでいるのは「ライセンス注意を目立つ場所で示す」(DESIGN 1)にも反する
推奨lib.rs の許可リストへ https://huggingface.co/xinsir/(または registry の license_url 厳密一致)を追加し、ARCHITECTURE 7 を「許可済み辞書ソースおよびモデル配布元」へ改訂。TODO のテスト項目「Tauri command の許可URLテスト」の実装も推奨

C-2. 外部ダウンロードの sha256 検証が部分的 [逸脱]

対象sha256 検証同意 UI評価
sd-scripts ZIP(学習ランタイム)あり(manifest 固定+配布ゲート連動)あり✓ 規範どおり
外部辞書 CSV(ユーザー自身が配置)あり(consent_required)
ControlNet モデル(約2.5GB)なし(HF resolve URL を httpx で直 DL)あり(ライセンス同意チェック)✕ CODING_GUIDELINES 6「外部ダウンロードはsha256検証を行う」に違反
軽量 VAE(TAESDXL / TAESD)なし(diffusers 経由で HF から自動取得)なし(enable_taesdxl 既定 ON。ユーザーへの説明・同意なし)✕ 同上+「外部依存はユーザー同意と分離」(Philosophy: Local First / PHILOSOPHY_REVIEW 1)との緊張。LPW(compel)はパッケージ同梱なので問題なし
pip インストール(torch ほか)pip 既定の hash 機構なし(requirements にピンなし)あり(ボタン操作+容量説明)△ 慣行上許容範囲だが、requirements のバージョン固定は弱い

軽量 VAE は「初回 VAE 復号が遅い問題」への合理的な既定だが、ローカル完結を明示する Philosophy のアプリが、ユーザーへの予告なしに HF へ接続する点は説明責任の穴になっている。最低限、設定/セットアップ画面での説明文と、レジストリ(リポジトリ ID 固定)の明文仕様化を推奨。

C-3. ドキュメント運用ルール自体の不履行 [逸脱(運用)]

CODING_GUIDELINES §9 の定め(仕様変更時は docs/spec を更新 / API 変更時は API_SPEC 更新 / 導線変更時は UX_FLOW・DESIGN 更新 / 実装済み・未実装・要確認を混ぜない)に対し:

  • API_SPEC は 2026-05-25 で停止し、以後の約 40 エンドポイントが未反映(B-1)。
  • TODO.md は実装済み項目(複数 LoRA、画像詳細画面、アルバムページング、お祈り seed 可視化、キャラ Prompt 雛形、インストーラ日本語化、App.tsx 分割、main.py/services.py 分割…)が未チェックのまま残り、**「実装済みと未実装が混在」**という、ガイドラインが明示的に禁じた状態になっている。
  • 正典の更新が止まった結果、現状を反映した文書が docs/end の個別仕様・アプデ内容 txt・今回の実装版仕様書に分散している。

C-4. 巨大ファイル化 [逸脱(軽度・ガイドライン精神)]

  • backend/routers/workflows.py が 133KB / 約 2,600 行(setup・characters・generate・album・prayer・growth・remember・exports が同居)。TODO P2 の「main.py を機能別 router に分割」は形式上達成したが、分割粒度は当初計画(setup / characters / generation / album / memory / prayer / remembering / release …)に達しておらず、実質「main.py が workflows.py に改名された」状態に近い。
  • services/generation_service.py 64KB、GenerateView.tsx 33KB、PrayerView.tsx 30KB も同傾向(フロントは hooks 切り出しで緩和済み)。
  • 明文ルール違反ではないが、CODING_GUIDELINES 3.4 の分割思想とは不整合。docs/TECH_DEBT_TDD_ROADMAP_2026-06-04.md にも残債として記録されている。

C-5. 軽微な命名・構成の乖離

規範実装評価
features/remembering(GUIDELINES 3.4)features/remember機能同一。命名のみ
src/shared/components・shared/api・shared/typessrc/components・src/api.ts・src/types.ts役割同一。階層のみ
WindowTitlebar に「Umaru」表示IMPLEMENTATION_BASE が「アプリタイトルに残る Umaru は対象外」と許容済み。サイドバー(ドロワー)からは brand 削除済みで思想対応済み

C-6. Philosophy 整合の総評(逸脱なしの確認)

以下は調査の結果、思想どおり実装されていることを確認した:

  • ユーザー選択主体(お祈りのランク付け・成長アルバムの段階選択に LLM 自動評価なし — SPEC の非目標宣言どおり)
  • 失敗を次の行動に変える設計(エラー 4 分類+カテゴリ別アクションボタン、診断の cause/next/beginner 3 段説明)
  • Local First(生成・学習・DB すべてローカル。外部送信なし。例外は C-2 の HF 取得のみ)
  • 外部資産の分離と同意(モデル/LoRA/辞書/sd-scripts 非同梱、同意ゲート、出典・ライセンス・同意日時の DB 記録)
  • 日本語 UI 文字列の維持、エラーの日本語 message + 機械可読 code
  • セキュリティ境界(token 認証・パストラバーサル拒否・Zip Slip 対策・shell=True 不使用・127.0.0.1 bind・CSP/CORS 限定)と、その契約テストによる固定(TDD_WORKFLOW どおり。CI のカバレッジゲート backend 29% / フロント純ロジック 95/90 も実在を確認)

4. カテゴリ D: 過去の差し戻し・未達指摘の解消状況 [解消済み]

docs/end/SPEC_REVIEW_配布前実装ゲート_差し戻し.md の未達 6 件、および関連レビューの現状:

未達指摘現状
未達1: release-gate が本家環境で即死scripts/release_check.py は整備済み(npm run release-gate)。実行成否は運用確認事項
未達2: 署名 / Defender / SmartScreen が無確認で ready になるrelease.py は RELEASE_CHECK_*.md の存在のみで「人手確認が必要」の pending を返す設計に修正済み ✓
未達3: pending 残りでも成功扱いrelease/status は blocking(failed+pending)件数で ready 判定 ✓
未達4: sd-scripts ZIP に Zip Slip 対策なしtraining_runtime._extract が絶対パス・ドライブレター・..・symlink を拒否 ✓(docstring に明記)
未達5: sd-scripts が main 取得で commit/sha256 未固定manifest 固定+未固定なら配布ゲート pending。開発時のみ accept_unpinned ✓
未達6: CUDA 判定タイミングで GPU 環境が CPU requirements に寄るtraining-runtime/install が payload で profile を受ける形に修正済み ✓
IA-04/05/06(sd-scripts 一式検証 / accelerate 解決順 / CUDA 必須化)すべて実装確認 ✓(VITE_UMARU_ALLOW_CPU_TRAINING、エラーコード training_cuda_required / torch_cuda_missing / accelerate_missing を含む)
TECH_DEBT_Pythonサイドカー配布(PyInstaller 化)方針転換で解消: PyInstaller ではなく embedded Python 同梱方式(SPEC_PythonEmbedded同梱.md)を採用。負債文書は旧方針のまま end 棚に残置(読み手への注意のみ)

5. 推奨アクション(優先度順)

優先アクション対応する指摘
1lib.rs の外部 URL 許可リストに ControlNet モデルのライセンス URL(huggingface.co 配下)を追加し、ARCHITECTURE 7 を改訂C-1(実バグ)
2growth タブを baseNavItems へ復帰(または隠した決定を記録)。experiment / release の扱いも確定A-4、B-5
3ControlNet モデル DL に sha256(または少なくともサイズ・ETag)検証を追加。軽量 VAE の自動取得を設定画面で明示(必要ならトグルの説明文に「Hugging Face から取得」と記載)C-2
4API_SPEC.md を実装に同期(B-1 の約 40 本、generate レスポンス形式、ControlNet DL 系は新規仕様起こし)。あわせて OpenAPI 自動生成の導入(TODO P1)を検討B-1、B-2、C-3
5TODO.md の棚卸し(実装済み項目のチェック付け替え)。REQUIREMENTS / DESIGN / UX_FLOW / ARCHITECTURE の 5/25 版を v1.3 実態へ改訂(ポーズ・ControlNet・複数 LoRA・軽量 VAE・ドロワー UI・migration 3〜7 を反映)C-3、B-3、B-4
6vram_mode・お祈りラボ seed/steps テーマ・/final エンドポイントの 3 件について「実装する/仕様から落とす」を決定A-1、A-2、A-3
7ONBOARDING 残件(診断結果コピー・起動失敗画面の導線強化・15 枚条件の理由説明・初回チェックリスト)の実装計画化A-5
8model_adapters テーブルの去就決定A-6
9workflows.py の機能別 router 分割(TECH_DEBT_TDD_ROADMAP の残債)C-4

6. 付記: 実装版仕様書(2026-06-10 作成分)の自己訂正

今回の突合過程で、先に作成した docs/Umaru全機能仕様書_v1.3.0_実装版.md 側の誤りも 3 箇所発見し、同ファイルを直接修正済み:

  1. WebSocket パス /ws/setup-progress → 正しくは /ws/setup/progress(2 箇所)
  2. POST /api/setup/install-python の説明「embedded python の展開」→ 正しくは存在確認のみ(展開は Tauri 側 setup_python_environment の責務)

調査日: 2026-06-10 / 対象: main ブランチ 9ec07b1(v1.3.0)。実装確認はコード精読(routers / services / features / lib.rs / navigation / 設定モデル)と grep 突合による。実機での動作再現(C-1 のクリックエラー等)は未実施のため、挙動断定が必要なものは実機確認を推奨する。