03.プロジェクト初期化機能
REQ-TOOL-2.0: プロジェクト初期化機能
1. 機能概要
DevBlueprint
テンプレートから新しいプロジェクトをセットアップする際に、対話形式でプロジェクトをカスタマイズし、不要なファイルやサンプルを削除して、クリーンな状態で開発を開始できるようにする機能。
この機能は、テンプレート利用者の初期設定の手間を大幅に削減し、ヒューマンエラーを防ぐことを目的とする。
2. 詳細な機能要件
REQ-TOOL-2.1: 対話的セットアップの実行
- CLIツールとして、
npm run setup
のような単一のコマンドで、対話的なセットアッププロセスを開始できること。
REQ-TOOL-2.2: プロジェクト情報の置換
- ユーザーに以下の情報を対話形式で質問し、関連ファイル内のプレースホルダーを自動で置換すること。
- プロジェクト名: (例:
My Awesome API
) →mkdocs.yml
やREADME.md
内の[プロジェクト名]
を置換。 - 作者/組織名: (例:
MyCompany
) →LICENSE
やmkdocs.yml
のsite_author
を置換。 - リポジトリURL: (例:
https://github.com/MyCompany/MyAwesomeApi
) →mkdocs.yml
のrepo_url
などを置換。
- プロジェクト名: (例:
REQ-TOOL-2.3: ドキュメントカテゴリの選択的削除
- ユーザーに、含めるドキュメントカテゴリを複数選択形式で質問すること。
- 質問例:
どの設計仕様を含めますか? (スペースキーで選択) (✔) API仕様書 ( ) データ仕様書 (✔) UI/UX仕様書
- 選択されなかったカテゴリに対応するフォルダ(例:
Docs/02_設計仕様/02_データ仕様書/
)を、プロジェクトから自動的に削除すること。 - 削除されたフォルダへのリンクを、
mkdocs.yml
のnav:
セクションからも自動的に削除すること。
REQ-TOOL-2.4: サンプルファイルのクリーンアップ
- セットアップの最後に、全てのサンプルファイル(例:
EX_... .md
)や、テンプレートファイル(..._Template.md
)を削除し、利用者のプロジェクトをクリーンな状態にするオプションを提供すること。
REQ-TOOL-2.5: GitHubラベルの自動セットアップ
- セットアップコマンドの実行中に、GitHubリポジトリにラベルを自動で作成・更新する機能を提供すること。
- ルール:
- 03.開発ルール/02.プロジェクト規定/02.ラベル規定.md で定義されているラベルの一覧を、定義ファイル(例:
labels.json
)として保持する。 - コマンド実行時に、GitHub APIを呼び出し、現在のリポジトリのラベル一覧を取得する。
- 定義ファイルに存在するが、リポジトリに存在しないラベルは、新規作成する。
- リポジトリに既に存在するラベルは、定義ファイルの内容(色、説明)に合わせて更新する。
- (オプション)定義ファイルに存在しない余分なデフォルトラベル(
bug
,documentation
など)を削除する機能も提供する。
- 03.開発ルール/02.プロジェクト規定/02.ラベル規定.md で定義されているラベルの一覧を、定義ファイル(例:
- 認証:
- この機能はGitHub APIへの書き込み権限を必要とするため、実行にはユーザーのGitHub Personal Access Token (PAT) または
gh
CLIによる認証が必要となることを、ユーザーに明確に伝えること。
- この機能はGitHub APIへの書き込み権限を必要とするため、実行にはユーザーのGitHub Personal Access Token (PAT) または
3. 非機能要件
NFR-TOOL-2.1: 安全性
- ファイル削除などの破壊的な操作を行う前には、必ずユーザーに最終確認(「本当に削除しますか? y/N」)を求めること。
関連Issue: #16