SESSION 04

PDF文書比較ツールを作る

講師が作ったPDF比較ツールのデモを見た後、同じアプリをゼロから自分のプロンプトで開発します。Claude Codeへの「指示の出し方」が試される実践セッションです。

10:50 - 12:10(80分)
実践
OVERVIEW
このセッションの進め方

Session 3ではHTMLファイル1つで動くアプリを作りました。ここからは、サーバーとAI APIを使った本格的なウェブアプリに挑戦します。

ただし、今回は完成品のコードを渡して改修する形ではありません。講師のデモを見てから、自分自身のプロンプトでゼロからアプリを開発していただきます。

講師デモを見る
完成版のPDF比較ツールを講師が動かします。画面構成と操作の流れを観察してください。
ダミーデータを確認する
比較対象となるPDFの3セットを全員で開き、中身と差分のポイントを把握します。
自分のプロンプトで開発する
デモで見た画面をゴールに、Claude Codeへプロンプトを書いてアプリを構築します。
完成したアプリを共有する
動作確認ができたらスクリーンショットを撮り、ZOOMチャットで全員に共有します。
完成品は参考用として配布済みです

講師が作った pdf-compare-app フォルダは参照用として配布しています。行き詰まったときにコードを見る用途に使ってください。メインの学びは「自分のプロンプトで作ること」にあります。

STEP 1 / 10 MIN
講師デモを見る

講師がPDF比較ツールの完成版を操作します。画面を見ながら、以下の点を意識して観察してください。

観察ポイント 01

画面構成

PDFをアップロードするエリアが2つ、比較実行ボタン、結果の表示エリアがどう配置されているかを見てください。

観察ポイント 02

操作の流れ

PDFを選ぶ → 比較を実行 → 結果を読む → レポートやメールに変換、という一連の流れを追ってください。

観察ポイント 03

比較結果の構造

概要、一致点、相違点(重要度つき)、片方にだけある記述、の4セクションに分かれて表示されます。

観察ポイント 04

変換機能

比較結果をビジネスレポートやメール文面に変換するボタンがあります。上司への報告を自動化する発想です。

ACTION

デモ画面のスクリーンショットを撮っておく

後の開発で「この画面を参考にしてください」とClaude Codeに見せる材料になります。Windows の場合は Win + Shift + S、Mac の場合は Cmd + Shift + 4 で画面の一部をキャプチャできます。

STEP 2 / 15 MIN
ダミーデータの確認と開発準備
3セットのサンプルPDF

配布フォルダの sample-data/ に3種類の文書ペアが入っています。講師と一緒にそれぞれの内容を開いて確認しましょう。比較対象の文書にどんな差分が含まれているかを事前に把握しておくと、完成後の動作検証がスムーズになります。

セット文書の種類ファイル名注目すべき差分
set1設備点検手順書set1_設備点検手順書_v1.0.pdf
set1_設備点検手順書_v2.0.pdf
v2.0でGMP対応の追加、重量検査装置の手順追加、充填精度基準の変更
set2業務委託契約書set2_業務委託契約書_A社案.pdf
set2_業務委託契約書_B社案.pdf
報酬条件、責任範囲、契約期間の条項の差異
set3技術仕様書set3_技術仕様書_HX-200現行.pdf
set3_技術仕様書_HX-300次期.pdf
型番の違い、スペック数値、新機能の有無
開発フォルダの準備

自分専用の開発フォルダを作り、必要なファイルだけ配置します。

新しいフォルダを作る
デスクトップなど好きな場所に my-pdf-compare フォルダを作成してください。
sample-data をコピーする
配布フォルダ内の sample-data/ を丸ごと my-pdf-compare/ にコピーしてください。
.env ファイルを作成する
VSCodeでフォルダを開き、ルートに .env ファイルを作って講師配布のAPIキーを記入します。
Claude Code を起動する
VSCodeのターミナルで claude と入力してClaude Codeを起動してください。
// .env ファイルの内容(講師配布のキーを貼り付け) ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxx
APIキーは外部に公開しないでください

.env ファイルに記載するAPIキーは認証情報です。メールやチャットに貼り付けたり、GitHubにアップロードしたりしないでください。研修終了後にキーは無効化されます。

Security Tips ── APIに送信されるデータを意識する

