kuju63 / kuju63/code-review-agents
[Feature]: レビュー対象の登録とレビュー結果を確認する画面の作成
- Dominant language
- HTML
- Stars
- 0
- Forks
- 0
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 96
Description
## Is your feature request related to a problem?
現状、レビュー対象(organization/repository/PR)を登録する手段が存在しない。レビューを実行するには `/orchestrator` などのA2Aエンドポイントを直接叩く必要があり、結果も `TaskStore`(インメモリ・TTL削除)にしか残らない。そのため、レビューを依頼する側にも結果を確認する側にも「画面」が存在せず、APIの内部構造を知っている人間でなければこの機能を使えない状態になっている。
## Describe the solution you'd like
ローカル実行・認証不要を前提に、以下3つの操作をWeb画面から行えるようにする。
1. レビュー対象(organization(user), repository, PR, Commit)を登録する
- 重複登録は許容し、再レビューとして扱う(一意制約は設けない)
- 選択可能なPRはopenなもののみ
2. 登録済みレビュー対象のレビュー結果を確認する
- GitHubからPRの変更コンテンツを取得し、対象行にレビュー文言を表示する形式
3. ユーザーが処理済みと判断したレビュー対象をcloseできる
### 内訳(Sub-issue)
規模が大きい(新規永続化層・新規登録API・GitHub PR一覧取得・新規フロントエンド)ため、以下3件のSub-issueに分割して進める。
1. GitHub organization/repository/open PR一覧取得機能の追加
2. レビュー対象の登録・結果保存・close管理を行う永続化層とAPIの追加
3. レビュー対象登録・結果確認を行うフロントエンド画面の追加
### 受け入れ条件(全体)
- 上記3件のSub-issueが全て完了し、ブラウザから「登録 → 結果確認 → close」の一連の操作が行える。
## Describe alternatives you've considered
CLIのみで完結させる案もあったが、要件で明確に「画面」が求められているため不採用。
## Additional context
- 現状のアーキテクチャ調査結果:
- `src/code_review_agent/api/app.py`: FastAPIアプリ。PR情報収集・スタック別レビュアー・リード技術者・オーケストレーターを各々A2Aルーターとしてマウントしているのみで、UI/登録/結果保存の口は存在しない。
- 永続化層は存在しない。`src/code_review_agent/a2a/task_store.py` の `TaskStore` はインメモリdict+TTL自動削除で、レビュー対象や結果の恒久保存には使えない。
- レビュー結果の中核データは `src/code_review_agent/models/lead_engineer.py` の `LeadEngineerReport`(`decisions: [{file_path, line, comment, verdict, severity, impact_category, final_priority, ...}]`)であり、これが「対象行にレビュー文言を表示」の元データになる。
- スコープ外: 認証・認可(ローカル実行前提のため不要)。
Contributor guide
Research direction
Read src/code_review_agent/api/app.py, src/code_review_agent/a2a/task_store.py, and src/code_review_agent/models/lead_engineer.py to understand the current API, temporary storage, and review report data. Use the three listed sub-issues to scope the persistence/API, GitHub PR retrieval, and frontend work. Done means a browser can register a target, display review results on changed lines, and close the target.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- fastapi, github, python
- Domain
- api, backend, database, full-stack
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 35/100