diff --git a/.claude/rules/lab-pc-operation.md b/.claude/rules/lab-pc-operation.md index 0903c8e..e786c5a 100644 --- a/.claude/rules/lab-pc-operation.md +++ b/.claude/rules/lab-pc-operation.md @@ -8,6 +8,7 @@ - **データの一覧を表示しない**: `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) diff --git "a/docs/03_PLAN/PLAN_02_\351\226\213\347\231\272\343\202\271\343\203\206\343\203\203\343\203\227.md" "b/docs/03_PLAN/PLAN_02_\351\226\213\347\231\272\343\202\271\343\203\206\343\203\203\343\203\227.md" index c08860e..76fb8d0 100644 --- "a/docs/03_PLAN/PLAN_02_\351\226\213\347\231\272\343\202\271\343\203\206\343\203\203\343\203\227.md" +++ "b/docs/03_PLAN/PLAN_02_\351\226\213\347\231\272\343\202\271\343\203\206\343\203\203\343\203\227.md" @@ -41,5 +41,6 @@ | 実際の患者 ID を持つデータ | 対応表(`identity.sqlite`)を使う取り込み.同じ患者の複数枚・経時的な撮影.倫理審査の保管ルールの確認が前提 | | 他の所見 | 苔の色・厚さ,問診・体質等の種類を追加する | | バックアップ | 目録・ストアを別の媒体に退避する方法を決めて手順化する(ストアのファイルは読み取り専用である点に注意) | +| 編集のコマンド | ラベルの訂正・撮影の患者の付け替え・ファイルの種類の変更等.どのコマンドもまず試走で影響(変わる件数・影響する版・**非破壊か破壊的か**)を表示し,破壊的な編集(過去の版の中身が変わる・データが消える)は明示の指定(例: `--allow-destructive`)が無いと実行しない.編集はいつ・何を・なぜを履歴の表に残す(2026-10-08 のユーザー判断.必要になった時点で作る) | | データの削除 | 同意の撤回等でデータを本当に消す必要がある場合の専用コマンド(例: `tiasdata purge`).影響する版を確かめ,削除を目録に記録してから,読み取り専用を外してストアから消す(SPEC_01「ストアの規則」) | | TIASjudge・DeepTIAS からの利用 | 使う側を増やす | diff --git a/docs/PROGRESS.md b/docs/PROGRESS.md index a70cc01..d268073 100644 --- a/docs/PROGRESS.md +++ b/docs/PROGRESS.md @@ -44,3 +44,6 @@ - [x] **PLAN_02 Step 5: バンドル**: 凍結した版のバンドルの書き出し(`tiasdata export`.`export.py`)と,目録に依存しない読み込み・検証(`tiasdata.load`・`open_bundle`・`Bundle.verify`・`fingerprint`.`bundle.py`)を実装(2026-10-08) - 設計判断: 読み込みと書き出しをモジュールで分け,`import tiasdata` で目録まわり(catalog・store・config・sqlite3)を読み込まない(計算サーバで使うため).共有する純関数は `manifest.py` に集めた.`dataset.json` に書き出した日時を入れず同じ版から同じバイト列にする(既存のバンドルをバイト単位で照合できる).バンドルは読み取り専用にしない(作り直せて消す前提).`load` の版はキーワード必須.エラーにバンドルの場所を出さない - 未実装・後段: `BundleRow.annotations` の入れ子の値が書き換えられる(使う側の誤りを防ぐなら読み取り専用にする).書き出しに失敗すると空の `bundles/<名前>/` が残る(害はない) +- [x] **編集の扱いを決めた**: 操作は Claude に指示して行う運用なので,ラベル・患者・ファイルの情報は編集できるようにし,破壊的な編集(過去の版の中身が変わる・データが消える)のときは実行前に警告してユーザーが決める方針にした(2026-10-08).凍結した版の記録そのものは今までどおり書き換え禁止 + - 判断: 当面は今の形のまま運用する(症例・撮影・ファイルの表はスキーマ上は書き換えられ,書き換えると check が過去の版の manifest の不一致として見つける).編集のコマンド(試走・破壊的の判定・履歴)は必要になった時点で作る(PLAN_02「マイルストーン 2 以降の候補」).Claude は目録を SQL で直接編集しない(lab-pc-operation) + - これで Step 4 の未決(assets・captures の書き換えを禁止するか)は「禁止せず,編集のコマンドと警告で扱う」に決着