Cline プロンプト設計チートシート:役割・制約・出力フォーマットの定石

AI エージェント Cline を効果的に使いこなすには、プロンプト設計の「定石」を知ることが重要です。将棋や囲碁に定石があるように、プロンプトにも繰り返し使える効果的なパターンが存在します。
この記事では、プロンプトを構成する「役割・制約・出力フォーマット」という 3 つの要素について、実践的な定石パターンを体系的にまとめました。まずはチートシートで全体像を把握し、その後の詳細解説と実践例で理解を深められます。
チートシート:プロンプト設計の定石
このチートシートは、Cline に指示を出す際にすぐに参照できる定石一覧です。各要素の定石パターンと具体例を表形式で整理しています。
役割(Role)の定石
役割では、AI にどのような専門性や立場で振る舞ってほしいかを定義します。これにより出力のトーンやレベル感が決まります。
分類 | 定石パターン | 具体例 |
---|---|---|
宣言形式 | 「あなたは〇〇に精通した △△ です」 | あなたは TypeScript に精通したシニアエンジニアです |
専門領域 | 技術分野を明示する | フロントエンド / バックエンド / DevOps / データサイエンス |
経験レベル | レベル感を指定する | シニア / ミドル / ジュニア / アーキテクト / テックリード |
複数役割 | 「〇〇かつ △△」で複合的に指定 | React と TypeScript に精通したシニアフロントエンドエンジニア |
制約(Constraints)の定石
制約では、守るべきルールや前提条件を列挙します。これにより不要な提案や誤った実装を防げます。
分類 | 定石パターン | 具体例 |
---|---|---|
技術スタック | バージョンを含めて明示 | Next.js 14 / React 18 / Node.js 20 / TypeScript 5.3 |
コーディング規約 | 禁止事項を箇条書き | any 型禁止 / var 使用禁止 / ESLint エラーゼロ |
設計原則 | 遵守すべき原則を列挙 | RESTful 設計 / DRY 原則 / SOLID 原則 |
環境・前提 | 実行環境や依存関係を指定 | サーバーコンポーネント前提 / SSR 対応必須 |
出力フォーマット(Format)の定石
出力フォーマットでは、結果をどのような形式で返してほしいかを明記します。これにより出力の一貫性が保たれ、後続処理や自動化がしやすくなります。
分類 | 定石パターン | 具体例 |
---|---|---|
構造化 | 番号付きリストでセクション指定 | 1. 概要 / 2. コード / 3. 使用例 |
コード形式 | 言語指定とコメント必須 | TypeScript のコードブロック(コメント付き) |
ドキュメント | Markdown 形式で構造化 | 見出し・箇条書き・表を活用 |
データ形式 | 機械可読な形式を指定 | JSON / YAML / CSV |
基本テンプレート
この基本テンプレートは、3 つの要素を組み合わせたプロンプトの雛形です。用途に応じて [ ] 内を書き換えるだけで、高品質なプロンプトが完成します。
text# 役割
あなたは [専門領域] に精通した [経験レベル] エンジニアです。
# 制約
- [技術スタック] を使用
- [バージョン] を前提とする
- [コーディング規約] を遵守
- [禁止事項] は使用しない
# 出力フォーマット
1. [セクション1]
2. [セクション2]
3. [セクション3]
# タスク
[具体的な指示内容]
背景
プロンプト設計において「定石」を理解することは、Cline を効率的に活用するための第一歩です。ここでは、なぜ定石が必要なのか、そしてプロンプトを構成する 3 要素とは何かを解説します。
なぜ「定石」が必要なのか
Cline に指示を出す際、毎回ゼロから考えるのは非効率です。将棋や囲碁に「定石」があるように、プロンプト設計にも繰り返し使える効果的なパターンが存在します。
定石を知ることで得られるメリットは以下の通りです。
- 再現性の向上:同じ品質の出力を安定して得られる
- 時間の短縮:毎回考える必要がなく、すぐに実践できる
- チーム共有:定石を共有することで、チーム全体の生産性が向上
この定石を知ることで、誰でも安定して高品質な出力を得られるようになります。
プロンプト設計の 3 要素
優れたプロンプトには、必ず以下の 3 要素が含まれています。この 3 要素を意識的に設計することで、Cline からの出力品質が劇的に向上します。
mermaidflowchart TD
prompt["構造化プロンプト"] --> role["役割(Role)<br/>AI の人格・専門性"]
prompt --> constraints["制約(Constraints)<br/>守るべきルール"]
prompt --> format["出力フォーマット(Format)<br/>結果の構造"]
role --> quality["高品質な出力"]
constraints --> quality
format --> quality
図の要点:プロンプトを役割・制約・フォーマットの 3 要素に分解することで、再現性の高い指示が可能になります。
定石が解決する課題
プロンプト設計の定石を知らないと、曖昧な指示や前提条件の欠如により、期待外れの出力や意図しない実装が生じます。ここでは、定石なしで起こりがちな失敗パターンと、定石を適用した改善例を紹介します。
定石なしの失敗パターン
定石を知らないと、以下のような問題が頻発します。各パターンの原因と結果を理解することで、定石の重要性が明確になります。
失敗パターン | 原因 | 結果 |
---|---|---|
曖昧な指示 | 役割が不明確 | 期待外れの出力 |
前提条件の欠如 | 制約が不足 | 意図しない実装 |
出力形式の不統一 | フォーマット未指定 | 再利用困難 |
具体例:
- ❌ 悪い例:「TypeScript のコードを書いて」
- 問題:関数なのか、クラスなのか、バージョンは何か、すべてが不明
- ✅ 良い例:「TypeScript 5.3 で、ユーザー認証を行う非同期関数を作成してください」
- 定石適用:バージョン指定、機能明示、実装形式の指定
定石の詳細解説
ここからは、冒頭のチートシートで紹介した 9 つの定石を、より詳しく解説します。各定石のパターン、使い方、効果を理解することで、実践的にプロンプトを設計できるようになります。
役割(Role)の定石パターン
役割の定石では、AI にどのような専門性や立場で振る舞ってほしいかを定義します。宣言形式、専門領域、経験レベルの 3 つの観点から定石を紹介します。
定石 1:宣言形式を統一する
パターン:「あなたは〇〇に精通した △△ です」
この形式を使うことで、AI に明確な人格を与えられます。
良い例:
textあなたは TypeScript に精通したシニアフロントエンドエンジニアです。
悪い例:
textTypeScript のコードを書いてください。
定石 2:専門領域を明示する
専門領域を明示することで、AI が持つべき知識の範囲が明確になります。フロントエンド、バックエンド、DevOps など、タスクに応じて適切な専門領域を指定しましょう。
専門領域 | 効果 | 使い分け |
---|---|---|
フロントエンド | UI/UX、React、Vue に強い | コンポーネント設計時 |
バックエンド | API、DB、サーバー処理に強い | エンドポイント実装時 |
DevOps | インフラ、CI/CD に強い | デプロイ設定時 |
データサイエンス | 分析、機械学習に強い | データ処理時 |
定石 3:経験レベルを指定する
経験レベルを指定することで、出力の詳細度や説明の深さが調整されます。プロダクション品質が必要な場合はシニア、標準的な実装ならミドルを選びましょう。
レベル | 出力の特徴 | 使い分け |
---|---|---|
シニア | ベストプラクティス重視、詳細な説明 | プロダクション品質が必要な時 |
ミドル | バランスの取れた実装 | 標準的な実装が必要な時 |
アーキテクト | 設計思想・全体構造重視 | システム設計時 |
制約(Constraints)の定石パターン
制約の定石では、守るべきルールや前提条件を列挙します。技術スタックのバージョン、禁止事項、設計原則の 3 つの観点から定石を紹介します。
定石 4:技術スタックはバージョン付きで明示
パターン:「[技術名] [バージョン] を使用」
技術スタックにバージョンを含めることで、API の違いや非推奨機能の使用を防げます。特にメジャーバージョンが異なると動作が大きく変わる技術では必須です。
text- Next.js 14 の App Router を使用
- React 18 の Server Components を前提
- TypeScript 5.3 の型システムを活用
定石 5:禁止事項を箇条書きで列挙
パターン:「〇〇は使用禁止」
禁止事項を明示することで、コード品質の低下やバグの混入を防げます。プロジェクトのコーディング規約に合わせて設定しましょう。
text- `any` 型は使用禁止
- `var` キーワードは使用禁止
- 外部ライブラリの追加は禁止
定石 6:設計原則を明示
パターン:「〇〇の原則を遵守」
設計原則を明示することで、保守性や拡張性の高いコードが生成されます。RESTful、DRY、SOLID など、プロジェクトの方針に合わせて指定しましょう。
text- RESTful な設計を遵守
- DRY 原則(Don't Repeat Yourself)を徹底
- SOLID 原則に基づいた設計
出力フォーマット(Format)の定石パターン
出力フォーマットの定石では、結果をどのような形式で返してほしいかを指定します。構造化、コードブロック、データ形式の 3 つの観点から定石を紹介します。
定石 7:構造化された形式を指定
パターン:番号付きリストでセクションを明示
構造化された形式を指定することで、出力の一貫性が保たれます。概要・コード・使用例など、必要なセクションを番号付きリストで明示しましょう。
text以下の形式で出力してください:
1. 概要(2〜3 文)
2. 実装コード(TypeScript、コメント付き)
3. 使用例(具体的なコード例)
4. 注意点(箇条書き)
定石 8:コードブロックは言語指定必須
パターン:「[言語] のコードブロック」
コードブロックには必ず言語を指定しましょう。これによりシンタックスハイライトが適用され、コードの可読性が向上します。
textTypeScript のコードブロックで出力し、各行にコメントを付けてください。
定石 9:データ形式を明示
データ形式を明示することで、機械的な処理や自動化がしやすくなります。JSON、YAML、CSV など、用途に応じて適切な形式を指定しましょう。
形式 | 用途 | 定石パターン |
---|---|---|
JSON | API レスポンス、設定ファイル | 「JSON 形式で出力」 |
YAML | CI/CD 設定、K8s マニフェスト | 「YAML 形式で出力」 |
Markdown | ドキュメント、README | 「Markdown 形式で、見出しと箇条書きを使用」 |
定石の組み合わせパターン
ここまで紹介した 9 つの定石を組み合わせることで、より強力なプロンプトが完成します。役割・制約・フォーマットの各要素から適切な定石を選び、組み合わせましょう。
mermaidflowchart LR
role["役割定石<br/>専門性×レベル"] --> combined["組み合わせプロンプト"]
constraints["制約定石<br/>技術スタック×規約"] --> combined
format["フォーマット定石<br/>構造×言語"] --> combined
combined --> output["高品質な出力"]
図の要点:各要素の定石を組み合わせることで、再現性の高い強力なプロンプトが完成します。
定石を適用した実践例
ここからは、チートシートの定石を実際のプロンプトに適用した例を紹介します。各例では、どの定石を使っているかを明示し、定石適用前と適用後の違いを比較できます。
例 1:React コンポーネント生成
React コンポーネント生成では、役割にフロントエンドの専門性、制約にバージョンと禁止事項、フォーマットに構造化を適用しています。
適用した定石
要素 | 適用した定石 |
---|---|
役割 | 定石 1(宣言形式)+ 定石 2(専門領域:フロントエンド)+ 定石 3(レベル:シニア) |
制約 | 定石 4(バージョン明示)+ 定石 5(禁止事項列挙) |
フォーマット | 定石 7(構造化)+ 定石 8(言語指定) |
プロンプト
text# 役割(定石1+2+3)
あなたは React と TypeScript に精通したシニアフロントエンドエンジニアです。
# 制約(定石4+5)
- React 18 の関数コンポーネントを使用
- TypeScript 5.3 で型安全に実装
- `any` 型は使用禁止
- Props の型定義を必ず含める
# 出力フォーマット(定石7+8)
1. コンポーネントの概要(2〜3 文)
2. TypeScript のコードブロック(コメント付き)
3. 使用例(コメント付き)
# タスク
ユーザー情報を表示する `UserCard` コンポーネントを作成してください。
Props は `name`(文字列)、`age`(数値)、`email`(文字列)とします。
Cline の出力例
概要
UserCard
コンポーネントは、ユーザーの名前、年齢、メールアドレスを受け取り、カード形式で表示するシンプルなコンポーネントです。Props は厳密に型付けされており、TypeScript の型安全性を保ちます。
実装
typescript// UserCard.tsx
import React from 'react';
// Props の型定義
interface UserCardProps {
name: string;
age: number;
email: string;
}
// コンポーネント本体
export const UserCard: React.FC<UserCardProps> = ({
name,
age,
email,
}) => {
return (
<div className='user-card'>
<h2>{name}</h2>
<p>年齢: {age}</p>
<p>メール: {email}</p>
</div>
);
};
使用例
typescript// App.tsx
import React from 'react';
import { UserCard } from './UserCard';
const App: React.FC = () => {
return (
<div>
{/* UserCard コンポーネントを使用 */}
<UserCard
name='田中太郎'
age={28}
email='tanaka@example.com'
/>
</div>
);
};
export default App;
例 2:API エンドポイント設計
API エンドポイント設計では、役割にバックエンドの専門性、制約に設計原則、フォーマットに表形式を適用しています。
適用した定石
要素 | 適用した定石 |
---|---|
役割 | 定石 1(宣言形式)+ 定石 2(専門領域:バックエンド) |
制約 | 定石 4(バージョン明示)+ 定石 6(設計原則) |
フォーマット | 定石 7(構造化)+ 定石 8(言語指定) |
プロンプト
text# 役割(定石1+2)
あなたは Node.js と Express に精通したバックエンドエンジニアです。
# 制約(定石4+6)
- Express 4.x を使用
- TypeScript 5.3 で実装
- RESTful な設計を遵守
- エラーハンドリングを含める
- ステータスコードを適切に設定
# 出力フォーマット(定石7+8)
1. エンドポイントの仕様(メソッド、パス、リクエスト・レスポンス形式)
2. TypeScript のコードブロック(コメント付き)
3. エラーケースの説明(表形式)
# タスク
ユーザー情報を取得する GET エンドポイント `/api/users/:id` を実装してください。
Cline の出力例
エンドポイント仕様
- メソッド:
GET
- パス:
/api/users/:id
- リクエスト: パスパラメータ
id
(ユーザー ID) - レスポンス: JSON 形式でユーザー情報を返す
実装
typescript// routes/users.ts
import { Router, Request, Response } from 'express';
// ユーザー型の定義
interface User {
id: number;
name: string;
email: string;
}
// ダミーデータ(実際は DB から取得)
const users: User[] = [
{ id: 1, name: '田中太郎', email: 'tanaka@example.com' },
{ id: 2, name: '佐藤花子', email: 'sato@example.com' },
];
const router = Router();
// GET /api/users/:id
router.get('/users/:id', (req: Request, res: Response) => {
// パスパラメータから ID を取得
const userId = parseInt(req.params.id, 10);
// 数値変換の検証
if (isNaN(userId)) {
return res
.status(400)
.json({ error: 'Invalid user ID' });
}
// ユーザーを検索
const user = users.find((u) => u.id === userId);
// ユーザーが見つからない場合
if (!user) {
return res
.status(404)
.json({ error: 'User not found' });
}
// 成功レスポンス
return res.status(200).json(user);
});
export default router;
エラーケース
# | ケース | ステータスコード | レスポンス |
---|---|---|---|
1 | ID が数値でない | 400 | { "error": "Invalid user ID" } |
2 | ユーザーが存在しない | 404 | { "error": "User not found" } |
3 | 成功 | 200 | ユーザー情報の JSON |
例 3:コードレビュー依頼
コードレビュー依頼では、役割にシニアレベルの経験、制約にベストプラクティス、フォーマットに構造化を適用しています。
適用した定石
要素 | 適用した定石 |
---|---|
役割 | 定石 1(宣言形式)+ 定石 3(レベル:シニア) |
制約 | 定石 6(設計原則:ベストプラクティス) |
フォーマット | 定石 7(構造化)+ 定石 8(言語指定) |
プロンプト
text# 役割(定石1+3)
あなたはコードレビューに精通したシニアエンジニアです。
# 制約(定石6)
- TypeScript のベストプラクティスに基づいて評価
- パフォーマンス、可読性、保守性の観点から指摘
- 具体的な改善案を提示
# 出力フォーマット(定石7+8)
1. 総評(2〜3 文)
2. 指摘事項(箇条書き、各項目に改善案を含める)
3. 改善後のコード例(TypeScript、コメント付き)
# タスク
以下のコードをレビューしてください。
\`\`\`typescript
function calc(a, b) {
return a + b;
}
\`\`\`
Cline の出力例
総評
このコードは動作しますが、型安全性が欠如しており、TypeScript の利点を活かせていません。関数名も抽象的すぎるため、可読性が低いです。
指摘事項
- 型定義の欠如:引数と戻り値に型が付いていません。
number
型を明示すべきです。 - 関数名が不明瞭:
calc
という名前では何を計算するのか分かりません。add
などに変更しましょう。 - ドキュメントコメントの欠如:JSDoc コメントを追加すると、IDE の補完や可読性が向上します。
改善後のコード
typescript/**
* 2 つの数値を加算します。
* @param a - 1 つ目の数値
* @param b - 2 つ目の数値
* @returns 加算結果
*/
function add(a: number, b: number): number {
return a + b;
}
定石適用の効果比較
3 つの例で定石を適用することで、以下の効果が得られました。定石なしと定石ありを比較すると、品質・信頼性・実用性が大きく向上していることが分かります。
例 | 定石なし | 定石あり | 改善効果 |
---|---|---|---|
例 1(React) | 曖昧なコンポーネント | 型安全で再利用可能なコンポーネント | 品質向上、保守性向上 |
例 2(API) | エラーハンドリング不足 | RESTful で堅牢な API | 信頼性向上、一貫性確保 |
例 3(レビュー) | 表面的な指摘 | 具体的な改善案付きレビュー | 実用性向上、学習効果 |
以下の図は、定石適用によるプロンプト品質の向上を示しています。
mermaidflowchart LR
before["定石なし<br/>曖昧なプロンプト"] --> apply["定石適用"]
apply --> after["定石あり<br/>明確なプロンプト"]
after --> result1["再現性向上"]
after --> result2["品質向上"]
after --> result3["保守性向上"]
図の要点:定石を適用することで、プロンプトの再現性・品質・保守性が向上します。
まとめ
この記事では、Cline のプロンプト設計における「役割・制約・出力フォーマット」の定石を体系的に紹介しました。9 つの定石パターンを理解し、実践することで、Cline から安定して高品質な出力を得られるようになります。
定石の要点
3 つの要素それぞれの主な定石と効果をまとめます。これらを組み合わせることで、再現性の高いプロンプトが完成します。
要素 | 主な定石 | 効果 |
---|---|---|
役割 | 宣言形式統一、専門領域明示、レベル指定 | AI の人格と専門性を明確化 |
制約 | バージョン明示、禁止事項列挙、設計原則 | 不要な提案を防ぎ、品質を保証 |
フォーマット | 構造化、言語指定、データ形式明示 | 出力の一貫性と再利用性を確保 |
実践のステップ
定石を効果的に活用するための 4 つのステップを紹介します。まずは 1 つの定石から試し、徐々に組み合わせを増やしていきましょう。
- チートシートを保存:冒頭の定石一覧を手元に置く
- テンプレートを作成:よく使うパターンをテンプレート化
- 定石を組み合わせる:タスクに応じて最適な定石を選択
- 改善を繰り返す:結果を見ながらプロンプトを調整
この定石を使いこなすことで、Cline とのコミュニケーションが格段にスムーズになり、開発効率が大きく向上します。まずは簡単な定石から試してみてください。
関連リンク
- article
Cline プロンプト設計チートシート:役割・制約・出力フォーマットの定石
- article
Cline セットアップ完全版(macOS):Homebrew・VSCode 拡張・権限設定
- article
Cline vs Devin vs Cursor 実務比較:要件理解・差分精度・保守コスト
- article
Cline トラブルシュート:無限思考/暴走コマンドを止める安全装置の作り方
- article
Cline 2025 ロードマップ読解:AI エージェント開発の現在地と次の一手
- article
Cline で Git 操作を自動化する方法
- article
Cursor プロンプト定番 30:仕様化・分割統治・根拠提示・差分出力の句型集
- article
Cline プロンプト設計チートシート:役割・制約・出力フォーマットの定石
- article
Claude4.5 vs GPT-5 比較:日本語精度・コーディング・コストを実測評価
- article
Ansible モジュール 100 連発チートシート:file/user/service/git ほか
- article
Storybook Args/ArgTypes 速見表:Controls/Docs/Autodocs を一気に整える
- article
SolidJS フック相当 API 速見表:createSignal/createMemo/createEffect… 一覧
- blog
iPhone 17シリーズの発表!全モデルiPhone 16から進化したポイントを見やすく整理
- blog
Googleストアから訂正案内!Pixel 10ポイント有効期限「1年」表示は誤りだった
- blog
【2025年8月】Googleストア「ストアポイント」は1年表記はミス?2年ルールとの整合性を検証
- blog
Googleストアの注文キャンセルはなぜ起きる?Pixel 10購入前に知るべき注意点
- blog
Pixcel 10シリーズの発表!全モデル Pixcel 9 から進化したポイントを見やすく整理
- blog
フロントエンドエンジニアの成長戦略:コーチングで最速スキルアップする方法
- review
今の自分に満足していますか?『持たざる者の逆襲 まだ何者でもない君へ』溝口勇児
- review
ついに語られた業界の裏側!『フジテレビの正体』堀江貴文が描くテレビ局の本当の姿
- review
愛する勇気を持てば人生が変わる!『幸せになる勇気』岸見一郎・古賀史健のアドラー実践編で真の幸福を手に入れる
- review
週末を変えれば年収も変わる!『世界の一流は「休日」に何をしているのか』越川慎司の一流週末メソッド
- review
新しい自分に会いに行こう!『自分の変え方』村岡大樹の認知科学コーチングで人生リセット
- review
科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来