gitcontribute について
gitcontributeは、コーディングエージェントや貢献者向けのローカル優先のGitHub調査ワークベンチです。リポジトリのガイド、関連作業、コードの文脈、検証結果をSQLiteに集約し、GitHubへ投稿せずにローカルの草稿を作成します。
主な機能
- 01証拠とリスクに基づく候補の順位付け
- 02コードとリポジトリ情報を使った課題調査
- 03重複課題や競合するプルリクエストの確認
- 04承認済み検証の記録と比較
- 05証拠に紐づくローカル草稿の作成
- 06同期済みデータのオフライン検索
活用シーン
- 01外部貢献者に適した課題の選定
- 02重複報告や進行中の実装の確認
- 03承認済みテストによる変更とベースラインの比較
- 04GitHubに投稿せずプルリクエスト草稿を準備
MCP 対応
MCPサーバーは、統一されたツールカタログを通じてコーディングエージェントに貢献調査ワークフローを提供します。CLIとアプリケーションサービスおよび副作用の境界を共有します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
GitContribute
エージェント向けのコントリビューション調査:パッチを作成する前に、リポジトリのガイダンス、関連する作業、コードのコンテキスト、検証方法を確認します。
クイックスタート · ワークフロー · CLI · MCP · 安全性 · ドキュメント

