ブランチ: [###-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 画面 または 明確化が必要]
ゲート: フェーズ 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 アクセスでは不十分な理由] |