AI公開前診断の納品サンプル

AIで作ったWebアプリの診断を依頼すると、何が返ってくるのか分からない。そんな購入前の不安を減らすため、1回完結プランの納品サンプルを公開します。

これは顧客事例ではありません。意図的に問題を入れたテスト用Next.jsプロジェクトを実際に静的検査し、その結果を短く編集したサンプルです。

今回の入力

  • Next.jsの最小テストプロジェクト
  • 検査対象は .env.localapp/page.tsxpackage.json の3ファイル
  • 目的は「公開前に止めるべき点と、次にAIへ頼む内容を決めること」

[事実] 2026年8月29日の再検査結果は FAIL 1 / WARN 4 / 検査3ファイル、終了コード1でした。対象コードは実行せず、外部サービスへ送信していません。

成果物1:現状診断

P0:公開を止めて確認する項目

.env.local が検査対象に存在しました。

[推論] ファイルが存在するだけでは漏えい済みとは断定できません。ただし、Git管理や共有履歴を確認するまでは公開停止が妥当です。値そのものはレポートへ出しません。

P1:優先的に直す項目

app/page.tsxdangerouslySetInnerHTML を使用していました。

[不明] このfixtureでは固定文字列ですが、実案件で外部入力が入るかは未確認です。入力元、サニタイズ、表示要件を確認してから修正方法を決めます。

package.json には build しかなく、linttypechecktest がありませんでした。

[推論] AI修正後の退行を検出する仕組みが弱いため、公開前の再現確認が属人的になります。

今回は確認していないもの

  • 認証とユーザー別権限
  • APIやServer Actionの入力検証
  • 依存パッケージの既知脆弱性
  • SupabaseのRLS
  • 本番環境変数とデプロイ設定

見ていない範囲を「問題なし」とは判定しません。

成果物2:優先修正リスト

1. P0:秘密情報の履歴確認

  • 理由:公開領域やGit履歴に入っていた場合、削除だけでは無効化できないため
  • 完了条件:追跡対象と履歴を確認し、漏えい可能性があれば値を失効・再発行する
  • 再確認:秘密値を表示せず、追跡ファイル一覧と .gitignore を確認する

2. P1:直接HTML挿入の入力元を確定

  • 理由:外部入力が混ざると、意図しないHTML実行につながる可能性があるため
  • 完了条件:通常のJSXへ置換するか、必要性と防御策をコード内で説明できる
  • 再確認:危険な入力を含むテストを追加し、期待どおり文字列として扱われることを確認する

3. P1:品質確認コマンドを固定

  • 理由:AI修正のたびに確認方法が変わるのを防ぐため
  • 完了条件:linttypechecktestbuild を同じ手順で実行できる
  • 再確認:クリーン環境で4コマンドの終了コード0を記録する

成果物3:そのままAIへ渡せる改善指示

指示1:秘密情報の公開経路を閉じる

対象リポジトリで秘密情報の公開可能性を調査してください。値そのものは出力しないでください。まず .env* のGit追跡状態、.gitignore、コードからの参照箇所を一覧化し、漏えい済みの可能性と未確認事項を分けてください。無断で値を変更せず、失効・再発行が必要な場合は人間向け手順として提示してください。完了条件は、公開クライアントへ秘密値が含まれず、追跡対象から除外され、再確認コマンドが残ることです。

指示2:直接HTML挿入を安全な表示へ変える

dangerouslySetInnerHTML の入力元と必要性を確認してください。固定表示で代替できる場合は通常のJSXへ置き換えてください。HTML表示が必須なら、採用する防御策と残る制約を説明し、危険な文字列を含むテストを先に追加してください。対象外のUIや文言は変更しないでください。テスト、型検査、ビルド結果を報告してください。

指示3:公開前チェックを再現可能にする

現在の技術構成を変えず、package.jsonlinttypechecktest を追加してください。既存の設定と依存関係を先に確認し、未導入ツールを勝手に増やさないでください。各コマンドの目的、終了コード、失敗時の原因を記録し、最後に build まで実行してください。確認できなかった項目は成功扱いにせず未確認と書いてください。

このサンプルの限界

静的な公開前確認の一例であり、侵入テスト、完全なセキュリティ診断、売上や審査通過の保証ではありません。実際の納品では、いただいた目的、公開URLまたは画面、技術構成、困りごと3点、到達したい状態に合わせて内容を作り直します。

現在地と次の修正を1回で整理したい方は、AI開発の詰まりを1回で整理|公開前セルフ診断をご確認ください。

4週間の改善実行と週次レビューが必要な場合だけ、月4成果物の固定スコープ伴走をご案内します。質問し放題や通話前提ではありません。