# タスク分解・todo.txt保存スキル ユーザーから受け取ったタスクを分析し、実行可能な粒度に細分化・関連タスクを洗い出してタスクリストを作成する。ユーザーの承認後、todo.txt形式でファイルに保存する。 ## todo.txt フォーマット仕様 todo.txtは1行1タスクのプレーンテキスト形式。以下のルールに従う。 ### 未完了タスクの書式 ``` [優先度] [作成日] タスク説明 [+プロジェクト] [@コンテキスト] [key:value] ``` - **優先度** (任意): `(A)` ~ `(Z)` の大文字1文字。行頭に置く。後ろにスペース必須 - **作成日** (任意): `YYYY-MM-DD` 形式。優先度の直後(優先度がなければ行頭)に置く - **プロジェクトタグ**: `+ProjectName` (スペースの後に`+`。空白を含まない) - **コンテキストタグ**: `@ContextName` (スペースの後に`@`。空白を含まない) - **メタデータ**: `key:value` 形式 (例: `due:2026-04-15`) ### 完了タスクの書式 ``` x 完了日 [作成日] タスク説明 [+プロジェクト] [@コンテキスト] ``` - 行頭に小文字 `x` + スペース - 完了日は `YYYY-MM-DD` 形式で `x` の直後に置く ### 例 ``` (A) 2026-03-30 APIエンドポイントの設計 +Backend @design (B) 2026-03-30 データベーススキーマの作成 +Backend @db 2026-03-30 READMEの更新 +Docs x 2026-03-30 2026-03-29 環境構築 +Setup @dev ``` ## ワークフロー ### フェーズ1: タスクの受け取りと理解 ユーザーからタスクを受け取る。以下を把握する: - **タスクの目的**: 何を達成したいのか - **スコープ**: どこまでやるのか - **制約**: 期限、技術的制約、依存関係など - **コンテキスト**: プロジェクト名、作業環境など 情報が不足している場合は簡潔に質問する。ただし、推測できる範囲は推測して進め、確認は最小限にする。 ### フェーズ2: タスクの分解と関連タスク洗い出し 以下の観点でタスクを分解する: 1. **細分化**: 大きなタスクを実行可能な粒度(1~2時間で完了できる単位)に分解 2. **依存関係の整理**: タスク間の順序関係を把握し、優先度に反映 3. **関連タスクの発見**: 明示されていないが必要なタスクを洗い出す - 準備作業(環境構築、調査、設計など) - テスト・検証 - ドキュメント更新 - レビュー・フィードバック対応 4. **優先度の付与**: 依存関係と重要度に基づいて `(A)` ~ `(C)` の優先度を割り当て - `(A)`: ブロッカーまたは最優先 - `(B)`: 重要だが(A)の後でよい - `(C)`: あると良いが後回し可能 ### フェーズ3: タスクリストの提示と承認 分解したタスクリストを見やすい形式でユーザーに提示する。 提示フォーマット: ``` ## タスクリスト ### (A) 最優先 1. APIエンドポイントの設計 +Backend @design 2. データベーススキーマの作成 +Backend @db ### (B) 重要 3. CRUD操作の実装 +Backend @coding 4. バリデーション追加 +Backend @coding ### (C) 後回し可能 5. READMEの更新 +Docs --- 合計: 5タスク プロジェクト: +Backend, +Docs コンテキスト: @design, @db, @coding ``` 提示後、ユーザーに以下を確認する: > 「このタスクリストでよろしいですか?追加・削除・優先度の変更があればお知らせください。」 ### フェーズ4: todo.txtへの保存 ユーザーの承認を得たら、todo.txt形式でファイルに保存する。 #### 保存ルール 1. **ファイルパス**: カレントディレクトリの `todo.txt`(ユーザーが別の場所を指定した場合はそちら) 2. **既存ファイルがある場合**: 既存の内容を読み込み、新しいタスクを**末尾に追記**する。既存タスクは変更しない 3. **既存ファイルがない場合**: 新規作成する 4. **作成日**: 全タスクに今日の日付を `YYYY-MM-DD` 形式で付与する 5. **文字コード**: UTF-8 #### 保存後の報告 保存が完了したら、以下を報告する: ``` todo.txt に N件のタスクを追加しました。 保存先: [ファイルパス] ``` ## プロジェクトタグとコンテキストタグのガイドライン ユーザーが明示しない場合、タスクの内容から適切なタグを推測して付与する。 ### プロジェクトタグ (+) の例 - `+Backend`, `+Frontend`, `+API`, `+DB`, `+Infra`, `+Docs`, `+Test`, `+Design` ### コンテキストタグ (@) の例 - `@coding`, `@design`, `@review`, `@research`, `@meeting`, `@deploy`, `@debug` ### メタデータの例 - `due:YYYY-MM-DD` — 期限(自明でない場合は期限を設けない) - `dep:タスク番号` — 依存先(必要に応じて) ## 注意事項 - タスクの粒度が大きすぎないか常に意識する。「実装する」ではなく「〇〇の△△を実装する」レベルまで具体化する - ユーザーの承認なしにtodo.txtへ書き込まない - 既存のtodo.txtの内容を勝手に変更・削除しない - タグの命名はプロジェクト内で一貫性を保つ。既存のtodo.txtがある場合、そこで使われているタグに合わせる