Windows用アプリケーションランチャー(C#/.NET WinForms)。
コマンド型・ボタン型・スケジューラーを統合する単一ユーザー向けGUIアプリ。
開発知識はCLAUDE.mdおよびClaude Codeが参照する規約ファイル群に集約する。
利用者・外部開発者向け情報はdocs/配下を参照する。
dotnet・node・pnpmなどはすべてmise経由で実行する(システムにインストールされたものは使わない)。
開発コマンドの一覧はdocs/development/development.mdを参照する。
- コミット前の検証方法:
uvx pyfltr run-for-agent- テストコードの単体実行なども極力
pyfltr run-for-agent <path>を使う(直接呼び出さない) - 修正後の再実行時は
--commands=dotnet-build,dotnet-test等で限定して実行する(最終検証はCIに委ねる前提)
- テストコードの単体実行なども極力
モジュール構成・主要な設計パターン・フック管理・環境変数の自動リロードなどの アーキテクチャ概要はdocs/development/architecture.mdを参照する。
実装上の不変条件はトピック別に規約ファイルとして分離している。
- スレッディング(
.claude/rules/threading.md): STAスレッド制約、スレッドモデル一覧、アイコンローダー並行度。 C#ソース(src/**/*.cs)編集時に自動ロードされる - Win32相互運用(
.claude/rules/win32-interop.md): フックコールバック制約、モーダルダイアログのTopMost伝播。 C#ソース(src/**/*.cs)編集時に自動ロードされる - 永続化(
.claude/skills/persistence/): cfg/dat分離、XMLシリアライザ制約、ReplaceEnvList非対称性。 XMLシリアライズ・設定永続化を扱うときに呼び出す - 通知ダイアログ(
.claude/skills/notification-dialog/): 非同期通知の追跡パターン、owner選定、フォーカス復元。 通知UI・ダイアログ実装を扱うときに呼び出す
.claude/agents/winforms-sta-reviewer.mdに、STAスレッド・Shell API・Win32フック・
ConfigStore派生クラスの変更をレビューする専用エージェントがある。
該当箇所を変更した場合は呼び出しを検討する。
Linux環境での検証は限定的。
mise.tomlのdotnet-rootテンプレートはWindowsのLOCALAPPDATAを参照するため、
Linuxではpre-commitフックがテンプレート展開エラーで失敗する。
ドキュメントのみ変更時は例外としてgit commit --no-verifyが許容される
(CIのWindows runnerでlintを担保)。