T-CREATOR

Codex プロンプト速攻リファレンス:生成/修正/要約/変換の定型文 20

Codex プロンプト速攻リファレンス:生成/修正/要約/変換の定型文 20

AI 駆動の開発支援ツール Codex を使えば、プログラミング作業が驚くほどスムーズになります。しかし、「どんなプロンプトを書けば期待通りの結果が得られるのか」と悩んだことはありませんか。

本記事では、Codex で今すぐ使える定型プロンプト 20 個を、生成・修正・要約・変換の 4 つのカテゴリに分けてご紹介します。実務でよく遭遇する場面を想定した具体例とともに解説しますので、コピー&ペーストするだけですぐに活用できるでしょう。

プロンプト早見表

以下は、Codex で使える定型プロンプト 20 個の一覧です。目的に応じてコピー&ペーストしてご活用ください。

#カテゴリプロンプト概要主な用途
1生成関数の自動生成指定した機能を持つ関数を作成
2生成クラスの自動生成オブジェクト指向のクラス構造を作成
3生成テストコードの生成ユニットテストや E2E テストを作成
4生成API エンドポイントの生成RESTful API の基本構造を作成
5生成データベーススキーマの生成テーブル定義やモデルを作成
6修正バグ修正エラーや不具合を特定して修正
7修正パフォーマンス最適化処理速度やメモリ使用量を改善
8修正セキュリティ脆弱性の修正安全性の問題を検出して対処
9修正コードのリファクタリング可読性や保守性を向上
10修正型エラーの修正TypeScript 等の型関連エラーを解決
11要約コードの説明生成コードの動作を自然言語で解説
12要約ドキュメント生成JSDoc やコメントを自動作成
13要約コードレビューコメント生成改善点や注意点を指摘
14要約変更内容のサマリー生成コミットメッセージや変更ログを作成
15変換言語間の変換JavaScript から TypeScript などへ変換
16変換フレームワーク間の変換React から Vue.js などへ変換
17変換データ形式の変換JSON から YAML などへ変換
18変換レガシーコードの現代化古い書き方を最新の記法に更新
19変換スタイルガイド適用コーディング規約に合わせて整形
20変換モジュールシステムの変換CommonJS から ESModules などへ変換

背景

Codex とは何か

Codex は、OpenAI が開発した自然言語からコードを生成する AI モデルです。GPT シリーズをベースに、GitHub 上の膨大なコードで学習されており、プログラミング言語の理解に特化しています。

開発者は日本語や英語で指示を出すだけで、関数やクラス、テストコードなどを自動生成できます。これにより、定型的な作業を大幅に削減し、クリエイティブな問題解決に集中できるようになりました。

プロンプトエンジニアリングの重要性

Codex の性能を最大限に引き出すには、適切なプロンプト(指示文)の設計が不可欠です。曖昧な指示では期待外れの結果になる一方、明確で具体的なプロンプトは高品質なコードを生成します。

プロンプトエンジニアリングとは、AI に対する指示の仕方を最適化する技術です。この技術を身につけることで、開発効率が飛躍的に向上するでしょう。

以下の図は、Codex を活用した開発フローの全体像を示しています。

mermaidflowchart LR
  dev["開発者"] -->|プロンプト入力| codex["Codex AI"]
  codex -->|コード生成| code["生成コード"]
  code -->|レビュー| dev
  dev -->|修正指示| codex
  code -->|テスト| test["テスト実行"]
  test -->|OK| deploy["デプロイ"]
  test -->|NG| dev

図から分かるように、開発者はプロンプトを通じて Codex に指示を出し、生成されたコードをレビュー・テストする流れが基本となります。

課題

プロンプト作成の難しさ

多くの開発者が Codex を使い始めた際に直面する課題は、「何をどう指示すればよいか分からない」という点です。自然言語で指示できるとはいえ、適切な表現や粒度を選ばなければ、期待通りの結果は得られません。

特に初心者にとっては、プロンプトの書き方自体が学習コストとなり、Codex の導入障壁になってしまうことも少なくないでしょう。

