Communitygithub.com

jeffreyehogg/agent-skills

設計仕様ファーストの開発ワークフローを強制します(SPEC.md ゲーティングプロトコル)。複数ファイルにまたがる複雑な機能(3ファイル以上)、新しいAPIエンドポイント、データベーススキーマのマイグレーション、または横断的なアーキテクチャ変更を設計または実装する際に作動します。単一ファイルの編集、孤立したバグ修正、テストのみの追加、または承認済みの仕様がすでに存在する場合は作動しません。

agent-skills とは?

このスキルは**計画優先・コードゲーティングプロトコル**を実装し、自律型コーディングエージェントがファイル編集に直接飛びつくことで発生するコンテキストドリフト、APIの幻覚、試行錯誤によるトークン浪費を防止します。主にClaude Code、Cursor、Codexなどのエージェントプラットフォームで動作し、**3ファイル以上の複雑な機能設計、新しいAPIエンドポイント、データベーススキーママイグレーション、横断的アーキテクチャ変更時にトリガー**されます。プロトコルは5つのフェーズで構成されます。フェーズ1(コンテキスト調査)では既存の規約やデータモデルを確認し、フェーズ2(SPEC.mdのドラフト)では目的、データ契約、ファイル変更境界マトリックスなどを厳密なテンプレートに従って記述します。フェーズ3(必須ゲートチェック)では、対話セッションではユーザーに承認を求め、自律サブエージェントモードでは親オーケストレーターの計画と矛盾がないか検証します。フェーズ4(段階的実行)では、git worktree分離、アトミックマイルストーン、マイルストーン完了時のチェックボックス更新、そして予期せぬ制約が発生した場合の仕様修正エスケープハッチを提供します。フェーズ5(検証とアーカイブ)ではテスト、型チェック、リンターを実行し、完了した仕様を`.specs/completed/`にアーカイブします。

対応✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jeffreyehogg/agent-skills/tree/HEAD/spec-driven-feature

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

仕様駆動機能開発

概要

このスキルは計画優先・コードゲーティングプロトコルを強制します。自律型コーディングエージェントは、ファイル編集に直接飛び込むことでコンテキストドリフト、APIの幻覚、試行錯誤によるデバッグでトークンを浪費することがよくあります。

このスキルが作動すると、正式な仕様(SPEC.md または .specs/<feature-slug>.md)がドラフトされ、リポジトリの制約に対して検証され、承認されるまで、アプリケーションコードを修正することはできません。


1. フェーズ1: コンテキストと制約の調査

仕様をドラフトする前に:

  1. プロジェクト内の既存の規約、データモデル、APIユーティリティを特定します。
  2. 型定義またはスキーマファイル(例: schema.prisma、drizzle/schema.ts、Zodスキーマ、OpenAPI仕様)を見つけます。
  3. 必要な場合を除き、ファイル全体を読まないでください。エクスポート、インターフェースヘッダー、型を検査します。

2. フェーズ2: SPEC.md のドラフト

./references/spec_template.md を読み、その正確な構造に従って .specs/<feature-slug>.md(または要求されればリポジトリルートの SPEC.md)を作成します:

  1. 目的、成功基準、明示的な非目標: 2文程度の問題記述、決定的な合格基準、明示的なスコープ外境界。
  2. データ契約とシグネチャ: 正確なTypeScriptインターフェース、データベースカラム型、またはAPIスキーマ。
  3. ファイル変更境界マトリックス: 明示的な Create(作成)、Modify(修正。対象の関数/行を含む)、Forbidden(禁止)パス。
  4. 実装チェックリストと検証プロトコル: 正確なテストコマンド、リンターチェック、エッジケース。

3. フェーズ3: ゲートチェックポイント (必須)

仕様が生成されたら:

  1. 対話モード(ユーザーセッション): 仕様ファイルへのリンクを含む簡潔なサマリーを提示し、アーキテクチャ上のトレードオフを表面化させ(複数の有効なアプローチが存在する場合は ask_question を使用)、コードを書く前に確認を求めます:

    "私は SPEC.md に仕様をドラフトしました。提案されたデータ契約とファイル境界マトリックスを確認してください。実装を進めてよろしいですか?"

  2. 自律サブエージェントモード: すでに承認された修復計画を提供している親リードオーケストレーター(例: code-audit-orchestrator)によって呼び出された場合は、ファイル境界マトリックスが Forbidden パスと矛盾しないことを確認し、フェーズ4に進みます。
  3. ハードストップ: 対話セッションでは、承認またはフィードバックを待ちます。許可が得られるまでソースファイルに触れないでください。

4. フェーズ4: 段階的実行と途中修正プロトコル

承認後:

  1. オプションのサンドボックス分離: 複数ファイルの変更、またはプライマリワーキングツリーに無関係な変更がある場合は、ファイルを変更する前に git-worktree-isolator 経由で分離されたワークツリーをプロビジョニングします。
  2. 機能を個別のアトミックマイルストーン(例: スキーマ → コアロジック → APIハンドラ → UI/統合)で実装します。
  3. マイルストーンが完了するたびに、仕様ファイルのチェックボックスをマークします。
  4. gitコミットは個々のマイルストーンにスコープされます。

エスケープハッチ: 途中仕様修正

実装中に予期せぬ制約が発生した場合(例: Forbidden ファイルを修正する必要がある、アップストリームSDKの型がドラフトした契約と一致しない、ユーザーが途中で要件を変更するなど):

  1. 影響を受けるマイルストーンの編集を直ちに停止します。
  2. 仕様ファイルの ## 6. 仕様修正(デルタログ) に、以下の内容を記録するエントリを追加します:
    • トリガー/ブロッカー: 元の契約が維持できない理由。
    • 修正セクションとデルタ: データ契約またはファイル変更境界マトリックスへの正確な変更。
  3. デルタが以前 Forbidden だったファイルに影響を与える場合、または公開API/スキーマ契約を変更する場合は、一時停止し、再開前に迅速なユーザー確認を要求します。デルタが純粋に内部的なもの(例: 内部ヘルパーファイルの抽出)である場合は、デルタを仕様に記録して続行します。

5. フェーズ5: 検証とアーカイブ

  1. フェーズ2で指定された決定的なテストスイートを実行します。
  2. すべての型チェックとリンターが正常にパスすることを確認します。
  3. 仕様ステータスを Completed に更新し、.specs/completed/YYYY-MM-DD-<feature-name>.md にアーカイブします(リポジトリが .specs/ を追跡しない場合は、一時的な仕様ファイルを削除します)。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル