Claude Code Plugins

Community-maintained marketplace

Feedback

作業指示毎の作業計画、タスクリストをドキュメントに記録するためのスキル。ユーザーからの指示をトリガーとした作業計画時、実装時、検証時に読み込む。

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name steering
description 作業指示毎の作業計画、タスクリストをドキュメントに記録するためのスキル。ユーザーからの指示をトリガーとした作業計画時、実装時、検証時に読み込む。
allowed-tools Read, Write

Steering スキル

ステアリングファイル(.steering/)に基づいた実装を支援し、tasklist.mdの進捗管理を確実に行うスキルです。

スキルの目的

  • ステアリングファイル(requirements.md, design.md, tasklist.md)の作成支援
  • tasklist.mdに基づいた段階的な実装管理
  • 進捗の自動追跡とtasklist.md更新の強制
  • 実装完了後の振り返り記録

使用タイミング

このスキルは以下のタイミングで使用してください:

  1. 作業計画時: ステアリングファイルを作成する時
  2. 実装時: tasklist.mdに従って実装する時
  3. 検証時: 実装完了後の振り返りを記録する時

モード1: ステアリングファイル作成

目的

新しい機能や変更のためのステアリングファイルを作成します。

手順

  1. ステアリングディレクトリの確認

    現在の日付を取得し、`.steering/[YYYYMMDD]-[機能名]/` の形式でディレクトリを作成
    
  2. 永続ドキュメントの確認

    • docs/product-requirements.md
    • docs/functional-design.md
    • docs/architecture.md
    • docs/repository-structure.md
    • docs/development-guidelines.md

    これらを読んで、プロジェクトの方針を理解する

  3. テンプレートからファイル作成

    以下のテンプレートを読み込み、プレースホルダーを具体的な内容に置き換えてファイルを作成:

    • .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.md
  4. tasklist.mdの詳細化

    requirements.mdとdesign.mdに基づいて、tasklist.mdを詳細化:

    • 各フェーズのタスクを具体的に記述
    • サブタスクも明確に
    • 実装の順序を明記

モード2: 実装(最重要)

目的

tasklist.mdに従って実装を進め、進捗を確実にドキュメントに記録します。

🚨 重要な原則

MUST(必須):

  • tasklist.mdを常に開いた状態で実装
  • タスク開始時に必ずEditツールで[ ][x]に更新
  • タスク完了時に必ずEditツールで完了を記録
  • tasklist.mdの全タスクが完了するまで作業を継続する
  • NEVER: tasklist.mdを更新せずに次のタスクに進まない

NEVER(禁止):

  • tasklist.mdを見ずに実装を進める
  • TodoWriteツールだけで進捗管理する(TodoWriteは補助、tasklist.mdが正式)
  • 複数タスクをまとめて更新する(リアルタイムに更新する)
  • 「時間の都合により」「別タスクとして実施予定」などの理由でタスクをスキップする
  • 未完了タスク([ ])を残したまま作業を終了する

🚨 タスク完全完了の原則

絶対に守るべきルール:

  1. tasklist.mdの全タスクが完了するまで作業を継続すること

    • 全てのタスクが[x]になるまで実装を継続
    • 「時間がかかりすぎる」「難しい」などの理由でスキップしない
    • 未完了タスクがある状態で振り返りを書かない
  2. タスクスキップは原則禁止

    • 「時間の都合により別タスクとして実施予定」は禁止
    • 「実装が複雑すぎるため後回し」は禁止
    • 「難しいから後で」「テストが面倒」などの理由は禁止
    • スキップが許可されるのは技術的な理由のみ(下記参照)
  3. タスクが大きすぎる場合の対処法

    • タスクを小さなサブタスクに分割する
    • 分割したサブタスクをtasklist.mdに追加
    • サブタスクを1つずつ完了させる
  4. 技術的な理由でタスクが不要になった場合のみスキップ許可

    以下の技術的理由に該当する場合のみスキップ可能:

    • 実装方針の変更により、機能自体が不要になった
    • アーキテクチャ変更により、別の実装方法に置き換わった
    • 依存関係の変更により、タスクが実行不可能になった
    • 上位の設計変更により、このタスクが無意味になった

    スキップ手順:

    • tasklist.mdに技術的な理由を明記してスキップマークを付ける
    • 例: - [x] ~~タスク名~~(実装方針変更により不要: アーキテクチャをXからYに変更したため、このレイヤーが不要になった)
    • 振り返りセクションに変更理由を詳細に記録
  5. 未完了タスクが残っている場合のNG例

    ## 実装後の振り返り
    **実装しなかったタスク**:
    - テストの実装(時間の都合により別タスクとして実施予定) ❌ 絶対にダメ
    
  6. 正しい完了の形

    • 全タスクが[x]
    • 振り返りセクションに「実装しなかったタスク」の記述がない
    • 実装方針の変更があれば、その理由が明記されている

実装フロー

ステップ1: tasklist.mdを読み込む

Read('.steering/[日付]-[機能名]/tasklist.md')

全体のタスク構造を把握し、次に着手すべきタスクを特定する。

ステップ2: TodoWriteでタスク管理開始

tasklist.mdの内容に基づいてTodoWriteツールでタスクリストを作成:

  • これはClaude Code内部の補助的なメモ
  • tasklist.mdこそが正式なドキュメント

ステップ3: タスクループ(各タスクで繰り返す)

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に戻る

ステップ4: フェーズ完了時の確認

