Files
2025-11-30 09:06:26 +08:00

664 lines
18 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
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.
---
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
- 認証ライブラリ: joseJWT、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_PROGRESSJules実行中→ REVIEW完了、レビュー待ち→ DONE承認済み
更新内容:
- ステータスをREVIEWに変更
- Jules task IDtask-abc123を記録
- 完了日時を記録
```
## tasks.md更新の原則
### 1. ステータス管理
Julesに依頼したタスクは以下のステータスで管理します
**ステータスの遷移**
```
TODO → IN_PROGRESSJules実行中→ 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の詳細な状態監視
- タスクの優先順位付け
- 自動的なレビュープロセス
- チームでのタスク共有機能
- タスク実行時間の分析とレポート