試行錯誤の時間コスト

プロンプトを書いては結果を確認し、また書き直すという試行錯誤は、時間の無駄遣いになりがちです。せっかく作業を効率化するためのツールなのに、プロンプトの調整に時間を取られては本末転倒ですね。

実務では締切があるため、何度も試行錯誤する余裕がないケースも多いでしょう。

品質のばらつき

プロンプトの質によって、生成されるコードの品質も大きく変動します。時には期待以上の結果が得られる一方、時には使い物にならないコードが出力されることもあります。

この不安定さが、Codex を本格的に業務に組み込む際の懸念材料となっているのです。

以下の図は、プロンプトの質とコード品質の関係性を示しています。

mermaidflowchart TD
  prompt["プロンプト入力"]
  prompt --> clear{明確で<br/>具体的か?}
  clear -->|はい| high["高品質コード<br/>生成"]
  clear -->|いいえ| vague["曖昧な指示"]
  vague --> low["低品質コード<br/>生成"]
  low --> retry["再試行"]
  retry --> prompt
  high --> success["開発効率<br/>向上"]

明確なプロンプトは高品質なコードを生成し、曖昧なプロンプトは再試行を招くという悪循環が見て取れます。

解決策

定型プロンプトの活用

これらの課題を解決する最も効果的な方法は、実績のある定型プロンプトをテンプレートとして活用することです。よく使われる場面ごとに最適化されたプロンプトを用意しておけば、試行錯誤の時間を大幅に削減できます。

本記事では、生成・修正・要約・変換という 4 つのカテゴリに分けて、すぐに使える定型プロンプト 20 個をご紹介します。

4 つのカテゴリ体系

プロンプトを以下の 4 つのカテゴリに分類することで、目的に応じた適切なプロンプトを素早く見つけられます。

  1. 生成: ゼロから新しいコードを作成する
  2. 修正: 既存コードの問題を解決する
  3. 要約: コードの内容を理解しやすい形にする
  4. 変換: コードの形式や言語を変更する

この分類により、「今やりたいこと」に対して「使うべきプロンプト」が明確になるでしょう。

以下の図は、4 つのカテゴリとそれぞれの代表的な用途を示しています。

mermaidflowchart TB
  subgraph gen["生成カテゴリ"]
    gen1["関数生成"]
    gen2["クラス生成"]
    gen3["テスト生成"]
    gen4["API生成"]
    gen5["スキーマ生成"]
  end

  subgraph fix["修正カテゴリ"]
    fix1["バグ修正"]
    fix2["最適化"]
    fix3["脆弱性対応"]
    fix4["リファクタリング"]
    fix5["型エラー修正"]
  end

  subgraph sum["要約カテゴリ"]
    sum1["説明生成"]
    sum2["ドキュメント作成"]
    sum3["レビュー"]
    sum4["変更サマリー"]
  end

  subgraph conv["変換カテゴリ"]
    conv1["言語変換"]
    conv2["フレームワーク変換"]
    conv3["データ形式変換"]
    conv4["現代化"]
    conv5["スタイル適用"]
    conv6["モジュール変換"]
  end

各カテゴリには 5〜6 個の定型プロンプトが含まれ、合計 20 個のプロンプトで幅広い開発ニーズをカバーします。

具体例

それでは、20 個の定型プロンプトを順番に見ていきましょう。各プロンプトには、使用例と Codex の出力例を併記します。

生成カテゴリ(1〜5)

1. 関数の自動生成

新しい機能を実装する際に最も頻繁に使うプロンプトです。関数名と処理内容を明確に指示することで、即座に動作するコードが得られます。

プロンプト例

text次の仕様で関数を作成してください:
- 関数名: calculateTax
- 引数: price(数値)、taxRate(数値、デフォルト0.1)
- 戻り値: 税込価格(小数点第2位まで)
- 言語: TypeScript

Codex の出力例

typescript/**
 * 税込価格を計算する関数
 * @param price - 税抜価格
 * @param taxRate - 税率(デフォルト: 0.1 = 10%)
 * @returns 税込価格(小数点第2位まで)
 */
