Files
gh-allex-znews-cc-workflow-…/commands/resume.md
2025-11-29 17:52:09 +08:00

266 lines
6.7 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
description: 中断されたワークフローを再開する
---
# ワークフローの再開
中断された機能開発ワークフローを再開します。
## あなたの役割
`.tasks.json` ファイルを読み込み、現在のワークフロー状態を分析して、適切な次のステップを実行してください。
### ステップ1: タスクファイルの確認
まず、`.tasks.json` ファイルが存在するか確認します:
```javascript
const fs = require('fs');
const tasksFile = '.tasks.json';
if (!fs.existsSync(tasksFile)) {
// タスクファイルが存在しない
console.log('❌ 進行中のワークフローが見つかりません');
console.log('\n新しいワークフローを開始するには:');
console.log(' /new-feature [機能の説明]');
process.exit(1);
}
const data = JSON.parse(fs.readFileSync(tasksFile, 'utf-8'));
```
### ステップ2: 現在の状態を分析
ワークフロータスクtype: "workflow")の状態を確認し、次に実行すべきタスクを特定します:
```javascript
// ワークフロータスクを取得
const workflowTasks = data.tasks.filter(t => t.type === 'workflow');
// 作業中のタスクを探す
const inProgressTask = workflowTasks.find(t => t.status === 'in_progress');
// 未着手のタスクを探すIDの昇順で最初のもの
const pendingTask = workflowTasks
.filter(t => t.status === 'pending')
.sort((a, b) => a.id - b.id)[0];
// 次に実行すべきタスク
const nextTask = inProgressTask || pendingTask;
```
### ステップ3: 状態に応じた処理
#### ケース1: 作業中のタスクがある
作業中のタスクがある場合、そのタスクを続行します:
```
## 📋 ワークフロー状態
**機能**: [機能名]
### 現在の進捗
- ✅ 要件整理
- ✅ ドキュメント作成
- ⏳ テスト作成 ← 作業中
- ⬜ タスク作成
- ⬜ 実装
### 次のアクション
タスク「テスト作成」が作業中です。
このタスクを続行しますか?
- **続行する場合**: `/create-tests` を実行
- **状態を確認する場合**: `/list-tasks` を実行
```
この場合、ユーザーに確認を求め、承認されたら対応するコマンドを実行します。
#### ケース2: 未着手のタスクがある
未着手のタスクがある場合、次のタスクを開始します:
```
## 📋 ワークフロー状態
**機能**: [機能名]
### 現在の進捗
- ✅ 要件整理
- ✅ ドキュメント作成
- ✅ テスト作成
- ⬜ タスク作成 ← 次のステップ
- ⬜ 実装
### 次のアクション
次は「タスク作成」です。
実装のためのサブタスクを作成します。
続行しますか? (yes/no)
```
承認されたら、SlashCommandツールで対応するコマンドを実行します。
#### ケース3: すべて完了している
すべてのワークフロータスクが完了している場合:
```
## 📋 ワークフロー状態
**機能**: [機能名]
### 🎉 ワークフロー完了!
すべてのタスクが完了しました:
- ✅ 要件整理
- ✅ ドキュメント作成
- ✅ テスト作成
- ✅ タスク作成
- ✅ 実装
### 次のステップ
1. コードレビューを依頼
2. ドキュメントを確認
3. 本番環境へのデプロイを検討
完了したタスクは履歴ファイル (.tasks-history.json) に保存されています。
```
#### ケース4: サブタスクが残っている
ワークフロータスクは完了しているが、サブタスクtype: "subtask")が残っている場合:
```
## 📋 ワークフロー状態
**機能**: [機能名]
### ワークフロー
すべてのワークフロータスクが完了しています。
### 実装サブタスク
- ✅ ユーザーモデルの作成
- ⏳ 認証APIエンドポイントの実装 ← 作業中
- ⬜ フロントエンドフォームの作成
### 次のアクション
サブタスク「認証APIエンドポイントの実装」が作業中です。
このタスクを続行するには:
- `/implement` を実行してください
- タスク詳細を確認: `/list-tasks`
```
## コマンドとタスクIDの対応
| タスクID | タスク名 | コマンド |
|---------|---------|---------|
| 1 | 要件整理 | `/new-feature` |
| 2 | ドキュメント作成 | `/create-docs` |
| 3 | テスト作成 | `/create-tests` |
| 4 | タスク作成 | `/create-tasks` |
| 5 | 実装 | `/implement` |
## 実装フロー
```javascript
// 1. タスクファイル読み込み
const data = loadTasksFile();
// 2. 状態分析
const currentState = analyzeWorkflowState(data);
// 3. ユーザーに状態を表示
displayWorkflowState(currentState);
// 4. 次のアクションを提案
suggestNextAction(currentState);
// 5. ユーザーの承認を待つ
// "yes" の場合、次のコマンドを自動実行
// 6. SlashCommand ツールで次のコマンドを実行
if (userApproved) {
executeCommand(currentState.nextCommand);
}
```
## エラーハンドリング
### タスクファイルが破損している場合
```
❌ タスクファイルの読み込みに失敗しました
エラー: [エラーメッセージ]
タスクファイル (.tasks.json) を確認してください。
```
### 履歴のみ存在する場合
```
進行中のワークフローはありません
最近完了した機能:
- [機能名1] (完了日: YYYY-MM-DD)
- [機能名2] (完了日: YYYY-MM-DD)
新しいワークフローを開始するには:
/new-feature [機能の説明]
```
## 注意事項
- **自動実行**: ユーザーが承認した場合のみ次のコマンドを実行
- **状態確認**: 実行前に必ず現在の状態を表示
- **依存関係**: サブタスクの依存関係も考慮する
- **ブロック状態**: ブロックされたタスクがある場合は警告を表示
## 使用例
### 例1: ドキュメント作成で中断していた場合
```
$ /resume
## 📋 ワークフロー状態
**機能**: ユーザー認証機能
### 現在の進捗
- ✅ 要件整理
- ⏳ ドキュメント作成 ← 作業中
- ⬜ テスト作成
- ⬜ タスク作成
- ⬜ 実装
### 次のアクション
タスク「ドキュメント作成」が作業中です。
このタスクを続行しますか? (yes/no)
> yes
ドキュメント作成を続行します...
[/create-docs が自動実行される]
```
### 例2: すべて完了している場合
```
$ /resume
## 📋 ワークフロー状態
**機能**: ユーザー認証機能
### 🎉 ワークフロー完了!
すべてのタスクが完了しました。
完了したタスクは履歴ファイルに保存されています。
詳細を確認するには: /list-tasks --history
```