オーナーシップと境界 - AI Clients
このページは、AI Clients のシステムで機能を作成・保守するすべての関係者に明確さをもたらし、期待値を明確にします。
背景
複数のグループが、AI Clients を通じて公開される機能に貢献しています。これによりオーナーシップとメンテナンス責任に関する曖昧さが生じる可能性があります。本ドキュメントは、一貫したオーナーシップの帰属、関係者全員の期待値の整合、効率の改善のために合意されたアプローチを概説します。
システムの一部を所有するということは、影響を受ける部分の機能開発、バグ修正、一般的なメンテナンスに責任を持つことを意味します。理想的には、所有するシステムの一部にメンテナーを配置し、AI Clients ステージからより独立した形にするのが望ましいですが、これは厳密な要件ではありません。
システム概要
現在、AI Clients を通じて統合される外部機能は、以下のアーキテクチャに従います。
- gitlab-uiで構築された UI コンポーネント
- エディターとの統合: Webview
- Webview はエディター内に表示される Web ページです
- エディターとの統合: ビジネスロジック
- ビジネスロジックはエディター固有の統合を表します(例: TypeScript と VS Code Extension API、Kotlin と JetBrains Plugin API)
レガシーオーナーシップモデル
現在 Duo Chat で使用中:
| システムの一部 | 責任グループ |
|---|---|
gitlab-ui の Chat UI コンポーネント | AI-Powered:Duo Chat グループ。 |
| VS Code - Chat Webview(Web ページ) | AI-Powered:Duo Chat グループ、AI-Powered:Editor Extensions グループのサポートあり |
| VS Code - Chat ビジネスロジック(拡張機能) | AI-Powered:Editor Extensions グループ |
| JetBrains - Chat Webview(Web ページ) | AI-Powered:Duo Chat グループ、AI-Powered:Editor Extensions グループのサポートあり |
| JetBrains - Chat ビジネスロジック(プラグイン) | AI-Powered:Editor Extensions グループ |
Language Server で実装される機能のオーナーシップモデル
| システムの一部 | 責任グループ |
|---|---|
| UI コンポーネント | UI コンポーネントを所有するグループ |
| LS Webview & プラグイン | UI コンポーネントを所有するグループ、AI-Powered:Editor Extensions グループのサポートあり |
| VS Code 統合 | AI-Powered:Editor Extensions グループ |
| JetBrains 統合 | AI-Powered:Editor Extensions グループ |
| Visual Studio 統合 | AI-Powered:Editor Extensions グループ |
他者への通知プロセス
- チームが AI Clients のサポートを必要とする機能の作業を開始する場合:
- PM/EM は AI-Powered:AI-Clients グループの PM/EM に通知します - これにより、チームは近い将来サポートに必要なキャパシティを予測できます
- 機能の実装
- レガシーオーナーシップモデル(すべての拡張機能で個別に実装される Duo Chat)
- 機能の UI が準備できたら:
- 作成チームが統合 MR をオープンします
- AI-Powered:AI-Clients ステージはエンジニアをアサインし、MR を引き継いで統合を完了します
- 機能の UI が準備できたら:
- Language Server オーナーシップモデル
- Language Server の変更が完了したら、機能チームは AI-Powered:AI-Clients ステージに通知し、ステージが Language Server の変更をエディター拡張機能に統合します。
- レガシーオーナーシップモデル(すべての拡張機能で個別に実装される Duo Chat)
最終更新 September 12, 2026: Merge pull request #526 from kyama0/translation/batch-2026-09-12-1 (
a1f3c26a)