# MiniTIAS

千葉大学 TIAS（舌画像撮影・解析システム）のスマートフォン版．Flutter で開発し，初期は撮影・保存に特化する．

## 開発進捗

現在の進捗: Step 1〜5 完了（撮影・保存・一覧・削除の実装完了）．初期バージョンのアプリが動作する状態．
※ 撮影→保存の高速化完了（YUV→PNG 変換を Android ネイティブに移行，非圧縮 PNG + 回転統合により 15 秒 → 約 2 秒に短縮）
※ カメラ診断機能のインフラ追加完了（`DiagnosticsProvider` / `RawCaptureService.getCameraDiagnostics` / `FileService.saveDiagnosticsJson`）．UI は非表示．AQUOS sense3 のフロントカメラは **HW Level 3 + RAW (DNG) + MANUAL_SENSOR + MANUAL_POST_PROCESSING** 対応を確認．
※ **定量モード撮影機能（DNG 経路）完成**．シャッターボタンタップで `MiniTIAS_QM_YYYYMMDD_HHmmss.dng`（10-bit BGGR Bayer 3264×2448，約 16MB）＋ `MiniTIAS_QM_YYYYMMDD_HHmmss.meta.json`（撮影設定・実適用値・LSC マップ・センサ特性）を `Pictures/MiniTIAS/` に保存．Camera2 API でマニュアル制御（露光 1/60s 固定，ISO 40 固定，AE/AWB/NR/EDGE OFF，TONEMAP 線形，SHADING_MODE HIGH_QUALITY，AF OFF）．既存 PNG 経路は `captureFullResolutionPng` として温存．
※ ステップ完了時にここを更新すること．

## 必須ルール（コード実装時）

### コーディング規約（GUIDE_06 準拠）

- Effective Dart に準拠．プロジェクト固有ルールは GUIDE_06 を参照
- `dart format` + `dart analyze` を必ず実行してからコミットする
- 1 ファイル 1 クラス．命名は Provider / Service / Screen の接尾辞ルールに従う
- エラー処理: Service → Provider → Screen の順で伝播し，画面でユーザーに通知

### コミット前チェック（GUIDE_08 準拠）

1. `dart analyze` — 警告・エラー 0 件
2. `dart format .` — 差分なし
3. `flutter test` — 全テスト通過
4. ドキュメント更新（仕様変更がある場合）

### Git 運用（GUIDE_04 準拠）

- ブランチ名: `feature/`/`fix/`/`docs/`/`chore/` + 英単語 2〜4 語（kebab-case）
- コミットメッセージ: `[add]`/`[update]`/`[fix]`/`[remove]`/`[clean]` + 日本語
- コミット・push 後は `gh pr create` で PR を作成する

### エージェントチーム（GUIDE_05 準拠）

- 実装は `/implement <タスク>` で開始する（コーディング → テスト → リファクタリング → ドキュメント更新）
- Phase 1 後に人間が動作確認，Phase 2 でテスト失敗時のみ方針判断
- Phase 2 成功後は Phase 3 → Phase 4 まで自動で進む（Phase 4 で更新がある場合のみ確認）
- テスト・リファクタリングをスキップしない

### 手動確認が必要な作業（自分で完了させないこと）

以下は実装完了後にユーザーへ報告し，確認・実施を依頼すること．

- 外部サービスの設定（コンソール操作，セキュリティルール変更等）
- 実機・ブラウザでの動作確認
- ストアへのアップロード・リリース作業

## ドキュメント

設計・規約に関する情報は docs/ にある．
コードを書く前に関連するファイルを読むこと．

### 01_GUIDE（規約・ルール）

- プロジェクト立ち上げフロー: docs/01_GUIDE/GUIDE_01_プロジェクト立ち上げフロー.md
- ドキュメント作成規約: docs/01_GUIDE/GUIDE_02_ドキュメント作成ガイド.md
- ファイル命名規則: docs/01_GUIDE/GUIDE_03_ファイル命名規則.md
- Git 運用ルール: docs/01_GUIDE/GUIDE_04_Git運用ルール.md
- エージェント運用ルール: docs/01_GUIDE/GUIDE_05_エージェント運用ルール.md
- コーディング規約: docs/01_GUIDE/GUIDE_06_コーディング規約.md
- テスト方針: docs/01_GUIDE/GUIDE_07_テスト方針.md
- 実装完了フロー: docs/01_GUIDE/GUIDE_08_実装完了フロー.md

### 02_ENV（環境）

- 技術スタック: docs/02_ENV/ENV_01_技術スタック.md
- 環境構築手順: docs/02_ENV/ENV_02_環境構築手順.md
- 管理者用環境構築手順: docs/02_ENV/ENV_03_管理者用環境構築手順.md

### 03_PLAN（計画）

- 要件定義書: docs/03_PLAN/PLAN_01_要件定義書.md
- 開発ステップ: docs/03_PLAN/PLAN_02_開発ステップ.md

### 04_SPEC（仕様・設計）

- 画面機能仕様書: docs/04_SPEC/SPEC_01_画面機能仕様書.md