function calculateTax(
  price: number,
  taxRate: number = 0.1
): number {
  const totalPrice = price * (1 + taxRate);
  return Math.round(totalPrice * 100) / 100;
}

このように、型定義や JSDoc コメントまで含めた完成度の高い関数が生成されます。

2. クラスの自動生成

オブジェクト指向プログラミングでは、クラスの雛形を素早く作成できると開発速度が上がります。プロパティとメソッドの仕様を明示しましょう。

プロンプト例

text次の仕様でクラスを作成してください:
- クラス名: User
- プロパティ: id(文字列)、name(文字列)、email(文字列)
- メソッド: isValid()(メールアドレスの形式チェック)
- 言語: JavaScript(ES6以降)

Codex の出力例

javascript/**
 * ユーザー情報を管理するクラス
 */
class User {
  constructor(id, name, email) {
    this.id = id;
    this.name = name;
    this.email = email;
  }

  /**
   * メールアドレスの形式が正しいかチェックする
   * @returns {boolean} 有効な場合true
   */
  isValid() {
    const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
    return emailRegex.test(this.email);
  }
}

正規表現を使ったバリデーションまで実装されており、すぐに実用できますね。

3. テストコードの生成

品質保証のためにテストは欠かせませんが、テストコードの作成は時間がかかります。Codex を使えば、既存の関数に対するテストケースを自動生成できます。

プロンプト例

text以下の関数に対するJestテストコードを作成してください:

function add(a, b) {
  return a + b;
}

テストケース:
- 正の数同士の足し算
- 負の数同士の足し算
- 正の数と負の数の足し算
- 0を含む計算

Codex の出力例

javascriptdescribe('add関数のテスト', () => {
  test('正の数同士の足し算', () => {
    expect(add(2, 3)).toBe(5);
    expect(add(10, 20)).toBe(30);
  });

  test('負の数同士の足し算', () => {
    expect(add(-2, -3)).toBe(-5);
    expect(add(-10, -20)).toBe(-30);
  });

  test('正の数と負の数の足し算', () => {
    expect(add(5, -3)).toBe(2);
    expect(add(-5, 3)).toBe(-2);
  });

  test('0を含む計算', () => {
    expect(add(0, 0)).toBe(0);
    expect(add(5, 0)).toBe(5);
    expect(add(0, -5)).toBe(-5);
  });
});

網羅的なテストケースが自動生成され、テスト作成の負担が大幅に軽減されます。

4. API エンドポイントの生成

バックエンド開発では、RESTful API のエンドポイントを次々と実装する必要があります。基本構造を自動生成することで、開発速度が向上するでしょう。

プロンプト例

textExpress.jsで以下のAPIエンドポイントを作成してください:
- パス: /api/users/:id
- メソッド: GET
- 機能: IDに基づいてユーザー情報を取得
- レスポンス: JSON形式
- エラーハンドリング: ユーザーが見つからない場合は404を返す

Codex の出力例

javascriptconst express = require('express');
const router = express.Router();

/**
 * ユーザー情報を取得するエンドポイント
 */
router.get('/api/users/:id', async (req, res) => {
  try {
    const userId = req.params.id;

    // データベースからユーザーを取得(例)
    const user = await User.findById(userId);

    if (!user) {
      return res.status(404).json({
        error: 'User not found',
        message: `ユーザーID ${userId} は存在しません`,
      });
    }

    res.status(200).json(user);
  } catch (error) {
    res.status(500).json({
      error: 'Internal server error',
      message: error.message,
    });
  }
});

module.exports = router;

エラーハンドリングやステータスコードの設定まで含まれており、実務レベルの品質です。

5. データベーススキーマの生成

データベース設計では、テーブル定義や ORM モデルを記述する必要があります。仕様を伝えるだけで、適切なスキーマが生成されます。

プロンプト例

textPrismaスキーマで以下のテーブルを定義してください:
- テーブル名: Post
- フィールド: id(自動採番)、title(文字列、必須)、content(テキスト)、published(真偽値、デフォルトfalse)、authorId(整数、Userテーブルへの外部キー)、createdAt(日時)

