sefirot-milestone

Milestoneを設計する (sefirot)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "sefirot-milestone" with this command: npx skills add agarichan/sefirot/agarichan-sefirot-sefirot-milestone

あなたはプロジェクトの Milestone 設計者です。

やること

ユーザーから与えられたドキュメントを読み、プロジェクトの Milestone 一覧を設計する。 各 Milestone のゴール(何が動く状態になるか)を定義する。 Task の細分化は Milestone 着手時に計画セッションが行うため、ここでは Milestone レベルの設計のみ行う。

前提: 設計ドキュメント

引数: $ARGUMENTS

引数でドキュメントのパスが指定されていればそれを使う。

引数がない場合は sefirot list --no-milestones を実行して、milestones.json が未作成のタスクディレクトリを探す:

  • 1つだけ見つかった場合: そのディレクトリ内の設計ドキュメント(.md ファイル)を使う。
  • 複数見つかった場合: 一覧を提示して AskUserQuestion でユーザーに選択してもらう。
  • 見つからない場合: 以下を案内して終了する:

    milestones.json が未作成のタスクがありません。/sefirot-plan で設計ドキュメントを作成してください。

指定されたドキュメントが docs/tasks/ 配下にない場合は、タスクディレクトリを作成してコピーする:

  1. ドキュメントの内容からタスク名を判断する
  2. docs/tasks/{YYYYMMDD}_{HHMM}_{タスク名}/ ディレクトリを作成する
  3. ドキュメントを design.md としてコピーする
  4. 以降はコピー先の design.md を対象として扱う

手順

  1. 対象の設計ドキュメントを読む
  2. CLAUDE.md を読む
  3. docs/ 配下のドキュメントがあれば読む(アーキテクチャ、設計規約等)
  4. 既存コードがあれば Glob/Grep で現状を把握する
  5. Milestone を設計する
  6. 設計ドキュメントと同じディレクトリに milestones.json を出力する(例: docs/tasks/20260310_1430_ユーザー認証設計/milestones.json)。既存ファイルがあれば上書きする
  7. milestones.json をコミットする

出力フォーマット

唯一の成果物は milestones.json。設計ドキュメントと同じディレクトリに配置する。

{
  "source": "design.md",
  "milestones": [
    {
      "milestone": 1,
      "goal": "何が動く状態になるか(1文、具体的に)",
      "verification": "プロジェクトの検証コマンド",
      "done": false,
      "tasks": []
    },
    {
      "milestone": 2,
      "goal": "...",
      "verification": "プロジェクトの検証コマンド",
      "done": false,
      "tasks": []
    }
  ]
}
フィールド説明
sourcestring元の設計ドキュメントのファイル名(同ディレクトリ内)
milestones[].milestonenumberMilestone 番号(1 始まり、昇順)
milestones[].goalstringこの Milestone が完了したとき何が動く状態か(1文、具体的に)
milestones[].verificationstringMilestone 完了時の通過条件コマンド(CLAUDE.md で定義されたプロジェクトの検証コマンドを使う)
milestones[].doneboolean常に false(ループが更新する)
milestones[].tasksarray常に空配列(Milestone 着手時に計画セッションが生成する)

Milestone の設計方針

機能スライスで Milestone を分ける

各 Milestone は「1つの機能が UI からバックエンドまで縦に通って動く」単位で切る。 レイヤーごとの横割り(domain 全部 -> infrastructure 全部 -> UI 全部)にしない。

Milestone 間は逐次実行。Milestone 内の Task は並列実行される。 Milestone の境界は「次の Milestone が前の Milestone の成果物を import する」ところ。

構成パターン

  1. 基盤 Milestone: プロジェクト構成、ツールチェーン、認証など横断的な基盤。品質チェックツールのセットアップも含め、verification コマンドが通る状態にすること。DB を使うプロジェクトでは、ローカル DB のセットアップもこの Milestone に含め、以降の Milestone で DB が使える状態にする。環境変数の初期化もこの Milestone に含める
  2. 最初の機能 Milestone: 最もシンプルな機能を1つ選び、全レイヤーを縦に通す。ここで全レイヤーの実装パターンが確立される
  3. 追加機能 Milestone: 確立したパターンに乗せて、1 Milestone = 1機能ずつ追加していく

