こんにちは。業務システムの運用・開発に携わっているM.Iです。
※本記事は2026年3月時点の情報をもとに作成しています。
AIの進化により、今後プロンプトの書き方や効果が変わる可能性があります。
AIにログイン機能の仕様書を作ってもらったら、指定をしていないのに「アカウントロックは5回失敗で発動」と、いつの間にか具体的な数値まで決めつけられていた。
ほかにもAIとのやり取りの中で、会話の古い内容を参照してもらえず再度説明をした、間違いを指摘し続けたら会話をロックされてしまった。
——そんな経験はありませんか?
AIにも得意・不得意な特性があります。その特性を理解した上で、今では以下のようなプロンプトを使用して、次の会話に引き継いだり会話の軌道修正を行ったりしています。
会話を引き継ぐ時:
ここまでの前提・試したこと・未解決点を 次の会話に引き継げる形で要約してください。
会話が噛み合わなくなった時、間違いに気づいてもらいたい時:
前提を整理します。
この構造で理解しています。正しいですか。
この部分を再確認してもらえますか。
事実として共有します。
段階的に進めましょう。
この部分だけを説明してください。
別の視点から説明できますか。
不確実性が高い部分を教えてください。
これらが起こる原因の1つは、指示が曖昧であるということです。
AIへの指示の書き方(プロンプト)を工夫するだけで、返ってくる回答の質が大きく変わります。
今回は、実際に違いを確認しつつ、開発者がよく使う4つのシーンに絞って、そのままコピペして使えるプロンプトテンプレートを紹介します。
Claude・Copilot・ChatGPT等、主要なAIツールで利用可能です。
検証
同じ「ログイン機能の仕様書作成」を、2つのパターンで試してみました。
パターンA:テンプレートなし
ログイン機能の仕様書を作成してください。
C#、SQL Server、Webシステムです。
パターンB:後ほど紹介する『テンプレート1』を使用
以下の情報をもとに、システム機能仕様書を作成してください。
※コードは不要です。
※各項目、該当しない場合は「なし」と入力してください。
・機能名:ログイン機能
・システム種別:Web
・開発言語:C# / .NET 10.0
・フレームワーク:ASP.NET Core MVC
・DB:SQL Server 2022
・機能の概要:ユーザーIDとパスワードで認証する
・利用者:社内の業務システム利用者
・前提条件・制約:パスワードはbcryptで暗号化して保存済み、ログイン失敗3回でアカウントロック
・認証方式:セッション認証
・文字コード:なし
・対応ブラウザ:Edge
・エラーログ出力先:ファイル

