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

プロジェクト作成時に**一度だけ**行う初期設定．

## GitHub リポジトリの作成 (Repository Creation)

Private リポジトリとして作成する（臨床データは含めないが，研究途中のコードを公開しないため）．2026-10-02 時点で作成済み．

```bash
gh repo create rintoHasegawa/TIASDataHub --private --source=. --remote=origin \
  --description "舌診研究のデータを研究室 PC で一元管理する共有データ基盤"
```

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

Dependabot alerts（脆弱性検出）と Dependabot security updates は**リポジトリごとに既定で OFF** なので，作成直後に有効化する（冪等なので再実行してよい）．2026-10-02 に実施し，検証済み．

```bash
gh api -X PUT repos/rintoHasegawa/TIASDataHub/vulnerability-alerts
gh api -X PUT repos/rintoHasegawa/TIASDataHub/automated-security-fixes
```

検証:

```bash
gh api repos/rintoHasegawa/TIASDataHub/vulnerability-alerts -i       # 204 なら有効（404 なら無効）
gh api repos/rintoHasegawa/TIASDataHub/automated-security-fixes      # {"enabled":true,...} なら有効
```

※ 依存バージョンの定期更新は `.github/dependabot.yml` で設定する（`uv`・`github-actions`．リポジトリ設定とは独立に動く）．

## 研究室の GitBucket (Lab GitBucket)

研究室の GitBucket に**コピー**を置く（メインは GitHub）．リポジトリ `hasegawa/TIASDataHub` は作成済み．

```bash
git remote add nakaguchi https://git.nakaguchi.org/git/hasegawa/TIASDataHub.git
```

- `main` にマージしたら `git push nakaguchi main` で反映する
- 研究室 PC は GitBucket から clone・pull する（GitHub の認証情報を研究室 PC に置かないため）．研究室 PC から認証なしで `git ls-remote` できることを 2026-10-02 に確認した

## 研究室 PC のツール導入 (Lab PC Tools)

2026-10-02 に手元 PC から SSH（`ssh labpc`）で実施．研究室 PC には `git` はあったが，`uv`・`gh` は無く，`python` は Microsoft Store の案内用スタブだけだった．

```powershell
powershell -NoProfile -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
C:\Users\Papin\.local\bin\uv.exe python install 3.12
```

- uv 0.12.22・Python 3.12.15 がユーザー領域（`C:\Users\Papin\.local\bin`・`C:\Users\Papin\AppData\Roaming\uv\python\`）に入った．管理者権限は不要
- `gh` は入れない（研究室 PC では編集・コミットしない）

## 研究室 PC への配置 (Lab PC Deployment)

立ち上げの成果物を `main` に取り込み，`git push nakaguchi main` で GitBucket に反映した後に行う．手順は [ENV_02「研究室 PC のセットアップ」](ENV_02_環境構築手順.md)．

- ※ 未検証（2026-10-02 時点で GitBucket の `main` が空のため）

## Claude のアクセス制限 (Claude Access Restriction)

Claude にデータの中身を読ませないため，`.claude/repo-access.json` の `deny_read` にデータの置き場所を書く．研究室 PC は手元 PC から SSH で操作するため（[ENV_02「研究室 PC の操作方針」](ENV_02_環境構築手順.md)），このフックが効くのは手元 PC のパスと，コマンド文字列に現れたパスだけである．SSH の先での読み取りは，CLI の出力規則と「SSH でデータの中身を表示しない」運用で防ぐ．

```json
{
  "deny_read": [
    "C:/Users/Papin/clinical-data",
    "data",
    "exports"
  ]
}
```

- 目録の DB ファイル・データ置き場・manifest の出力先を仕様設計で決めたら，リポジトリの外に置く場所もここに追加する

## 人間が確認すべき事項 (Human Checklist)

Claude は実施できない．

- 倫理審査で定められた臨床データの保管ルール（保管場所・アクセスできる人の範囲・保管期間・計算サーバへのコピーの可否）
- 目録の DB ファイルのバックアップ方法（仕様設計で決める．バックアップ先も OneDrive の同期対象外にする）