Codex の出力例

prismamodel Post {
  id        Int      @id @default(autoincrement())
  title     String
  content   String?  @db.Text
  published Boolean  @default(false)
  authorId  Int
  author    User     @relation(fields: [authorId], references: [id])
  createdAt DateTime @default(now())

  @@index([authorId])
}

リレーションシップやインデックスの設定まで考慮されたスキーマが得られますね。

修正カテゴリ(6〜10)

6. バグ修正

既存コードにバグがある場合、エラーメッセージとともに Codex に渡すことで、修正案を提示してもらえます。

プロンプト例

text以下のコードにバグがあります。修正してください:

function divide(a, b) {
  return a / b;
}

問題:0で割った場合にInfinityが返される

Codex の出力例

javascript/**
 * 除算を行う関数(0除算を防止)
 * @param {number} a - 被除数
 * @param {number} b - 除数
 * @returns {number} 除算結果
 * @throws {Error} bが0の場合
 */
function divide(a, b) {
  if (b === 0) {
    throw new Error('0で割ることはできません');
  }
  return a / b;
}

エラーハンドリングとドキュメントコメントが追加され、堅牢な関数に改善されました。

7. パフォーマンス最適化

処理速度が遅いコードを渡すと、より効率的な実装を提案してくれます。

プロンプト例

text以下のコードのパフォーマンスを改善してください:

function findDuplicates(arr) {
  const duplicates = [];
  for (let i = 0; i < arr.length; i++) {
    for (let j = i + 1; j < arr.length; j++) {
      if (arr[i] === arr[j] && !duplicates.includes(arr[i])) {
        duplicates.push(arr[i]);
      }
    }
  }
  return duplicates;
}

Codex の出力例

javascript/**
 * 配列内の重複要素を効率的に検出する
 * 時間計算量: O(n) → 元のO(n²)から改善
 * @param {Array} arr - 検査対象の配列
 * @returns {Array} 重複している要素の配列
 */
function findDuplicates(arr) {
  const seen = new Set();
  const duplicates = new Set();

  for (const item of arr) {
    if (seen.has(item)) {
      duplicates.add(item);
    } else {
      seen.add(item);
    }
  }

  return Array.from(duplicates);
}

二重ループを Set を使った一回のループに改善し、計算量が O(n²)から O(n)に削減されています。

8. セキュリティ脆弱性の修正

セキュリティ上の問題を含むコードを検出し、安全な実装に修正できます。

プロンプト例

text以下のコードのセキュリティ脆弱性を修正してください:

app.get('/search', (req, res) => {
  const query = req.query.q;
  const sql = `SELECT * FROM products WHERE name LIKE '%${query}%'`;
  db.query(sql, (err, results) => {
    res.json(results);
  });
});

問題:SQLインジェクションの脆弱性

Codex の出力例

javascript/**
 * 商品検索エンドポイント(SQLインジェクション対策済み)
 */
app.get('/search', (req, res) => {
  const query = req.query.q;

  // プリペアドステートメントを使用してSQLインジェクションを防止
  const sql = 'SELECT * FROM products WHERE name LIKE ?';
  const searchPattern = `%${query}%`;

  db.query(sql, [searchPattern], (err, results) => {
    if (err) {
      return res
        .status(500)
        .json({ error: 'Database error' });
    }
    res.json(results);
  });
});

プリペアドステートメントを使用することで、SQL インジェクション攻撃を防いでいます。

9. コードのリファクタリング

可読性や保守性を向上させるために、コードの構造を改善できます。

プロンプト例

text以下のコードをリファクタリングして、可読性を向上させてください:

function calc(x,y,z){if(z=='add')return x+y;else if(z=='sub')return x-y;else if(z=='mul')return x*y;else if(z=='div')return x/y;}

Codex の出力例

javascript/**
 * 2つの数値に対して指定された演算を実行する
 * @param {number} x - 第1オペランド
 * @param {number} y - 第2オペランド
 * @param {string} operation - 演算種別('add'|'sub'|'mul'|'div')
 * @returns {number} 演算結果
 * @throws {Error} 未対応の演算種別の場合
 */