各フェーズ(例: フェーズ1、フェーズ2)が完了したら:

  1. tasklist.mdを読み込んで進捗確認

    Read('.steering/[日付]-[機能名]/tasklist.md')
    
  2. 完了したタスクを確認

    • すべてのタスクが[x]になっているか
    • 見落としたタスクがないか
  3. ユーザーに報告

    「フェーズ1が完了しました。tasklist.mdの進捗を確認してください。」
    

ステップ4.5: 全タスク完了チェック(必須)

全フェーズの実装完了後、振り返りを書く前に必ず実行:

  1. tasklist.mdを読み込む

    Read('.steering/[日付]-[機能名]/tasklist.md')
    
  2. 未完了タスク([ ])がないか確認

    • 全てのタスクが[x]になっているか?
    • 1つでも[ ]が残っていないか?
  3. 未完了タスクが見つかった場合

    ❌ やってはいけないこと:

    • 「時間の都合により別タスクとして実施予定」と振り返りに書く
    • 未完了タスクを無視して次のステップに進む

    ✅ 正しい対処法:

    パターンA: タスクを実装する

    ステップ3(タスクループ)に戻り、未完了タスクを実装する
    

    パターンB: タスクが大きすぎる場合

    1. タスクを小さなサブタスクに分割
    2. tasklist.mdに分割したサブタスクを追加
    3. サブタスクを1つずつ完了させる
    

    パターンC: 技術的な理由でタスクが不要になった場合のみ

    以下の技術的理由に該当する場合のみスキップ可能:

    • 実装方針の変更により、機能自体が不要になった
    • アーキテクチャ変更により、別の実装方法に置き換わった
    • 依存関係の変更により、タスクが実行不可能になった

    スキップ手順:

    1. tasklist.mdに技術的な理由を明記:
       「- [x] ~~タスク名~~(実装方針変更により不要: 具体的な技術的理由を詳細に記述)」
    2. 振り返りセクションに変更理由を詳細に記録
    3. なぜこのタスクが不要になったのか、何に置き換わったのかを明確に記述
    
  4. 全タスク完了を確認できた場合のみ次へ

    全てのタスクが`[x]`になっていることを確認してからステップ5へ進む
    

ステップ5: 全タスク完了後

  1. 最終確認

    Read('.steering/[日付]-[機能名]/tasklist.md')
    

    すべてのタスクが[x]になっていることを確認

  2. 振り返りセクションに記録

    Editツールでtasklist.mdの「実装後の振り返り」セクションを更新:
    - 実装完了日
    - 計画と実績の差分
    - 学んだこと
    - 次回への改善提案
    

実装中のセルフチェック

5タスクごとに以下を確認:

  • tasklist.mdを最近更新したか?(最後の更新から5タスク以内)
  • 進捗がドキュメントに反映されているか?(Read toolで確認)
  • ユーザーがtasklist.mdを見て進捗が分かるか?

モード3: 振り返り

目的

実装完了後、tasklist.mdに振り返りを記録します。

手順

  1. tasklist.mdを読み込む

    Read('.steering/[日付]-[機能名]/tasklist.md')
    
  2. 振り返り内容を作成

    • 実装完了日
    • 計画と実績の差分(計画と異なった点)
    • 学んだこと(技術的な学び、プロセス上の改善点)
    • 次回への改善提案
  3. Editツールで更新

    tasklist.mdの「実装後の振り返り」セクションを更新
    
  4. ユーザーに報告

    「振り返りをtasklist.mdに記録しました。内容を確認してください。」
    

トラブルシューティング

tasklist.mdの更新を忘れた場合

もし実装中にtasklist.mdの更新を忘れていることに気づいたら:

  1. 即座に更新を実行

    Read('.steering/[日付]-[機能名]/tasklist.md')
    完了したタスクを特定し、すべてEditツールで`[x]`に更新
    
  2. ユーザーに報告

    「tasklist.mdの更新が遅れていたため、現在の進捗を反映しました。」
    
  3. 再発防止

    • 次のタスクから確実に更新する
    • 5タスクごとのセルフチェックを徹底

tasklist.mdと実装の乖離

計画と実装が大きく異なる場合:

  1. tasklist.mdに注釈を追加

    Editツールで該当タスクに注釈を追加:
    「- [x] タスク名(実装方法を変更: 理由)」
    
  2. 必要に応じて新しいタスクを追加

    Editツールで新しいタスクを追加
    
  3. design.mdも更新

    設計の変更が大きい場合はdesign.mdも更新
    

チェックリスト(最重要)

実装前に必ず確認:

  • tasklist.mdを読み込んだか?
  • 次のタスクを特定したか?
  • タスク開始時にEditツールで更新したか?

実装後に必ず確認:

  • タスク完了時にEditツールで更新したか?
  • tasklist.mdの進捗を確認したか?
  • ユーザーが見て進捗が分かる状態か?

スキルの効果

このスキルを正しく使用すると:

  • ✅ tasklist.mdが常に最新の進捗を反映
  • ✅ ユーザーが進捗を一目で把握できる
  • ✅ ドキュメントと実装の乖離がなくなる
  • ✅ 振り返りが容易になり、次回の改善につながる
  • ✅ プロジェクト履歴として価値がある記録が残る

重要なリマインダー

🚨 このスキルの最も重要な役割は、tasklist.mdの進捗管理を確実に行うことです。

  • TodoWriteは揮発的なメモ(ユーザーには見えない)
  • tasklist.mdこそが永続的なドキュメント(ユーザーが見る)

実装中は常に「ユーザーがtasklist.mdを見たときに進捗が分かるか?」を自問してください。