gitcontribute は、コーディングエージェント向けに CLI、ターミナル UI、MCP サーバーとして利用できます。
GitHubでは未解決のイシューを確認できます。しかし、そのイシューが今も関連性を保っているか、すでに実装中か、外部のコントリビューターに適しているか、安全に取り組むのに十分な根拠があるかまでは判断できません。
GitContributeは、リポジトリのガイダンス、関連するイシューやプルリクエスト、コードのコンテキスト、受け入れられたコントリビューションのパターン、検証結果を収集し、ローカルのSQLiteコーパスに保存します。結果には、カバレッジの不足や古くなった情報が示されます。
find work -> understand it -> check competing work -> prove the change -> prepare the handoff
重要
GitContributeはGitHubへの書き込みを一切行いません。確認用の調査結果と下書きをローカルで作成します。
クイックスタート
Node.js 18以降で、ガイド付きセットアップを実行します。
npx --yes gitcontribute@latest setup
サポート対象のコーディングエージェントからGitContributeを使うにはMCP、ターミナルとTUIから使うにはCLI、両方を使うにはBothを選択します。ウィザードは、適用する前にすべての変更内容を表示します。セットアップ中にリポジトリを追加しても、GitHubへの接続や同期は開始されません。
セットアップ後は、リポジトリまたは特定のイシューから始めます。
| タスク | コーディングエージェント | CLI |
|---|---|---|
| 候補を探す | Find contribution candidates in owner/repo. Rank them by contribution fit, evidence, scope, and coordination risk. | gitcontribute archive sync owner/repogitcontribute radar owner/repo --limit 10 |
| イシューを調査する | Investigate owner/repo#42. Check guidance, discussion, code, prior fixes, competing work, and missing evidence. | gitcontribute archive sync owner/repo --numbers 42gitcontribute research brief issue:owner/repo#42 |
結果には、参照元、カバレッジの不足、推奨される次の手順が含まれます。
その他のインストール方法
コマンドを永続的にインストールします。
npm install --global gitcontribute@latest
gitcontribute setup
GitContributeをプロジェクトに固定します。
npm install --save-dev gitcontribute
npm exec -- gitcontribute setup --mode mcp --codex --token-source none --yes
Go 1.26以降を使ってソースからビルドします。
go install github.com/morluto/gitcontribute/cmd/gitcontribute@latest
macOS ARM64/x64、Linux ARM64/x64、Windows x64向けのネイティブnpmバイナリが含まれています。また、gitも必要です。gh CLIは任意で、gh auth tokenを使って認証できます。
コントリビューションのワークフロー
1. 候補を探す
リポジトリを検索するか、利用可能な根拠、作業範囲、リスク、阻害要因、メンテナーとの調整が必要な兆候に基づいて、未解決のイシューを順位付けします。
Find contribution candidates in golang/go. Exclude issues with active
implementation work and explain why each remaining candidate is worth
investigating.
順位付けの対象は、保存された観察結果のみです。結果には、カバレッジが不完全であることが示されます。
2. イシューを調査する
イシュー、リポジトリのガイダンス、議論、リンクされた作業、インデックス化されたコード、過去のコントリビューションから調査ブリーフを作成します。抽出されたメンテナーの文章やチェックボックスを、完全な受け入れ条件として提示することはありません。
Investigate issue owner/repo#42. Summarize the confirmed problem, likely scope,
relevant code, maintainer guidance, and open questions.
3. 関連する作業を確認する
実装に着手する前に、重複する報告、関連するプルリクエスト、クローズ関係、意味的に重複する作業がないか確認します。
Check whether owner/repo#42 has duplicate reports or competing implementation
work. Tell me what you checked and identify any missing coverage.
網羅性が不完全な場合、それを競合する作業が存在しない証拠として扱わず、その旨を報告します。MCP ワークフローでは、返された型付きリカバリーアクションに従い、永続ジョブの状態を確認してから、該当する正確なスレッドまたはリポジトリを再度読み込み、その結論を導きます。
4. 変更を検証する
再現手順、テスト、ベンチマーク、またはその他の検証を記録し、変更前のベースラインと候補を比較します。検証コマンドは、明示的な承認を得た後にのみ実行されます。
Validate my candidate change against the baseline. Run the approved checks,
record both results, and explain whether the evidence supports the change.
保存された実行記録には、コマンド、結果、所要時間、取得可能なプロセスメトリクスが含まれます。
5. ドラフトを準備する
すでに収集した調査および検証の証拠に紐付いた、ローカルのイシュー、プルリクエスト、またはレビューのドラフトを作成します。
Prepare a pull-request draft for this contribution. Tie its claims to the
recorded evidence, include the validation results, and do not post anything.
ドラフトの改訂では、レンダリング後の正確なバイト列と来歴が保持されます。
インターフェースとストレージ
GitContribute は、リポジトリ、スレッド、コードスナップショット、調査、証拠、検証結果、貢献の成果を SQLite に保存します。ネットワークアクセスは明示的に行われます。情報を同期した後は、コーパス検索と調査をオフラインで実行できます。
GitHub read APIs Local checkout
| |
| explicit sync / hydrate | explicit index / acquire
v v
+------------------------------------------------+
| Local SQLite corpus |
| observations · coverage · evidence · outcomes |
+------------------------+-----------------------+
| offline reads
+---------+---------+
v v
CLI / TUI Coding agents
CLI と MCP サーバーは、同じアプリケーションサービスと副作用の境界を使用します。
CLI
CLI を使えば、MCP クライアントなしでも同じワークフローを実行できます。
# Sync repository context and current threads
gitcontribute archive sync-context owner/repo
gitcontribute archive sync owner/repo
# Find and inspect contribution candidates
gitcontribute radar owner/repo --limit 10
gitcontribute research brief issue:owner/repo#42
# Search stored threads and indexed code
gitcontribute search threads "connection timeout" --repo owner/repo
gitcontribute search code "context.WithTimeout" --repo owner/repo
実装作業では、次のようにします。
gitcontribute investigation start-thread issue:owner/repo#42 --json
gitcontribute workspace create <investigation-id>
gitcontribute validation define --kind=test --command="go test ./..." \
--working-dir=/path/to/workspace <investigation-id>
gitcontribute validation run <validation-id> --kind=base --execute
gitcontribute validation run <validation-id> --kind=candidate --execute
gitcontribute validation compare <base-run-id> <candidate-run-id>
gitcontribute readiness opportunity <opportunity-id>
gitcontribute prepare pr --approach="Bound retries with context" \
--workspace <workspace-id> <opportunity-id>
コマンドとフラグの完全なリファレンスについては、gitcontribute --help または gitcontribute <command> --help を実行してください。ほとんどの非対話型コマンドは --json を受け付けます。機械可読な出力は stdout に、進捗状況は stderr に出力されます。
次のコマンドで、ローカル TUI を起動します。
gitcontribute tui
MCP
MCP サーバーは、統合カタログを 1 つ提供します。Codex や Claude Code などのホストは、ネイティブのツール検索機能で大規模な MCP カタログを検出できるため、セットアップ時に永続的な機能プロファイルを選択する必要はありません。
gitcontribute setup --mode mcp --codex --token-source none --yes
gitcontribute setup --mode mcp --all-clients --token-source none --yes
stdio サーバーを直接起動するには、次のようにします。
gitcontribute mcp serve --transport=stdio
--read-only を追加すると、ネットワークアクセス、ローカルへの書き込み、または実行を許可するツールが除外されます。機能の境界、スナップショットからの復旧、リソースの受け渡し、一般的なツールの実行順序については、MCP カタログと構成を参照してください。
GitHub ユーザーは、第一級のアクターとして保存されます。ライブでの検出ではアイデンティティのみを記録します。プロフィール、ソーシャルアカウント、組織、ピン留めされた項目、リポジトリ、貢献に関する情報は、それぞれ独立して同期されます。データと鮮度のモデルについては、アクターコーパスを参照してください。
副作用の境界
GitContribute は、コーパスの読み取り、GitHub の読み取り、ローカルへの書き込み、プロセスの実行、外部への変更を分離します。
| 操作 | ネットワーク | ローカルへの書き込み | プロセスを実行 | GitHub への書き込み |
|---|---|---|---|---|
| 保存済みの調査を検索・確認する | いいえ | いいえ | いいえ | いいえ |
| 調査と証拠を記録する | いいえ | はい | いいえ | いいえ |
| GitHub のコンテキストを同期または取得する | はい | はい | いいえ | いいえ |
| コードを取得してインデックス化する | はい | はい | git のみ | いいえ |
| 明示的に承認された検証を実行する | デフォルトではいいえ | はい | はい | いいえ |
- コーパスの読み取りでは、データを取得しません。
- クロールやインデックス化で、リポジトリが管理するコードを実行することはありません。
- 明示的に指定された検証コマンドは、ユーザーの権限でホスト上で実行されます。
- GitContribute には、GitHub を変更する機能はありません。
- ホスト型コーパスも、製品テレメトリもありません。
境界の定義全体については、アーキテクチャを参照してください。
ドキュメント
ストレージ
GitContribute は各プラットフォームの規約に従います。
| プラットフォーム | 設定 | データ |
|---|---|---|
| Linux | $XDG_CONFIG_HOME/gitcontribute or ~/.config/gitcontribute | $XDG_DATA_HOME/gitcontribute or ~/.local/share/gitcontribute |
| macOS | ~/Library/Application Support/gitcontribute | ~/Library/Application Support/gitcontribute/Data |
| Windows | %APPDATA%\gitcontribute | %LOCALAPPDATA%\gitcontribute\Data |
デフォルトのコーパスは、データディレクトリ内の gitcontribute.db です。ローカルのセットアップを確認するには、
gitcontribute metadata または gitcontribute doctor --json を実行してください。
プラットフォームのサポート
Linux と macOS を主な開発およびテスト対象としています。Windows ビルドは
CI でテストされ、標準の %APPDATA% および %LOCALAPPDATA%
の場所を使用します。
開発
make verify
go run ./cmd/gitcontribute --help
パッケージの境界や副作用を変更する前に、 docs/architecture.md をお読みください。リポジトリのワークフローについては、 CONTRIBUTING.md をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。