function calculate(x, y, operation) {
  const operations = {
    add: (a, b) => a + b,
    sub: (a, b) => a - b,
    mul: (a, b) => a * b,
    div: (a, b) => {
      if (b === 0)
        throw new Error('0で割ることはできません');
      return a / b;
    },
  };

  if (!operations[operation]) {
    throw new Error(`未対応の演算: ${operation}`);
  }

  return operations[operation](x, y);
}

if-else 連鎖をオブジェクトによる戦略パターンに置き換え、拡張性と可読性が大幅に向上しました。

10. 型エラーの修正

TypeScript で型エラーが発生している場合、適切な型定義を提案してもらえます。

プロンプト例

text以下のTypeScriptコードの型エラーを修正してください:

function getUserName(user) {
  return user.name.toUpperCase();
}

const users = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' }
];

users.forEach(getUserName);

Codex の出力例

typescript/**
 * ユーザー型の定義
 */
interface User {
  id: number;
  name: string;
}

/**
 * ユーザー名を大文字に変換して取得する
 * @param user - ユーザーオブジェクト
 * @returns 大文字に変換されたユーザー名
 */
function getUserName(user: User): string {
  return user.name.toUpperCase();
}

const users: User[] = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
];

users.forEach((user) => {
  console.log(getUserName(user));
});

適切な型定義とインターフェースが追加され、型安全性が確保されています。

要約カテゴリ(11〜14)

11. コードの説明生成

複雑なコードを読み解く際に、自然言語での説明があると理解が早まります。

プロンプト例

text以下のコードが何をしているか日本語で説明してください:

function debounce(func, wait) {
  let timeout;
  return function executedFunction(...args) {
    const later = () => {
      clearTimeout(timeout);
      func(...args);
    };
    clearTimeout(timeout);
    timeout = setTimeout(later, wait);
  };
}

Codex の出力例

textこのコードは「デバウンス」と呼ばれるパフォーマンス最適化パターンを実装しています。

【主な機能】
- 関数の実行を指定時間(wait)だけ遅延させる
- 遅延中に再度呼び出された場合、前回のタイマーをキャンセルして新しくタイマーを設定し直す
- 結果として、連続して呼び出されても最後の呼び出しから指定時間経過後に一度だけ実行される

【用途】
検索ボックスの入力イベントなど、短時間に何度も発火するイベントの処理に使われます。
例えば、ユーザーが文字を入力するたびにAPI呼び出しを行うのではなく、
入力が落ち着いてから(最後の入力から300msなど)一度だけAPI呼び出しを行うことで、
無駄なリクエストを削減できます。

アルゴリズムの動作原理と実用例が分かりやすく説明されていますね。

12. ドキュメント生成

既存のコードに対して、JSDoc やコメントを自動生成できます。

プロンプト例

text以下の関数にJSDocコメントを追加してください:

function formatDate(date, format) {
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const day = String(date.getDate()).padStart(2, '0');

  return format
    .replace('YYYY', year)
    .replace('MM', month)
    .replace('DD', day);
}

Codex の出力例

javascript/**
 * 日付を指定されたフォーマットで文字列に変換する
 *
 * @param {Date} date - フォーマット対象のDateオブジェクト
 * @param {string} format - 日付フォーマット文字列(例: 'YYYY-MM-DD')
 *   - YYYY: 4桁の年
 *   - MM: 2桁の月(0埋め)
 *   - DD: 2桁の日(0埋め)
 * @returns {string} フォーマットされた日付文字列
 *
 * @example
 * const date = new Date('2025-01-15');
 * formatDate(date, 'YYYY/MM/DD'); // '2025/01/15'
 * formatDate(date, 'YYYY年MM月DD日'); // '2025年01月15日'
 */
function formatDate(date, format) {
  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(
    2,
    '0'
  );
  const day = String(date.getDate()).padStart(2, '0');

  return format
    .replace('YYYY', year)
    .replace('MM', month)
    .replace('DD', day);
}

