概要
Vouch は、オープンソースプロジェクト向けの 信頼管理システム。 vouched/denounced の概念で貢献者の信頼性を明示的に管理。 GitHub Actions やCLI経由で容易に導入・運用可能。 Web of Trust 構築により、複数プロジェクト間で信頼の共有が可能。 Ghostty で実験運用中、今後も改善予定。
Vouch: プロジェクト信頼管理システム
- Vouch は、プロジェクト内で特定の操作を行う前に 信頼されている人物(vouched) であることを必須とするシステム
- 明示的な排除(denounced) も可能で、信頼できない人物はプロジェクトへの関与をブロック
- 実装は 汎用的 で、どんなプロジェクト・コードホスティングサービスでも利用可能
- GitHub統合 を標準サポートし、GitHub ActionsやCLIから運用可能
- vouchリスト はシンプルなフラットファイル形式で管理、POSIXツールや任意のプログラミング言語で容易にパース可能
Web of Trustと信頼の共有
- vouchリスト は他プロジェクトのリストを参照でき、 信頼のネットワーク(Web of Trust) を構築可能
- 価値観を共有する複数プロジェクト間で 信頼判断の連携 が実現
- あるプロジェクトで信頼されたユーザーは、他プロジェクトでも自動的に信頼される仕組み
背景と目的
- 従来のOSSは「 信頼して検証する」文化だが、AIツールの普及で低品質な貢献が増加
- 従来の参入障壁 では信頼性を担保できなくなった現状
- 明示的な 信頼モデル への移行を提案し、信頼された人物のみが貢献できる体制を目指す
vouch/denounceの運用
- 誰を信頼・排除するか、その結果の扱いは各プロジェクトが自由に決定
- プロジェクトやコミュニティの方針に合わせた柔軟な運用が可能
GitHub統合と利用方法
- GitHub Actions を使い、PR作者のvouch状態チェックや自動クローズが可能
- manage-by-discussion :ディスカッションコメントでvouch/denounce操作
- manage-by-issue :イシューコメントでvouch/denounce操作
- 詳細な運用例は 公式リポジトリ を参照
CLI(Nushellモジュール)
- Nushell のみで動作、追加依存なし
- 各コマンドは
helpで詳細確認可能 - ローカルコマンド例
- ユーザーのvouch状態確認:
vouch check <ユーザー名> - ユーザーをvouchedリストに追加:
vouch add <ユーザー名> - ユーザーをdenounce:
vouch denounce <ユーザー名> --reason "理由"
- ユーザーのvouch状態確認:
- GitHub統合コマンド例
- PR作者のvouch状態チェック:
vouch gh-check-pr <PR番号> --repo <owner/repo> - イシューコメント経由でvouch/denounce:
vouch gh-manage-by-issue <issue番号> <comment_id> --repo <owner/repo>
- PR作者のvouch状態チェック:
コマンド出力ステータス
- vouched :信頼済み
- denounced :排除済み
- unknown :未判定
- skipped :botや書き込み権限コラボレーター
- allowed/closed/unchanged :各アクション結果
カスタマイズ
- vouch/denounceキーワードは
--vouch-keyword・--denounce-keywordで変更可能
ライブラリ・スクリプト連携
- libサブモジュール でスクリプトからvouchリスト操作可能
- 例:ユーザーの状態取得、追加、排除、削除
vouchedファイルフォーマット(.td)
- .tdファイル (Trustdown形式)でvouchリスト管理
- 1行1ハンドル、アルファベット順、@不要
- プラットフォーム指定例:
github:mitchellh - denounceは
-プレフィックス、理由はスペース区切りで追記可能 - コメントは
#で記載 - Nushellのopenコマンド で構造化テーブルとして扱える
- from td/to tdコマンド も利用可能
Trustdown(.td)仕様について
- Trustdown はMarkdownをもじった信頼リスト仕様
- vouchシステムの安定運用後、正式な仕様公開予定
注意事項・今後
- Ghostty プロジェクトで実験運用中
- 利用経験・フィードバックを元に今後も継続的に改善予定