# 開発コマンド (Development Commands)

本ドキュメントは，SmTIAS-Capture の日常開発で使うコマンドをまとめる．
人間とエージェント（`coder`・`tester`・`refactorer`，`/auto-refactor`・`/auto-audit`）が **コマンドを推測せずに済むための唯一の参照先** とする．新しいコマンドが確定・変更されたら本ファイルに反映する．

※ 特記なき限り Flutter プロジェクトルート（`pubspec.yaml` のある階層）で実行する．Gradle 系のみ `android/` に移動して実行する（Windows は `./gradlew` を `.\gradlew.bat` に読み替える）．

## セットアップ (Setup)

```bash
flutter pub get          # 依存パッケージの取得（pubspec.yaml 変更後に実行）
flutter doctor           # 開発環境の診断
flutter devices          # 接続中のデバイス一覧
```

## 起動 (Run)

```bash
flutter run              # 接続中のデバイスでデバッグ実行
flutter run --release    # リリースモードで実行
```

## 静的解析・フォーマット (Lint & Format)

`analysis_options.yaml` は `package:flutter_lints/flutter.yaml` を継承する．

```bash
dart analyze             # 静的解析（警告・エラー 0 件を維持する）
dart format .            # フォーマット（コミット前に差分が無い状態にする）
dart fix --apply         # 自動修正（import 整列・非推奨 API 置換等）
```

## テスト (Test)

### Dart（Unit / Widget / Golden）

`test/` 配下の Dart テスト．

```bash
flutter test                       # 全 Dart テストを実行
flutter test test/services         # ディレクトリ単位で実行
flutter test --update-goldens      # golden 画像を更新（preview_orientation_golden_test.dart 等）
```

### Kotlin（ネイティブの純粋ロジック）

研究データの正確性に直結する数理ロジック（画素統計 `ImageStatistics` 等）は，Android Framework 非依存の JUnit で検証する（実機不要）．

```bash
cd android && ./gradlew test       # Kotlin 単体テスト（android/app/src/test/ 配下）
```

## ビルド (Build)

```bash
flutter build apk --debug          # デバッグ APK
flutter build apk --release        # リリース APK
```

## 実機からの画像転送 (Transfer)

定量モードの DNG は大容量のため，MTP ではなく `adb pull` を推奨する（転送不整合を避ける）．

```bash
adb devices                        # 接続確認
adb pull /sdcard/Pictures/MiniTIAS ./pulled   # 撮影データを取得
```

## コミット・PR (Git)

ブランチ・コミット・push・PR の手順は `.claude/rules/git-conventions.md` および `/commit`（`.claude/skills/commit/`）に従う．本ファイルには記載しない．
