実装は以下のステップ順に進める.各ステップは /implement <タスク> で開始し,完了時にコミットする.
core(診断ロジック)を先に完成・検証し,GUI は検証済みの core の上に載せる方針とする.
| # | ステップ | 内容 | 完了条件 |
|---|---|---|---|
| 1 | プロジェクト骨格 | pyproject.toml(uv・Ruff・pytest 設定)と src/tiasjudge/ の骨格を作成.data.csv を data/ に配置(UTF-8 化).ENV_04_開発コマンド.md を作成 | uv sync → uv run pytest が通る |
| 2 | core: CSV 読込 | csv_io.py(変換行列 17×3・data.csv 84×193 の読込と形式検証)+異常系テスト | 実データを読める.不正形式で専用例外 |
| 3 | core: 色変換 | color.py(RGB→XYZ 多項式・XYZ→Lab)+既知値による単体テスト | SPEC_02 (1)(2) の式を再現 |
| 4 | core: SVM 分類 | svm.py(190 列の SVM 学習・予測・5 色スコア集計・失敗検出)+ roi.py(ROI 平均色)+テスト | SPEC_02 (0)(3) を再現 |
| 5 | 回帰テスト | 旧実装 exe で採取した入出力ペア(RGB → Lab・5 色スコア)を tests/fixtures/ に固定し,パイプライン全体を照合 | 全ペアで結果一致(不一致時は原因を特定し記録) |
| 6 | GUI: メイン画面 | main_window.py(ファイル選択・画像表示・クロップ・ROI クリック・入力ガード・診断続行) | SPEC_01 メイン画面のとおり動作(手動確認) |
| 7 | GUI: 結果画面・結合 | result_window.py(5 色表示・上位 2 色強調・日英切替・失敗表示)と全体結合 | SPEC_01 結果画面のとおり動作(手動確認) |
| 8 | 配布(任意) | PyInstaller で Windows exe 化(必要になった時点で実施) | 単体 exe で起動・診断できる |
1 → 2 → 3 → 4 → 5 → 6 → 7 → 8
(5 は旧 exe での採取作業=ユーザー協力が必要)
.claude/rules/testing.md)