skill-task-management について
Codex CLI 向けのタスク管理スキルです。複数段階の作業を追跡し、進捗をチェックポイントとして保存して、後のセッションで再開できます。ホストのタスクツールを使った作成・更新・継続の手順をまとめています。
主な機能
- 01タスク記録の作成と更新
- 02進捗チェックポイントの保存
- 03セッションをまたいだ作業再開
- 04タスク状態と次の手順の追跡
活用シーン
- 01新しい作業のToDoへの記録
- 02作業切り替え前の状況保存
- 03セッション中断後の作業再開
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nyldn/ claude-octopus --skill skill-task-managementインストール後、Claude Code で/skill-task-managementを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
ホスト:Codex CLI — このスキルは Claude Code 向けに設計され、Codex 用に調整されています。 相互参照コマンドでは、
/octo:*スラッシュコマンドではなく、Codex にインストール済みのスキル名を使用します。 現在の Codex シェルとサブエージェントツールを使用してください。現在のセッションで利用できることが確認されるまでは、プロバイダー、モデル、またはホストのサブエージェントが利用可能だと断言しないでください。 ホストツールの代替については、skills/blocks/codex-host-adapter.mdを参照してください。
タスク管理とオーケストレーション(v7.23.0+)
概要
複数ステップの作業、進捗のチェックポイント作成、セッションをまたいだタスクのシームレスな再開を実現する、体系的なタスクオーケストレーションです。
基本原則: 追跡 → チェックポイント作成 → 再開 → 完了。
v7.23.0 への移行: このスキルでは、ネイティブの Claude Code ホストサブエージェントツールを使用するようになりました。
TaskCreate- 新しいタスクを作成しますTaskUpdate- タスクのステータスや詳細を更新しますTaskList- すべてのタスクを表示しますTaskGet- 特定のタスクの詳細を取得します
メリット:
- ✅ タスクがネイティブの Claude Code UI に表示されます
- ✅ 進捗の追跡と可視化が向上します
- ✅ Claude Code の規約に準拠します
- ✅ 外部のタスク計画ツールへの依存がありません
使用するタイミング
ユーザーが次のことを希望する場合に、このスキルを使用してください。
- ToDo リストに項目を追加する
- 現在の進捗を保存して、後から続きを再開する
- 以前に保存した作業を再開する
- 長時間かかるタスクの進捗にチェックポイントを作成する
- ワークフローの次のステップに進む
- 中断したところから続ける
次の場合には使用しないでください。
- Git コミットを作成する(skill-finish-branch を使用してください)
- 簡単な ToDo リストの問い合わせ(「リストには何がありますか?」など)
- コードのプッシュを伴うタスクの完了
主な機能
1. ToDo リストへのタスク追加
ユーザーが「ToDo に追加して」などと言った場合:
**What would you like to add to the todo list?**
I'll help you capture this task. Please provide:
- Task description (what needs to be done)
- Any dependencies or prerequisites
- Priority (if applicable)
詳細を確認した後、TaskCreate を使用して追加します。
TaskCreate({
subject: "[Brief task description]",
description: "[Detailed description including dependencies and context]",
activeForm: "Working on [task description]"
})
その後、ユーザーに確認します。
✅ Task created: [Task description]
View all tasks with TaskList or use /tasks command.
2. 進捗の保存/チェックポイントの作成
ユーザーが「進捗を保存して」または「チェックポイントを作成して」と言った場合:
ステップ 1:現在の状態を評価する
# Check git status
git status
# Check current branch
git branch --show-current
# Check uncommitted work
git diff --stat
ステップ 2:進捗のチェックポイントを作成する
オプション A:Git ベースのチェックポイント(Git リポジトリの場合)
# Create a work-in-progress commit
git add .
git commit -m "WIP: [description of current state]
Progress checkpoint - work in progress
Not ready for review or merge
Current state:
- [What's completed]
- [What's in progress]
- [What's next]
Co-Authored-By: Claude Sonnet 4.6 <[email protected]>"
オプション B:タスクベースのチェックポイント(追跡に推奨)
詳細な状態を含めてチェックポイントタスクを作成します。
TaskCreate({
subject: "Checkpoint: [Brief description]",
description: `
📍 CHECKPOINT: ${new Date().toISOString()}
Completed:
✓ [Task 1]
✓ [Task 2]
In Progress:
⚙️ [Current task with details]
Next Steps:
- [ ] [Next task 1]
- [ ] [Next task 2]
- [ ] [Next task 3]
Context:
- Branch: ${branchName}
- Last commit: ${lastCommit}
- Files changed: ${filesChanged}
`,
activeForm: "Checkpoint saved"
})
ステップ 3:既存のタスクを更新する
完了したタスクを完了済みにします。
// For each completed task
TaskUpdate({
taskId: "[task-id]",
status: "completed"
})
現在のタスクを進行中にします。
TaskUpdate({
taskId: "[current-task-id]",
status: "in_progress"
})
ステップ 4:再開手順を提示する
✅ Progress saved!
To resume this work:
1. Run: git checkout [branch-name]
2. View tasks: TaskList
3. Say: "resume tasks" or "pick up where we left off"
Current state:
- Branch: [branch-name]
- Tasks: [X completed, Y in progress, Z pending]
- Last checkpoint: [timestamp]
3. タスクの再開
ユーザーが「タスクを再開して」または「前回の続きから始めて」と言った場合:
ステップ 1:タスクの状態を読み込む
// Get all tasks
const tasks = TaskList()
// Filter by status
const completed = tasks.filter(t => t.status === 'completed')
const inProgress = tasks.filter(t => t.status === 'in_progress')
const pending = tasks.filter(t => t.status === 'pending')
// Find checkpoint task (if exists)
const checkpoint = tasks.find(t => t.subject.startsWith('Checkpoint:'))
ステップ 2:Git の状態を確認する
# Check for WIP commits
git log --oneline -10 | grep WIP
# Check current branch
git branch --show-current
# Check git status
git status
ステップ 3:現在の状態を提示する
📋 **Resuming from last checkpoint**
**Branch:** [branch-name]
**Last checkpoint:** [timestamp from WIP commit or checkpoint task]
**Completed:** (${completed.length} tasks)
${completed.map(t => `✓ ${t.subject}`).join('\n')}
**In Progress:** (${inProgress.length} tasks)
${inProgress.map(t => `⚙️ ${t.subject}`).join('\n')}
**Next Steps:** (${pending.length} tasks)
${pending.map((t, i) => `${i + 1}. [ ] ${t.subject}`).join('\n')}
**Would you like me to:**
1. Continue with the next task?
2. Modify the plan?
3. See more details about current state?
ステップ 4:選択に応じて実行する
-
「次のタスクに進む」の場合 → 最初の保留中のタスクを取得し、進行中にしてから作業を開始します。
const nextTask = pending[0] TaskUpdate({ taskId: nextTask.id, status: 'in_progress' }) // Begin working on nextTask -
「計画を変更する」の場合 → AskUserQuestion を使用して変更内容を確認し、タスクを更新します
-
「詳細を確認する」の場合 → Git の差分、ファイルの変更、最近のコミット、タスクの説明を表示します
4. 次のステップへの進行
ユーザーが「次のステップに進んで」と言った場合:
ステップ 1:現在のタスクのステータスを確認する
const tasks = TaskList()
const currentTask = tasks.find(t => t.status === 'in_progress')
if (currentTask) {
console.log(`Current task: ${currentTask.subject}`)
console.log(`Status: ${currentTask.status}`)
}
ステップ 2:現在のタスクを完了し、次へ進む
// Mark current task as complete
if (currentTask) {
TaskUpdate({
taskId: currentTask.id,
status: 'completed'
})
console.log(`✓ ${currentTask.subject}`)
}
// Get next pending task
const nextTask = tasks.find(t => t.status === 'pending' && !t.blockedBy?.length)
if (nextTask) {
// Mark as in progress
TaskUpdate({
taskId: nextTask.id,
status: 'in_progress'
})
console.log(`\n⚙️ ${nextTask.subject}`)
console.log(`\nProceeding with: ${nextTask.description}`)
}
ステップ 3:次のタスクを実行する
次のタスクを進行中にしたら、すぐに作業を開始します。
タスク計画ツールからの移行(v7.22.x → v7.23.0+)
既存の .md ToDo ファイルをお持ちの場合
既存の .claude/todos.md などのファイルがある場合:
オプション 1:自動移行
# Run migration script
"${HOME}/.claude-octopus/plugin/scripts/migrate-todos.sh"
これにより、次の処理が行われます。
- 既存の .md ToDo ファイルを解析します
- TaskCreate 呼び出しに変換します
- タスクの順序とステータスを保持します
- 古い .md ファイルを
.claude/archived-todos/にアーカイブします
オプション 2:手動移行
.md ファイル内の各 ToDo 項目について:
- [ ] Implement user authentication
- [x] Set up database
- [ ] Create API endpoints
次のように変換します。
// New format using native tasks
TaskCreate({
subject: "Implement user authentication",
description: "Create auth system with JWT tokens",
activeForm: "Implementing authentication"
})
TaskCreate({
subject: "Set up database",
description: "Configure PostgreSQL and run migrations",
activeForm: "Setting up database"
})
// Mark as completed since it was [x]
TaskUpdate({ taskId: "...", status: "completed" })
TaskCreate({
subject: "Create API endpoints",
description: "Build REST API for user operations",
activeForm: "Creating API endpoints"
})
下位互換性
旧システムを希望するユーザー向けのオプトアウト:
.claude/claude-octopus.local.md を作成し、次の内容を記述します。
use_native_tasks: false
# Claude Octopus Local Configuration
This project uses legacy task plan tool tool instead of native Task management.
use_native_tasks: false の場合、このスキルはタスク計画ツールの動作にフォールバックします。
他のスキルとの連携
skill-finish-branch との連携
User: "save progress and prepare for PR"
1. Use skill-task-management to checkpoint (create tasks for current state)
2. Then use skill-finish-branch to prepare PR
flow-develop との連携
User: "add implementation of auth system to todos"
1. Use skill-task-management to add high-level task
2. Use flow-develop to break down and implement
3. Update tasks as work progresses
skill-debug との連携
User: "checkpoint this, I found a bug"
1. Use skill-task-management to save current progress (checkpoint task)
2. Use skill-debug to investigate the bug
3. Return to saved checkpoint after fix
ベストプラクティス
1. 明確なタスクの件名と説明
良いタスク:
TaskCreate({
subject: "Implement token refresh with 15-minute expiration",
description: `
Create token refresh endpoint that:
- Validates refresh token from secure HTTP-only cookie
- Issues new access token with 15min expiry
- Rotates refresh token for security
- Returns 401 if refresh token invalid/expired
Dependencies: OAuth provider setup must be complete
`,
activeForm: "Implementing token refresh logic"
})
良くないタスク:
TaskCreate({
subject: "Do auth stuff",
description: "Fix things",
activeForm: "Working"
})
2. タスクの依存関係を活用する
前提条件のあるタスクの場合:
// First task
TaskCreate({
subject: "Set up OAuth provider configuration",
description: "Configure Auth0 application settings",
activeForm: "Configuring OAuth provider"
})
// Dependent task
TaskCreate({
subject: "Implement token refresh endpoint",
description: "Create /auth/refresh endpoint",
activeForm: "Implementing refresh endpoint",
addBlockedBy: ["1"] // Blocked by task #1
})
3. チェックポイントでコンテキストを保持する
チェックポイントを作成するときは、必ず以下を含めてください。
- 完了したこと(作業のやり直しを防ぎます)
- 進行中のこと(すぐに作業を再開できます)
- 次に行うこと(今後の道筋が明確になります)
- 判断した理由(推論を保持します)
チェックポイントタスクの例:
TaskCreate({
subject: "Checkpoint: Auth implementation 70% complete",
description: `
📍 CHECKPOINT: 2026-02-03T14:30:00Z
Completed:
✓ OAuth provider configuration (Auth0)
✓ Token exchange endpoint (/auth/login)
✓ User session middleware
In Progress:
⚙️ Token refresh logic (70% done)
- Validation complete
- Token rotation TODO
- Cookie handling TODO
Next:
- [ ] Complete token rotation logic
- [ ] Add logout endpoint
- [ ] Add session expiration handling
- [ ] Write integration tests
Branch: feature/auth-system
Last commit: abc123f "Add session middleware"
Decisions Made:
- Using Auth0 (rationale: enterprise-grade, handles complexity)
- 15-minute access token expiry (security vs UX balance)
- HTTP-only cookies for refresh tokens (XSS protection)
`,
activeForm: "Checkpoint saved"
})
よくあるパターン
パターン 1:一日の終わりのチェックポイント
User: "save progress, I'm done for today"
Action:
1. Create WIP commit with current state
2. Create checkpoint task with completed/pending breakdown
3. Mark in-progress tasks with current status
4. Provide resume instructions for tomorrow
パターン 2:コンテキストの切り替え
User: "checkpoint this, need to work on something else"
Action:
1. Save current branch state (WIP commit)
2. Create checkpoint task with detailed context
3. Mark current task as pending (will resume later)
4. Ready for resume when user returns
パターン 3:共同作業の引き継ぎ
User: "save progress for Claude to pick up"
Action:
1. Create comprehensive checkpoint task
2. Document all context and decisions
3. Mark in-progress tasks with current state
4. Ensure new session can load task state and resume seamlessly
注意事項 — 避けるべきこと
| 操作 | 問題となる理由 |
|---|---|
| コンテキストを記録せずにチェックポイントを作成する | 次のセッションで何をしていたか分からなくなります |
| コードを変更したのに WIP コミットを省略する | 問題が起きたときに作業内容が失われる可能性があります |
| TaskList を確認せずに、漠然と「次に進む」とする | 未完了の作業を飛ばしてしまう可能性があります |
| タスクの件名や説明が曖昧 | 何をすべきか分かりません |
| TaskList の状態を表示せずに再開する | ユーザーが作業の進捗状況を把握できません |
| activeForm なしでタスクを作成する | UI に進捗状況が表示されません |
クイックリファレンス
| ユーザーの意図 | スキルのアクション | 使用するツール |
|---|---|---|
| 「todo に追加」 | 詳細を確認してタスクを作成する | TaskCreate |
| 「進捗を保存」 | チェックポイントタスクを作成し、WIP コミットを行う | TaskCreate + git |
| 「タスクを再開」 | タスクの状態を読み込み、状況を表示して方向性を確認する | TaskList |
| 「次に進む」 | 現在のタスクを完了し、次のタスクを開始する | TaskUpdate |
| 「これをチェックポイントにする」 | 詳細なチェックポイントタスクを作成する | TaskCreate |
タスクのステータスのワークフロー
pending → in_progress → completed
↓
deleted (if no longer needed)
ベストプラクティス:
- タスクは
pending状態で作成します - 作業を開始したら
in_progressにします - 完全に完了した場合にのみ
completedにします - キャンセルまたは不要になったタスクには
deletedを使用します
要点
Task management → Clear state + Easy resume + Native UI
Otherwise → Lost context + Duplicate work + No visibility
すべてを記録しましょう。こまめにチェックポイントを作成しましょう。スムーズに作業を再開しましょう。ネイティブツールを使いましょう。
例:ワークフロー全体
// User: "add implementing auth to my todos"
// Step 1: Create main task
TaskCreate({
subject: "Implement user authentication system",
description: `
Build complete auth system with:
- OAuth 2.0 (Auth0 provider)
- JWT token management
- Refresh token rotation
- Session middleware
- Logout functionality
`,
activeForm: "Planning authentication implementation"
})
// User works on it...
// User: "save progress for tomorrow"
// Step 2: Create checkpoint
TaskCreate({
subject: "Checkpoint: Auth implementation in progress",
description: `
📍 Checkpoint: 2026-02-03T18:30:00Z
Completed:
✓ OAuth configuration
✓ Login endpoint
In Progress:
⚙️ Token refresh (50%)
Next:
- [ ] Complete refresh logic
- [ ] Add logout
- [ ] Write tests
Branch: feature/auth
Commit: abc123f
`,
activeForm: "Checkpoint saved"
})
// Step 3: Update main task status
TaskUpdate({
taskId: "1",
status: "in_progress"
})
// User: "resume tasks" (next day)
// Step 4: Load and present state
const tasks = TaskList()
// Present: "You have 1 in_progress task, last checkpoint 2026-02-03T18:30:00Z"
// Show details from checkpoint task
// User: "continue"
// Step 5: Resume work
const currentTask = tasks.find(t => t.status === 'in_progress')
// Begin working on token refresh where they left off