Newer
Older
TIASJudgeModel / .claude / rules / project-structure.md

paths: ["src/", "tests/", "scripts/**"]

プロジェクト構成ルール (Project Structure)

ソース・テスト・スクリプトを追加・移動するときは本ルールに従い,責務ごとのサブパッケージ配置を保つこと.設計の背景は SPEC_01 アーキテクチャ設計を参照する(本ルールは配置規則のみを定める).

ディレクトリ構成 (Layout)

src/tias_judge_model/
├── __init__.py
├── schema.py              # pydantic 設定スキーマ
├── data/                  # manifest 読み込み・Dataset・患者単位分割・前処理
├── models/                # timm ラッパ(アーキテクチャ差し替え点)
├── training/              # 学習ループ・損失・スケジューラ
├── evaluation/            # 指標・混同行列・レポート生成
├── baseline/              # ルールベース比較(TIASjudge 相当)
├── remote/                # リモート実行(転送・ジョブ実行・回収)
└── cli/                   # CLI エントリポイント

tests/                     # src のサブパッケージ構造をミラーする
scripts/                   # 単発の調査・合成データ生成・manifest 生成
configs/                   # 実験設定 YAML(コード外の設定)

配置ルール (Placement Rules)

  • 1 モジュール 1 責務: 新しい機能は責務に合うサブパッケージに置く.該当が無ければ新サブパッケージを作る(既存モジュールを肥大化させない)
  • 依存方向: cli → training / evaluation → data / models の一方向を保つ.data・models から上位(cli・training)を import しない
  • 純関数を優先: 副作用(ファイル I/O・ssh・GPU 実行)は cli・remote・training の縁に寄せ,data の変換処理・evaluation の指標計算は入力 → 出力の純関数として書く(テスト容易性のため..claude/rules/testing.md の必須テスト対象と対応する)
  • 設定・データ: 実験条件は configs/*.yaml に置き,閾値・パスをコードに埋め込まない.臨床データはリポジトリに置かない(data/ は .gitignore 済み)
  • 調査・使い捨てコード: 恒久的に使わない単発スクリプトは src/ ではなく scripts/ に置く(パッケージの公開 API を汚さない)
  • テストの配置: tests/ は src/tias_judge_model/ の構造をミラーする(詳細は .claude/rules/testing.md)