# 管理者用環境構築手順 (Admin Setup)

プロジェクト立ち上げ時に **一度だけ** 実施する作業をまとめる．既に完了した項目もチェック付きで記録しておく．

## 1. GitHub リポジトリ作成（完了済み）

- [x] `rintoHasegawa/SmTIAS-LightSim` を Private で作成
- [x] `main` ブランチを作成・初期コミット
- [x] programming-template から初回同期（`/sync-template`）
- [x] `SmTIAS/` と `SmTIAS-Evaluation/` を `.gitignore` に追加（参照用ローカルコピーのため）

## 2. uv の動作確認（完了済み）

ローカル環境で uv をインストール済みであれば次へ．未導入であれば `ENV_02_環境構築手順.md` の手順 1 を実施．

## 3. プロジェクト初期化（完了済み）

### 3.1 pyproject.toml の生成

- [x] 以下を実行して `pyproject.toml` と `src/sm_tias_lightsim/` を生成
  ```powershell
  uv init --package --no-readme --no-workspace --vcs none --name sm-tias-lightsim --python 3.12 --no-description
  ```

### 3.2 LLVM の導入（Mitsuba 3 の必須ランタイム）

- [x] `winget install LLVM.LLVM` を管理者権限で実行（`C:\Program Files\LLVM\bin\LLVM-C.dll` が配置される）

### 3.3 主要依存ライブラリの追加

- [x] 実行時依存
  ```powershell
  uv add mitsuba numpy trimesh pillow matplotlib pandas
  ```
- [x] 開発時依存
  ```powershell
  uv add --dev pytest ruff
  ```

### 3.4 Python バージョン固定

- [x] `uv init` が `.python-version` を `3.12` で生成済み

### 3.5 ロックファイル

- [x] `uv add` が `uv.lock` を自動生成・更新．コミット対象に含める

### 3.6 動作確認（実装フェーズ前にここまで）

- [x] `uv run python -c "import mitsuba as mi; mi.set_variant('llvm_ad_rgb'); print(mi.__version__, mi.variant())"` でバージョン表示
- [x] 簡易レンダリング（球体 + 環境光）が `(64, 64, 3)` の輝度配列を返すことを確認

## 4. リポジトリ運用設定

### 4.1 デフォルトブランチの確認

- [x] GitHub の Settings → Branches → Default branch が `main` になっていること

### 4.2 ブランチ保護（任意）

1 人運用のため必須ではないが，誤プッシュ防止に以下を推奨：

- Settings → Branches → Add rule
- Branch name pattern: `main`
- Require a pull request before merging（チェック）
- Require approvals は無効でよい（1 人運用のため）

未設定でも開発に支障はない．

### 4.3 Dependabot（完了済み）

依存パッケージの脆弱性検出と定期更新 PR．リポジトリ設定は既定で OFF のため，`gh` CLI で有効化済み（2026-08-29）．

- [x] **Dependabot alerts**（既知脆弱性の検出．依存グラフも同時に有効化される）
- [x] **Dependabot security updates**（脆弱性を直す PR の自動作成）

```bash
# 有効化（冪等なので再実行してよい．admin 権限が必要）
gh api -X PUT repos/rintoHasegawa/SmTIAS-LightSim/vulnerability-alerts
gh api -X PUT repos/rintoHasegawa/SmTIAS-LightSim/automated-security-fixes

# 検証（前者は 204 で有効・404 で無効，後者は {"enabled":true} で有効）
gh api repos/rintoHasegawa/SmTIAS-LightSim/vulnerability-alerts
gh api repos/rintoHasegawa/SmTIAS-LightSim/automated-security-fixes
```

定期更新 PR の設定は `.github/dependabot.yml`（`uv` と `github-actions` の週次．マイナー／パッチは 1 PR にまとめる）．上記の脆弱性検出とは独立に動く．

作られた PR の処理は `/deps-update` で行う（ゲート: メジャー更新でない・競合なし・CI 緑またはローカル検証緑）．本リポジトリは CI 未導入のため，当面はローカル検証（`uv run pytest`）で判断する．

## 5. 外部サービス（任意・将来）

現時点では外部サービス連携は不要．以下は将来検討事項として残しておく：

- **CI / CD（GitHub Actions）**: pytest と ruff の自動実行．運用が安定してから導入する
- **GitHub Pages**: シミュレーション結果のレポート公開用．現状は不要

これらは管理者がコンソール操作で設定する作業のため，AI からは実施しない．

## 6. メンバー追加時の手続き

1. 新規参加者を GitHub リポジトリの Collaborator に追加（管理者の手動操作）
2. 参加者は `ENV_02_環境構築手順.md` に従って自分の環境を構築
