286 lines
7.5 KiB
Markdown
286 lines
7.5 KiB
Markdown
---
|
||
description: GitHub IssueをProduct Backlog Item(PBI)としてリファインメントし、実装可能なタスクに分解する
|
||
argument-hint: <issue_number> [--group=N] [--from=groupN] [--edit=groupN]
|
||
allowed-tools: Bash, Read, Write, Edit, Glob
|
||
---
|
||
|
||
# GitHub Issue リファインメント・タスク分解
|
||
|
||
指定されたGitHub Issue #$1 をマイクロステップの対話を通じて、具体的な実装タスクに分解します。
|
||
|
||
## 実行モード
|
||
|
||
### 基本実行
|
||
```bash
|
||
/task-refine 123 # 全グループを順次実行
|
||
/task-refine 123 --group=1 # Group 1のみ実行
|
||
/task-refine 123 --from=group2 # Group 2から再開
|
||
/task-refine 123 --edit=group1 # Group 1のみ修正
|
||
```
|
||
|
||
## 3段階グループ構成
|
||
|
||
### Group 1: 要件・制約の確定 (5-8分)
|
||
**目的**: 何を作るかを明確化
|
||
|
||
**ステップ構成**:
|
||
- Step 1: 認証・処理方式の選択
|
||
- Step 2: 機能範囲の決定
|
||
- Step 3: セキュリティレベルの設定
|
||
- Step 4: 非機能要件の確認
|
||
|
||
**出力**: 機能要件と制約の確定
|
||
|
||
### Group 2: 技術・アーキテクチャ設計 (8-12分)
|
||
**目的**: どう実装するかを技術的に決定
|
||
|
||
**ステップ構成**:
|
||
- Step 5: 技術スタックの選択
|
||
- Step 6: データ設計・モデル構造
|
||
- Step 7: API設計・インターフェース
|
||
- Step 8: UI/UX設計方針
|
||
|
||
**前提条件**: Group 1の完了が必要
|
||
**出力**: 技術仕様と設計方針の確定
|
||
|
||
### Group 3: 実装・タスク構成 (5-8分)
|
||
**目的**: 具体的な作業手順に分解
|
||
|
||
**ステップ構成**:
|
||
- Step 9: タスク分解粒度の決定
|
||
- Step 10: 実装優先順位の設定
|
||
- Step 11: 依存関係の整理
|
||
- Step 12: 最終タスクリストの確認
|
||
|
||
**前提条件**: Group 1, 2の完了が必要
|
||
**出力**: 実装可能なタスクリスト
|
||
|
||
## 実行フロー
|
||
|
||
### 1. Issue分析と進行状況確認
|
||
```bash
|
||
# GitHub CLI でIssue情報取得
|
||
gh issue view $1 --json title,body,url
|
||
|
||
# 既存の進行状況確認
|
||
if [ -f "tasks/pbi-$1/.refine-progress.json" ]; then
|
||
# 前回の続きから再開オプション表示
|
||
fi
|
||
```
|
||
|
||
### 2. グループ別実行制御
|
||
|
||
#### Group 1実行例:
|
||
```
|
||
=== Group 1: 要件・制約の確定 ===
|
||
Progress: ▓▓▓░░░░░░░ (3/10 steps)
|
||
|
||
Step 1/4: 認証・処理方式
|
||
GitHub Issue #$1から検出キーワード: [動的表示]
|
||
|
||
Q: 主要な処理方式を選択してください
|
||
1. 認証系 (ログイン、権限管理)
|
||
2. データ処理系 (CRUD、検索、集計)
|
||
3. UI/UX系 (画面、コンポーネント)
|
||
4. 統合系 (API連携、外部サービス)
|
||
5. その他
|
||
|
||
選択: 1
|
||
|
||
Step 2/4: 機能範囲
|
||
認証系機能として、実装する機能を選択してください (複数選択可):
|
||
1. ユーザーログイン
|
||
2. ユーザー登録
|
||
3. パスワードリセット
|
||
4. 権限・ロール管理
|
||
5. プロフィール管理
|
||
6. セッション管理
|
||
|
||
選択: 1,2,3
|
||
|
||
Step 3/4: セキュリティレベル
|
||
選択した機能 (ログイン、登録、リセット) に対するセキュリティレベル:
|
||
1. 基本 (パスワード暗号化、基本バリデーション)
|
||
2. 強化 (2FA、IP制限、監査ログ)
|
||
3. 最小限 (暗号化のみ)
|
||
|
||
選択: 1
|
||
|
||
Step 4/4: 非機能要件
|
||
Q: 想定される利用規模は?
|
||
1. 小規模 (~100ユーザー)
|
||
2. 中規模 (~1,000ユーザー)
|
||
3. 大規模 (1,000ユーザー+)
|
||
|
||
選択: 2
|
||
|
||
✅ Group 1完了: 要件・制約が確定
|
||
|
||
【確定内容】
|
||
- 処理分野: 認証系
|
||
- 機能: ログイン、登録、パスワードリセット
|
||
- セキュリティ: 基本レベル
|
||
- 規模: 中規模対応
|
||
|
||
次のアクション:
|
||
1. Group 2に進む (技術・アーキテクチャ設計)
|
||
2. 後で続行 (進捗保存)
|
||
3. Group 1を修正
|
||
|
||
選択: 1
|
||
```
|
||
|
||
### 3. 進捗管理と状態保存
|
||
|
||
**.refine-progress.json 形式**:
|
||
```json
|
||
{
|
||
"issue": "$1",
|
||
"started": "2024-01-01T10:00:00Z",
|
||
"current_group": 2,
|
||
"completed_groups": [
|
||
{
|
||
"group": 1,
|
||
"completed_at": "2024-01-01T10:08:00Z",
|
||
"decisions": {
|
||
"processing_type": "authentication",
|
||
"features": ["login", "registration", "password_reset"],
|
||
"security_level": "basic",
|
||
"scale": "medium"
|
||
}
|
||
}
|
||
],
|
||
"current_step": 6,
|
||
"session_data": {
|
||
"tech_stack_proposal": "node_express",
|
||
"database_preference": "postgresql"
|
||
}
|
||
}
|
||
```
|
||
|
||
### 4. 最終ファイル生成
|
||
|
||
#### 拡張されたREADME.md形式:
|
||
```yaml
|
||
---
|
||
issue: $1
|
||
title: <issue_title>
|
||
url: <github_url>
|
||
phase: completed
|
||
refinement_completed: <ISO8601>
|
||
created: <ISO8601>
|
||
updated: <ISO8601>
|
||
---
|
||
|
||
# PBI #$1
|
||
|
||
## リファインメント履歴
|
||
|
||
### Group 1: 要件・制約確定 ✅
|
||
- 処理分野: 認証系
|
||
- 機能範囲: ログイン、登録、パスワードリセット
|
||
- セキュリティ: 基本レベル (暗号化、バリデーション)
|
||
- 規模: 中規模対応 (~1,000ユーザー)
|
||
|
||
### Group 2: 技術・アーキテクチャ設計 ✅
|
||
- バックエンド: Node.js + Express + PostgreSQL
|
||
- フロントエンド: React + TypeScript (既存環境)
|
||
- 認証方式: JWT (24時間有効期限)
|
||
- API: RESTful 4エンドポイント
|
||
|
||
### Group 3: 実装・タスク構成 ✅
|
||
- タスク数: 8個
|
||
- カテゴリ: Setup(1), Models(2), Services(2), UI(2), Tests(1)
|
||
- 実装期間: 5-8日 (1日1-2タスク想定)
|
||
|
||
## タスク一覧 (カテゴリ別)
|
||
|
||
### Setup
|
||
- [ ] プロジェクト環境構築 (todo-setup-1.md)
|
||
|
||
### Models
|
||
- [ ] User model実装 (todo-models-1.md)
|
||
- [ ] 認証関連テーブル設計 (todo-models-2.md)
|
||
|
||
### Services
|
||
- [ ] 認証API実装 (todo-services-1.md)
|
||
- [ ] パスワードリセット機能 (todo-services-2.md)
|
||
|
||
### UI
|
||
- [ ] ログインフォーム実装 (todo-ui-1.md)
|
||
- [ ] 登録フォーム実装 (todo-ui-2.md)
|
||
|
||
### Tests
|
||
- [ ] 認証機能テスト (todo-tests-1.md)
|
||
|
||
## 要件トレーサビリティ
|
||
- ログイン機能 → setup-1, models-1, services-1, ui-1, tests-1
|
||
- 登録機能 → models-1, services-1, ui-2, tests-1
|
||
- リセット機能 → models-2, services-2, tests-1
|
||
```
|
||
|
||
#### カテゴリ別タスクファイル形式:
|
||
```yaml
|
||
---
|
||
parent: $1
|
||
category: setup
|
||
priority: high
|
||
estimated_hours: 4
|
||
created: <ISO8601>
|
||
started: null
|
||
completed: null
|
||
---
|
||
|
||
# プロジェクト環境構築
|
||
|
||
## やること
|
||
Node.js + Express + PostgreSQL の認証プロジェクト環境を構築する
|
||
|
||
## 成功条件
|
||
- [ ] package.json作成 (express, jwt, bcrypt, pg依存関係)
|
||
- [ ] PostgreSQL接続設定完了
|
||
- [ ] 基本的なサーバー起動確認
|
||
- [ ] 環境変数設定 (.env.example作成)
|
||
|
||
## 技術仕様
|
||
- Node.js: v18+
|
||
- Express: v4.x
|
||
- PostgreSQL: v14+
|
||
- JWT: jsonwebtoken
|
||
- 暗号化: bcrypt
|
||
|
||
## 制約
|
||
- 環境変数でDB接続情報管理
|
||
- セキュリティ設定は本番想定
|
||
- 既存Reactプロジェクトとの統合考慮
|
||
|
||
## 実装メモ
|
||
(作業中に追記)
|
||
```
|
||
|
||
## エラーハンドリング
|
||
|
||
### 実行前チェック
|
||
- GitHub CLI認証状態確認
|
||
- Issue存在確認
|
||
- tasksディレクトリアクセス権確認
|
||
|
||
### 進行中のエラー処理
|
||
- 不正な選択肢入力時の再プロンプト
|
||
- ネットワークエラー時の状態保存
|
||
- 強制終了時の進捗復旧
|
||
|
||
### グループ間整合性チェック
|
||
- Group 2開始時にGroup 1決定事項の参照
|
||
- Group 3開始時にGroup 1, 2決定事項の参照
|
||
- 矛盾検出時の修正提案
|
||
|
||
## 完了条件
|
||
|
||
- 全3グループが正常完了している
|
||
- `tasks/pbi-$1/README.md` にリファインメント履歴が記録されている
|
||
- カテゴリ別のタスクファイルが適切に生成されている
|
||
- 各タスクが実装可能なレベルまで詳細化されている
|
||
- 要件トレーサビリティが確立されている
|
||
|
||
実行を開始しますか? |