このPDF比較ツールは、アップロードされたPDFの全文をClaude APIに送信して分析しています。研修ではダミーデータを使うため問題ありませんが、実業務で使う場合は注意が必要です。社外秘の文書、個人情報を含む書類、法的に外部送信が制限されるデータは、APIに送信してよいかセキュリティポリシーを事前に確認してください。.envファイルをGitにコミットしないよう .gitignore に追加する運用も習慣にしてください。

STEP 3 / 40 MIN
自分のプロンプトで開発する

ここが本セッションの核です。デモで見た画面をゴールとして、Claude Codeに「何を作りたいか」を自分の言葉で伝えてください。

プロンプトをいきなり完璧に書く必要はありません。まず大まかな指示を出し、足りない部分を追加で伝える。Session 3で身につけた「具体的に / 一度にひとつ / 結果を確認」のリズムがここでも使えます。

プロンプトに含めたい7つの要素

以下の要素をヒントにして、自分なりのプロンプトを組み立ててください。一度に全部伝えても、数回に分けて伝えても構いません。

01

役割

Claude Codeに「どんな開発者として振る舞ってほしいか」を伝えます。

例: あなたはNode.jsのウェブアプリ開発者です
02

目的

作りたいものを端的に伝えます。一文で言い切れるのが理想です。

例: 2つのPDFを比較分析するウェブアプリを作ってください
03

条件

使う技術やポート番号など、守ってほしい制約を伝えます。

例: Express で localhost:3001 に立てて、Anthropic SDK を使用
04

文脈

なぜ作るのか、どんな場面で使うのかを補足します。スクリーンショットの説明も有効です。

例: 先ほどのデモのスクリーンショットを参考にしてください
05

ダミーデータ

テスト用のデータがどこにあるかを伝えます。

例: sample-data/ に3セットのテスト用PDFがあります
06

出力形式と場所

ファイル構成の指定です。サーバー側とフロント側を分ける構成も伝えられます。

例: server.js をルートに、フロントは public/ に配置
07

APIの使用方法

外部APIをどう使うかを伝えます。キーの場所も知らせてください。

例: .env の ANTHROPIC_API_KEY で Claude API を呼び出し、PDFを分析

以下は全要素を盛り込んだ場合の一例です。丸写しではなく、自分の言葉で書き換えて使ってください。

// 参考プロンプト(あくまで一例) あなたはNode.jsのウェブアプリ開発者です。 以下の要件でPDF文書比較ツールを作ってください。 【目的】 2つのPDFをアップロードし、AIが内容を比較分析するウェブアプリ 【技術条件】 - Express でサーバーを構築、localhost:3001 で起動 - Anthropic SDK で Claude API を呼び出す - multer でPDFアップロードを処理 - pdf-parse でPDFテキストを抽出 【ファイル構成】 - server.js(サーバー) - public/index.html(画面) - public/style.css(デザイン) - public/app.js(操作と表示) - package.json 【機能】 - PDFを2つアップロードするUI - 比較実行ボタン - 結果表示(概要、一致点、相違点、固有の記述) - 相違点に重要度(高/中/低)を付与 - レポート形式への変換ボタン - メール形式への変換ボタン 【データ】 - sample-data/ にテスト用PDFが3セットあります - APIキーは .env の ANTHROPIC_API_KEY に設定済みです
開発の進め方

プロンプトを送信すると、Claude Codeがファイルを生成し、必要なパッケージのインストールまで実行してくれます。生成が終わったら、ターミナルで npm start を実行してブラウザで http://localhost:3001 を開いてください。画面が表示されれば第一段階は成功です。

動いたらset1で比較を試す

sample-data/ の set1(設備点検手順書 v1.0 と v2.0)を使って比較を実行してください。結果が表示されればアプリは完成です。

もし結果の表示がおかしかったり、機能が足りなかったりしたら、追加のプロンプトで修正を依頼してください。一度で完璧にならなくて当然です。

server.js を変更したらサーバーを再起動

Claude Codeがserver.jsを修正した場合は、ターミナルで Ctrl+C → npm start でサーバーを再起動してください。public/ フォルダだけの変更ならブラウザのリロード(F5)で反映されます。

TIPS

プロンプトの中のプロンプト

