重要:このプロジェクトでは、Claude Codeは必ず日本語で回答してください。技術用語は必要に応じて英語のまま使用可能です
重要:すべての作業実行は以下の方針に従ってください
- すべての実行はタスクに分割して行う
- 複雑な作業や調査が必要な場合はサブエージェント(Task tool)を使用して実行する
- 並列実行可能なタスクは積極的に並列化する
- GitHub Flowを採用し、ブランチベースの開発を実施します
- ghコマンドを使用してissueの作成、PRの作成・管理を行います
- 作業前に適切なissueを作成し、ブランチ名はissue番号を含めてください
- コミットメッセージは簡潔かつ明確に記述します
- PRマージ前にレビューコメントがある場合は対応します
- タイトル: 実装する機能・修正する問題を明確に記載
- 説明: 背景、目的、受け入れ条件を具体的に記述
- ラベル設定(必須):
enhancement: 新機能追加bug: バグ修正documentation: ドキュメント関連ci/cd: CI/CD関連refactor: リファクタリングtest: テスト関連
- 優先度ラベル:
priority/high,priority/medium,priority/low - 作業規模ラベル:
size/small,size/medium,size/large - コンポーネントラベル:
ui,backend,database,api - 関連Issue: 既存のIssueとの関連性を明記
- 関連Issue設定:
Closes #123: Issue完全解決Fixes #123: バグ修正Relates to #123: 部分的関連
- ラベル設定: 対応するIssueのラベルを継承
- レビュー準備: コードレビューに必要な情報を記載
## 概要
このPRの目的と変更内容を簡潔に説明
## 関連Issue
Closes #[Issue番号]
## 変更内容
- [ ] 変更項目1
- [ ] 変更項目2
## テスト
- [ ] 新しいテストを追加
- [ ] 既存のテストが通ること確認
- [ ] 手動テスト完了
## その他
- 特記事項があれば記載- タイトルと説明にClaude Codeで実装予定であることを明記
- 受け入れ条件を具体的かつ検証可能な形で列挙
- 技術的制約や要件を詳細に記載
- コミットメッセージに「🤖 Generated with Claude Code」を含める
- 自動生成されたコードの説明コメントを適切に配置
- レビュー時の注意点を明記
type: 簡潔な変更内容の説明
詳細な説明(必要に応じて)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- **Swift Testing(SwiftTest)**を使用します
- XCTestは使用しません
- テストカバレッジは100%を目標とし、すべてのテストが通ることを確認します
- 新規機能開発時は必ず対応するテストを作成します
- SwiftFormatの実行:
make formatコマンドでコードフォーマットを統一 - テストの実行: すべてのSwiftTestが100%通ることを確認
- ビルドの確認: エラーなくビルドが完了することを確認
- 不要なコードの削除: デバッグ用コード、コメントアウトされた古いコード等を削除
本プロジェクトはClean Architecture + MVVMパターンを採用しています。
- Entity: ビジネスエンティティ(ObservationData, DevicePairing, SensingSession等)
- Repository: データアクセスインターフェース(DataRepository, SwiftDataRepository)
- Usecase: ビジネスロジック(CalibrationUsecase, SensorManager, ConnectionManagementUsecase等)
- DataModel: 永続化モデル(SwiftData用のPersistent〜モデル)
- Utils: ユーティリティクラス(AffineTransform, LeastSquaresCalibration等)
- Scenes: 画面単位のView/ViewModel
- FloorMapTab: フロアマップ関連画面
- SensingTab: センシング関連画面
- SettingsTab: 設定画面
- MainTab: メインタブコンテナ
- Common: 共通画面(Welcome等)
- Components: 再利用可能なUIコンポーネント
- Router: ナビゲーション管理(NavigationRouter, SensingFlowNavigator)
- UWBデバイス関連の通信・制御ロジック
- View → ViewModel → Usecase → Repository → SwiftData/External API
- ViewModelは@Published/@StateObjectでViewと双方向バインディング
- Usecaseは複数のRepositoryを組み合わせてビジネスロジックを実装
- Repositoryは実際のデータアクセスを抽象化
- SwiftUI: UIフレームワーク
- SwiftData: データ永続化
- Swift Testing: テストフレームワーク
- NearbyConnections: デバイス間通信
- swift-format: コードフォーマッター
- View:
〜View.swift - ViewModel:
〜ViewModel.swift - Usecase:
〜Usecase.swift - Repository:
〜Repository.swift - Entity/Model: 単数形の名詞
- 不要なimport文は削除
- デッドコードは削除
- コメントは必要最小限に留め、コード自体を自己文書化
- SwiftFormatルールに従ったフォーマット
- 警告は0を維持