Adds a public set of rules for the External Maintainer role: who qualifies, how nominations work, what permissions Maintainers gain, what's expected of them, and how step-down works. The Core Team's individual roster is intentionally not enumerated. What's public is the rules everyone plays by. - New file: MAINTAINERS.md (English authoritative version) + 5 locale variants matching the existing CONTRIBUTING.md i18n surface (de, fr, ja-JP, pt-BR, zh-CN). Non-EN/non-zh-CN variants are machine-translated drafts marked at the top — native-speaker review is welcome via follow-up PRs. - CONTRIBUTING.md (and its 5 locale variants): adds a short Becoming a Maintainer section that points at MAINTAINERS.md, so the rules live in one place and translation drift is bounded. Decisions not in this PR (intentional): - No internal Core Team roster. - No internal observability dashboards. - No nomination PR / public voting flow (Core-Team-consensus-driven for now; to be revisited once External Maintainers exceed 5). Co-authored-by: Joey Li <lijinwei@open-design.ai>
13 KiB
Maintainers
English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
このドキュメントは、nexu-io/open-design の Maintainer になるため、その役割を務めるため、そして退任するためのルールを定めるものです。Core Team の個別のメンバー一覧は内部で管理されており、ここには列挙していません。公に重要なのは、全員が従うルールそのものです。
ステータス: v1、2026-05-11 にドラフト作成。
CONTRIBUTING.mdのコンパニオン文書です。CONTRIBUTING.md は、コントリビューターを完全なルールのためにこちらへ案内しています。
役割
| 役割 | 権限 |
|---|---|
| Contributor | 1 件以上の merged PR を持つすべての人。特別な権限はありません。 |
| External Maintainer | 後述のルールにより昇格したコミュニティのコントリビューター。レビュー、approve、issue のクローズ/リオープン、issue の自己アサインが可能です。merge button をクリックすることはできません — それは Core Team に留まります。 |
| Core Team | Open Design の内部チーム。リポジトリへのフルライト権限を持ち、ガバナンス上の決定における最終権限を有します。メンバー一覧は内部で管理されています。 |
特に断りのない限り、本ドキュメントの残りの部分は External Maintainer に関するものです。
Contributor にはできず Maintainer にできること
| アクション | Contributor | Maintainer |
|---|---|---|
| PR を approve する | ⚠️ コメント扱いとなり、必要な承認にはカウントされません | ✓ merge に必要な承認としてカウントされます |
| issue のクローズ / リオープン | 自分が開いた issue のみ | ✓ 任意の issue |
| オープンかつ未アサインの issue を自己アサイン(P0 を優先) | ✗ | ✓ |
Merge の要件
PR は — 誰が作成したものであれ — 以下の 3 つすべて が必要です:
- コードコンフリクトがないこと。
- CI が完全にグリーンであること。
- Maintainer または Core Team メンバーから少なくとも 1 件の承認があること。
ほとんどの PR は Maintainer の承認を経て merge されます。これは、Maintainer の信頼がプロジェクトの日々の運営に最も直接的に表れる形です。
Maintainer になる方法
参入条件は 3 つ あります。3 つすべてを満たす必要があります。
1. 貢献量
nexu-io/open-designへの 20 件以上の merged PR。
これはあくまでソフトな下限であり、自動的なチケットではありません。20 PR に到達することで検討対象に入りますが、役割が保証されるわけではありません。
2. アカウントの品質(ソックパペット対策・ボット対策)
候補者の GitHub プロフィールを 7 つの観点で確認します。7 項目中少なくとも 5 つの admission line をパスし、かつ veto line を 1 つもトリガーしないこと。
| # | 観点 | Admission line | Veto line |
|---|---|---|---|
| 1 | GitHub アカウントの年齢 | 1 年以上 | 90 日未満 |
| 2 | パブリックリポジトリ数 | 3 以上 | 0 |
| 3 | フォロワー数 | 10 以上 | 3 未満 |
| 4 | フォロワー / フォロー比率 | 0.30 超 | 0.05 未満(典型的なフォローファームのパターン) |
| 5 | プロフィールの完成度 | カスタムアバター かつ bio / company / blog / twitter のうち少なくとも 1 つ | デフォルトアバター かつ bio/company/blog がすべて空 |
| 6 | クロスプロジェクト活動 | 別の パブリックリポジトリで少なくとも 1 件の merged PR、または継続的な issue/star 活動 | merged PR が当リポジトリのみ |
| 7 | アカウントの状態 | GitHub プラットフォームによる制限なし(spam/banned/restored) | 上記のいずれかに該当 |
初期プロジェクトの猶予条項(リポジトリが 6 ヶ月を迎えた時点で自動失効)
nexu-io/open-design が初回コミットから 6 ヶ月未満である間は、以下の場合に クロスプロジェクト活動 の veto(#6)を Core Team の合意により免除できます:
- 観点 1、2、3、5 が admission line を明確に上回っていること。かつ
- 当リポジトリにおける候補者の PR 品質が、Core Team の実地レビューにより高いと判断されること。
免除は、候補者の名前と日付とともに Core Team の内部記録に記載しなければなりません。リポジトリが 6 ヶ月に達した後は、この猶予条項は利用できなくなります。
3. 貢献の品質(Core Team の判断)
これは定性的なものであり、公式に基づくものではありません。Core Team は以下を見ます:
- merged PR の コード品質(正確さ、スコープの規律、リポジトリ境界の尊重)。
- 他者の PR に残されたレビューコメントの レビュー品質。
- コミュニティへの参加 — Discussions、issue トリアージ、Discord での関与。
- 協働のシグナル — フィードバックへの応答性、修正への意欲。
最初の 2 つの基準を満たすことで候補者プールに入ります。この 3 つ目の閾値を超えることが、推薦されるための条件です。
選考プロセス
- Core Team メンバーが内部で候補者を提起します。
- Core Team が合意に至ります。
- Core Team メンバーが非公開で本人に連絡し、意思を確認します。
- オンボーディング。
- 公開アナウンス。
推薦 PR も公開投票も固定任期もありません。意図しているのは、K8s/Apache 方式の approver 投票モデルの逆です — プロジェクトの初期段階では、軽量な Core Team の合意の方が早く動き、同じ品質の結果を生み出します。External Maintainer のコホートが 5 名を超えて成長した時点で、このセクションは見直されます。
責任と期待
ハードなノルマはありません。 週単位の PR レビュー件数も、最低限の issue トリアージ率も、応答時間の SLA もありません。Maintainership は信頼の認知であり、無償の仕事ではありません。
精神としてお願いしたいことは:
- 文脈を理解している PR を approve すること。理解していないときは保留すること。
- merge 要件(§「Merge の要件」)を尊重すること — あなたの承認は実際のシグナルであり、形式的な押印ではありません。
- 長期間活動から離れる場合は
#maintainersに知らせておくこと。 #maintainersで共有される未公開のロードマップは機密として扱うこと。
Core Team が悪いケースの行動パターン(形式的な承認、悪意ある issue クローズ、未公開ロードマップの漏洩など)を観察した場合、§「Step-down — 理由ありの場合」に基づき権限が剥奪されます。
Maintainer 限定のアクセス
上記のリポジトリ権限に加えて、Maintainer は広いコミュニティが得られないものをいくつか受け取ります:
- Discord
#maintainersチャンネル — Core Team と共有されるプライベートな作業スペースです。デザインプレビュー、RFC ドラフト、未公開のロードマップに関する内部調整に使用されます。 - 機密ロードマップ — まだアナウンスされていない作業への早期可視性。Maintainer は、Core Team メンバーが公にアナウンスするまで、その内容を機密として扱うことに同意します。
- Core Team への直通ライン —
#maintainersのメッセージは、公開 Discussions よりも迅速かつ実質的な応答を得られます。Core Team は、アーキテクチャやロードマップの決定について、Maintainer の意見を真摯に求めます。 - Maintainer バッジ — GitHub プロフィールおよび MAINTAINERS 関連のリポジトリ表面に表示される、公的な信頼の印(GitHub のバッジ機能が整い次第展開)。
- 昇格時の公開的な顕彰 — 加入時に Twitter、GitHub Discussions、Discord でアナウンスされます。
Step-down
Maintainership は終身任用ではありません。3 つの退出経路があります。
グレースフルな退任(自発的)
- Maintainer が Core Team にメッセージを送るか、
#maintainersに投稿します。 - 24 時間以内に権限が剥奪されます。
- Maintainer は Emeritus ステータスへ移行します。
- 公の理由は不要です。
非アクティブによる移行
以下の いずれか に該当する場合、Maintainer は非アクティブ移行の対象として検討されます:
- 90 日連続でアクティビティのシグナルがない(merged PR、レビューコメント、issue トリアージ、Discussion または Discord での実質的な参加)、または
- 60 日連続で @-mention(PR レビューリクエスト、issue アサイン)に応答していない。
プロセス:
- Core Team が
#maintainersで非公開に Maintainer を @-mention し、14 日間の応答期間 を与えます。 - 14 日以内に実質的な応答がない場合、Maintainer は Emeritus へ移行し、権限が剥奪されます。
- GitHub Discussions に、短くて温かい公開ノートを投稿します:「貢献ありがとうございました — Emeritus に移行されました。いつでも戻ってきてください。」
- 戻るのは簡単です — 下記「Emeritus」を参照してください。
理由ありの Step-down
トリガーとなるもの:
- 悪いケースの行動の繰り返し(例:基準を満たさない PR への形式的承認、悪意ある issue クローズ、権限の濫用)。
- プロジェクトの行動規範違反。
- セキュリティ等級のインシデント(侵害されたアカウントの速やかな報告がない、未公開ロードマップの意図的な漏洩など)。
プロセス:
- 任意の Core Team メンバーが議論を開始できます。
- アクションを取る前に 少なくとも 3 名の Core Team メンバー の同意が必要です(Core Team 全員の合意は必要ありません)。
- 決定から 24 時間以内に:権限の剥奪、
#maintainersからの除外、Maintainer ロスターからの削除(Emeritus へは移行しません)。 - 影響を受けた本人には決定と理由が通知され、1 度だけ異議申し立てが可能です。
原則は Maintainer を残す方向にバイアスをかける ことです。1 度の小さな失敗は強制退任の理由にはなりません。理由ありの経路は、繰り返されるパターン、または重大な単発インシデントのみを対象とします。
Emeritus
グレースフルに退任した、または非アクティブ経由で移行した Maintainer は Emeritus となります。Emeritus ステータスは:
- write/approve/close 権限を削除します。
- (内部)ロスターの Emeritus セクションに本人の名前を残します。
- Discord
#maintainersへのアクセスを維持します(読み取りまたは投稿 — Maintainer の選択)。 - 継続的な責任は伴いません。
Emeritus からの復帰
最もシンプルな復帰経路:直近 30 日以内に 3 件の merged PR を達成すれば、Core Team が権限を復元します。再推薦は不要です。
Emeritus の趣旨は、人生には色々あるということを認めることです — サバティカル、転職、子育てなど — どちら側にもドラマや社会的コストを生じさせることなく。
このドキュメントの変更について
本ドキュメントのルールは、Core Team の合意により改定可能です。実質的な変更(参入基準、退任しきい値)は、いかなる現役候補者にも適用される前に GitHub Discussions でアナウンスされます。編集上の明確化は直接反映できます。