このアプリの server.js には、Claude APIに送る分析指示(プロンプト)が含まれています。「AIに指示を出す文章を、別のAIに書いてもらう」構造です。ここを調整すると分析の切り口が変わります。「法務観点で分析して」「安全管理の視点で比較して」といった指示も有効です。

TIPS

完成品を参照する

思うように動かない場合は、配布済みの pdf-compare-app フォルダのコードを見て構いません。server.js のプロンプト構造や public/ のUI構成を参考にして、自分のアプリに反映してください。

参考リンク
AppForge(業務アプリ集) Claude Code 公式ドキュメント Claude API リファレンス
STEP 4 / 15 MIN
完成と共有
エラーが出た場合

アプリの起動や比較実行でエラーが出るのは珍しくありません。ブラウザやターミナルに表示されるエラーメッセージをそのままClaude Codeに貼り付けてください。

// エラー対応のプロンプト例 npm start したら以下のエラーが出ました。修正してください。 Error: Cannot find module 'express' ...
自分でエラーの意味を理解する必要はありません

エラーメッセージの全文をClaude Codeに渡すだけで、原因の特定と修正を一括で行ってくれます。「何が起きているか」よりも「エラーを正確にコピペすること」が大事です。

全員の動作確認

set1のPDFで比較結果が表示されたら完成です。講師が全員の画面を順番に確認します。

FINAL ACTION

ZOOMチャットにスクリーンショットを共有

完成したアプリの比較結果画面をスクリーンショットで撮影し、ZOOMのチャットに貼り付けてください。全員のアプリがどんな見た目になったか、比較するのも面白い発見になります。同じ要件でもプロンプトの書き方次第でUIや分析結果の見せ方が変わることを体感してください。

余裕がある方は

set2(業務委託契約書)やset3(技術仕様書)でも比較を試してみてください。文書の種類が変わるとAIの分析観点が変わることが体感できます。独自の機能追加(CSV出力、比較履歴の保存など)にも挑戦してみてください。

COMPREHENSION CHECK
理解度チェック
Q1. Claude Codeでアプリをゼロから開発するとき、プロンプトに含めると効果が高い要素はどれですか
Aプログラミング言語の文法を詳しく解説するClaude Codeはプログラミング言語を既に知っています。文法の説明は不要で、「何を作りたいか」を具体的に伝えるほうが効果的です。
B目的、技術条件、ファイル構成を具体的に伝える正解です。「何を作りたいか(目的)」「どんな技術を使うか(条件)」「どんなファイル構成にするか(出力形式)」を具体的に指定すると、意図に近いアプリが生成されます。今回学んだ7要素がその基本です。
C「いい感じに作って」と一言だけ伝える曖昧な指示ではClaude Codeが意図を正確に汲み取れません。Session 3で学んだ通り、「具体的に」伝えることがAI駆動開発の基本です。
Q2. アプリ開発中にエラーが出た場合、最も効率的な対処法はどれですか
Aエラーメッセージ全文をClaude Codeに貼り付けて修正を依頼する正解です。エラーメッセージにはClaude Codeが原因を特定するための情報が含まれています。全文を渡すことで、修正コードまで一括で提案してくれます。
Bコードを全部消して最初からやり直す最初からやり直すのは非効率です。Claude Codeはエラーの原因箇所だけを特定して修正できます。
Cエラーメッセージを自分で翻訳してからコードを手動で直すAI駆動開発ではエラーの内容をClaude Codeに渡すだけで修正が完了します。手動修正より速く、正確です。
Q3. Session 3のチェックリストとPDF比較ツールの構成上の違いはどれですか
A使っているプログラミング言語が異なるどちらもHTML/CSS/JavaScriptを使っています。言語の違いではなく、構成の違いがポイントです。
BPDF比較ツールはサーバー(Express)と外部API(Claude)を使っている正解です。チェックリストはHTMLファイル1つで完結していましたが、PDF比較ツールはサーバーがPDFの処理とAPI通信を担当し、フロントエンドが画面表示を担当する構成です。
CPDF比較ツールのほうがファイル数が少ない逆です。PDF比較ツールはserver.js、package.json、.env、public/フォルダ内の複数ファイルで構成されています。チェックリストのほうがファイル数は少なく済みます。