実装計画: [機能名]

実装計画: [機能名]

ブランチ: [###-feature-name] | 日付: [日付] | 仕様: [リンク] 入力: /specs/[###-feature-name]/spec.md からの機能仕様

注意: このテンプレートは /speckit.plan コマンドによって記入されます。実行ワークフローについては .specify/templates/commands/plan.md を参照してください。

概要

[機能仕様から抽出: 主要な要件 + リサーチからの技術アプローチ]

技術的コンテキスト

言語/バージョン: [例: Python 3.11、Swift 5.9、Rust 1.75 または 明確化が必要] 主な依存関係: [例: FastAPI、UIKit、LLVM または 明確化が必要] ストレージ: [該当する場合、例: PostgreSQL、CoreData、ファイル または N/A] テスト: [例: pytest、XCTest、cargo test または 明確化が必要] ターゲットプラットフォーム: [例: Linux サーバー、iOS 15+、WASM または 明確化が必要] プロジェクトタイプ: [single/web/mobile - ソース構造を決定] パフォーマンス目標: [ドメイン固有、例: 1000 req/s、10k 行/秒、60 fps または 明確化が必要] 制約: [ドメイン固有、例: <200ms p95、<100MB メモリ、オフライン対応 または 明確化が必要] スケール/スコープ: [ドメイン固有、例: 10k ユーザー、1M LOC、50 画面 または 明確化が必要]

Constitution チェック

ゲート: フェーズ 0 リサーチの前に合格する必要があります。フェーズ 1 設計後に再確認してください。

[Constitution ファイルに基づいて決定されたゲート]

プロジェクト構造

ドキュメント(この機能)

specs/[###-feature]/
├── plan.md              # このファイル (/speckit.plan コマンド出力)
├── research.md          # フェーズ 0 出力 (/speckit.plan コマンド)
├── data-model.md        # フェーズ 1 出力 (/speckit.plan コマンド)
├── quickstart.md        # フェーズ 1 出力 (/speckit.plan コマンド)
├── contracts/           # フェーズ 1 出力 (/speckit.plan コマンド)
└── tasks.md             # フェーズ 2 出力 (/speckit.tasks コマンド - /speckit.plan では作成されません)

ソースコード(リポジトリルート)

# [未使用の場合は削除] オプション 1: 単一プロジェクト(デフォルト)
src/
├── models/
├── services/
├── cli/
└── lib/

tests/
├── contract/
├── integration/
└── unit/

# [未使用の場合は削除] オプション 2: Web アプリケーション(「frontend」+「backend」が検出された場合)
backend/
├── src/
│   ├── models/
│   ├── services/
│   └── api/
└── tests/

frontend/
├── src/
│   ├── components/
│   ├── pages/
│   └── services/
└── tests/

# [未使用の場合は削除] オプション 3: モバイル + API(「iOS/Android」が検出された場合)
api/
└── [上記のバックエンドと同じ]

ios/ または android/
└── [プラットフォーム固有の構造: 機能モジュール、UI フロー、プラットフォームテスト]

構造の決定: [選択した構造を文書化し、上記でキャプチャした実際のディレクトリを参照]

複雑性の追跡

Constitution チェックで違反があり、正当化が必要な場合のみ記入

違反 必要な理由 拒否されたよりシンプルな代替案とその理由
[例: 4つ目のプロジェクト] [現在の必要性] [3つのプロジェクトでは不十分な理由]
[例: リポジトリパターン] [特定の問題] [直接的な DB アクセスでは不十分な理由]