Skip to content

Latest commit

 

History

History
286 lines (218 loc) · 8.1 KB

File metadata and controls

286 lines (218 loc) · 8.1 KB

OpenCodeApp プロジェクト用 AGENTS設定

このドキュメントは、OpenCodeAppプロジェクトでOpenCode AIを使用する際の設定とガイドラインを定義します。

継承設定

以下の設定はグローバル設定(~/.config/opencode/AGENTS.md)から継承されます:

Communication & Language

  • Natural Language: 日本語で会話する
  • File Comments: コメントは日本語で書く
  • Variable/Function Names: 英語(国際標準)
  • Code: 英語(国際標準)
  • Symbols: ASCIIを使用する

Project Configuration

  • ログの配置場所: ログファイルはリポジトリのTOPディレクトリに配置する

プロジェクト固有の設定

プロジェクト情報

  • プロジェクト名: OpenCodeApp
  • 目的: OpenCode APIと連携するmacOSメニューバーアプリケーション
  • プラットフォーム: macOS 14+
  • 言語: Swift 5.9+
  • アーキテクチャ: MVVMパターン

開発方針

1. コード品質

  • 型安全性を重視する
  • ARCによる適切なメモリ管理
  • 非同期処理にはasync/awaitを使用
  • UI操作は@MainActorで実行

2. 設計原則

  • 単一責任の原則: 各クラス/構造体は一つの責任を持つ
  • 依存関係逆転の原則: 上位モジュールは下位モジュールに依存しない
  • インターフェース分離の原則: 不要なメソッドを含まないインターフェースを使用

3. エラーハンドリング

  • すべてのエラーは適切に処理する
  • ユーザーに分かりやすいエラーメッセージを表示
  • ログには詳細なエラー情報を記録

実装の優先順位

高優先度(重要度高)

  1. コード品質(最優先)

    • すべての警告とエラーは、現在のタスクに関連するかどうかにかかわらず、最優先で修正する
    • コードレビューの指摘事項の修正
    • Lint警告の修正(SwiftLint、swift-format)
    • コンパイラ警告の修正
  2. 機能の実装

    • スクリーンショット取得機能
    • メッセージ送受信機能
    • セッション管理機能
  3. バグ修正

    • 既存のバグの修正
    • 堕落防止

中優先度(重要度中)

  1. ドキュメントの更新

    • コードコメントの追加/更新
    • READMEの更新
    • CHANGELOGの更新
  2. テストの追加

    • ユニットテスト
    • 統合テスト
  3. リファクタリング

    • コードの改善
    • パフォーマンスの最適化

低優先度(重要度低)

  1. 機能拡張

    • 新しい機能の追加
    • UIの改善
  2. ツールの更新

    • 依存関係の更新
    • ビルドツールの更新

タスクの分類

実装タスク

  • 新機能の実装
  • バグ修正
  • コードの改善

タスクの実装時に以下を確認:

  • 既存のコードを壊していないか
  • エラーハンドリングが適切か
  • テストがパスするか(テストがある場合)
  • ドキュメントを更新したか

ドキュメントタスク

  • READMEの更新
  • ドキュメントの追加/更新
  • コードコメントの追加

ドキュメントの更新時に以下を確認:

  • 情報が正確か
  • 最新の状態を反映しているか
  • 説明が分かりやすいか

保守タスク

  • 依存関係の更新
  • バグ修正
  • セキュリティパッチの適用

コーディング規約

Swiftスタイルガイド

  • Swift API Design Guidelinesに準拠
  • SwiftLintのルールに従う
  • 適切なアクセス修飾子を使用

Lint / Format

  • SwiftLint: .swiftlint.yml を使用し ./Scripts/lint.sh で実行
  • swift-format: .swift-format を使用し ./Scripts/format.sh で実行
  • 重要: 静的解析(SwiftLint、swift-format、コンパイラ)のすべての警告とエラーは必須で修正する

命名規則

  • クラス/構造体: PascalCase
  • メソッド/プロパティ: camelCase
  • 定数: lowerCamelCase
  • 列挙型: PascalCase

コメント規約

  • 日本語で記述
  • 複雑なロジックには説明を追加
  • 公開APIにはドキュメントコメントを追加

Git規約

ブランチ戦略

  • main: 安定版
  • develop: 開発版
  • feature/*: 新機能
  • bugfix/*: バグ修正
  • hotfix/*: 緊急修正

コミットメッセージ規約

  • セマンティックコミットメッセージを使用
  • 日本語で記述

Git Hooks

  • pre-commit: .githooks/pre-commit
  • 設定: git config core.hooksPath .githooks

例:

feat(api): スクリーンショット送信機能を追加

- ScreenshotCaptureサービスを実装
- Base64エンコードロジックを追加

Closes #123

テスト規約

テストの重要性

  • ユニットテストの追加を推奨
  • 統合テストの実装を検討
  • 手動テストの手順をドキュメント化

テストカバレッジ

  • 目標カバレッジ: 80%以上
  • 重要な機能は100%カバレッジを目指す

ドキュメント規約

ドキュメントの種類

  • README: プロジェクトの概要とクイックスタート
  • ARCHITECTURE: アーキテクチャと設計
  • INSTALLATION: インストール手順
  • CONFIGURATION: 設定方法
  • USAGE: 使用方法
  • DEVELOPMENT: 開発ガイド

ドキュメントの更新

  • 機能追加時は必ず更新
  • API変更時は更新
  • 構造変更時は更新

セキュリティ規約

機密情報の取り扱い

  • APIキーは.config.jsonに保存
  • .config.json.gitignoreに含める
  • 決してAPIキーをコミットしない

コードレビュー

  • セキュリティに関連する変更は慎重にレビュー
  • 外部入力の検証を徹底
  • HTTPSを使用

パフォーマンス規約

メモリ管理

  • ARCによる適切なメモリ管理
  • 強参照循環を回避
  • 不要なリソースを解放

ネットワーク

  • タイムアウトを設定
  • エラーハンドリングを実装
  • リトライロジックを検討

既知の問題と制限

既知の問題

  1. CGWindowListCreateImageはmacOS 14で非推奨

    • 将来的にScreenCaptureKitへの移行が必要
  2. ユニットテストが実装されていない

    • 優先度: 中
    • 計画: 次のマイナーバージョン

制限

  1. 複数ディスプレイ対応不完全
  2. 自動更新機能未実装

実装済み機能(ドキュメント済み)

以下の機能は実装済みでドキュメントされています:

  • グローバルキーボードショートカット(Cmd+Shift+O, Cmd+Shift+I)
  • メニューバーの右クリックコンテキストメニュー
  • フローティングチャットウィンドウ
  • 入力ランチャー
  • ウィンドウ管理システム

将来のロードマップ

バージョン 1.1

  • ScreenCaptureKitへの移行
  • ユニットテストの追加

バージョン 1.2

  • 複数ディスプレイの完全対応
  • 複数セッションの管理
  • セッション履歴の保存

バージョン 2.0

  • 自動更新機能
  • プラグインシステム
  • テーマのカスタマイズ

サポートと連絡先

バグ報告

  • GitHub Issuesを使用
  • バグの再現手順を含める
  • ログファイルを添付

機能リクエスト

  • GitHub Issuesを使用
  • ユースケースを説明
  • ユースケースの例を提供

安全脆弱性の報告

  • プライベートな方法で報告
  • 詳細な情報を提供

参考資料

公式ドキュメント

内部ドキュメント


この設定はプロジェクトの進捗に合わせて更新されます。