DiagnosticsProvider / RawCaptureService.getCameraDiagnostics / FileService.saveDiagnosticsJson を追加.UI ボタンは出さず将来再利用に備えて温存docs/06_TEST/camera_diagnostics_20260531_161734.json に保存LENS_INFO_SHADING_MAP_SIZE は hidden API でビルドエラー.STATISTICS_INFO_AVAILABLE_LENS_SHADING_MAP_MODES で代替判定 + 実キャプチャ後に CaptureResult から取得する設計に変更MiniTIAS_QM_YYYYMMDD_HHmmss.dng(10-bit BGGR Bayer 3264×2448,約 16MB)と .meta.json(settings/actual/sensorCharacteristics/lscMap)を Pictures/MiniTIAS/ に保存.既存 PNG 経路は captureFullResolutionPng として温存CONTROL_MODE=OFF + AE/AWB/AF/NR/EDGE OFF + TONEMAP 線形 + 露光 1/60s 固定 + ISO 40 固定.SHADING_MODE は HIGH_QUALITY を採用(LSC マップ実値を取りたいため.OFF だと単位マップしか返らない).フォーマットは DNG (RAW_SENSOR) を採用(8bit PNG では舌の色再現には情報量不足)SHADING_MODE = OFF 初回採用で LSC マップが全 1.0(Android 仕様)→ HIGH_QUALITY に変更で実値取得getCameraDiagnostics 再実行.gitignore はテンプレート版(ミニマル)を採用せず Flutter 用エントリを温存.CLAUDE.md も全体上書きせず進捗欄だけ二段構成に書き換え.既存進捗エントリは本ファイルへ移植.preview.jpg(1632×1224,100〜300KB)を .dng と並べて保存.一覧画面で表示・拡大できる.削除時は dng / meta.json と連動Image.file でデコードできずアプリ内で撮影結果を確認できなかった.研究者が「ちゃんと撮れたか」を端末上で判断できるようにするcapturePreviewSnapshot のライブプレビュー YUV→JPEG」に切替.Kotlin プラグインから約 200 行削除.Dart で FileService.savePreviewJpeg を追加し,takePicture(previewBytes:) でシャッター瞬間のスナップショットを保存capturePreviewSnapshot は保存中オーバーレイで既に使われていたので新規 API 追加なしdocs/05_TECH/ に両方配置.image_statistics(mean/max/p99/saturated_pixel_ratio per channel + thresholds)と hot_pixel_map(mode/count/coordinates)を追加.STATISTICS_HOT_PIXEL_MAP_MODE = true を CaptureRequest に追加.露光時間 1/60s → 1/120s に確定buildMetadataMap のシグネチャ拡張(既定値 null で後方互換).Bayer 2×2 BGGR 走査の中で 1 パスで mean/max/ヒストグラム/飽和率/低露光率を同時計算.p99 はチャネルごとに 256bin ヒストグラム → 累積で 99% 探索.Hot pixel map は STATISTICS_HOT_PIXEL_MAP_MODE が Android 仕様で Boolean 型(*_ON 定数は存在しない).画素統計失敗時は image_statistics: null で続行(撮影成功は保証)reference_measurement/quantitative/ に adb pull 転送 → 1 ショット シミュ vs 実機の突合.残差が縮めばフェーズ B(連射 V1)へlocal_reference/(gitignore)へ退避./gradlew test).GUIDE_07 に方針追記smtias_capture・Android com.example.smtias_capture・全プラットフォーム製品名・ドキュメント表記)MiniTIAS_QM_・保存先 Pictures/MiniTIAS/)は突合互換のため意図的に維持CameraProvider の依存サービスをコンストラクタ注入可能にし,撮影フロー(takePicture)の保存順序・フラグ遷移・エラー伝播を特性化テストで固定.その安全網の下で肥大化した撮影メソッドをオーケストレーションと責務別 private メソッドに分割takePicture が肥大して可読性が低い一方,依存が直接 new されておりテスト不能だった.「テストがない」のではなく「DI していないからテストが書けない」が根因availableCameras)に到達せず「初期化済み」状態を作るため,@visibleForTesting のテスト専用フックを 1 つだけ production に追加(本番からは未呼び出し・本番挙動は不変)takePicture 末尾の initialize()(プレビュー再開)が,撮影成功/失敗で設定した errorMessage を上書きする.権限が拒否された状態で再初期化に失敗すると,撮影結果のエラー文言が「カメラの権限が必要です」に化ける.実機では権限許可で再初期化が正常進行するため通常は顕在化しないが,研究データ保存の成否表示に関わるため,将来「エラー文言を確定後に再初期化する/再初期化失敗で撮影成否メッセージを潰さない」設計を検討する価値あり