ファイルを新規作成・移動するときは本構成に従うこと.
TIASjudge/ ├── src/ │ └── tiasjudge/ │ ├── core/ # 診断ロジック(UI 非依存) │ │ ├── color.py # RGB→XYZ→Lab 変換(SPEC_02 (1)(2)) │ │ ├── svm.py # SVM 学習・5 色分類(SPEC_02 (3)) │ │ ├── roi.py # ROI 平均色の算出(SPEC_02 (0)) │ │ └── csv_io.py # 変換行列・data.csv の読込 │ ├── gui/ # PySide6 画面(SPEC_01) │ │ ├── main_window.py │ │ └── result_window.py │ └── __main__.py # エントリポイント(python -m tiasjudge) ├── tests/ # pytest(src/ と同じ構造をミラーする) ├── data/ # 学習データ等の同梱ファイル(data.csv) ├── docs/ # ドキュメント(docs-naming.md 参照) └── org/ # 旧実装(Git 管理外・参照専用)
core/ は PySide6・GUI に依存してはならない(import 禁止).純粋な計算・入出力のみgui/ は表示とイベント処理に徹し,診断計算を実装しない(必ず core/ を呼ぶ)core/ はファイルパスを引数で受け取る.モジュール内でパスを固定しない(テスト容易性と再現性のため)core/ に置けないか検討する(UI 非依存にできるものは core へ)tests/ 配下に test_<モジュール名>.py で置く(例: core/color.py → tests/core/test_color.py)data/ に置き Git 管理する.ユーザーが実行時に選択するファイル(変換行列 CSV・舌画像)はリポジトリに含めない