0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Codex CLI 完全ガイド:簡単!カスタムプロンプトを使った仕様駆動開発

Last updated at Posted at 2025-10-01

はじめに

Kiro の「要件定義 → 設計 → 実装」の思想をヒントに、Codex CLI のカスタムプロンプトで仕様駆動開発フローを再現する方法を紹介します。以下のテンプレートを prompts/ ディレクトリに配置しておけば、チームメンバーは同じ手順で AI と協働しながらプロジェクトを推進できます。


1. 仕様駆動開発フロー(Kiro 参照)

  1. 要件抽出:高レベル要求からユーザーストーリーと受け入れ条件を整理。
  2. 設計:データフロー、API、DB スキーマなどを定義し既存資産と整合。
  3. タスク分割:実装タスクと依存関係を計画。
  4. 実装:タスクごとにコードを生成しテストまで整備。
  5. 自動同期:テスト・ドキュメント更新などの補助タスクを自動化。
  6. レビュー/反復:成果物をチェックし、必要に応じて改訂。
  7. リリース準備:品質・セキュリティ・ドキュメントの最終確認。

この流れに合わせて 7 つのテンプレートを用意します。必要に応じて argument_hint の入力を変えながら何度でも再利用できます。


2. カスタムプロンプトの配置と命名ルール

  • フォルダ~/.codex/prompts/(グローバル)またはリポジトリ直下の prompts/
  • ファイル形式:先頭に JSON メタ情報を記述し、--- 以降に Markdown で本文を書く。
  • 命名衝突:ビルトインコマンド名(init 等)と重複しないようにする。
{
  "name": "spec-requirements",
  "description": "要件抽出+ユーザーストーリー生成",
  "argument_hint": "機能名、対象ユーザー、背景、制約を入力"
}
---
# ここから本文 

Codex は name/prompts:<name> として扱い、description をコマンドポップアップに表示します。


3. プロンプトテンプレート一覧(実践版)

3.1 要件抽出:prompts/spec-requirements.md

{
  "name": "spec-requirements",
  "description": "要件抽出+ユーザーストーリー生成",
  "argument_hint": "機能名、ターゲットユーザー、目的、制約を入力"
}
---
# 要件抽出セッション

## 0. 入力サマリ
- 機能/プロジェクト名: {入力値}
- ターゲットユーザー: {入力値}
- 背景・ビジネス目的: {入力値}
- 既知の制約/前提: {入力値}

## 1. 追加で確認したい質問
- 足りない情報があれば箇条書きで質問を列挙してください。

## 2. ユーザーストーリー
| ID | As a | I want | So that | リンクする要件/制約 |
|----|------|--------|---------|----------------------|

## 3. 受け入れ条件 (Acceptance Criteria)
- Given / When / Then 形式でストーリーごとに列挙。
- テスト観点ごとにグループ化し、空欄があれば TODO と記す。

## 4. 非機能要件
- パフォーマンス、セキュリティ、アクセシビリティ、SLO など。

## 5. ランディングゾーンと制約
- 依存システム、外部 API、ライセンス制約など。

## 6. リスクと未解決事項
- 影響度 / 発生確率で分類し、フォローアップすべき項目をリスト化。

## 7. 成功指標 (Success Metrics)
- 定量・定性の KPI 候補を提示。

3.2 設計:prompts/spec-design.md

{
  "name": "spec-design",
  "description": "データフロー・アーキテクチャ設計",
  "argument_hint": "要件サマリと既存システム情報を入力"
}
---
# システム設計レビュー

1. **前提再確認**
   - 対象要件 (ID) と非機能要件を箇条書き。

2. **アーキテクチャ概要**
   - 主要コンポーネントと役割を整理。
   - Mermaid 形式のシーケンス図またはコンポーネント図を提案。

3. **データフロー / 状態遷移**
   - ユースケースごとのシーケンスを箇条書き。
   - 状態遷移図や ER 図が必要なら Mermaid で生成。

4. **API / インターフェース仕様**
   - エンドポイント、HTTP メソッド、入出力スキーマ、バリデーション。
   - エラーケースとレスポンス例も含める。

5. **データモデル / 永続化戦略**
   - テーブル/コレクション構造、主キー、インデックス。
   - 既存モデルとのマッピングがあれば記載。

6. **既存コードへのマッピング**
   - 参照すべきファイル、クラス、ユーティリティ。
   - 差分が生じる箇所と互換性への配慮。

7. **リスクとガードレール**
   - 不確定事項、技術的負債、性能ボトルネック。

8. **テスト/観測性**
   - ログ、メトリクス、トレースの追加点。
   - 推奨テストケース(単体/統合/E2E)。

3.3 タスク分割:prompts/spec-planning.md

{
  "name": "spec-planning",
  "description": "実装タスクと依存関係の整理",
  "argument_hint": "設計結果の要約と優先順位を入力"
}
---
# 実装プラン

## タスクツリー
- 箇条書きで親タスク > サブタスクを表現。
- 各タスクに ID (T-1 形式) を付与。

