Initial commit
This commit is contained in:
422
skills/jules-cli/README.md
Normal file
422
skills/jules-cli/README.md
Normal file
@@ -0,0 +1,422 @@
|
||||
# Jules CLI統合スキル
|
||||
|
||||
docs/tasks.mdに記載されたタスクをGoogleの非同期コーディングエージェントJulesに依頼・管理するスキルです。SDDで分割したタスクを効率的にJulesに割り当て、進捗を追跡します。
|
||||
|
||||
## 特徴
|
||||
|
||||
- **タスク自動依頼**: docs/tasks.mdからタスクを読み取り、選択したタスクをJulesに依頼
|
||||
- **日本語対応**: すべての依頼文を日本語でフォーマット
|
||||
- **進捗追跡**: Julesの作業状況を管理し、完了後にtasks.mdを更新
|
||||
- **並行処理**: 依存関係のないタスクを並行してJulesに依頼可能
|
||||
- **詳細な文脈提供**: タスクの説明、受入基準、技術的文脈を含む完全な依頼文を生成
|
||||
|
||||
## 使用方法
|
||||
|
||||
### 基本的な使い方
|
||||
|
||||
1. **スキルを有効化**
|
||||
|
||||
Claude Codeで以下のように依頼します:
|
||||
```
|
||||
次のタスクをJulesに依頼してください
|
||||
```
|
||||
または
|
||||
```
|
||||
タスクをJulesで実行してください
|
||||
```
|
||||
|
||||
2. **タスクを選択**
|
||||
|
||||
スキルがdocs/tasks.mdから利用可能なタスクを表示するので、実行したいタスクを選択します。
|
||||
|
||||
3. **依頼文を確認**
|
||||
|
||||
スキルが生成した依頼文を確認し、問題がなければ承認します。
|
||||
|
||||
4. **Julesが作業を実行**
|
||||
|
||||
julesコマンドが実行され、タスクがJulesに送信されます。進捗は`jules list`や`jules status`で確認できます。
|
||||
|
||||
5. **完了後の処理**
|
||||
|
||||
タスクが完了したら、スキルが結果をレビューし、tasks.mdを更新します。
|
||||
|
||||
### 詳細な例
|
||||
|
||||
#### シナリオ: ユーザー認証APIを実装する
|
||||
|
||||
**docs/tasks.md の内容**:
|
||||
```markdown
|
||||
#### タスク1.1: ユーザー認証APIエンドポイントの実装
|
||||
**説明**: POST /api/auth/login と POST /api/auth/logout のエンドポイントを実装
|
||||
**受入基準**:
|
||||
- src/api/auth.tsが存在する
|
||||
- すべてのテストが通過する(npm test)
|
||||
- ESLintエラーがゼロである
|
||||
**ステータス**: `TODO`
|
||||
**依存関係**: なし
|
||||
**推定工数**: 2時間
|
||||
```
|
||||
|
||||
**ユーザーの依頼**:
|
||||
```
|
||||
タスク1.1をJulesに依頼してください
|
||||
```
|
||||
|
||||
**スキルの動作**:
|
||||
1. docs/tasks.mdを読み取る
|
||||
2. タスク1.1の情報を抽出
|
||||
3. 日本語の依頼文を作成:
|
||||
```
|
||||
タスク: ユーザー認証APIエンドポイントの実装
|
||||
|
||||
概要:
|
||||
POST /api/auth/login と POST /api/auth/logout のエンドポイントを実装してください。
|
||||
JWTトークンを使用した認証方式を採用し、パスワードはbcryptでハッシュ化します。
|
||||
|
||||
受入基準:
|
||||
- src/api/auth.tsが存在し、login/logoutエンドポイントが実装されている
|
||||
- すべてのテストが通過する(npm test)
|
||||
- ESLintエラーがゼロである
|
||||
|
||||
技術的文脈:
|
||||
- フレームワーク: Next.js 14
|
||||
- 認証: JWT + bcrypt
|
||||
- 参照実装: src/api/users.ts
|
||||
|
||||
推定工数: 2時間
|
||||
```
|
||||
4. ユーザーに確認を求める
|
||||
5. 承認後、julesコマンドを実行
|
||||
6. タスクIDを記録(例: task-abc123)
|
||||
7. tasks.mdのステータスを`IN_PROGRESS`に更新
|
||||
|
||||
**完了後**:
|
||||
```
|
||||
jules status task-abc123 # 完了を確認
|
||||
jules result task-abc123 # 結果を取得
|
||||
```
|
||||
スキルが結果をレビューし、tasks.mdのステータスを`REVIEW`に更新します。
|
||||
|
||||
## Jules依頼文の構造
|
||||
|
||||
スキルが生成する依頼文は以下の構造を持ちます:
|
||||
|
||||
```
|
||||
タスク: [タスクタイトル]
|
||||
|
||||
概要:
|
||||
[タスクの詳細な説明]
|
||||
|
||||
受入基準:
|
||||
- [基準1]
|
||||
- [基準2]
|
||||
- [基準3]
|
||||
|
||||
技術的文脈:
|
||||
- [フレームワークやライブラリ]
|
||||
- [参照すべきファイルやコード]
|
||||
- [制約事項]
|
||||
|
||||
推定工数: [時間]
|
||||
```
|
||||
|
||||
すべて日本語で記述され、Julesが理解しやすい形式になっています。
|
||||
|
||||
## ワークフロー
|
||||
|
||||
```
|
||||
1. ユーザーがスキルを起動
|
||||
「次のタスクをJulesに依頼してください」
|
||||
↓
|
||||
2. スキルがdocs/tasks.mdを読み取る
|
||||
TODO状態のタスクを特定
|
||||
↓
|
||||
3. タスクリストを表示
|
||||
ユーザーがタスクを選択
|
||||
↓
|
||||
4. 依頼文を日本語で作成
|
||||
タスクの説明、受入基準、技術的文脈を含む
|
||||
↓
|
||||
5. ユーザーに依頼文を確認してもらう
|
||||
承認後、次へ進む
|
||||
↓
|
||||
6. julesコマンドを実行
|
||||
依頼文をJulesに送信
|
||||
↓
|
||||
7. タスクIDを記録
|
||||
ユーザーに報告
|
||||
↓
|
||||
8. tasks.mdを更新
|
||||
ステータスをIN_PROGRESSに変更
|
||||
↓
|
||||
9. 進捗を確認(必要に応じて)
|
||||
jules listやjules statusを使用
|
||||
↓
|
||||
10. 完了後、結果をレビュー
|
||||
受入基準を満たしているか確認
|
||||
↓
|
||||
11. tasks.mdを最終更新
|
||||
ステータスをREVIEWまたはDONEに変更
|
||||
```
|
||||
|
||||
## 並行処理
|
||||
|
||||
依存関係のない複数のタスクを並行してJulesに依頼できます:
|
||||
|
||||
**例**:
|
||||
```
|
||||
ユーザー: タスク1.1、1.2、1.3をJulesに依頼してください
|
||||
```
|
||||
|
||||
スキルは各タスクについて:
|
||||
1. 個別の依頼文を作成
|
||||
2. 順次julesコマンドを実行
|
||||
3. すべてのタスクIDを記録
|
||||
4. 各タスクの進捗を個別に追跡
|
||||
|
||||
**並行実行の条件**:
|
||||
- 依存関係が存在しない
|
||||
- 異なるファイル・コンポーネントを対象とする
|
||||
- 相互に影響を与えない
|
||||
|
||||
## tasks.mdの更新
|
||||
|
||||
スキルは以下のようにtasks.mdを更新します:
|
||||
|
||||
### ステータスの遷移
|
||||
|
||||
```
|
||||
TODO → IN_PROGRESS(Jules実行中)→ REVIEW(完了、レビュー待ち)→ DONE(承認済み)
|
||||
```
|
||||
|
||||
### 記録される情報
|
||||
|
||||
```markdown
|
||||
#### タスク1.1: ユーザー認証APIエンドポイントの実装
|
||||
**説明**: POST /api/auth/login と POST /api/auth/logout のエンドポイントを実装
|
||||
**受入基準**:
|
||||
- src/api/auth.tsが存在する
|
||||
- テストが通過する
|
||||
**ステータス**: `REVIEW`
|
||||
**依存関係**: なし
|
||||
**推定工数**: 2時間
|
||||
**Jules Task ID**: task-abc123
|
||||
**開始日時**: 2024-01-15 10:30
|
||||
**完了日時**: 2024-01-15 12:15
|
||||
**作業時間**: 1時間45分
|
||||
```
|
||||
|
||||
## エラーハンドリング
|
||||
|
||||
### Julesでエラーが発生した場合
|
||||
|
||||
スキルは以下の手順で対処します:
|
||||
|
||||
1. **エラー内容を確認**
|
||||
```
|
||||
jules status <task-id>
|
||||
```
|
||||
|
||||
2. **ユーザーに報告**
|
||||
- エラーの詳細
|
||||
- 推定される原因
|
||||
- 推奨される対処方法
|
||||
|
||||
3. **対処を提案**
|
||||
- 依頼文を修正して再実行
|
||||
- 依存関係を解決
|
||||
- 手動で対処
|
||||
|
||||
4. **tasks.mdを更新**
|
||||
- ステータスをBLOCKEDに変更
|
||||
- エラー内容を記録
|
||||
|
||||
### タスクが長時間完了しない場合
|
||||
|
||||
1. 現在の状態を確認
|
||||
2. ユーザーに状況を報告
|
||||
3. キャンセルまたは待機を提案
|
||||
|
||||
## Jules CLIコマンドリファレンス
|
||||
|
||||
このスキルが使用する主なコマンド:
|
||||
|
||||
### タスクの作成
|
||||
```bash
|
||||
jules "タスクの説明"
|
||||
```
|
||||
|
||||
### タスクの管理
|
||||
```bash
|
||||
jules list # タスクリスト表示
|
||||
jules status <task-id> # タスクの状態確認
|
||||
jules show <task-id> # タスクの詳細表示
|
||||
jules result <task-id> # 完了したタスクの結果取得
|
||||
```
|
||||
|
||||
### タスクの制御
|
||||
```bash
|
||||
jules cancel <task-id> # タスクのキャンセル
|
||||
jules retry <task-id> # タスクの再実行
|
||||
```
|
||||
|
||||
## ベストプラクティス
|
||||
|
||||
### 1. タスクの粒度を適切に
|
||||
|
||||
- 1つのタスクは1-3時間程度
|
||||
- 1つの明確な目的を持つ
|
||||
- 独立して完結する
|
||||
- 検証が容易
|
||||
|
||||
### 2. 受入基準を明確に
|
||||
|
||||
検証可能な受入基準をtasks.mdに記載:
|
||||
|
||||
**良い例**:
|
||||
```
|
||||
受入基準:
|
||||
- src/components/LoginForm.tsxが存在する
|
||||
- npm testを実行してすべてのテストが通過する
|
||||
- npm run lintを実行してエラーがゼロである
|
||||
```
|
||||
|
||||
**悪い例**:
|
||||
```
|
||||
受入基準:
|
||||
- ちゃんと動く
|
||||
- きれいなコード
|
||||
```
|
||||
|
||||
### 3. 技術的文脈を提供
|
||||
|
||||
Julesが適切に作業できるよう、必要な情報をtasks.mdに含める:
|
||||
- プロジェクトの技術スタック
|
||||
- 参照すべき既存コード
|
||||
- コーディング規約
|
||||
- 制約事項
|
||||
|
||||
### 4. 依存関係を明示
|
||||
|
||||
tasks.mdで依存関係を明確に記載:
|
||||
```markdown
|
||||
**依存関係**: Task 1.1, Task 1.2
|
||||
```
|
||||
|
||||
これにより、スキルが適切な実行順序を判断できます。
|
||||
|
||||
## 制約事項
|
||||
|
||||
### 実行の制限
|
||||
|
||||
以下の場合はJulesへの依頼を控えます:
|
||||
|
||||
1. **タスクの曖昧性**
|
||||
- 受入基準が不明確
|
||||
- 実装方法が複数考えられる
|
||||
- 技術的文脈が不足している
|
||||
|
||||
2. **リスクの高い操作**
|
||||
- 本番環境への直接的な変更
|
||||
- データベースの削除操作
|
||||
- 認証情報の変更
|
||||
|
||||
3. **ユーザーの判断が必要な場合**
|
||||
- 技術選択が必要
|
||||
- アーキテクチャの決定が必要
|
||||
- トレードオフの判断が必要
|
||||
|
||||
### 環境要件
|
||||
|
||||
- Jules CLIがインストールされている必要がある
|
||||
- julesコマンドがPATHに含まれている必要がある
|
||||
- 認証が正しく設定されている必要がある
|
||||
- ネットワーク接続が必要
|
||||
|
||||
## トラブルシューティング
|
||||
|
||||
### julesコマンドが見つからない
|
||||
|
||||
**原因**: Jules CLIがインストールされていない、またはPATHに含まれていない
|
||||
|
||||
**解決**:
|
||||
1. Jules CLIのインストールを確認
|
||||
2. PATHを設定
|
||||
3. `which jules`で確認
|
||||
|
||||
### 認証エラーが発生する
|
||||
|
||||
**原因**: Jules CLIの認証が設定されていない
|
||||
|
||||
**解決**:
|
||||
```bash
|
||||
jules auth login
|
||||
```
|
||||
でGoogle認証を完了してください。
|
||||
|
||||
### タスクが失敗する
|
||||
|
||||
**原因**: 依頼文が不明瞭、または依存関係が不足
|
||||
|
||||
**解決**:
|
||||
1. tasks.mdのタスク説明を詳細化
|
||||
2. 受入基準を明確にする
|
||||
3. 技術的文脈を追加
|
||||
4. 依存関係を解決
|
||||
|
||||
### 並行実行で競合が発生する
|
||||
|
||||
**原因**: 同じファイルを編集するタスクを並行実行した
|
||||
|
||||
**解決**:
|
||||
1. 依存関係を見直す
|
||||
2. 順次実行に変更
|
||||
3. タスクの粒度を調整
|
||||
|
||||
## SDD-Docsスキルとの連携
|
||||
|
||||
このスキルはSDD-Docsスキルと組み合わせて使用することで、最大の効果を発揮します:
|
||||
|
||||
### 推奨ワークフロー
|
||||
|
||||
1. **SDD-Docsスキルで設計**
|
||||
```
|
||||
docsディレクトリを初期化してください
|
||||
```
|
||||
- requirements.md(要件定義)を作成
|
||||
- design.md(技術設計)を作成
|
||||
- tasks.md(タスク管理)を作成
|
||||
|
||||
2. **Jules CLIスキルで実装**
|
||||
```
|
||||
次のタスクをJulesに依頼してください
|
||||
```
|
||||
- tasks.mdからタスクを選択
|
||||
- Julesに依頼
|
||||
- 進捗を追跡
|
||||
|
||||
3. **Task Executorスキルでレビュー**(オプション)
|
||||
```
|
||||
完了したタスクをレビューしてください
|
||||
```
|
||||
- 受入基準を確認
|
||||
- コード品質をチェック
|
||||
- tasks.mdを更新
|
||||
|
||||
### 連携の利点
|
||||
|
||||
- **一貫した文書管理**: SDDドキュメントとタスク管理を統合
|
||||
- **効率的な実装**: タスクを自動的にJulesに割り当て
|
||||
- **進捗の可視化**: tasks.mdで進捗を一元管理
|
||||
- **品質保証**: 受入基準に基づいた検証
|
||||
|
||||
## さらに詳しく
|
||||
|
||||
- Jules CLIの公式ドキュメント: https://developers.googleblog.com/ja/meet-jules-tools-a-command-line-companion-for-googles-async-coding-agent/
|
||||
- SDD-Docsスキル: [../sdd-docs/README.md](../sdd-docs/README.md)
|
||||
- Task Executorスキル: [../task-executor/README.md](../task-executor/README.md)
|
||||
|
||||
## ライセンス
|
||||
|
||||
このスキルはMITライセンスの下で公開されています。
|
||||
663
skills/jules-cli/SKILL.md
Normal file
663
skills/jules-cli/SKILL.md
Normal file
@@ -0,0 +1,663 @@
|
||||
---
|
||||
name: jules-cli
|
||||
description: docs/tasks.mdに記載されたタスクをJules CLIを使って依頼・管理します。タスクを日本語でフォーマットしてJulesに送信し、進捗を追跡して完了後にtasks.mdを更新します。
|
||||
---
|
||||
|
||||
# Jules CLI統合スキル
|
||||
|
||||
docs/tasks.mdに記載されたタスクをGoogleの非同期コーディングエージェントJulesに依頼・管理するスキルです。SDDで分割したタスクを効率的にJulesに割り当て、進捗を追跡します。
|
||||
|
||||
## 概要
|
||||
|
||||
このスキルは以下の機能を提供します:
|
||||
- docs/tasks.mdからタスクを読み取り、選択可能なリストを表示
|
||||
- 選択されたタスクを日本語でフォーマットしてJulesに依頼
|
||||
- Julesの進捗状況を確認・管理
|
||||
- 完了したタスクをtasks.mdで更新
|
||||
- 複数タスクの並行依頼サポート
|
||||
|
||||
## このスキルを使用する場面
|
||||
|
||||
以下の状況でこのスキルを有効にしてください:
|
||||
|
||||
### タスク実行時
|
||||
- docs/tasks.mdのタスクをJulesに依頼したい場合
|
||||
- 長時間かかるタスクを非同期で実行したい場合
|
||||
- 複数のタスクを並行して実行したい場合
|
||||
- Jules CLIを使った開発ワークフローを構築する場合
|
||||
|
||||
### プロジェクト管理時
|
||||
- タスクの進捗をJulesで管理したい場合
|
||||
- チーム内でJulesを活用している場合
|
||||
- 自動化可能なタスクをJulesに任せたい場合
|
||||
|
||||
## 基本的な使い方
|
||||
|
||||
### タスクの依頼
|
||||
|
||||
「次のタスクをJulesに依頼してください」「タスクをJulesで実行してください」などと依頼されたら:
|
||||
|
||||
1. **tasks.mdの読み取り**
|
||||
- docs/tasks.mdの内容を確認
|
||||
- TODO状態のタスクを特定
|
||||
- 依存関係を確認
|
||||
|
||||
2. **タスクの選択**
|
||||
- ユーザーにタスクリストを表示
|
||||
- 依頼するタスクを選択してもらう
|
||||
- 複数選択も可能
|
||||
|
||||
3. **Jules依頼文の作成**
|
||||
- タスクの説明、受入基準、技術的文脈を日本語でフォーマット
|
||||
- Julesが理解しやすい形式に整形
|
||||
- 必要な参照情報を含める
|
||||
|
||||
4. **julesコマンドの実行**
|
||||
- `jules "依頼文"` コマンドを実行
|
||||
- タスクIDを記録
|
||||
- ユーザーに依頼完了を報告
|
||||
|
||||
5. **進捗の追跡**
|
||||
- 必要に応じてJulesの進捗を確認
|
||||
- 完了したら結果をレビュー
|
||||
- tasks.mdを更新
|
||||
|
||||
## Jules依頼文の原則
|
||||
|
||||
### 1. 明確で具体的な指示
|
||||
|
||||
Julesが理解しやすい形式で依頼文を作成します:
|
||||
|
||||
**基本構造**:
|
||||
```
|
||||
タスク: [タスクタイトル]
|
||||
|
||||
概要:
|
||||
[タスクの詳細な説明]
|
||||
|
||||
受入基準:
|
||||
- [基準1]
|
||||
- [基準2]
|
||||
- [基準3]
|
||||
|
||||
技術的文脈:
|
||||
- [フレームワークやライブラリ]
|
||||
- [参照すべきファイルやコード]
|
||||
- [制約事項]
|
||||
|
||||
推定工数: [時間]
|
||||
```
|
||||
|
||||
**良い例**:
|
||||
```
|
||||
タスク: ユーザー認証APIエンドポイントの実装
|
||||
|
||||
概要:
|
||||
POST /api/auth/login と POST /api/auth/logout のエンドポイントを実装してください。
|
||||
JWTトークンを使用した認証方式を採用し、パスワードはbcryptでハッシュ化します。
|
||||
|
||||
受入基準:
|
||||
- src/api/auth.tsが存在し、login/logoutエンドポイントが実装されている
|
||||
- すべてのテストが通過する(npm test)
|
||||
- ESLintエラーがゼロである
|
||||
- JWTトークンが正しく生成・検証される
|
||||
|
||||
技術的文脈:
|
||||
- フレームワーク: Next.js 14 App Router
|
||||
- 認証ライブラリ: jose(JWT)、bcrypt(パスワードハッシュ化)
|
||||
- 参照実装: src/api/users.ts
|
||||
- データベース: PostgreSQL with Prisma ORM
|
||||
|
||||
推定工数: 2時間
|
||||
```
|
||||
|
||||
**悪い例**:
|
||||
```
|
||||
ログイン機能を作って
|
||||
```
|
||||
|
||||
### 2. 日本語での依頼
|
||||
|
||||
すべての依頼文は日本語で記述します:
|
||||
|
||||
**理由**:
|
||||
- ユーザーが日本語での依頼を希望している
|
||||
- タスクの内容が日本語で記載されている場合が多い
|
||||
- Julesは多言語対応しており、日本語も理解できる
|
||||
|
||||
**注意事項**:
|
||||
- 技術用語は英語のまま使用(例: JWT, API, bcrypt)
|
||||
- ファイルパスやコマンドは英語のまま
|
||||
- 説明文や受入基準は日本語で記述
|
||||
|
||||
### 3. 文脈の提供
|
||||
|
||||
Julesが適切に作業できるよう、必要な文脈を提供します:
|
||||
|
||||
**含めるべき情報**:
|
||||
- プロジェクトの技術スタック
|
||||
- 参照すべき既存コード
|
||||
- コーディング規約やスタイルガイド
|
||||
- 制約事項や注意点
|
||||
- 依存関係のあるタスク
|
||||
|
||||
**例**:
|
||||
```
|
||||
技術的文脈:
|
||||
- このプロジェクトはNext.js 14のApp Routerを使用しています
|
||||
- 既存の実装パターンはsrc/api/users.tsを参照してください
|
||||
- ESLintとPrettierの設定に従ってください
|
||||
- データベーススキーマはprisma/schema.prismaで定義されています
|
||||
- Task 1.2(データモデルの定義)の完了が前提です
|
||||
```
|
||||
|
||||
### 4. 受入基準の明確化
|
||||
|
||||
検証可能な受入基準を提供します:
|
||||
|
||||
**良い受入基準**:
|
||||
```
|
||||
受入基準:
|
||||
- src/components/LoginForm.tsxが存在する
|
||||
- npm testを実行してすべてのテストが通過する
|
||||
- npm run lintを実行してエラーがゼロである
|
||||
- ログイン成功時にJWTトークンが返される
|
||||
- ログイン失敗時に適切なエラーメッセージが返される
|
||||
- パスワードはbcryptでハッシュ化されている
|
||||
```
|
||||
|
||||
**悪い受入基準**:
|
||||
```
|
||||
受入基準:
|
||||
- ちゃんと動く
|
||||
- きれいなコード
|
||||
```
|
||||
|
||||
## Jules CLIコマンド
|
||||
|
||||
### タスクの作成・依頼
|
||||
|
||||
```bash
|
||||
# 基本的な依頼
|
||||
jules "タスクの説明"
|
||||
|
||||
# 長い依頼文の場合はヒアドキュメントを使用
|
||||
jules "$(cat <<'EOF'
|
||||
タスク: ユーザー認証APIの実装
|
||||
|
||||
概要:
|
||||
POST /api/auth/login エンドポイントを実装してください。
|
||||
|
||||
受入基準:
|
||||
- src/api/auth.tsが存在する
|
||||
- テストが通過する
|
||||
|
||||
技術的文脈:
|
||||
- Next.js 14
|
||||
- JWT + bcrypt
|
||||
EOF
|
||||
)"
|
||||
```
|
||||
|
||||
### タスクの状態確認
|
||||
|
||||
```bash
|
||||
# タスクリストの表示
|
||||
jules list
|
||||
|
||||
# 特定のタスクの状態確認
|
||||
jules status <task-id>
|
||||
|
||||
# タスクの詳細表示
|
||||
jules show <task-id>
|
||||
```
|
||||
|
||||
### タスクの管理
|
||||
|
||||
```bash
|
||||
# タスクのキャンセル
|
||||
jules cancel <task-id>
|
||||
|
||||
# タスクの再実行
|
||||
jules retry <task-id>
|
||||
|
||||
# 完了したタスクの結果取得
|
||||
jules result <task-id>
|
||||
```
|
||||
|
||||
## ワークフロー
|
||||
|
||||
### 基本的な実行フロー
|
||||
|
||||
```
|
||||
1. tasks.mdを読み取る
|
||||
↓
|
||||
2. TODO状態のタスクをリスト表示
|
||||
↓
|
||||
3. ユーザーがタスクを選択
|
||||
↓
|
||||
4. 依頼文を日本語で作成
|
||||
↓
|
||||
5. ユーザーに依頼文を確認してもらう
|
||||
↓
|
||||
6. julesコマンドを実行
|
||||
↓
|
||||
7. タスクIDを記録
|
||||
↓
|
||||
8. 進捗を定期的に確認(必要に応じて)
|
||||
↓
|
||||
9. 完了したら結果をレビュー
|
||||
↓
|
||||
10. tasks.mdを更新(ステータスをIN_PROGRESSまたはREVIEW)
|
||||
↓
|
||||
11. レビュー完了後、DONEにマーク
|
||||
```
|
||||
|
||||
### 詳細な実行手順
|
||||
|
||||
#### ステップ1: タスクの選択
|
||||
|
||||
```
|
||||
ファシリテーター: docs/tasks.mdから実行可能なタスクを確認しました。
|
||||
以下のタスクが利用可能です:
|
||||
|
||||
1. Task 1.1: ユーザー認証APIエンドポイントの実装
|
||||
推定工数: 2時間
|
||||
依存関係: なし
|
||||
|
||||
2. Task 1.2: データモデルの定義
|
||||
推定工数: 1時間
|
||||
依存関係: なし
|
||||
|
||||
3. Task 2.1: 認証ミドルウェアの実装
|
||||
推定工数: 1.5時間
|
||||
依存関係: Task 1.1
|
||||
|
||||
どのタスクをJulesに依頼しますか?(番号で選択、複数選択可)
|
||||
|
||||
ユーザー: 1と2
|
||||
|
||||
ファシリテーター: 承知しました。Task 1.1とTask 1.2をJulesに依頼します。
|
||||
```
|
||||
|
||||
#### ステップ2: 依頼文の作成と確認
|
||||
|
||||
```
|
||||
ファシリテーター: 以下の依頼文でJulesに送信します。確認してください:
|
||||
|
||||
【Task 1.1の依頼文】
|
||||
タスク: ユーザー認証APIエンドポイントの実装
|
||||
|
||||
概要:
|
||||
POST /api/auth/login と POST /api/auth/logout のエンドポイントを実装してください。
|
||||
JWTトークンを使用した認証方式を採用し、パスワードはbcryptでハッシュ化します。
|
||||
|
||||
受入基準:
|
||||
- src/api/auth.tsが存在し、login/logoutエンドポイントが実装されている
|
||||
- すべてのテストが通過する(npm test)
|
||||
- ESLintエラーがゼロである
|
||||
|
||||
技術的文脈:
|
||||
- フレームワーク: Next.js 14
|
||||
- 認証: JWT + bcrypt
|
||||
- 参照実装: src/api/users.ts
|
||||
|
||||
推定工数: 2時間
|
||||
|
||||
このまま送信してよろしいですか?
|
||||
|
||||
ユーザー: はい
|
||||
|
||||
ファシリテーター: Julesに依頼を送信します。
|
||||
```
|
||||
|
||||
#### ステップ3: julesコマンドの実行
|
||||
|
||||
```
|
||||
# Task 1.1の依頼
|
||||
jules "$(cat <<'EOF'
|
||||
タスク: ユーザー認証APIエンドポイントの実装
|
||||
|
||||
概要:
|
||||
POST /api/auth/login と POST /api/auth/logout のエンドポイントを実装してください。
|
||||
JWTトークンを使用した認証方式を採用し、パスワードはbcryptでハッシュ化します。
|
||||
|
||||
受入基準:
|
||||
- src/api/auth.tsが存在し、login/logoutエンドポイントが実装されている
|
||||
- すべてのテストが通過する(npm test)
|
||||
- ESLintエラーがゼロである
|
||||
|
||||
技術的文脈:
|
||||
- フレームワーク: Next.js 14
|
||||
- 認証: JWT + bcrypt
|
||||
- 参照実装: src/api/users.ts
|
||||
|
||||
推定工数: 2時間
|
||||
EOF
|
||||
)"
|
||||
|
||||
# Task 1.2の依頼
|
||||
jules "$(cat <<'EOF'
|
||||
タスク: データモデルの定義
|
||||
|
||||
概要:
|
||||
Prismaスキーマファイルにユーザーと認証関連のデータモデルを定義してください。
|
||||
|
||||
受入基準:
|
||||
- prisma/schema.prismaにUserモデルが定義されている
|
||||
- prisma migrateが正常に実行できる
|
||||
- TypeScript型定義が自動生成される
|
||||
|
||||
技術的文脈:
|
||||
- ORM: Prisma
|
||||
- データベース: PostgreSQL
|
||||
- 既存のスキーマを参考にしてください
|
||||
|
||||
推定工数: 1時間
|
||||
EOF
|
||||
)"
|
||||
```
|
||||
|
||||
#### ステップ4: タスクIDの記録とユーザーへの報告
|
||||
|
||||
```
|
||||
ファシリテーター: Julesへの依頼が完了しました。
|
||||
|
||||
依頼したタスク:
|
||||
- Task 1.1: task-abc123(進行中)
|
||||
- Task 1.2: task-def456(進行中)
|
||||
|
||||
進捗は以下のコマンドで確認できます:
|
||||
jules status task-abc123
|
||||
jules status task-def456
|
||||
|
||||
完了を待つ間、他の作業を進めることができます。
|
||||
```
|
||||
|
||||
#### ステップ5: 進捗の確認
|
||||
|
||||
```
|
||||
# 定期的に進捗を確認
|
||||
jules list
|
||||
|
||||
# 特定のタスクの詳細確認
|
||||
jules status task-abc123
|
||||
```
|
||||
|
||||
#### ステップ6: 完了後の処理
|
||||
|
||||
```
|
||||
ファシリテーター: Task 1.1が完了しました。結果を確認します。
|
||||
|
||||
# 結果の取得
|
||||
jules result task-abc123
|
||||
|
||||
ファシリテーター: 実装内容を確認しました。以下のファイルが作成されています:
|
||||
- src/api/auth.ts
|
||||
- src/api/auth/login/route.ts
|
||||
- src/api/auth/logout/route.ts
|
||||
- tests/api/auth.test.ts
|
||||
|
||||
テストが通過し、ESLintエラーもゼロです。
|
||||
受入基準をすべて満たしています。
|
||||
|
||||
tasks.mdを更新してTask 1.1をREVIEWステータスにマークします。
|
||||
```
|
||||
|
||||
#### ステップ7: tasks.mdの更新
|
||||
|
||||
```
|
||||
# tasks.mdのステータスを更新
|
||||
Task 1.1: TODO → IN_PROGRESS(Jules実行中)→ REVIEW(完了、レビュー待ち)→ DONE(承認済み)
|
||||
|
||||
更新内容:
|
||||
- ステータスをREVIEWに変更
|
||||
- Jules task ID(task-abc123)を記録
|
||||
- 完了日時を記録
|
||||
```
|
||||
|
||||
## tasks.md更新の原則
|
||||
|
||||
### 1. ステータス管理
|
||||
|
||||
Julesに依頼したタスクは以下のステータスで管理します:
|
||||
|
||||
**ステータスの遷移**:
|
||||
```
|
||||
TODO → IN_PROGRESS(Jules実行中)→ REVIEW(完了、レビュー待ち)→ DONE(承認済み)
|
||||
```
|
||||
|
||||
**各ステータスの意味**:
|
||||
- `TODO`: 未着手
|
||||
- `IN_PROGRESS`: Julesが作業中
|
||||
- `REVIEW`: Julesが完了、レビュー待ち
|
||||
- `DONE`: レビュー完了、承認済み
|
||||
|
||||
### 2. タスク情報の記録
|
||||
|
||||
tasks.mdには以下の情報を記録します:
|
||||
|
||||
**追加情報**:
|
||||
```markdown
|
||||
#### タスク1.1: ユーザー認証APIエンドポイントの実装
|
||||
**説明**: POST /api/auth/login と POST /api/auth/logout のエンドポイントを実装
|
||||
**受入基準**:
|
||||
- src/api/auth.tsが存在する
|
||||
- テストが通過する
|
||||
**ステータス**: `REVIEW`
|
||||
**Jules Task ID**: task-abc123
|
||||
**開始日時**: 2024-01-15 10:30
|
||||
**完了日時**: 2024-01-15 12:15
|
||||
**作業時間**: 1時間45分
|
||||
```
|
||||
|
||||
### 3. レビューとDONEへの移行
|
||||
|
||||
```
|
||||
ファシリテーター: Task 1.1のレビューが完了しました。
|
||||
実装は要件を満たしており、コード品質も良好です。
|
||||
ステータスをDONEにマークします。
|
||||
|
||||
完了サマリー:
|
||||
ユーザー認証APIエンドポイント(login/logout)を実装。
|
||||
JWTとbcryptを使用した安全な認証を実現。
|
||||
すべてのテストが通過し、ESLintエラーもゼロ。
|
||||
```
|
||||
|
||||
## 複数タスクの並行処理
|
||||
|
||||
### 並行実行の条件
|
||||
|
||||
以下の条件を満たすタスクは並行してJulesに依頼できます:
|
||||
|
||||
**条件**:
|
||||
- 依存関係が存在しない
|
||||
- 異なるファイル・コンポーネントを対象とする
|
||||
- 相互に影響を与えない
|
||||
|
||||
**例**:
|
||||
```
|
||||
並行実行可能:
|
||||
- Task 1.1: APIエンドポイントの実装
|
||||
- Task 1.2: データモデルの定義
|
||||
- Task 1.3: 設定ファイルの作成
|
||||
|
||||
順次実行が必要:
|
||||
- Task 1.1: APIエンドポイントの実装(依存: なし)
|
||||
- Task 2.1: 認証ミドルウェアの実装(依存: Task 1.1)
|
||||
```
|
||||
|
||||
### 並行実行の手順
|
||||
|
||||
```
|
||||
1. 並行実行可能なタスクを特定
|
||||
2. それぞれのタスクについて依頼文を作成
|
||||
3. 複数のjulesコマンドを順次実行
|
||||
4. すべてのタスクIDを記録
|
||||
5. 各タスクの進捗を個別に追跡
|
||||
```
|
||||
|
||||
## エラーハンドリング
|
||||
|
||||
### Julesでエラーが発生した場合
|
||||
|
||||
**対処手順**:
|
||||
```
|
||||
1. エラー内容を確認
|
||||
jules status <task-id>
|
||||
|
||||
2. エラーの原因を分析
|
||||
- 依頼文の不明瞭さ
|
||||
- 技術的な問題
|
||||
- 依存関係の問題
|
||||
|
||||
3. ユーザーに報告
|
||||
- エラーの詳細
|
||||
- 推定される原因
|
||||
- 推奨される対処方法
|
||||
|
||||
4. 必要に応じて再実行
|
||||
- 依頼文を修正
|
||||
- 依存関係を解決
|
||||
- jules retry <task-id>
|
||||
|
||||
5. tasks.mdを更新
|
||||
- ステータスをBLOCKEDに変更
|
||||
- エラー内容を記録
|
||||
```
|
||||
|
||||
**例**:
|
||||
```
|
||||
ファシリテーター: Task 1.1の実行中にエラーが発生しました。
|
||||
|
||||
エラー内容:
|
||||
依存パッケージ'jose'がインストールされていません。
|
||||
|
||||
推奨される対処:
|
||||
1. npm install joseを実行
|
||||
2. Julesのタスクを再実行
|
||||
|
||||
このまま対処を進めますか?それとも手動で解決しますか?
|
||||
```
|
||||
|
||||
### タスクが長時間完了しない場合
|
||||
|
||||
**対処手順**:
|
||||
```
|
||||
1. 現在の状態を確認
|
||||
jules status <task-id>
|
||||
|
||||
2. 作業内容を確認
|
||||
jules show <task-id>
|
||||
|
||||
3. ユーザーに状況を報告
|
||||
- 現在の進捗
|
||||
- 推定残り時間
|
||||
- 次のアクション
|
||||
|
||||
4. 必要に応じてキャンセルまたは待機を提案
|
||||
```
|
||||
|
||||
## 制約事項
|
||||
|
||||
### 実行の制限
|
||||
|
||||
以下の場合はJulesへの依頼を控えます:
|
||||
|
||||
1. **タスクの曖昧性**
|
||||
- 受入基準が不明確
|
||||
- 実装方法が複数考えられる
|
||||
- 技術的文脈が不足している
|
||||
|
||||
2. **リスクの高い操作**
|
||||
- 本番環境への直接的な変更
|
||||
- データベースの削除操作
|
||||
- 認証情報の変更
|
||||
|
||||
3. **ユーザーの判断が必要な場合**
|
||||
- 技術選択が必要
|
||||
- アーキテクチャの決定が必要
|
||||
- トレードオフの判断が必要
|
||||
|
||||
これらの場合は、ユーザーに確認または詳細化を依頼します。
|
||||
|
||||
### Jules CLIの制限
|
||||
|
||||
**考慮事項**:
|
||||
- Jules CLIを利用できる環境が必要
|
||||
- julesコマンドがPATHに含まれている必要がある
|
||||
- 認証が正しく設定されている必要がある
|
||||
- ネットワーク接続が必要
|
||||
|
||||
## ベストプラクティス
|
||||
|
||||
### 1. 依頼文の品質
|
||||
|
||||
**明確で具体的な依頼文を作成**:
|
||||
- 曖昧な表現を避ける
|
||||
- 具体的な成果物を明示する
|
||||
- 検証可能な受入基準を提供する
|
||||
- 必要な文脈をすべて含める
|
||||
|
||||
### 2. タスクの粒度
|
||||
|
||||
**適切な粒度でタスクを依頼**:
|
||||
- 1つのタスクは1-3時間程度
|
||||
- 1つの明確な目的を持つ
|
||||
- 独立して完結する
|
||||
- 検証が容易
|
||||
|
||||
### 3. 進捗管理
|
||||
|
||||
**定期的な進捗確認**:
|
||||
- 長時間のタスクは定期的に状態を確認
|
||||
- 問題が発生したら早期に対処
|
||||
- 完了したらすぐにレビュー
|
||||
|
||||
### 4. ドキュメントの同期
|
||||
|
||||
**tasks.mdを最新に保つ**:
|
||||
- ステータス変更を即座に反映
|
||||
- Jules Task IDを記録
|
||||
- 作業時間を記録
|
||||
- 問題や気づきをメモ
|
||||
|
||||
## 絵文字の使用禁止
|
||||
|
||||
すべてのメッセージ、依頼文、ドキュメントで絵文字を使用しません:
|
||||
|
||||
**禁止事項**:
|
||||
- Jules依頼文に絵文字を含めない
|
||||
- ユーザーへのメッセージに絵文字を使わない
|
||||
- tasks.mdの更新に絵文字を含めない
|
||||
- コミットメッセージに絵文字を使わない
|
||||
|
||||
## トラブルシューティング
|
||||
|
||||
### よくある問題と解決方法
|
||||
|
||||
**問題1: julesコマンドが見つからない**
|
||||
- 原因: Jules CLIがインストールされていない、またはPATHに含まれていない
|
||||
- 解決: Jules CLIのインストールを確認し、PATHを設定
|
||||
|
||||
**問題2: 認証エラーが発生する**
|
||||
- 原因: Jules CLIの認証が設定されていない
|
||||
- 解決: `jules auth login`で認証を設定
|
||||
|
||||
**問題3: タスクが失敗する**
|
||||
- 原因: 依頼文が不明瞭、または依存関係が不足
|
||||
- 解決: 依頼文を詳細化し、必要な前提条件を確認
|
||||
|
||||
**問題4: 並行実行で競合が発生する**
|
||||
- 原因: 同じファイルを編集するタスクを並行実行した
|
||||
- 解決: 依存関係を見直し、順次実行に変更
|
||||
|
||||
## 今後の拡張
|
||||
|
||||
このスキルは将来的に以下の機能を追加予定です:
|
||||
|
||||
- Jules CLIの詳細な状態監視
|
||||
- タスクの優先順位付け
|
||||
- 自動的なレビュープロセス
|
||||
- チームでのタスク共有機能
|
||||
- タスク実行時間の分析とレポート
|
||||
Reference in New Issue
Block a user