環境の再構築・別の PC での作業開始時に使う手順.プロジェクト作成時に一度だけ行う設定は ENV_03 にまとめる.
| ツール | 用途 | 備考 |
|---|---|---|
| git | バージョン管理 | 運用は .claude/rules/git-conventions.md |
| gh | GitHub CLI | 手元 PC のみ.PR 作成・リポジトリ設定 |
| uv | Pythttps://astral.sh/uv/install.ps1 | iex"(ユーザー領域%USERPROFILE%.local\binに入る.winget install astral-sh.uv` でもよい) | |
| Python 3.12 | 実行環境 | uv python install 3.12(uv が管理する..python-version で固定) |
| Python 3.7 以上 + bash | .claude/hooks/ の実行 | 手元 PC のみ(研究室 PC では Claude Code を使わない).Windows は Git for Windows 付属の bash.※ Python が見つからないとアクセス制限フックが全ツールをブロックする |
| OpenSSH | 研究室 PC の操作 | Windows 11 標準.SSH の別名 labpc(研究室 PC.Tailscale 経由)は SmTIAS-LightSim で構築済みのものを使う |
| 場所 | 役割 | 臨床データ |
|---|---|---|
| 手元 PC | 開発.ダミーデータでのテスト | 置かない |
研究室 PC(DESKTOP-1QLOO91.SSH の別名 labpc) | 目録とデータ置き場を置き,CLI で登録・manifest の書き出しを行う | 原本 |
| 計算サーバ(Newton・Archimedes) | 使う側のリポジトリが学習・解析を行う.研究室 PC から manifest と作業用コピーを受け取る | 作業用コピー |
git clone https://github.com/rintoHasegawa/TIASDataHub.git cd TIASDataHub uv sync uv run pytest
uv sync で .venv/ に依存(実行時は pydantic のみ.開発用に pytest・ruff・Pillow)が入る研究室 PC は手元 PC から SSH(ssh labpc)で操作する.研究室 PC の前で作業したり,研究室 PC で Claude Code を開いたりはしない(2026-10-02 のユーザー判断).
main を取り込んで CLI を実行するだけにし,研究室 PC では編集・コミットしない(変更は手元 PC で作業ブランチ → PR で main に入れる).claude/repo-access.json のフックは SSH の先のファイル読み取りまでは止められないため,データの確認は CLI の集計出力(件数・ハッシュの不一致・参照切れ等.患者 ID・ファイル名を含まない)で行う.type・Get-Content 等でデータ置き場・目録・対応表を直接読まないGitHub から取得する.研究室 PC には個人のアカウントの認証情報を置かず,このリポジトリ専用の読み取り専用のデプロイキー(SSH の別名 github-tiasdatahub)で取得する(設定は ENV_03「研究室 PC のデプロイキー」).手元 PC から次のように実行する(uv は非対話の SSH では PATH に入らないため絶対パスで呼ぶ).
ssh -n labpc "cd C:\Users\Papin\source && git clone git@github-tiasdatahub:rintoHasegawa/TIASDataHub.git" ssh -n labpc "cd C:\Users\Papin\source\TIASDataHub && C:\Users\Papin\.local\bin\uv.exe sync --no-dev --extra import"
更新するとき(init は新しいマイグレーションがあれば適用する.無ければ何もしない):
ssh -n labpc "cd C:\Users\Papin\source\TIASDataHub && git pull && C:\Users\Papin\.local\bin\uv.exe sync --no-dev --extra import && C:\Users\Papin\.local\bin\uv.exe run --no-dev --extra import tiasdata init"
uv sync・更新(git pull → uv sync → init)は 2026-10-09 に上記の手順で行い,確認済みC:\Users\Papin\source\(OneDrive の同期対象外).ドキュメント・デスクトップ配下には置かない(研究室 PC ではドキュメントフォルダが OneDrive にリダイレクトされている)E:\clinical-data\tiasdata\・tiasdata-identity\ に置き,場所は設定ファイル C:\Users\Papin\.config\tiasdata\config.toml に書く(配置と設定のキーは SPEC_01「配置」「設定ファイル」).設定ファイルは 2026-10-09 に作成済み(取り込み元 tiasjudgemodel・計算サーバ newton・archimedes.中身は SPEC_01 の例のとおり).作り直すときは既存のものを上書きしないPython のプロジェクトでは,本リポジトリを git サブモジュールとして置き,編集可能なパッケージとして読み込む.
git submodule add https://github.com/rintoHasegawa/TIASDataHub.git external/TIASDataHub
# 使う側の pyproject.toml
[project]
dependencies = ["tiasdata"]
[tool.uv.sources]
tiasdata = { path = "external/TIASDataHub", editable = true }
main にマージ済みのコミットを指す.使う側の作業中に基盤を直した場合は,サブモジュールの中で作業ブランチを切って本リポジトリに PR を出し,マージ後にサブモジュールの参照を更新する手順ではなく,守るべき制約である.
.gitignore で /data/・*.sqlite・*.db・/exports/ 等を除外しているが,そもそもリポジトリの配下に置かない.claude/repo-access.json の deny_read に研究室 PC のデータフォルダ(E:/clinical-data)とリポジトリ内の data/・exports/ を入れている.データ置き場・DB の場所を追加・変更したら,このリストも更新するuv add(開発用は uv add --dev).uv.lock はコミットする| 症状 | 原因 | 対処 |
|---|---|---|
python --version が Python とだけ出る | Microsoft Store の案内用スタブ(WindowsApps\python.exe)が呼ばれている | uv python install 3.12 で入れた Python を使う.プロジェクト内では uv run を使えば uv が管理する Python が使われる |
SSH で uv が見つからない | 非対話の SSH セッションに PATH の変更が反映されていない | C:\Users\Papin\.local\bin\uv.exe を絶対パスで呼ぶ |
| SSH の出力が文字化けする | 研究室 PC の出力が CP932 | 手元で iconv -f cp932 -t utf-8 を通す |
| ファイル操作系のツールが全てブロックされる | フック用の Python が見つからない | python3 / python / py のいずれかが起動できるようにする |