ロール定義書
1. 概要
本プラットフォームでは、業務委託エンジニアが報酬付き Issue を取得し、AI 開発を行い MR(Merge Request)で納品するワークフローを採用する。ユーザーには以下の 3 つのロールを定義し、それぞれ明確に権限を分離する。
| ロール | 概要 |
|---|---|
| PM/マネージャー | プロジェクト・Issue の作成、報酬設定、予算管理、全体ダッシュボード閲覧 |
| レビュワー | MR レビュー、承認/フィードバック、報酬確定承認 |
| 業務委託エンジニア | Issue 閲覧・取得・着手、MR 提出、自身の報酬履歴確認 |
2. ロール詳細
2.1 PM/マネージャー
プロジェクト全体を統括するロール。予算の設定・管理、Issue の作成と報酬額の決定、プロジェクト横断のダッシュボード閲覧を行う。
主な責務:
- プロジェクトの作成・設定・アーカイブ
- Issue の作成、報酬金額の設定・変更
- 予算枠の設定と消化状況の管理
- レビュワーの任命
- 全プロジェクト横断でのダッシュボード閲覧
- エンジニアの招待・ロール付与
2.2 レビュワー
MR のコードレビューを担当し、品質を担保するロール。レビュー結果に基づき報酬確定を承認する。
主な責務:
- 提出された MR のコードレビュー
- MR への承認(Approve)またはフィードバック(Request Changes)
- 報酬確定の承認(レビュー通過後)
- 担当プロジェクト内の Issue・MR 状況の閲覧
2.3 業務委託エンジニア
報酬付き Issue に着手し、AI を活用した開発を行い、MR で納品するロール。
主な責務:
- 着手可能な Issue の一覧閲覧
- Issue の取得(アサイン)・着手
- ブランチ作成、コード実装、MR 提出
- 自身の報酬履歴・支払いステータスの確認
3. 権限マトリクス(機能 x ロール)
凡例: O = 許可 / - = 不許可 / △ = 条件付き許可
3.1 プロジェクト管理
| 機能 | PM/マネージャー | レビュワー | 業務委託エンジニア |
|---|---|---|---|
| プロジェクト作成 | O | - | - |
| プロジェクト設定変更 | O | - | - |
| プロジェクトアーカイブ | O | - | - |
| プロジェクト一覧閲覧 | O(全件) | O(担当のみ) | O(参加のみ) |
| プロジェクト詳細閲覧 | O | O(担当のみ) | O(参加のみ) |
3.2 Issue 管理
| 機能 | PM/マネージャー | レビュワー | 業務委託エンジニア |
|---|---|---|---|
| Issue 作成 | O | - | - |
| Issue 編集 | O | - | - |
| Issue 削除 | O | - | - |
| 報酬金額設定・変更 | O | - | - |
| Issue 一覧閲覧 | O(全件) | O(担当PJ) | O(着手可能のみ) |
| Issue 詳細閲覧 | O | O(担当PJ) | △(着手可能 + 自分が着手中) |
| Issue 取得(アサイン) | - | - | O |
| Issue 着手放棄 | - | - | O(自分のもの) |
3.3 MR(Merge Request)管理
| 機能 | PM/マネージャー | レビュワー | 業務委託エンジニア |
|---|---|---|---|
| MR 提出 | - | - | O |
| MR 一覧閲覧 | O(全件) | O(担当PJ) | O(自分のもの) |
| MR 詳細閲覧 | O | O(担当PJ) | O(自分のもの) |
| MR コードレビュー | - | O | - |
| MR 承認(Approve) | - | O | - |
| MR フィードバック | O(コメントのみ) | O | - |
| MR マージ実行 | O | O | - |
3.4 報酬・予算管理
| 機能 | PM/マネージャー | レビュワー | 業務委託エンジニア |
|---|---|---|---|
| 予算枠設定 | O | - | - |
| 予算消化状況閲覧 | O | - | - |
| 報酬確定承認 | - | O | - |
| 報酬履歴閲覧(全体) | O | - | - |
| 報酬履歴閲覧(自分) | - | - | O |
| 支払いステータス閲覧 | O(全体) | - | O(自分のみ) |
3.5 ユーザー・ロール管理
| 機能 | PM/マネージャー | レビュワー | 業務委託エンジニア |
|---|---|---|---|
| ユーザー招待 | O | - | - |
| ロール付与・変更 | O | - | - |
| ユーザー一覧閲覧 | O | O(担当PJ) | - |
| 自分のプロフィール編集 | O | O | O |
3.6 ダッシュボード
| 機能 | PM/マネージャー | レビュワー | 業務委託エンジニア |
|---|---|---|---|
| 全体ダッシュボード | O | - | - |
| プロジェクト別ダッシュボード | O | O(担当PJ) | - |
| 個人ダッシュボード | O | O | O |
4. ロールの階層と制約
4.1 ロールの排他性
- 1 ユーザーは 1 つのロール のみ保持する(兼任不可)
- ロール変更は PM/マネージャーのみが実施可能
- ロール変更時は既存のアサイン・レビュー担当を引き継ぎ処理する必要がある
4.2 ロール付与フロー
- PM/マネージャーがプラットフォーム上でユーザーを招待(メールアドレス指定)
- 招待時にロールを指定
- 招待されたユーザーが GitLab OAuth でログイン
- 初回ログイン時にプロフィール設定を完了
- ロールが有効化される
4.3 GitLab ロールとの対応
| プラットフォームロール | GitLab プロジェクトロール |
|---|---|
| PM/マネージャー | Owner / Maintainer |
| レビュワー | Maintainer |
| 業務委託エンジニア | Developer |
GitLab 側のロールはリポジトリ操作(push、merge 等)の制御に使用し、プラットフォーム側のロールはアプリケーションレベルの権限制御に使用する。
5. 将来の拡張
- 管理者(Admin)ロール: プラットフォーム全体の設定変更、ユーザー管理、システム設定
- 経理ロール: 支払い処理、請求書発行、経理レポート
- オブザーバーロール: 閲覧のみの限定的なアクセス