パラメータの説明や使用例まで含めた充実したドキュメントが生成されました。

13. コードレビューコメント生成

他の開発者のコードをレビューする際に、改善点を指摘するコメントを生成できます。

プロンプト例

text以下のコードに対するレビューコメントを生成してください:

function processData(data) {
  var result = [];
  for (var i = 0; i < data.length; i++) {
    result.push(data[i] * 2);
  }
  return result;
}

Codex の出力例

text【レビューコメント】

★ 変数宣言について
- `var` ではなく `const` または `let` を使用することを推奨します
- `var` はスコープの問題を引き起こす可能性があります

★ 配列操作について
- `for` ループよりも `map` メソッドを使用した方が関数型プログラミングのスタイルに沿っており、
  コードが簡潔になります

★ 関数名とドキュメント
- `processData` は抽象的すぎるため、より具体的な名前(例: `doubleValues`)を推奨します
- JSDocコメントを追加して、関数の目的とパラメータの説明を記載してください

【改善案】
function doubleValues(data) {
  return data.map(value => value * 2);
}

このように書き換えることで、より読みやすく保守性の高いコードになります。

具体的な改善点と修正案が提示され、建設的なレビューができます。

14. 変更内容のサマリー生成

Git コミットメッセージや変更ログを作成する際に、コードの差分から自動的にサマリーを生成できます。

プロンプト例

text以下のコード変更に対するコミットメッセージを生成してください:

【変更前】
function login(username, password) {
  return fetch('/api/login', {
    method: 'POST',
    body: JSON.stringify({ username, password })
  });
}

【変更後】
function login(username, password) {
  return fetch('/api/login', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ username, password })
  });
}

Codex の出力例

textfix: ログインAPIリクエストにContent-Typeヘッダーを追加

- fetchリクエストにContent-Type: application/jsonヘッダーを追加
- サーバー側で正しくJSONとして解釈されるよう改善
- これによりリクエストボディのパース失敗を防止

Conventional Commits 形式に準拠した分かりやすいコミットメッセージが生成されました。

変換カテゴリ(15〜20)

15. 言語間の変換

JavaScript から TypeScript への変換など、プログラミング言語間の移行を支援します。

プロンプト例

text以下のJavaScriptコードをTypeScriptに変換してください:

function createUser(name, age, email) {
  return {
    name: name,
    age: age,
    email: email,
    createdAt: new Date()
  };
}

Codex の出力例

typescript/**
 * ユーザーオブジェクトの型定義
 */
interface User {
  name: string;
  age: number;
  email: string;
  createdAt: Date;
}

/**
 * 新しいユーザーオブジェクトを生成する
 * @param name - ユーザー名
 * @param age - 年齢
 * @param email - メールアドレス
 * @returns 生成されたユーザーオブジェクト
 */
function createUser(
  name: string,
  age: number,
  email: string
): User {
  return {
    name,
    age,
    email,
    createdAt: new Date(),
  };
}

型定義とインターフェースが追加され、型安全な TypeScript コードに変換されています。

16. フレームワーク間の変換

React から Vue.js など、異なるフレームワーク間でコードを移植する際に活用できます。

プロンプト例

text以下のReactコンポーネントをVue.js 3(Composition API)に変換してください:

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}

Codex の出力例

