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

paths: ["Tongue extraction/", "DeepTIAS.Tests/", "Tongue extraction.sln"]

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

ファイルを追加・移動するときは本規約に従うこと.

ディレクトリ構成 (Directory Layout)

DeepTIAS/
├── Tongue extraction.sln          # ソリューション
├── Tongue extraction/             # アプリ本体(DeepTIAS2.7.csproj)
│   ├── Form1.cs                   # 画面と解析の流れ
│   ├── ColorExtractor_fiveClick.cs  # 領域分割(Chiu 法・拡張 Chiu 法・5 点法)
│   ├── Program.cs                 # エントリポイント
│   ├── Properties/                # アセンブリ情報・リソース・設定
│   ├── models/                    # 学習済みモデル(Git LFS)
│   └── runtime/                   # 実行時に exe と同じ場所に必要なファイル(外部 exe・ネイティブ DLL・色補正データ・出力雛形).ビルドで出力フォルダ直下にコピーされる
├── DeepTIAS.Tests/                # テストプロジェクト(MSTest.作成予定)
├── ColorSubdivision/              # 試作プロジェクト(ソリューション外.保守対象外)
└── docs/                          # ドキュメント
  • フォルダ名 Tongue extraction(スペース入り)とプロジェクト名 DeepTIAS2.7 は,参照の張り替えが多いため当面変えない.

追加するコードの置き場所 (Where New Code Goes)

Form1.cs に解析処理が集中しているため,整理で切り出すコードは以下のフォルダに置く.フォルダは実際にファイルを置くときに作る.

フォルダ置くもの例
Tongue extraction/Analysis/解析の各工程(画面に依存しない処理)舌検出,舌領域抽出,形状特徴
Tongue extraction/External/外部 exe・ネイティブ DLL の呼び出しTongueFeatures.exe の起動,DllImport 宣言
Tongue extraction/IO/入出力フォルダ・CSV の読み書き出力フォルダの作成,analysis.csv の追記
  • **画面(Form1)には,画面の更新と操作の受け付けだけを残す.**解析処理は画面の部品(PictureBox 等)に触れないようにし,テストから呼べる形にする.
  • 1 ファイル 1 クラスを基本とする.ファイル名はクラス名と同じにする.
  • 旧形式の csproj はファイルを自動で取り込まないため,追加したファイルは csproj の <Compile Include> にも登録する(Visual Studio から追加すれば自動で登録される).

実行時に必要なファイル (Runtime Files)

  • モデル・外部バイナリ・雛形フォルダなど,実行時に exe と同じ場所に必要なファイルは,csproj で「出力ディレクトリにコピー」(CopyToOutputDirectory)を指定し,ビルドだけで揃うようにする.
  • 大きなバイナリ(モデル・exe・DLL)は Git LFS で管理する.新しい拡張子を追加するときは先に git lfs track で対象にする.
  • runtime/ には,出力フォルダに置きたい構成のままファイルを置く(csproj がフォルダ構成を保ってコピーする).空フォルダは .gitkeep で保持する(.gitkeep は出力にコピーされず,フォルダだけがビルド後に作られる).
  • runtime/Data/ と出力雛形(runtime/template_outputDir*/)は,外部 exe・アプリが読むため改行コードを変換しない(.gitattributes で -text).