# 開発進捗ログ

<!--
本ファイルは追記型のフル進捗ログ．

- 最新エントリは下に追記する（時系列順．古いものが上，新しいものが下）
- CLAUDE.md の「開発進捗」セクションは最新 1 行のみ（上書き運用）
- 詳細・失敗パターン・設計判断はすべて本ファイルに残す
- 書式・運用ルールは .claude/rules/progress-log.md を参照
  （本ファイルの編集時に自動ロードされる）
-->

- [x] **プロジェクト立ち上げ（GUIDE_01）**: 要件定義・技術選定・環境構築・仕様設計・規約整備・開発計画を `chore/project-setup` で完了（2026-10-02）．solo モード
  - 動機: 舌診研究の各リポジトリが研究室 PC のフォルダを個別に読む形をやめ，データセット名と版で取り出せる共通の入口を作る
  - 設計判断: 目録は SQLite ＋ SHA-256 名のストア（取り込み時にコピー．原本参照より版の再現が確実）．計算サーバへは版ごとのバンドル（`SHA256SUMS` 付き）を直送．所見は種類の定義＋ JSON 値で持ち，種類の追加で表を作り直さない
  - 運用: 研究室 PC は手元 PC から `ssh labpc` で操作し，研究室 PC では編集しない．研究室 PC に uv 0.12.22・Python 3.12.15 を導入済み．検証プロファイルは作らない（CLI はテストと `tiasdata check` で確認する）
  - 未実装・後段: `main` がまだ存在しない（GitHub・GitBucket とも空）．取り込み後に研究室 PC へ clone する（ENV_02）．次は PLAN_02 Step 1
- [x] **舌色データが 1 患者 1 枚でないことの反映**: 研究室 PC の対応表（`DeepTIAS後_ID_番号.xlsx`）と件数だけで照合し，1085 枚が約 450 人分（2 枚以上の患者 239 人・874 枚）と判明（2026-10-03）．取り込みで対応表を読み，患者単位で症例をまとめる設計に直した（PLAN_01・PLAN_02・SPEC_01〜03・ENV_01）
  - 影響: TIASJudgeModel は画像 ID を `patient_id` にしており，同じ患者の画像が学習と評価に分かれている可能性がある．基盤経由に切り替える Step 8 で患者単位の分割に直し，成績の差を記録する
  - 判断: xlsx を読む openpyxl は任意の依存（`import`）にし，使う側には入れない
- [x] **研究室 PC の DeepTIAS 出力の整理**: 空き容量の不足（1.09 GB）を受け，舌色データセットで使った画像の DeepTIAS 出力だけを番号ごとのフォルダ `DeepTIAS_TIASJudgeModel\<番号>\` へ移し（同じドライブ内の移動．約 40.6 GB），使わない出力（約 8.1 GB）を削除した（2026-10-03．空き 9.5 GB）．元のデータは研究室のサーバにある
  - 方法: 対応表の xlsx（番号・何枚目・患者 ID）で引き，`2-cropped` × `3-resized` の作り直しが舌色データセットの画像と画素で一致するかで確認．対応表どおりで引けない 192 件（撮影日等の下位フォルダ・ID と合わないフォルダ名・何枚目の誤り等）は画素の一致で探して全件特定した．Claude は件数だけを見て，番号以外の名前・患者 ID は表示していない．移動・削除はユーザーが実行
  - 設計判断: 名前の規則を推測せず画素の一致を正とした（対応表の誤り 29 件を含めて確実に特定できるため）．`LabImg` × `4-mask` は撮影画像全体の大きさで，データセットの画像（枠の大きさ）とは一致しない
  - 発見: 同じ写真の重複が 5 組（PLAN_01「現在あるデータ」）．うち 2 組はラベルが違う．取り込み（Step 3）までに扱いを決める
