From 0fb3ec178872fb0d4809f9af89f6b72b417c4367 Mon Sep 17 00:00:00 2001 From: Zhongwei Li Date: Sun, 30 Nov 2025 09:06:26 +0800 Subject: [PATCH] Initial commit --- .claude-plugin/plugin.json | 12 + README.md | 3 + plugin.lock.json | 48 +++ skills/jules-cli/README.md | 422 +++++++++++++++++++++++ skills/jules-cli/SKILL.md | 663 +++++++++++++++++++++++++++++++++++++ 5 files changed, 1148 insertions(+) create mode 100644 .claude-plugin/plugin.json create mode 100644 README.md create mode 100644 plugin.lock.json create mode 100644 skills/jules-cli/README.md create mode 100644 skills/jules-cli/SKILL.md diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..bd8a6cc --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "jules-cli", + "description": "docs/tasks.mdに記載されたタスクをJules CLIを使って依頼・管理します。タスクを日本語でフォーマットしてJulesに送信し、進捗を追跡して完了後にtasks.mdを更新します。", + "version": "0.0.0-2025.11.28", + "author": { + "name": "Winds Chord", + "email": "zhongweili@tubi.tv" + }, + "skills": [ + "./skills/jules-cli" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..3bfc3e0 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# jules-cli + +docs/tasks.mdに記載されたタスクをJules CLIを使って依頼・管理します。タスクを日本語でフォーマットしてJulesに送信し、進捗を追跡して完了後にtasks.mdを更新します。 diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..0b74864 --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,48 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:windschord/claude_skils:jules-cli", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "21378234c602ce6c6def7eb8284cea0169393d03", + "treeHash": "938fc9f5a8b982f8b6856727c902f24f1c1f953a467e3b2b834a7f198fb47622", + "generatedAt": "2025-11-28T10:29:03.165715Z", + "toolVersion": "publish_plugins.py@0.2.0" + }, + "origin": { + "remote": "git@github.com:zhongweili/42plugin-data.git", + "branch": "master", + "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", + "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" + }, + "manifest": { + "name": "jules-cli", + "description": "docs/tasks.mdに記載されたタスクをJules CLIを使って依頼・管理します。タスクを日本語でフォーマットしてJulesに送信し、進捗を追跡して完了後にtasks.mdを更新します。" + }, + "content": { + "files": [ + { + "path": "README.md", + "sha256": "6a1ff515be3d37c1143ec8628fcf35dc87b94709e7576bd88dabcc34f8c7401b" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "3accb83470bdc031a85e1bde13603bbb6d15fefe05e88e207ba2fb475fe88bc9" + }, + { + "path": "skills/jules-cli/README.md", + "sha256": "76256521f320c54f82ec2c09b010be5b5ac350b8ebb40397a3ba39afc6b18520" + }, + { + "path": "skills/jules-cli/SKILL.md", + "sha256": "1d896f82e152374da92bb3ca763fe2d587b94f78a4608c605125180480d3060d" + } + ], + "dirSha256": "938fc9f5a8b982f8b6856727c902f24f1c1f953a467e3b2b834a7f198fb47622" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file diff --git a/skills/jules-cli/README.md b/skills/jules-cli/README.md new file mode 100644 index 0000000..e373d64 --- /dev/null +++ b/skills/jules-cli/README.md @@ -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 + ``` + +2. **ユーザーに報告** + - エラーの詳細 + - 推定される原因 + - 推奨される対処方法 + +3. **対処を提案** + - 依頼文を修正して再実行 + - 依存関係を解決 + - 手動で対処 + +4. **tasks.mdを更新** + - ステータスをBLOCKEDに変更 + - エラー内容を記録 + +### タスクが長時間完了しない場合 + +1. 現在の状態を確認 +2. ユーザーに状況を報告 +3. キャンセルまたは待機を提案 + +## Jules CLIコマンドリファレンス + +このスキルが使用する主なコマンド: + +### タスクの作成 +```bash +jules "タスクの説明" +``` + +### タスクの管理 +```bash +jules list # タスクリスト表示 +jules status # タスクの状態確認 +jules show # タスクの詳細表示 +jules result # 完了したタスクの結果取得 +``` + +### タスクの制御 +```bash +jules cancel # タスクのキャンセル +jules retry # タスクの再実行 +``` + +## ベストプラクティス + +### 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ライセンスの下で公開されています。 diff --git a/skills/jules-cli/SKILL.md b/skills/jules-cli/SKILL.md new file mode 100644 index 0000000..beb884b --- /dev/null +++ b/skills/jules-cli/SKILL.md @@ -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 + +# タスクの詳細表示 +jules show +``` + +### タスクの管理 + +```bash +# タスクのキャンセル +jules cancel + +# タスクの再実行 +jules retry + +# 完了したタスクの結果取得 +jules result +``` + +## ワークフロー + +### 基本的な実行フロー + +``` +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 + +2. エラーの原因を分析 + - 依頼文の不明瞭さ + - 技術的な問題 + - 依存関係の問題 + +3. ユーザーに報告 + - エラーの詳細 + - 推定される原因 + - 推奨される対処方法 + +4. 必要に応じて再実行 + - 依頼文を修正 + - 依存関係を解決 + - jules retry + +5. tasks.mdを更新 + - ステータスをBLOCKEDに変更 + - エラー内容を記録 +``` + +**例**: +``` +ファシリテーター: Task 1.1の実行中にエラーが発生しました。 + + エラー内容: + 依存パッケージ'jose'がインストールされていません。 + + 推奨される対処: + 1. npm install joseを実行 + 2. Julesのタスクを再実行 + + このまま対処を進めますか?それとも手動で解決しますか? +``` + +### タスクが長時間完了しない場合 + +**対処手順**: +``` +1. 現在の状態を確認 + jules status + +2. 作業内容を確認 + jules show + +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の詳細な状態監視 +- タスクの優先順位付け +- 自動的なレビュープロセス +- チームでのタスク共有機能 +- タスク実行時間の分析とレポート