Newer
Older
TIASDataHub / .claude / rules / lab-pc-operation.md

研究室 PC の操作ルール (Lab PC Operation)

研究室 PC(ssh labpc)や計算サーバに SSH でコマンドを送るときは,常に本ルールに従うこと.運用の背景は ENV_02「研究室 PC の操作方針」.

禁止 (Prohibited)

  • データの中身を表示しない: type・Get-Content・cat・more・sqlite3 等で,取り込み元・ストア・目録・対応表・バンドル(E:\clinical-data\ 配下,サーバの ~/data/ 配下)を読まない.フック(.claude/repo-access.json)は SSH の先の読み取りを止められないため,ここで守る
  • データの一覧を表示しない: dir・ls・Get-ChildItem でデータのフォルダの中身(ファイル名)を表示しない.件数が必要なら tiasdata stats・tiasdata check を使う(CLI が無い段階で件数が必要なら,ファイル名を出さずに数だけを返すコマンドにする)
  • 研究室 PC で編集・コミットしない: 研究室 PC のリポジトリは git pull と uv sync --no-dev --extra import だけにする
  • 原本・ストア・目録を手で消さない・動かさない: 削除・移動が必要な場合は,実行するコマンドを提示してユーザーに依頼する
  • 目録・対応表を SQL で直接編集しない: ラベル・患者・ファイルの情報を直したくなったら,tiasdata の編集のコマンドを使う.まだ無ければ作ってから使う(PLAN_02「編集のコマンド」).編集のコマンドが「破壊的」(過去の版の中身が変わる・データが消える)と判定したら,そこで止めてユーザーに警告し,その編集についての明示の OK が無い限り実行しない(以前の OK を使い回さない)

許可 (Allowed)

  • tiasdata CLI の実行(出力は SPEC_03「出力の規則」で個人情報を含まないことが保証されている)
  • ツールの有無・版の確認(where・--version),git pull・uv sync --no-dev --extra import
  • ツールの導入は,コマンド・入る場所を示してユーザーの承認を得てから行う

書き方 (Conventions)

  • 非対話で実行する(ssh -n labpc "...").パスワード入力・GUI が必要な操作は SSH で行わず,ユーザーに依頼する
  • 研究室 PC の uv は絶対パス(C:\Users\Papin\.local\bin\uv.exe)で呼ぶ
  • 出力が文字化けしたら手元で iconv -f cp932 -t utf-8 を通す
  • コマンドにデータのパスを書かない(tiasdata は設定ファイルで付けた名前で指定する)

使い捨てのスクリプト (One-off Scripts)

一度きりの調査・整理のスクリプトは,研究室 PC にコピーせず,SSH の標準入力で流して実行する(研究室 PC にファイルを残さず,後始末を不要にするため.2026-10-03 のユーザー判断).

ssh labpc "set PYTHONIOENCODING=utf-8&& C:\Users\Papin\.local\bin\uv.exe run --no-project --python 3.12 --with <パッケージ> python -" < script.py
  • スクリプトは手元の一時フォルダ(スクラッチパッド)に置き,scp で研究室 PC に置かない.標準入力を使うので ssh -n は付けない.引数は python - --apply のように - の後に渡す
  • データのパス(日本語を含む)はスクリプトの中に書く(UTF-8 のまま渡せることを確認済み)
  • 途中の結果(患者 ID を含む対応表等)をファイルに書き出さない.1 回の実行の中で照合から処理までを済ませ,結果はメモリ上だけで持つ.どうしても残す必要がある場合は,残す場所と削除の手順をユーザーに示して承認を得る
  • 出力は件数・番号・種類名等に限る(上記「禁止」)
  • 移動・削除を伴うスクリプトは,既定を試走(ファイルに触らず件数だけを出す)にし,本番(--apply 等)はユーザーが ! で実行する
  • 繰り返し使う処理(点検・集計・取り込み等)は使い捨てのスクリプトにせず,tiasdata CLI のコマンドとして実装する