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

プロジェクト作成時に**一度だけ**行う初期設定をまとめる．各開発者が繰り返し行う構築手順は [ENV_02_環境構築手順](ENV_02_環境構築手順.md) を参照する．

本プロジェクトは個人開発（solo）のデスクトップアプリのため，管理者作業は最小限である．チーム開発へ移行する場合の管理者初期設定は `.claude/rules/`／GUIDE_01 の team 運用に従って別途整備する．

## リポジトリ (Repository)

- ホスティング: GitHub の **Private** リポジトリ．具体的なオーナー・リポジトリ名・URL は管理者が別途把握する（本ドキュメントには記載しない）．
- 既定ブランチ: `main`．`main` への直接 push は行わず，作業ブランチ → PR 経由でマージする（`.claude/rules/git-conventions.md`）．
- 新しい開発マシンでは `git clone` 後に [ENV_02_環境構築手順](ENV_02_環境構築手順.md) に従う．

## GitHub リポジトリのセキュリティ設定 (Repository Security Settings)

Dependabot alerts（既知脆弱性の検出）と Dependabot security updates（脆弱性を直す PR の自動作成）はリポジトリごとに既定で OFF のため，リポジトリ作成後に有効化する．**2026-08-28 に有効化済み**（冪等なので再実行してよい）．

```bash
gh api -X PUT repos/{owner}/{repo}/vulnerability-alerts        # Dependabot alerts（依存グラフも同時に有効化される）
gh api -X PUT repos/{owner}/{repo}/automated-security-fixes    # Dependabot security updates
```

検証は次のとおり（`vulnerability-alerts` は 204 で有効・404 で無効，`automated-security-fixes` は `{"enabled":true}` で有効）．

```bash
gh api repos/{owner}/{repo}/vulnerability-alerts -i
gh api repos/{owner}/{repo}/automated-security-fixes
```

- 実行にはリポジトリの admin 権限が必要（無いと 403）．手順の詳細・トラブル対応は `.claude/skills/setup/reference.md`「GitHub リポジトリのセキュリティ設定」を参照する．
- 依存パッケージの定期更新 PR は `.github/dependabot.yml` で設定しており，本設定とは独立に動く（後述の「CI・自動化」）．

## 外部 SDK・ライセンス (External SDKs & Licenses)

カメラ制御 SDK はリポジトリに含めず，各開発マシンへ個別に導入する．入手元とライセンスの管理は管理者が把握しておく．

| SDK | 用途 | 入手・配置 |
| --- | --- | --- |
| IC Imaging Control SDK | ImagingSource 製カメラ（DFK33UX178 / DFK23UX249） | [The Imaging Source](https://www.theimagingsource.com/en-us/support/download/) から各自インストール（`setup.ps1` が未導入時にダウンロードページを開く） |
| Lumenera SDK | Lumenera 製カメラ（Lw110） | `lumenera.api.dll` をリポジトリに同梱済み．追加インストールは不要 |

## 実行時参照ファイルの配布 (Runtime Reference Files)

アプリは実行ファイルと同じディレクトリに以下を必要とする．これらは環境・機材に依存するため**リポジトリでは管理せず**，管理者が正となるファイルを保持し，新しい開発者・現場へ配布する．

- `config.xml` — 実行時設定（仕様は [SPEC_02_設定ファイル仕様](../04_SPEC/SPEC_02_設定ファイル仕様.md)）
- `DFK33UX178.xml` / `DFK23UX249.xml` — ImagingSource カメラ設定
- `tcc_srgb.csv` / `tcc_xyz.csv` — TCC 色変換の参照値

## データ保存フォルダ (Data Folder)

- 既定の保存先は `C:\TIAS_Data`（`config.xml` の `<SaveFolder>` で変更可能）．
- `setup.ps1` 実行時に未作成なら自動生成される．
- 現場マシンでは，このフォルダへの書き込み権限を管理者が確認する．

## CI・自動化 (CI & Automation)

- 現時点で CI（GitHub Actions 等）は構築していない．ビルド・テストはローカルで行う（[ENV_04_開発コマンド](ENV_04_開発コマンド.md)）．
- 将来 CI を導入する場合は，x64・packages.config・ネイティブ DLL（OpenCvSharp）依存を満たすランナー構成が必要になる点に注意する．
- `.github/dependabot.yml` で依存パッケージの定期更新 PR を設定している（NuGet: `TIASshot`／`TIASshot.Tests` の各 packages.config，週 1 回，マイナー／パッチは 1 PR にまとめる．メジャー更新も個別 PR で作成する）．GitHub Actions の更新も対象に含めてあるため，CI を追加した時点で自動的に追従される．
- **OpenCvSharp4 系（5 パッケージ）は `opencvsharp` 専用グループに分離してある**．OpenCvSharp は OpenCV 本体に追随するバージョニングで semver 契約を持たず，マイナー扱いの bump でも破壊的変更が入るため（4.10→4.13 で ArUco API が変更され，マイナー扱いのグループ PR がビルド不能になった実績がある）．マネージドとネイティブ（`runtime.win`）を常に同一バージョンで揃える必要があるので，規模を問わず 1 PR に束ねる．security update 経路にも同じ束ね方を効かせるため `applies-to: "security-updates"` のミラーグループを併置している．**このグループは自動マージ禁止**で，fixture 回帰または実機確認を経て人間がマージする（`/deps-update` 側のガードは `.claude/deps-update-skip.md`）．
- Dependabot の PR は `/deps-update` で処理する（ゲートを満たすものだけマージし，メジャー更新・CI 赤は分析付きで報告される）．**本プロジェクトは CI が無いためゲートはローカル検証（x64 ビルド＋テスト）で判定される**点に注意する．