ログイン機能 仕様書
システム種別:Webシステム
言語/技術:C# / SQL Server
バージョン:1.0
作成日:2026年3月22日
1. 概要
本仕様書は、Webシステムにおけるログイン機能の設計・実装に関する要件を定義する。
2. 機能概要
機能名:ユーザーログイン
対象ユーザー:登録済みシステムユーザー
提供方式:Webブラウザ経由
3. 画面仕様
画面タイトル:ログイン
アクセス制御:未認証ユーザーのみアクセス可(認証済みの場合はトップ画面へリダイレクト)
入力項目:
・ユーザーID(必須・最大100文字・メールアドレス形式)
・パスワード(必須・最大128文字・入力値はマスク表示)
・ログイン状態を保持(任意・Remember Me機能)
4. 処理仕様
認証処理:
1. ユーザーIDでDBからユーザー情報を取得
2. アカウント有効フラグ(IsActive)を確認
3. アカウントロック状態(IsLocked、LockoutEndTime)を確認
4. 入力パスワードをハッシュ化し、DBのPasswordHashと比較(BCrypt使用)
5. 認証成功時:FailedLoginCountをリセット/セッション発行
6. 認証失敗時:FailedLoginCountをインクリメント/規定回数超過でロック
6. セキュリティ仕様
パスワードハッシュ:BCrypt(コストファクター:12)
通信:HTTPS必須
セッション有効期限:通常はブラウザを閉じるまで/Remember Me:30日
アカウントロック:ログイン失敗5回で30分ロック
SQLインジェクション対策:パラメータ化クエリ(Entity Framework Core)
XSS対策:Razor自動エスケープ・CSPヘッダー設定
7. エラーメッセージ
未入力:「ユーザーIDとパスワードを入力してください。」
認証失敗:「ユーザーIDまたはパスワードが正しくありません。」
アカウントロック中:「アカウントがロックされています。しばらくしてから再度お試しください。」
システム機能仕様書
機能名:ログイン機能
システム種別:Web
開発言語:C# / .NET 10.0
フレームワーク:ASP.NET Core MVC
DB:SQL Server 2022
対応ブラウザ:Microsoft Edge
作成日:2026/03/22
1. 機能概要
社内業務システムへのアクセスを制御するための認証機能。利用者はユーザーIDとパスワードを入力し、システムへのログインを行う。認証にはセッション認証方式を採用し、認証成功後はセッションを発行してログイン状態を維持する。
2. 前提条件
1. 利用者のアカウント(ユーザーID・パスワード)は事前にDBへ登録済みであること
2. パスワードはbcryptアルゴリズムによりハッシュ化してDBに保存済みであること
3. ログイン失敗が3回に達した場合、該当アカウントをロックする仕様とする
4. 対応ブラウザはMicrosoft Edgeのみとする
5. エラーログはサーバー上のファイルに出力する
3. 処理フロー
① ログイン画面表示
② 入力値バリデーション
③ DBよりユーザー情報を取得
④ アカウントロック状態チェック
⑤ パスワード照合(bcryptによるハッシュ比較)
⑥ ログイン失敗回数をリセット
⑦ セッション発行・ログイン状態を記録
⑧ メニュー画面へリダイレクト
4. 入力項目
・ユーザーID(必須・最大50文字・半角英数字)
・パスワード(必須・最大100文字・入力値はマスク表示)
5. 出力項目
・セッション情報(認証成功時にサーバーサイドセッションを発行)
・ログイン後画面(認証成功後、メニュー画面へリダイレクト)
・エラーメッセージ(認証失敗・ロック時に画面上へ表示)
・エラーログ(サーバーログファイルへ記録)
6. エラー処理
・入力値エラー:「ユーザーIDとパスワードを入力してください。」
・認証失敗:「ユーザーIDまたはパスワードが正しくありません。」
・アカウントロック:「アカウントがロックされています。管理者にお問い合わせください。」
・システムエラー:「システムエラーが発生しました。管理者にお問い合わせください。」
結果比較
・パターンA:指定していない内容をAIが補完している
・パターンB:指示した内容で忠実に作成されている
| 項目 | テンプレートなし | テンプレート使用 |
| .NETバージョン | 記載なし | ✅ 10.0が明記 |
| 認証方式 | 曖昧な記載 | ✅ セッション認証と明記 |
| アカウントロック回数 | × 5回(AIが勝手に決めた) | ✅ 3回と明記 |
| 対応ブラウザ | × Chrome/Edge/Firefox/Safari(AIが勝手に追加) | ✅ Edgeのみ |
| エラーログ出力先 | × DBに記録(AIが勝手に決めた) | ✅ ファイルと明記 |
| セッション有効期限 | × 30日(AIが勝手に決めた) | 記載なし |
| API仕様 | × AIが勝手に追加 | 記載なし |
| 非機能要件 | × AIが勝手に追加 | 記載なし |
ここで重要なポイントは、「AIは情報が足りない部分を勝手に補完する」ということです。
必要項目の漏れに気づかせてくれる場合もありますが、曖昧な指示をすると自分で推測して動いてしまいます。
できる限り情報を伝えた方が、期待通りの仕事をしてくれます。
開発者のためのプロンプトテンプレート集
以下のテンプレートは、不要な選択肢を削除してそのまま使えます。該当しない項目は「なし」と入力してください。
⚠️ 利用上の注意
テンプレートに情報を入力する前に、社内規定・契約上の制約を必ず確認してください。
コードレビュー・デバッグはソースコードをAIに渡す必要があるため、AIを利用できる環境でのみ使用してください。
以下の情報をもとに、システム機能仕様書を作成してください。
※コードは不要です。
※各項目、該当しない場合は「なし」と入力してください。
・機能名:ログイン機能
・システム種別:Web / スタンドアロン / API
・開発言語:C# / Java / Python / PHP / VB.NET
・フレームワーク:ASP.NET Core MVC / Spring Boot / Django / Laravel
・DB:SQL Server 2022 / Oracle 19c / MySQL 8.0 / PostgreSQL 15
・機能の概要:ユーザーIDとパスワードで認証する
・利用者:社内の業務システム利用者
・前提条件・制約:パスワードはbcryptで暗号化して保存済み、ログイン失敗3回でアカウントロック
・認証方式:セッション認証 / JWT / OAuth
・文字コード:UTF-8 / Shift-JIS
・対応ブラウザ:Edge / Chrome / Firefox / Safari
・エラーログ出力先:ファイル / DB / イベントログ
【出力形式】
1. 機能概要
2. 前提条件
3. 処理フロー
4. 入力項目
5. 出力項目
6. エラー処理
以下の情報をもとに、SQLを作成してください。
※各項目、該当しない場合は「なし」と入力してください。
※テーブル名・カラム名は仮名での記載も可能です。
・DB:SQL Server 2022 / Oracle 19c / MySQL 8.0 / PostgreSQL 15
・処理種別:SELECT / INSERT / UPDATE / DELETE
・テーブル名:売上テーブル(sales)
・取得・操作内容:月別の売上合計を集計したい
・条件:2024年のデータのみ
・並び順:月の昇順 / 月の降順
・前提条件・制約:売上テーブルには売上日、商品名、金額のカラムがある
【出力形式】
1. SQL文
2. 各句の説明
テーブル名・カラム名を仮名で作成した場合は、物理名への置換が必要です。
置換表を用意しておき、ExcelマクロやVSCodeの一括置換などを使うと効率よく変換できます。
以下のコードをレビューしてください。
※各項目、該当しない場合は「なし」と入力してください。
・開発言語:C# / Java / Python / PHP / VB.NET
・フレームワーク:ASP.NET Core MVC / Spring Boot / Django / Laravel
・レビュー観点:セキュリティ / パフォーマンス / 可読性 / 保守性
・前提条件・制約:
・対象コード:
(ここにコードを貼り付け)
【出力形式】
1. 問題点
2. 改善提案
3. 修正後のコード
以下のエラーの原因と解決策を教えてください。
※各項目、該当しない場合は「なし」と入力してください。
・開発言語:C# / Java / Python / PHP / VB.NET
・フレームワーク:ASP.NET Core MVC / Spring Boot / Django / Laravel
・DB:SQL Server 2022 / Oracle 19c / MySQL 8.0 / PostgreSQL 15
・エラーメッセージ:
・エラーが発生する状況:
・試したこと:
・対象コード:(ある場合のみ貼り付け)
・前提条件・制約:
【出力形式】
1. エラーの原因
2. 解決策
3. 修正後のコード
まとめ
今回紹介したテンプレートには、共通する考え方があります。
・環境情報を明示する(言語・バージョン・DB・フレームワーク)
・前提条件・制約を伝える
・出力形式を指定する(何をどんな形で欲しいかを明確に)
この3点を意識するだけで、AIへの質問の精度が大きく変わります。
ぜひ自分の現場に合わせて、テンプレートをカスタマイズしながら使ってみてください。
さらに精度を上げるには
AIに『あなたは○○の専門家です』というように擬人化すると精度が上がる、という話を耳にしたことがある方もいらっしゃると思います。
しかし、重要なのは擬人化そのものではありません。
擬人化することで役割・視点・評価軸が明確になり、結果的に回答の精度が上がる場合があります。
つまり本質は「期待する思考特性を明示すること」です。
特に業務用途では、著名人になりきらせるより、以下のように役割と判断基準を具体的に書く方が再現性が高く有効です。
あなたは業務システム開発の経験豊富なSEです。
・実装・テストで説明できない仕様はNG
・結論→理由→注意点の順で回答してください
こちらもぜひ、各会話の枕詞に利用してみてください。
テンプレートと組み合わせることで、さらに精度の高い回答が得られます。