Skip to content

Latest commit

 

History

History
104 lines (78 loc) · 6.21 KB

File metadata and controls

104 lines (78 loc) · 6.21 KB

PokeTokenBar への貢献

English · 한국어 · 日本語

貢献に興味を持っていただきありがとうございます!PokeTokenBar は小さな非商用の ファンプロジェクトで、大小を問わずあらゆる貢献を歓迎します — バグ報告、修正、 新しい使用量プロバイダー、翻訳、ドキュメント。

プルリクエストを開く前に、以下の短いセクションをお読みください。

前提条件

  • macOS 14 (Sonoma) 以降
  • Swift 6 ツールチェーン (Xcode 16 以降) — Package.swift が要求 (swift-tools-version: 6.0)

ビルド & テスト

本プロジェクトは Swift Package です。リポジトリのルートから:

swift build      # アプリターゲットをコンパイル
swift test       # 全テストスイートを実行

CI はすべてのプルリクエストで swift buildswift test を実行します。まず ローカルで両方が通ることを確認してください。

貢献ワークフロー

  1. main から feature ブランチを作成します(書き込み権限がなければリポジトリを fork)。
  2. テストとともに変更します。変更は focused に保ってください。
  3. main に対してプルリクエストを開きます。
  4. CI が通りレビューが完了したら、squash merge でマージされます。

言語: 英語優先

本リポジトリでは、共同作業で残るもの(Issue・PR・公開コメント)は 英語を第一言語とします:

  • プルリクエストのタイトルと本文は英語である必要があります。
  • コミットメッセージは英語で書いてください。

リポジトリは squash-merge するため、PR タイトルが main のコミット件名になります — 英語の PR が公開履歴を一貫させます。

コミット & PR の規約

  • Conventional Commits スタイルを使用: feat:, fix:, docs:, chore:, refactor:, test: など。
  • プルリクエストテンプレートを記入してください。
  • UI の変更Sources/PokeTokenBar/UI/ 配下のすべて)は、PR で before/after を 説明してください。スクリーンショットや GIF は歓迎ですが任意です — 明確なテキスト説明で 十分です。正式な assets/ スクリーンショットは PR ごとではなくリリース時に 再生成されます。

コード規約

本アプリは設計上プロバイダー非依存(provider-agnostic)です。拡張する際は次のルールに 従ってください(テストでも強制されます):

  • 使用量ソースの追加(新しい AI CLI)= UsageProvider プロトコル (Sources/PokeTokenBar/Core/UsageProvider.swift) を新しい型ひとつで実装し、 UsageStore.init のデフォルト providers: 配列 (Sources/PokeTokenBar/Core/UsageStore.swift) に登録します。触れる必要があるのは この2箇所だけです。
  • 汎用的な動作はすべてのプロバイダーにわたって集計する必要があります(今日/週/月の 合計、消費ペースの段階、コンパニオンのリズム)。汎用的な計算を特定のプロバイダーに結び付けたり、 汎用パスに providerID == "..." のリテラル分岐を追加したりしないでください。 プロバイダー固有の動作(例: 公式の上限)だけが providerID で分岐できます。
  • バージョンマネージャー / インストールパスの追加 = BinaryLocator.commonToolDirectories() に追加します — 探索と子プロセスの PATH が 共有する単一のソースです。
  • 追記専用 SQLite 使用量ストアの追加(Cursor・Copilot のように rowid/id ウォーターマーク)= LocalAdditionalUsageReader.scanIncrementalStores に URL / MAX SQL / row query / parse だけ渡す。ウォーターマーク・ループをコピーしない。

法務 / 知的財産

PokeTokenBar は非公式・非商用のファンプロジェクトであり、任天堂、ゲームフリーク、 クリーチャーズ、株式会社ポケモンとは提携していません (README の免責を参照)。プロジェクトを安全に維持・ 配布するため、貢献は必ず次のルールに従う必要があります:

  • ポケモン(またはその他の第三者)の著作物をコミット・バンドルしないでください — スプライト、アートワーク、音声、フォント、名前/データの一括ファイル。ポケモンの種族 データおよびスプライトは、公開されている PokéAPI から 実行時に取得され、ユーザーの端末にローカルキャッシュされます。そのまま維持して ください。
  • 商用利用を意図した機能や、著作物を再配布・エクスポートする機能を追加しないで ください。
  • シークレット、認証情報、非公開/内部ツールへの参照をコミットしないでください。 リポジトリ内のものはすべて、特定の環境に依存せず公開しても安全な状態に保ってください。
  • 貢献を提出することにより、それがあなた自身のオリジナルな成果物であることを確認し、 本プロジェクトの MIT License の下でライセンスされることに同意したものと します。MIT ライセンスは本プロジェクトのソースコードのみを対象とし — 第三者の商標・ アートワーク・データに関する権利は付与しません。

バグ報告 & 機能リクエスト

Issue テンプレートを使用してください。バグの場合は、macOS のバージョン、アプリの バージョン、使用している AI CLI、再現手順を含めてください。

権利者の方で本プロジェクトに懸念がある場合は、Issue を作成するかメンテナーまで ご連絡ください。速やかに対応いたします。