## タスク詳細
| ID | 概要 | 紐づく要件ID | 成果物 (ファイル/モジュール) | 依存関係 | テスト観点 | 備考 |
|----|------|---------------|-------------------------------|-----------|-------------|------|

## スケジュール案
- クリティカルパスを明記。
- 並行可能なタスクをグルーピング。

## リスク緩和策
- 各リスク (ID) に対して担当者とフォローアップタイミングを設定。

3.4 タスク実行:prompts/spec-implement.md

{
  "name": "spec-implement",
  "description": "個別タスクの実装支援",
  "argument_hint": "タスクID、目的、関連ファイルを入力"
}
---
# 実装ステップガイド

- **タスク IDと目的**: {入力値}
- **関連ファイル/モジュール**: 箇条書き
- **準備**: 必要なセットアップ、依存ライブラリ、Feature Flag など
- **実装ステップ**
  1. ステップ1 …
  2. ステップ2 …
- **コードスニペット候補(必要に応じて言語名を追記)**
      # 例:
      # function foo() { ... }
- **検証**
  - 実行すべきコマンド(例: `just test`、`cargo test -p ...`)。
  - 手動確認が必要なら手順も記載。
- **レビュー観点**: 忘れがちなポイント、リファクタリング提案。

3.5 自動化フック:prompts/spec-hooks.md

{
  "name": "spec-hooks",
  "description": "自動同期フックの提案",
  "argument_hint": "CI/CD 環境と欲しい自動化を入力"
}
---
# 自動化フック設計

| トリガー | 実行条件 | 実行内容 | ツール/スクリプト | 成功時のアウトプット | 失敗時の対応 |
|----------|----------|-----------|---------------------|------------------------|----------------|

- **推奨 MCP/CI 連携**: Codex MCP、GitHub MCP、外部 API など。
- **セキュリティ/ガバナンス配慮**: 機密情報の扱い、署名、RBAC。
- **継続的改善案**: 次に追加するべき自動化の候補。

3.6 レビューと反復:prompts/spec-review.md

{
  "name": "spec-review",
  "description": "レビュー/修正サイクルの支援",
  "argument_hint": "レビュー対象 (仕様/設計/コード) と観点を入力"
}
---
# レビューガイド

## 対象
- レビュー対象: {入力値}
- 前提/関連タスク: {入力値}

## チェックリスト
- [ ] 機能要件を満たしているか
- [ ] 非機能要件 …
- [ ] セキュリティ / コンフィグ …

## 指摘事項
| 優先度 | 内容 | 根拠/参照 | 対応者 | 期限 |
|--------|------|------------|--------|-------|

## 改善プラン
- 修正ステップ
- 再検証手順
- 影響範囲の確認方法

3.7 リリース準備:prompts/spec-release.md

{
  "name": "spec-release",
  "description": "リリース最終チェック",
  "argument_hint": "リリースバージョン、主要変更点を入力"
}
---
# リリースチェックリスト

## リリース概要
- バージョン: {入力値}
- 主な変更点: {入力値}

## チェック項目
- [ ] テスト完了 / カバレッジ報告
- [ ] セキュリティスキャン / 依存更新
- [ ] ドキュメント整合(README, CHANGELOG, API Docs)
- [ ] リリースノート下書き
- [ ] ロールバック手順確認

## リリース手順
1. コマンド/スクリプト …
2. 確認事項 …

## 通知計画
- 内部向け: …
- 外部向け: …

## レトロスペクティブ
- 良かった点、課題、次回へのアクション

4. ワークフローへの組み込み手順

  1. テンプレートを prompts/ に配置し、Git 管理下でレビュー可能にする。
  2. TUI で /prompts:spec-requirements のように呼び出し、入力ヒントに沿って必要情報を渡す。
  3. 各ステージのアウトプットを README や設計書、Issue/PR に転記し共有。
  4. MCP を活用する場合は、spec-hooks の提案を参考に codex mcp add ... でツールを登録し /mcp で確認。
  5. /status/review と組み合わせて継続的に状態を把握しながら進める。

5. 運用ベストプラクティス

  • テンプレートのバージョン管理:Pull Request 経由で更新し、プロンプト自体をレビュー対象に含める。
  • プロジェクト別カスタマイズ:フロントエンド/バックエンド用など目的別に複数テンプレートを用意。
  • 入力ヒントの活用argument_hint に必要情報を明記しておくと差し戻しが減る。
  • 自動化との連携spec-hooks の結果を GitHub Actions や Codex MCP に落とし込み、属人化を防ぐ。
  • ナレッジ蓄積:レビュー結果やレトロスペクティブをテンプレートに追記することで、次の開発サイクルに活かす。

6. まとめ

  • Kiro の仕様駆動開発フローを Codex CLI のカスタムプロンプトで再現することで、要件定義からリリースまで一貫したプロセスをチームで共有できます。
  • /prompts:<name> 形式で呼び出せるテンプレートを整備しておけば、メンバーは迷わず同じアウトプット形式を維持できます。
  • MCP との連携や自動化フックの提案もテンプレート化しておくと、仕様・実装・運用のズレを最小化できます。
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?