Initial commit
This commit is contained in:
410
commands/task-sync.md
Normal file
410
commands/task-sync.md
Normal file
@@ -0,0 +1,410 @@
|
||||
---
|
||||
description: GitHub Issueの最新情報を同期してタスクとの整合性を確認する(リファインメントグループ・カテゴリ考慮)
|
||||
argument-hint: <issue_number> [--force-rerefine] [--preserve-completed]
|
||||
allowed-tools: Bash, Read, Write, Edit, Glob
|
||||
---
|
||||
|
||||
# GitHub Issue 同期
|
||||
|
||||
指定されたGitHub Issue #$1 の最新情報をローカルのPBIデータと同期し、リファインメントグループとカテゴリ構造を考慮した再構成を提案します。
|
||||
|
||||
## 同期オプション
|
||||
|
||||
```bash
|
||||
/task-sync 123 # 標準同期(変更検知時のみ更新)
|
||||
/task-sync 123 --force-rerefine # 強制的にリファインメント再実行
|
||||
/task-sync 123 --preserve-completed # 完了タスクは保護して同期
|
||||
```
|
||||
|
||||
## 実行内容
|
||||
|
||||
### 1. 多層同期状況確認
|
||||
|
||||
**ローカル情報の取得:**
|
||||
- `tasks/pbi-$1/README.md` からローカルの最終更新日時を取得
|
||||
- リファインメント完了フェーズ(phase)の確認
|
||||
- `.refine-progress.json` からグループ進捗の確認
|
||||
- カテゴリ別タスク状況の把握
|
||||
|
||||
**リモート情報の取得:**
|
||||
```bash
|
||||
gh issue view $1 --json title,body,url,updatedAt,labels,milestone
|
||||
```
|
||||
|
||||
**多層変更検知:**
|
||||
- **Issue層**: タイトル、本文、ラベル、マイルストーンの変更
|
||||
- **リファインメント層**: 既存のGroup決定事項との整合性
|
||||
- **タスク層**: カテゴリ構造と実装方針の妥当性
|
||||
- **時系列層**: Issue更新とローカル更新の時間差分析
|
||||
|
||||
### 2. 同期状況の表示(多層分析)
|
||||
|
||||
```
|
||||
=== GitHub Issue #$1 同期状況 ===
|
||||
|
||||
📊 基本情報
|
||||
ローカル最終更新: 2024-01-15T10:30:00Z
|
||||
Issue最終更新: 2024-01-16T14:20:00Z
|
||||
リファインメントフェーズ: completed (Group 3完了)
|
||||
実装進捗: 3/8 タスク完了 (37.5%)
|
||||
|
||||
🔍 変更検出結果
|
||||
✅ タイトル: 変更なし
|
||||
⚠️ 本文: 更新あり (新機能要件追加の可能性)
|
||||
✅ ラベル: 変更なし
|
||||
⚠️ マイルストーン: v1.0 → v1.1 に変更
|
||||
|
||||
📋 リファインメント整合性チェック
|
||||
Group 1 (要件・制約): 📝 再確認が必要
|
||||
- Issue本文の新要件がGroup 1決定と矛盾する可能性
|
||||
Group 2 (技術設計): ✅ 整合性維持
|
||||
- 技術スタック選択に影響なし
|
||||
Group 3 (タスク構成): ⚠️ 見直し推奨
|
||||
- 新要件により追加タスクが必要な可能性
|
||||
|
||||
🏗️ カテゴリ別影響分析
|
||||
Setup: ✅ 影響なし (完了済み)
|
||||
Models: ⚠️ 新データ要件の可能性
|
||||
Services: ⚠️ API拡張が必要な可能性
|
||||
UI: 📝 新画面要件を確認必要
|
||||
Tests: ⚠️ テストケース追加が必要な可能性
|
||||
|
||||
=== 更新されたIssue内容(抜粋) ===
|
||||
【新機能要件】
|
||||
+ "ユーザーは複数の認証方法を選択できる"
|
||||
+ "ソーシャルログイン(Google、GitHub)を追加"
|
||||
|
||||
【変更された要件】
|
||||
~ "パスワードリセット" → "パスワードリセット + 2FA設定"
|
||||
|
||||
... (続きは GitHub Issue で確認)
|
||||
```
|
||||
|
||||
### 3. 多層ローカル情報の更新
|
||||
|
||||
**README.mdの段階的更新:**
|
||||
```yaml
|
||||
---
|
||||
issue: $1
|
||||
title: <最新のタイトル>
|
||||
url: <最新のURL>
|
||||
phase: <current_phase>
|
||||
sync_history:
|
||||
- date: 2024-01-16T14:30:00Z
|
||||
changes: ["milestone_updated", "requirements_added"]
|
||||
impact_analysis: "Group1_recheck_required"
|
||||
created: <元の作成日時>
|
||||
updated: <現在の日時>
|
||||
---
|
||||
```
|
||||
|
||||
**同期履歴の記録:**
|
||||
- 同期実行日時と検出した変更内容
|
||||
- 影響を受けるリファインメントグループの特定
|
||||
- カテゴリ別の影響度評価
|
||||
- 推奨される次のアクション
|
||||
|
||||
**リファインメント整合性の更新:**
|
||||
- `.refine-progress.json` に同期結果を反映
|
||||
- Group決定事項の再検証が必要な箇所をマーク
|
||||
- カテゴリ別タスクの妥当性フラグ更新
|
||||
|
||||
### 4. 構造化タスク再構成の検討
|
||||
|
||||
**変更内容のレイヤー別分析:**
|
||||
```
|
||||
📊 要件レイヤー分析
|
||||
新機能: ソーシャルログイン追加
|
||||
機能拡張: 2FA機能の追加
|
||||
削除機能: なし
|
||||
優先度変更: マイルストーン v1.0 → v1.1
|
||||
|
||||
🏗️ アーキテクチャへの影響
|
||||
認証フロー: 大幅変更が必要
|
||||
データモデル: user_auth_methods テーブル追加
|
||||
API設計: OAuth エンドポイント追加
|
||||
セキュリティ: 外部プロバイダ連携考慮
|
||||
|
||||
📋 カテゴリ別インパクト評価
|
||||
Setup: ✅ 影響小 (OAuth ライブラリ追加のみ)
|
||||
Models: 🔴 影響大 (新テーブル設計必要)
|
||||
Services: 🔴 影響大 (OAuth実装、2FA実装)
|
||||
UI: 🟡 影響中 (ソーシャルログインボタン追加)
|
||||
Tests: 🟡 影響中 (OAuth/2FA テストケース追加)
|
||||
```
|
||||
|
||||
**現在のタスク状況とリスク評価:**
|
||||
```
|
||||
📊 現在のタスク状況
|
||||
✅ 完了: 1タスク (Setup完了)
|
||||
影響: なし(完了済みタスクは保護)
|
||||
|
||||
⏳ 実行中: 1タスク (Models: User model実装)
|
||||
リスク: 🔴 高
|
||||
理由: 認証データ構造の大幅変更が必要
|
||||
推奨: 現在の作業を一時停止し、設計見直し
|
||||
|
||||
⬜ 未着手: 6タスク
|
||||
影響: 🔴 大部分で見直し必要
|
||||
Services: OAuth/2FA実装により大幅変更
|
||||
UI: ソーシャルログイン対応で変更
|
||||
Tests: 新機能に対応したテスト設計が必要
|
||||
```
|
||||
|
||||
**リファインメントグループへの影響:**
|
||||
```
|
||||
🔄 Group 1 (要件・制約) - 再実行推奨
|
||||
現在の決定: 基本認証のみ、中規模対応
|
||||
新要件: マルチ認証、外部連携、2FA
|
||||
→ 要件確定からやり直しが必要
|
||||
|
||||
🔄 Group 2 (技術設計) - 部分見直し
|
||||
現在の設計: JWT単体、シンプル認証
|
||||
新設計: OAuth対応、2FA統合、プロバイダ管理
|
||||
→ 認証アーキテクチャの再設計が必要
|
||||
|
||||
🔄 Group 3 (タスク構成) - 全面見直し
|
||||
現在: 8タスク、シンプル実装フロー
|
||||
新構成: 12-15タスク想定、複雑な依存関係
|
||||
→ 完全なタスク再分解が必要
|
||||
```
|
||||
|
||||
### 5. 段階的再構成提案
|
||||
|
||||
**再構成戦略の選択肢:**
|
||||
```
|
||||
🎯 戦略A: 部分的更新(推奨)
|
||||
対象: 未着手タスクのみ更新
|
||||
期間: 2-3時間
|
||||
リスク: 低
|
||||
適用条件: 実行中タスクの影響が限定的
|
||||
|
||||
🔄 戦略B: 段階的リファインメント
|
||||
対象: Group 2から再実行
|
||||
期間: 4-6時間
|
||||
リスク: 中
|
||||
適用条件: 技術設計の大幅変更が必要
|
||||
|
||||
🏗️ 戦略C: 完全リファインメント
|
||||
対象: Group 1から全面やり直し
|
||||
期間: 1-2日
|
||||
リスク: 高(既存作業の無駄)
|
||||
適用条件: 要件が根本的に変更
|
||||
```
|
||||
|
||||
**推奨戦略: 戦略B(段階的リファインメント)**
|
||||
```
|
||||
📋 実行プラン:
|
||||
|
||||
1. 現在の実行中タスク (wip-models-2.md) を一時停止
|
||||
- 作業内容を実装メモに記録
|
||||
- todo状態に戻して保留
|
||||
|
||||
2. Group 2 (技術設計) から再実行
|
||||
- OAuth/2FA対応のアーキテクチャ設計
|
||||
- 新しいデータモデル設計
|
||||
- API仕様の見直し
|
||||
|
||||
3. Group 3 (タスク構成) で新しいタスク分解
|
||||
- Setup: OAuth ライブラリ追加
|
||||
- Models: 認証関連テーブル設計(拡張版)
|
||||
- Services: OAuth実装、2FA実装、既存API
|
||||
- UI: ソーシャルログイン、2FA設定画面
|
||||
- Tests: 統合認証テスト
|
||||
|
||||
4. 既存完了タスクの統合
|
||||
- Setup-1 (完了済み) は新Setup-1にマージ
|
||||
- Models-1 (実行中) は新Models-1として再設計
|
||||
```
|
||||
|
||||
**カテゴリ別タスク影響分析:**
|
||||
```
|
||||
📂 Setup (影響: 小)
|
||||
現在: todo-setup-1.md "プロジェクト環境構築"
|
||||
新規: OAuth ライブラリ (passport, google-auth) 追加
|
||||
|
||||
📂 Models (影響: 大)
|
||||
現在: wip-models-2.md "認証関連テーブル設計"
|
||||
新規: user_auth_methods, oauth_tokens テーブル追加
|
||||
2FA設定テーブル追加
|
||||
|
||||
📂 Services (影響: 大)
|
||||
現在: 2タスク (基本認証API)
|
||||
新規: 4-5タスク (OAuth, 2FA, 統合認証)
|
||||
|
||||
📂 UI (影響: 中)
|
||||
現在: 2タスク (ログイン・登録フォーム)
|
||||
新規: 3-4タスク (ソーシャル選択、2FA設定追加)
|
||||
|
||||
📂 Tests (影響: 中)
|
||||
現在: 1タスク (基本認証テスト)
|
||||
新規: 2-3タスク (OAuth, 2FA, 統合テスト)
|
||||
```
|
||||
|
||||
### 6. 実行オプションと安全対策
|
||||
|
||||
**Option A: 安全な部分更新(推奨)**
|
||||
```bash
|
||||
/task-sync 123 --preserve-completed
|
||||
|
||||
実行内容:
|
||||
1. 完了タスク (done-*.md) は保護
|
||||
2. 実行中タスク (wip-*.md) は todo に戻して保留
|
||||
3. 未着手タスク (todo-*.md) のみ削除・再生成
|
||||
4. README.md の履歴に同期ログ追加
|
||||
5. Group 2 から段階的リファインメント実行
|
||||
```
|
||||
|
||||
**Option B: 強制的な完全リファインメント**
|
||||
```bash
|
||||
/task-sync 123 --force-rerefine
|
||||
|
||||
⚠️ 危険: 全ての進行中作業が失われます
|
||||
実行内容:
|
||||
1. .refine-progress.json をリセット
|
||||
2. 全タスクファイル削除(backup作成後)
|
||||
3. Group 1 から完全リファインメント実行
|
||||
4. 新しいカテゴリ構造で再構築
|
||||
```
|
||||
|
||||
**手動調整オプション**
|
||||
```bash
|
||||
段階的手動調整:
|
||||
1. 特定カテゴリのみ更新
|
||||
find tasks/pbi-$1 -name "todo-services-*.md" -delete
|
||||
# サービス系タスクのみ手動再作成
|
||||
|
||||
2. 実行中タスクの内容更新
|
||||
# wip-models-2.md の要件を新仕様に合わせて編集
|
||||
# 実装メモに移行作業を記録
|
||||
|
||||
3. 依存関係の再調整
|
||||
# カテゴリ間依存関係を新要件に合わせて更新
|
||||
# タスクファイルの depends_on フィールド修正
|
||||
```
|
||||
|
||||
**安全対策とバックアップ**
|
||||
```bash
|
||||
# 実行前の自動バックアップ
|
||||
cp -r tasks/pbi-$1 tasks/pbi-$1.backup.$(date +%Y%m%d_%H%M%S)
|
||||
|
||||
# 段階的実行での中断ポイント
|
||||
# Group 2 完了後、Group 3 実行前にユーザー確認
|
||||
# カテゴリ別タスク生成後、依存関係確認でユーザー確認
|
||||
|
||||
# ロールバック機能
|
||||
# 問題が発生した場合、前回の同期状態に戻すオプション
|
||||
```
|
||||
|
||||
## 使用するコマンド
|
||||
|
||||
```bash
|
||||
# 多層情報取得
|
||||
gh issue view $1 --json title,body,url,updatedAt,labels,milestone,assignees
|
||||
|
||||
# ローカル状態の包括的確認
|
||||
grep "^updated:" tasks/pbi-$1/README.md
|
||||
grep "^phase:" tasks/pbi-$1/README.md
|
||||
ls tasks/pbi-$1/.refine-progress.json 2>/dev/null
|
||||
|
||||
# リファインメントグループ進捗の確認
|
||||
if [ -f "tasks/pbi-$1/.refine-progress.json" ]; then
|
||||
jq -r '.current_group, .completed_groups[].group' tasks/pbi-$1/.refine-progress.json
|
||||
fi
|
||||
|
||||
# カテゴリ別タスク状況確認
|
||||
for category in setup models services ui tests; do
|
||||
echo "$category:"
|
||||
find tasks/pbi-$1 -name "done-$category-*.md" | wc -l
|
||||
find tasks/pbi-$1 -name "wip-$category-*.md" | wc -l
|
||||
find tasks/pbi-$1 -name "todo-$category-*.md" | wc -l
|
||||
done
|
||||
|
||||
# 依存関係とブロック状況の確認
|
||||
for todo_file in tasks/pbi-$1/todo-*.md; do
|
||||
if [ -f "$todo_file" ]; then
|
||||
depends=$(grep "depends_on:" "$todo_file" | cut -d: -f2)
|
||||
echo "$(basename $todo_file): depends on [$depends]"
|
||||
fi
|
||||
done
|
||||
|
||||
# 同期履歴の更新
|
||||
sync_entry="{
|
||||
\"date\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",
|
||||
\"changes\": [\"issue_updated\"],
|
||||
\"impact_analysis\": \"group2_recheck_required\"
|
||||
}"
|
||||
|
||||
# README.mdの拡張メタデータ更新
|
||||
sed -i.bak "s/^updated:.*/updated: $(date -u +%Y-%m-%dT%H:%M:%SZ)/" tasks/pbi-$1/README.md
|
||||
echo "sync_history:" >> tasks/pbi-$1/README.md
|
||||
echo " - $sync_entry" >> tasks/pbi-$1/README.md
|
||||
|
||||
# バックアップの作成
|
||||
backup_dir="tasks/pbi-$1.backup.$(date +%Y%m%d_%H%M%S)"
|
||||
cp -r tasks/pbi-$1 $backup_dir
|
||||
echo "Backup created: $backup_dir"
|
||||
```
|
||||
|
||||
## 同期判定ロジック
|
||||
|
||||
**変更検知の条件:**
|
||||
1. **タイトル変更**: ローカルタイトル ≠ Issue タイトル
|
||||
2. **内容更新**: Issue updatedAt > ローカル updated
|
||||
3. **URL変更**: ローカルURL ≠ Issue URL
|
||||
|
||||
**同期の必要性:**
|
||||
- いずれかの変更が検知された場合
|
||||
- ユーザーが明示的に同期を要求した場合
|
||||
|
||||
## 再構成時の安全対策
|
||||
|
||||
**実行中タスクの保護:**
|
||||
- wipタスクがある場合は慎重な操作を促す
|
||||
- 破壊的変更前の確認プロンプト
|
||||
|
||||
**完了タスクの保護:**
|
||||
- doneタスクは原則として変更しない
|
||||
- 履歴として保持
|
||||
|
||||
**バックアップの推奨:**
|
||||
- 重要な変更前のディレクトリバックアップ提案
|
||||
|
||||
## エラーハンドリング
|
||||
|
||||
- GitHub CLI未認証時のエラー
|
||||
- 指定されたIssueが存在しない場合
|
||||
- PBIディレクトリが存在しない場合
|
||||
- ネットワーク接続エラー時の対応
|
||||
|
||||
## 完了条件
|
||||
|
||||
### 基本同期要件
|
||||
- Issue情報が正常に取得されている
|
||||
- ローカル情報が最新の内容で更新されている
|
||||
- 変更内容が適切に分析・表示されている
|
||||
- 同期履歴が記録されている
|
||||
|
||||
### リファインメント整合性要件
|
||||
- Group 1-3 の決定事項と新Issue内容の整合性が評価されている
|
||||
- 影響を受けるグループが特定されている
|
||||
- 必要な再リファインメント範囲が明確になっている
|
||||
|
||||
### カテゴリ・タスク整合性要件
|
||||
- カテゴリ別の影響度が正確に評価されている
|
||||
- 依存関係の変更が適切に分析されている
|
||||
- 実行中タスクへの影響とリスクが明示されている
|
||||
- 完了タスクの保護策が実施されている
|
||||
|
||||
### 再構成提案要件
|
||||
- 複数の再構成戦略が提示されている
|
||||
- 推奨戦略の根拠が明確に示されている
|
||||
- 実行プランが具体的で実行可能
|
||||
- 安全対策とロールバック手順が提供されている
|
||||
|
||||
### ユーザー支援要件
|
||||
- 次のアクションが明確で実行可能
|
||||
- リスクと期待効果が適切に説明されている
|
||||
- 段階的実行でのチェックポイントが設定されている
|
||||
|
||||
実行を開始しますか?
|
||||
Reference in New Issue
Block a user