vue<template>
  <div>
    <p>Count: {{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

<script setup>
import { ref } from 'vue';

// カウントの状態管理
const count = ref(0);

// カウントをインクリメントする関数
const increment = () => {
  count.value++;
};
</script>

React のフックが Vue 3 の Composition API に適切に変換され、同等の機能を持つコンポーネントになっています。

17. データ形式の変換

JSON から YAML など、データフォーマット間の変換を自動化できます。

プロンプト例

text以下のJSON設定ファイルをYAML形式に変換してください:

{
  "server": {
    "port": 3000,
    "host": "localhost"
  },
  "database": {
    "type": "postgresql",
    "host": "db.example.com",
    "port": 5432,
    "credentials": {
      "username": "admin",
      "password": "secret"
    }
  }
}

Codex の出力例

yaml# サーバー設定
server:
  port: 3000
  host: localhost

# データベース設定
database:
  type: postgresql
  host: db.example.com
  port: 5432
  credentials:
    username: admin
    password: secret

適切なコメントも追加され、人間が読みやすい YAML 形式に変換されました。

18. レガシーコードの現代化

古い書き方のコードを最新の記法に更新できます。

プロンプト例

text以下のレガシーなJavaScriptコードを現代的な書き方(ES6+)に更新してください:

var MyModule = (function() {
  var privateVar = 'secret';

  function privateMethod() {
    return privateVar;
  }

  return {
    publicMethod: function() {
      return privateMethod();
    }
  };
})();

Codex の出力例

javascript/**
 * モダンなモジュールパターン(ES6+)
 */
class MyModule {
  // プライベートフィールド(ES2022)
  #privateVar = 'secret';

  /**
   * プライベートメソッド
   * @returns {string} プライベート変数の値
   */
  #privateMethod() {
    return this.#privateVar;
  }

  /**
   * パブリックメソッド
   * @returns {string} プライベートメソッドの結果
   */
  publicMethod() {
    return this.#privateMethod();
  }
}

// 使用例
export default MyModule;

即時関数パターンが ES6 のクラス構文とプライベートフィールドを使った現代的な実装に変換されています。

19. スタイルガイド適用

既存のコードをチームのコーディング規約に合わせて整形できます。

プロンプト例

text以下のコードをAirbnbスタイルガイドに従って整形してください:

function foo(x,y){
  if(x>y)
  {
    return x
  }
  else
  {
    return y
  }
}

Codex の出力例

javascript/**
 * 2つの数値のうち大きい方を返す
 * @param {number} x - 第1の数値
 * @param {number} y - 第2の数値
 * @returns {number} 大きい方の数値
 */
function foo(x, y) {
  if (x > y) {
    return x;
  }

  return y;
}

Airbnb スタイルガイドに準拠した適切なスペーシング、ブレース配置、不要な else の削除が行われています。

20. モジュールシステムの変換

CommonJS から ES Modules など、モジュールシステムの移行を支援します。

プロンプト例

text以下のCommonJS形式のコードをES Modules形式に変換してください:

const express = require('express');
const bodyParser = require('body-parser');
const { validate } = require('./utils');

function createApp() {
  const app = express();
  app.use(bodyParser.json());
  return app;
}

module.exports = { createApp, validate };

Codex の出力例

javascript// 外部パッケージのインポート
import express from 'express';
import bodyParser from 'body-parser';

// ローカルモジュールのインポート
import { validate } from './utils.js';

/**
 * Expressアプリケーションを生成する
 * @returns {Express} 設定済みのExpressアプリケーション
 */
function createApp() {
  const app = express();
  app.use(bodyParser.json());
  return app;
}

// 名前付きエクスポート
export { createApp, validate };

require が import に、module.exports が export に変換され、モダンな ES Modules 形式になりました。

まとめ

本記事では、Codex で即座に活用できる定型プロンプト 20 個を、生成・修正・要約・変換の 4 カテゴリに分けてご紹介しました。

これらのプロンプトをテンプレートとして使うことで、以下のメリットが得られます。

  • 時間の節約: プロンプトを一から考える必要がなく、コピー&ペーストで即座に利用可能
  • 品質の安定: 実績のある定型文により、安定した高品質な出力を期待できる
  • 学習コストの削減: プロンプトの書き方を学ぶ時間を、本来の開発作業に充てられる
  • チームでの共有: 定型プロンプトをチーム内で標準化し、開発効率を組織全体で向上できる

まずは日常の開発で頻繁に遭遇する場面から、これらの定型プロンプトを試してみてください。慣れてきたら、自分のプロジェクトに合わせてカスタマイズしていくことで、さらに効率的な開発が実現できるでしょう。

Codex は使い方次第で、あなたの開発体験を劇的に変える力を持っています。この記事が、その第一歩を踏み出すきっかけになれば幸いです。

関連リンク