コンテンツにスキップ

03.プロジェクト初期化機能

REQ-TOOL-2.0: プロジェクト初期化機能

1. 機能概要

DevBlueprintテンプレートから新しいプロジェクトをセットアップする際に、対話形式でプロジェクトをカスタマイズし、不要なファイルやサンプルを削除して、クリーンな状態で開発を開始できるようにする機能。

この機能は、テンプレート利用者の初期設定の手間を大幅に削減し、ヒューマンエラーを防ぐことを目的とする。

2. 詳細な機能要件

REQ-TOOL-2.1: 対話的セットアップの実行

  • CLIツールとして、npm run setup のような単一のコマンドで、対話的なセットアッププロセスを開始できること。

REQ-TOOL-2.2: プロジェクト情報の置換

  • ユーザーに以下の情報を対話形式で質問し、関連ファイル内のプレースホルダーを自動で置換すること。
    • プロジェクト名: (例: My Awesome API) → mkdocs.ymlREADME.md内の[プロジェクト名]を置換。
    • 作者/組織名: (例: MyCompany) → LICENSEmkdocs.ymlsite_authorを置換。
    • リポジトリURL: (例: https://github.com/MyCompany/MyAwesomeApi) → mkdocs.ymlrepo_urlなどを置換。

REQ-TOOL-2.3: ドキュメントカテゴリの選択的削除

  • ユーザーに、含めるドキュメントカテゴリを複数選択形式で質問すること。
  • 質問例:
    どの設計仕様を含めますか? (スペースキーで選択)
    (✔) API仕様書
    ( ) データ仕様書
    (✔) UI/UX仕様書
    
  • 選択されなかったカテゴリに対応するフォルダ(例: Docs/02_設計仕様/02_データ仕様書/)を、プロジェクトから自動的に削除すること。
  • 削除されたフォルダへのリンクを、mkdocs.ymlnav:セクションからも自動的に削除すること。

REQ-TOOL-2.4: サンプルファイルのクリーンアップ

  • セットアップの最後に、全てのサンプルファイル(例: EX_... .md)や、テンプレートファイル(..._Template.md)を削除し、利用者のプロジェクトをクリーンな状態にするオプションを提供すること。

REQ-TOOL-2.5: GitHubラベルの自動セットアップ

  • セットアップコマンドの実行中に、GitHubリポジトリにラベルを自動で作成・更新する機能を提供すること。
  • ルール:
    1. 03.開発ルール/02.プロジェクト規定/02.ラベル規定.md で定義されているラベルの一覧を、定義ファイル(例: labels.json)として保持する。
    2. コマンド実行時に、GitHub APIを呼び出し、現在のリポジトリのラベル一覧を取得する。
    3. 定義ファイルに存在するが、リポジトリに存在しないラベルは、新規作成する。
    4. リポジトリに既に存在するラベルは、定義ファイルの内容(色、説明)に合わせて更新する。
    5. (オプション)定義ファイルに存在しない余分なデフォルトラベル(bug, documentationなど)を削除する機能も提供する。
  • 認証:
    • この機能はGitHub APIへの書き込み権限を必要とするため、実行にはユーザーのGitHub Personal Access Token (PAT) または gh CLIによる認証が必要となることを、ユーザーに明確に伝えること。

3. 非機能要件

NFR-TOOL-2.1: 安全性

  • ファイル削除などの破壊的な操作を行う前には、必ずユーザーに最終確認(「本当に削除しますか? y/N」)を求めること。

関連Issue: #16