# 開発コマンド (Development Commands)

日常の開発で使うコマンドの一覧．人間とエージェントがコマンドを推測せずに済むよう，ここを唯一の参照先とする．コマンドが確定・変更されたら本ファイルに反映する．

※ すべてプロジェクトルートで，仮想環境（`.venv`）を有効化した状態で実行する（構築手順は [ENV_02](ENV_02_環境構築手順.md)）．グローバルの Python には pytest 等が入っていない場合がある．

## テスト (Test)

```bash
# 全テスト（testpaths = tests は pyproject.toml で設定済み）
pytest

# 特定のテストファイル・詳細出力
pytest tests/analysis/test_uniformity.py
pytest -v
```

テストの書き方は `.claude/rules/testing.md` を参照．

## Lint・フォーマット (Lint & Format)

```bash
# lint（設定は ruff.toml）
ruff check .

# 自動修正・フォーマット
ruff check . --fix
ruff format .
```

## 解析スクリプト (Analysis Scripts)

```bash
# PNG の照明均一性評価（単一画像 / ディレクトリ一括）
python scripts/run_uniformity.py --image data/smtias/whiteboard/xxx.png
python scripts/run_uniformity.py --image data/smtias/whiteboard/

# DNG の照明均一性評価
python scripts/run_uniformity_dng.py --image data/smtias/quantitative/xxx.dng

# ROI の対話的選択（config/roi_config.json に保存）
python scripts/select_roi.py --image data/smtias/whiteboard/xxx.png --key smtias.whiteboard

# 結果ビューア
streamlit run scripts/viewer.py
```

- `scripts/compare_*.py`・`plot_radial_clean.py` 等の比較・作図スクリプトは，各ファイル冒頭の docstring「使い方」を参照する
- 入力は `data/`，出力は `output/`（いずれも Git 管理外）

## Claude Code フックのテスト (Hook Tests)

`.claude/hooks/` のフックを変更した場合，またはテンプレート同期後に実行する（標準ライブラリのみで動く）．

```bash
python -m unittest discover -s .claude/hooks/tests -p "test_*.py"
```
