🙆‍♀️

ClaudeCodeやKIROが調子悪いので、KIROのワークフローをプロンプトにした

に公開

https://github.com/s-mekw/Imitated_KIROs_workflow

ClaudeAPIが調子わるいらしく、それの影響でClaudeCodeやKIROが調子悪いので、KIROのワークフローをプロンプトにした

簡単なTODOアプリやら、電卓ではほどほどうまくいくことが試せていますが、それ以上は筆者がリアルの仕事で忙しいので試せていません...

他、TDDのエッセンスを加えたものも作成(今後適宜調整予定...)

# 汎用 Requirements.md 生成プロンプト

## プロンプト

`user_request.md` の内容に基づいて、アプリケーションの要件定義書を作成してください。

**入力ファイル:**
- `user_request.md` (ユーザーの要望を記述したファイル)

**生成する要件定義書の仕様:**

1.  **形式要件**
    *   ユーザーストーリー形式で記述する(例:「ユーザーとして〜したい。そうすることで〜できる。」)
    *   各要件に、受け入れ条件(Acceptance Criteria)を明確に記述する。
    *   受け入れ条件は、振る舞いを検証可能な形式(例:WHEN-THEN形式)で記述する。
    *   日本語で記述する。

2.  **内容要件**
    *   **入力ファイルの内容**を分析し、アプリケーションが満たすべき機能要件と非機能要件を網羅的に洗い出す。
    *   機能要件は、ユーザーが直接触れる機能を中心に定義する。
    *   非機能要件として、パフォーマンス、セキュリティ、ユーザビリティなども考慮に入れる。
    *   各要件には一意のIDを割り振る。
# 汎用 Design.md 生成プロンプト

## プロンプト

`requirements.md` に基づいて、アプリケーションの技術選定と詳細設計書を作成してください。

**入力ファイル:**
- `requirements.md` (要件定義書)

**設計書に含める内容:**

1.  **技術スタックの提案**
    *   `requirements.md` を満たすために最適なフロントエンド、バックエンド、データベース等の技術スタックを提案してください。
    *   選定理由を明確に記述してください。

2.  **アーキテクチャ設計**
    *   システム全体の構成図をMermaid形式で記述してください。(例:コンポーネント構成、インフラ構成図など)
    *   データフローや処理の流れを説明してください。
    *   採用する設計原則(例:疎結合、高凝集など)を記述してください。

3.  **データモデル設計**
    *   アプリケーションで扱う主要なデータの構造を定義してください。
    *   必要に応じて、クラス図、ER図、または選定した言語の型定義など、適切な形式で表現してください。

4.  **API設計(必要な場合)**
    *   フロントエンドとバックエンドが通信する場合、APIのエンドポイント、リクエスト/レスポンスの仕様を定義してください。

5.  **エラーハンドリング戦略**
    *   予期せぬエラー(例:入力バリデーションエラー、API通信失敗)への対応方針を定義してください。
    *   ユーザーにどのようにフィードバックするかも考慮してください。

6.  **テスト戦略**
    *   品質を担保するためのテスト方針(ユニットテスト、統合テスト、E2Eテスト)を定義してください。
    *   各テストの範囲と目標を明確にしてください。

各セクションは、後続のタスク作成や実装フェーズの担当者が、具体的な作業内容を理解できるレベルの詳細度で作成してください。
# 汎用 Tasks.md 生成プロンプト

## プロンプト

`requirements.md``design.md` に基づいて、アプリケーション開発のための具体的な実装タスクリストを作成してください。

**入力ファイル:**
- `requirements.md` (要件定義書)
- `design.md` (設計書)

**タスクリストの仕様:**

1.  **構造化された実装計画**
    *   開発の論理的な順序(例:基盤構築 → 機能実装 → テスト → デプロイ)でタスクを整理してください。
    *   タスク間の依存関係を考慮し、段階的に進行できるように計画してください。
    *   各段階での成果物(何ができあがるか)が明確になるように記述してください。

2.  **タスクの詳細度**
    *   各タスクは、エンジニアが1-3日程度で完了できる程度の具体的な粒度に分割してください。
    *   「何を」「どのように」実装するかが分かるように、実行可能な内容で記述してください。

3.  **要件とのトレーサビリティ**
    *   各タスクが `requirements.md` のどの要件(要件ID)に対応しているかを明記してください。

4.  **進捗管理**
    *   Markdownのチェックボックス形式 `[ ]` を使用して、進捗を管理できるようにしてください。
    *   必要に応じて、タスクを階層構造で整理してください。

**タスクリストの構成例:**
*   **フェーズ1:プロジェクト初期設定**
    *   `[ ]` 開発環境の構築 (design.md の技術スタックに基づく)
    *   `[ ]` バージョン管理システムの初期化 (例: `git init`)
*   **フェーズ2:バックエンド/API開発 (必要な場合)**
    *   `[ ]` データベースのスキーマ設計 (design.md のデータモデルに基づく)
*   **フェーズ3:フロントエンド開発**
    *   `[ ]` 主要コンポーネントの雛形作成
*   **フェーズ4:テスト**
    *   `[ ]` ユニットテストのセットアップ
*   **フェーズ5:デプロイ**
    *   `[ ]` デプロイ環境の準備

上記の構成例を参考に、`design.md` で定義されたアーキテクチャに合わせて、具体的で実行可能なタスクリストを作成してください。

Discussion