プロジェクト作成時に一度だけ行う初期設定.
Private リポジトリとして作成する(臨床データは含めないが,研究途中のコードを公開しないため).2026-10-02 時点で作成済み.
gh repo create rintoHasegawa/TIASDataHub --private --source=. --remote=origin \ --description "舌診研究のデータを研究室 PC で一元管理する共有データ基盤"
Dependabot alerts(脆弱性検出)と Dependabot security updates はリポジトリごとに既定で OFF なので,作成直後に有効化する(冪等なので再実行してよい).2026-10-02 に実施し,検証済み.
gh api -X PUT repos/rintoHasegawa/TIASDataHub/vulnerability-alerts gh api -X PUT repos/rintoHasegawa/TIASDataHub/automated-security-fixes
検証:
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.リポジトリ設定とは独立に動く).
2026-10-02 に手元 PC から SSH(ssh labpc)で実施.研究室 PC には git はあったが,uv・gh は無く,python は Microsoft Store の案内用スタブだけだった.
powershell -NoProfile -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" C:\Users\Papin\.local\bin\uv.exe python install 3.12
C:\Users\Papin\.local\bin・C:\Users\Papin\AppData\Roaming\uv\python\)に入った.管理者権限は不要gh は入れない(研究室 PC では編集・コミットしない)研究室 PC が GitHub(Private)から取得するため,このリポジトリ専用の読み取り専用のデプロイキーを使う(個人のアカウントの認証情報を研究室 PC に置かないため).2026-10-02 に手元 PC から SSH で実施.
研究室 PC で鍵を作る(パスフレーズなし)
ssh -n labpc 'ssh-keygen -q -t ed25519 -f C:\Users\Papin\.ssh\id_ed25519_tiasdatahub -N "" -C papin-DESKTOP-1QLOO91-TIASDataHub-deploy'
公開鍵をデプロイキーとして登録する(手元 PC の gh.既定で読み取り専用)
ssh -n labpc 'type C:\Users\Papin\.ssh\id_ed25519_tiasdatahub.pub' > labpc_deploy.pub gh repo deploy-key add labpc_deploy.pub --repo rintoHasegawa/TIASDataHub --title "labpc DESKTOP-1QLOO91 (read-only)"
研究室 PC の C:\Users\Papin\.ssh\config に別名を追加する
Host github-tiasdatahub
HostName github.com
User git
IdentityFile C:/Users/Papin/.ssh/id_ed25519_tiasdatahub
IdentitiesOnly yes
接続を確かめる.初回は GitHub のホスト鍵を受け入れる(指紋が GitHub の公開値 SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU(ED25519)と一致することを ssh-keygen -lF github.com で確認した)
ssh -n labpc "ssh -o StrictHostKeyChecking=accept-new -T github-tiasdatahub" ssh -n labpc "git ls-remote git@github-tiasdatahub:rintoHasegawa/TIASDataHub.git"
臨床データは研究室 PC の E ドライブ(内蔵 SATA SSD・約 465GB・NTFS)の E:\clinical-data\ に置く(配置は SPEC_01「配置」).E ドライブは OneDrive の同期対象外.
2026-10-06 に C ドライブ(空きが少なかった)から移した.手元 PC から SSH 経由で次のように行った.
C:\Users\Papin\clinical-data\ の全ファイル(26,268 個・45.30GB)を同じ構成で E:\clinical-data\ へコピーし,コピーしたファイルを読み直して SHA-256 を元と照合した(不一致 0)shutil.rmtree がアクセス拒否で止まった.属性を外して再試行する(onexc で os.chmod(path, stat.S_IWRITE))ことで削除できたC:\Users\Papin\clinical-data\… は古くなった(TIASJudgeModel 側で直す)立ち上げの成果物を main に取り込んだ後に行う.手順は ENV_02「研究室 PC のセットアップ」.
uv sync --no-dev --extra importC:\Users\Papin\.config\tiasdata\config.toml を作成(既にあれば上書きしないスクリプトを標準入力で流した)tiasdata init → tiasdata import tiasjudgemodel → stats・check(問題 0 件)tiasdata dataset freeze tongue_color(版 1・1081 枚)→ tiasdata backup(目録・対応表とも整合性 ok)Claude にデータの中身を読ませないため,.claude/repo-access.json の deny_read にデータの置き場所を書く.研究室 PC は手元 PC から SSH で操作するため(ENV_02「研究室 PC の操作方針」),このフックが効くのは手元 PC のパスと,コマンド文字列に現れたパスだけである.SSH の先での読み取りは,CLI の出力規則と「SSH でデータの中身を表示しない」運用で防ぐ.
{
"deny_read": [
"E:/clinical-data",
"data",
"exports"
]
}
Claude は実施できない.