作業指示毎の作業計画、タスクリストをドキュメントに記録するためのスキル。ユーザーからの指示をトリガーとした作業計画時、実装時、検証時に読み込む。
ステアリングファイル(.steering/)に基づいた実装を支援し、tasklist.mdの進捗管理を確実に行うスキルです。
このスキルは以下のタイミングで使用してください:
新しい機能や変更のためのステアリングファイルを作成します。
ステアリングディレクトリの確認
現在の日付を取得し、`.steering/[YYYYMMDD]-[機能名]/` の形式でディレクトリを作成
永続ドキュメントの確認
docs/product-requirements.mddocs/functional-design.mddocs/architecture.mddocs/repository-structure.mddocs/development-guidelines.mdこれらを読んで、プロジェクトの方針を理解する
テンプレートからファイル作成
以下のテンプレートを読み込み、プレースホルダーを具体的な内容に置き換えてファイルを作成:
.claude/skills/steering/templates/requirements.md → .steering/[日付]-[機能名]/requirements.md.claude/skills/steering/templates/design.md → .steering/[日付]-[機能名]/design.md.claude/skills/steering/templates/tasklist.md → .steering/[日付]-[機能名]/tasklist.mdtasklist.mdの詳細化
requirements.mdとdesign.mdに基づいて、tasklist.mdを詳細化:
tasklist.mdに従って実装を進め、進捗を確実にドキュメントに記録します。
MUST(必須):
[ ]→[x]に更新NEVER(禁止):
[ ])を残したまま作業を終了する絶対に守るべきルール:
tasklist.mdの全タスクが完了するまで作業を継続すること
[x]になるまで実装を継続タスクスキップは原則禁止
タスクが大きすぎる場合の対処法
技術的な理由でタスクが不要になった場合のみスキップ許可
以下の技術的理由に該当する場合のみスキップ可能:
スキップ手順:
- [x] ~~タスク名~~(実装方針変更により不要: アーキテクチャをXからYに変更したため、このレイヤーが不要になった)未完了タスクが残っている場合のNG例
## 実装後の振り返り
**実装しなかったタスク**:
- テストの実装(時間の都合により別タスクとして実施予定) ❌ 絶対にダメ
正しい完了の形
[x]Read('.steering/[日付]-[機能名]/tasklist.md')
全体のタスク構造を把握し、次に着手すべきタスクを特定する。
tasklist.mdの内容に基づいてTodoWriteツールでタスクリストを作成:
3-1. 次のタスクを確認
tasklist.mdを読み、次の未完了タスク(`[ ]`)を特定
3-2. タスク開始をtasklist.mdに記録(必須)
Editツールを使って、tasklist.mdの該当行を`[ ]`→`[x]`に更新
例:
old_string: "- [ ] StorageServiceを実装"
new_string: "- [x] StorageServiceを実装"
重要: Editツールを実行した直後に、更新が成功したことを確認する。
3-3. TodoWriteでもステータス更新
TodoWriteツールで該当タスクを"in_progress"に変更
3-4. 実装を実行
開発ガイドライン(docs/development-guidelines.md)に従って実装
3-5. タスク完了をtasklist.mdに記録(必須)
実装完了後、必ずEditツールでtasklist.mdを更新して完了を記録
サブタスクがある場合はサブタスクも個別に更新する
3-6. TodoWriteでもステータス更新
TodoWriteツールで該当タスクを"completed"に変更
3-7. 次のタスクへ
ステップ3-1に戻る
各フェーズ(例: フェーズ1、フェーズ2)が完了したら:
tasklist.mdを読み込んで進捗確認
Read('.steering/[日付]-[機能名]/tasklist.md')
完了したタスクを確認
[x]になっているかユーザーに報告
「フェーズ1が完了しました。tasklist.mdの進捗を確認してください。」
全フェーズの実装完了後、振り返りを書く前に必ず実行:
tasklist.mdを読み込む
Read('.steering/[日付]-[機能名]/tasklist.md')
未完了タスク([ ])がないか確認
[x]になっているか?[ ]が残っていないか?未完了タスクが見つかった場合
❌ やってはいけないこと:
✅ 正しい対処法:
パターンA: タスクを実装する
ステップ3(タスクループ)に戻り、未完了タスクを実装する
パターンB: タスクが大きすぎる場合
1. タスクを小さなサブタスクに分割
2. tasklist.mdに分割したサブタスクを追加
3. サブタスクを1つずつ完了させる
パターンC: 技術的な理由でタスクが不要になった場合のみ
以下の技術的理由に該当する場合のみスキップ可能:
スキップ手順:
1. tasklist.mdに技術的な理由を明記:
「- [x] ~~タスク名~~(実装方針変更により不要: 具体的な技術的理由を詳細に記述)」
2. 振り返りセクションに変更理由を詳細に記録
3. なぜこのタスクが不要になったのか、何に置き換わったのかを明確に記述
全タスク完了を確認できた場合のみ次へ
全てのタスクが`[x]`になっていることを確認してからステップ5へ進む
最終確認
Read('.steering/[日付]-[機能名]/tasklist.md')
すべてのタスクが[x]になっていることを確認
振り返りセクションに記録
Editツールでtasklist.mdの「実装後の振り返り」セクションを更新:
- 実装完了日
- 計画と実績の差分
- 学んだこと
- 次回への改善提案
5タスクごとに以下を確認:
実装完了後、tasklist.mdに振り返りを記録します。
tasklist.mdを読み込む
Read('.steering/[日付]-[機能名]/tasklist.md')
振り返り内容を作成
Editツールで更新
tasklist.mdの「実装後の振り返り」セクションを更新
ユーザーに報告
「振り返りをtasklist.mdに記録しました。内容を確認してください。」
もし実装中にtasklist.mdの更新を忘れていることに気づいたら:
即座に更新を実行
Read('.steering/[日付]-[機能名]/tasklist.md')
完了したタスクを特定し、すべてEditツールで`[x]`に更新
ユーザーに報告
「tasklist.mdの更新が遅れていたため、現在の進捗を反映しました。」
再発防止
計画と実装が大きく異なる場合:
tasklist.mdに注釈を追加
Editツールで該当タスクに注釈を追加:
「- [x] タスク名(実装方法を変更: 理由)」
必要に応じて新しいタスクを追加
Editツールで新しいタスクを追加
design.mdも更新
設計の変更が大きい場合はdesign.mdも更新
実装前に必ず確認:
実装後に必ず確認:
このスキルを正しく使用すると:
🚨 このスキルの最も重要な役割は、tasklist.mdの進捗管理を確実に行うことです。
実装中は常に「ユーザーがtasklist.mdを見たときに進捗が分かるか?」を自問してください。