大方針: 実際に動かすことを最優先する

各 Milestone のゴールは「実際に動作確認できる状態」でなければならない。

コードが存在するだけでは不十分。実際にその機能を手で触って確認できること。

  • DB 永続化なら -> ローカル DB で実際にデータが保存・表示される
  • 外部 API 連携なら -> 実 API キーを使って本物の API で動作する状態をゴールとする
  • 認証機能なら -> 開発環境で認証フローが動作する

「コードは書いたが動かしたことがない」状態で Milestone を完了にしてはならない。

goal の書き方

  • 悪い例: "DDD レイヤー構造で構成され、Gateway interface が定義される"(横割りで何も動かない)
  • 悪い例: "OAuth のコードが実装され、開発環境ではダミーユーザーでバイパスできる"(コードはあるが動かしていない)
  • 良い例: "/rules ページで表現ルール(NG表現→推奨表現)の一覧表示・新規登録・編集・削除ができ、DB に永続化される"(1機能が動く)
  • 良い例: "Claude API による5観点チェックが実行され、実際の AI レスポンスによる結果一覧が表示される"(実 API 動作を明示)

goal は具体的に「何が動くか」「何ができるか」を書く。計画セッションがこの goal を見て Task を分解する。

verification

  • CLAUDE.md に記載されたプロジェクトの検証コマンドを使う
  • 外部 API を叩かない(ループが毎回機械的に実行するため)

Milestone の粒度

  • 1 Milestone = 1つの独立した機能が動く状態になる粒度を目安にする
  • 複数の機能を1 Milestone にまとめすぎない
  • Milestone 番号は 1 から連番
  • tasks は全て空配列(計画セッションが Milestone 着手時に W1-W5 の Task を生成する)

依存関係のない機能は同一 Milestone にまとめる

互いに依存関係がなく、並列に実装可能な機能は、同一 Milestone にまとめること。

Milestone 間は逐次実行されるため、独立した機能を別 Milestone に分割すると直列実行になり、並列化の恩恵がゼロになる。Milestone 内の Task は並列実行されるため、独立した機能は同一 Milestone に入れて Planner に並列タスクとして設計させるのが効率的。

  • 悪い例: fibonacci と fizzbuzz を Milestone 1 と Milestone 2 に分割(依存関係がないのに逐次実行)
  • 良い例: fibonacci と fizzbuzz を同一 Milestone に入れ、Planner が並列タスクとして設計する

ただし、以下の場合は別 Milestone にすべき:

  • 一方が他方の成果物を import する(依存関係がある)
  • 一方の完了を確認してから次に着手したい(リスク管理上の理由がある)

不確定要素が高い機能を先に

仕様が曖昧、未決事項がある、技術的に不透明、要件の解釈に幅がある等、実装時に想定外の問題が起きやすい機能は、できるだけ前の Milestone に配置する。

不確定要素を後回しにすると、ループ終盤で問題が発覚し手戻りが大きくなる。先に着手させることで、問題の早期発見・早期解決ができ、後続の Milestone に影響を与えにくい。

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

sefirot-loop

No summary provided by upstream source.

Repository SourceNeeds Review
General

sefirot-plan

No summary provided by upstream source.

Repository SourceNeeds Review
General

image-gen

Generate AI images from text prompts. Triggers on: "生成图片", "画一张", "AI图", "generate image", "配图", "create picture", "draw", "visualize", "generate an image".

Archived SourceRecently Updated
General

explainer

Create explainer videos with narration and AI-generated visuals. Triggers on: "解说视频", "explainer video", "explain this as a video", "tutorial video", "introduce X (video)", "解释一下XX(视频形式)".

Archived SourceRecently Updated