自分の業務課題を題材にVibe Codingで実用ツールを開発する。セキュリティチェックを繰り返し実践し、最後に社内資格認定テストに挑む1日。
| 時間 | 内容 | 形式 | 詳細 |
|---|---|---|---|
| 0:00 - 0:10 | Opening | 座学 | Day 1復習、セキュリティリスク4分類クイック確認 |
| 0:10 - 0:30 | Session 02 Part 1 | 座学 + 演習 | 効果的なプロンプトの書き方 |
| 0:30 - 0:50 | Session 02 Part 2 | 座学 + 共有 | 宿題共有と課題設定 |
| 0:50 - 1:00 | 休憩 | - | - |
| 1:00 - 2:20 | Session 03 | ハンズオン | 実践プロジェクト開発(80分) |
| 2:20 - 2:30 | 休憩 | - | - |
| 2:30 - 2:55 | Session 04 Part 1 | 発表 + 議論 | 成果発表 + 相互セキュリティレビュー |
| 2:55 - 3:25 | Session 04 Part 2 | テスト | 資格認定テスト(15分回答 + 15分解説) |
| 3:25 - 3:40 | Session 04 Part 3 | 座学 | 総括 |
| 3:40 - 4:00 | Closing | - | 質疑応答 / 閉会 / アンケート |
座学+発表 85分 / ハンズオン 80分 / テスト 30分 / 休憩 20分 / Opening+Closing 25分 = 合計240分
Day 1 で学んだセキュリティリスクの全体像をクイックに振り返る。4分類とチェックリスト4カテゴリを頭に入れ直してから Day 2 の実践に入る。
機密情報をAIに入力してしまう、生成コードに認証情報を埋め込んでしまうといった危険。プロンプトにパスワードや社内データを含めた時点でリスクは発生する。
AIが生成したコードに既存のオープンソースが混入し、ライセンス汚染を起こす可能性がある。権利関係の不透明さが法的リスクに直結する。
生成コードに意図しない外部通信やファイル操作が含まれるケース。レビューなしにそのまま実行すると、社内ネットワークに脆弱性を持ち込む。
個人情報や顧客データの取り扱いに関するリスク。個人情報保護法への抵触は、技術的な問題ではなくコンプライアンス上の問題になる。
| 分類 | 主なリスク | チェック観点 | 発生タイミング |
|---|---|---|---|
| 情報漏洩 | プロンプトへの機密情報混入 | 入力チェック | AIへの指示時 |
| 知的財産 | ライセンス汚染・権利侵害 | 共有チェック | コード共有時 |
| マルウェア | 外部通信・不正ファイル操作 | 生成チェック | コード生成直後 |
| プライバシー | 個人情報の不適切な取扱い | 出力チェック | 実行・出力時 |
AIに正確かつ安全なコードを書かせるには、プロンプトの質がすべてを決める。曖昧な指示が生むリスクと、具体的な指示が生む安全性の差を3パターンの比較で体感する。
| 観点 | 曖昧なプロンプト | 具体的なプロンプト |
|---|---|---|
| 入出力 | 不明確 -- AIが推測で補う | ファイルパス・形式を明記 |
| ライブラリ | 制限なし -- 何でも使う | 使用可能なものだけ列挙 |
| セキュリティ | 制約なし -- 外部通信も混入 | 禁止APIを明示 |
| レビュー容易性 | 何が正解か判断困難 | 期待動作と照合可能 |
| 再現性 | 毎回違うコードが出る | 安定した出力を得やすい |
汎用的すぎるコードが生成される。外部ライブラリを勝手にimportし、どのファイルを読むかも不定。何が起きるか予測できないコードほど危ないものはない。
入出力パスが明確、ライブラリ制約あり。生成コードの予測可能性が高く、レビューも容易になる。
複雑すぎて不具合の発見が困難。メール送信権限が混入し、意図せず社外にデータを飛ばすリスクを孕む。
-- 動作確認 + セキュリティチェック --
機能ごとにチェックでき、不要な権限の混入を未然に防げる。
どのAPIを使うか、どこにアクセスするかが制限されない。UrlFetchApp や GmailApp を呼ぶコードが紛れ込む可能性がある。
許可するAPIを明示し、禁止するAPIを列挙する。生成コードがスコープ外の操作を行わないことを保証できる。
効果的なプロンプトには必ず4つの要素が含まれる。「制約」の欄を空にしたまま生成ボタンを押さないこと。
| 要素 | 問い | 記述例 |
|---|---|---|
| 目的 | 何をしたいか | CSVファイルを部署別に集計したい |
| 入力 | 何を受け取るか | data/sales.csv(A列:部署、B列:金額) |
| 出力 | 何を出すか | output/summary.csv に部署別合計を出力 |
| 制約 | 何を使わないか / 守るべきルール | 外部ライブラリ不使用、外部通信禁止 |
プロンプトをAIに送信する前に、この5項目を確認する。1つでも欠けていると生成コードの品質が下がる。
効果的なプロンプトは層構造を持つ。最上位の「制約」がコード全体の安全性を規定し、下層に向かって具体的な指示が並ぶ。
コード生成と動作確認を交互に繰り返す。1ステップごとにセキュリティチェックを挟むことで、問題を小さい段階で検知できる。
自分の業務課題を1つ選び、プロンプト4要素(目的・入力・出力・制約)の形式で書いてみる。隣の人と交換して「制約が足りているか」を確認し合う。
Day 1 の宿題「業務でVibe Codingで解決したい課題」を共有し、Session 03 で取り組むテーマを確定する。テーマが決まらない人向けにサンプルテーマも用意している。
2-3人のグループで宿題内容を共有する。自分の課題を30秒で説明し、他のメンバーから「セキュリティ上気になる点」を1つずつもらう。
| ID | テーマ | 概要 | 難易度 |
|---|---|---|---|
| V1 | CSV列の並べ替えツール | 指定した列順にCSVを並べ替えて出力 | 低 |
| V2 | 重複データ検出ツール | CSVの特定列で重複する行を検出 | 低 |
| V3 | 月次売上レポート生成 | 売上CSVから月別集計を行いテキストレポートを出力 | 中 |
| V4 | 複数CSVの統合ツール | 複数のCSVファイルを1つに統合 | 中 |
| V5 | データ検証ツール | CSVの各列に対してバリデーションルールを適用 | 高 |
| ID | テーマ | 概要 | 難易度 |
|---|---|---|---|
| G1 | シート間データコピー | Sheet1のデータをSheet2にコピー | 低 |
| G2 | 条件付き行の抽出 | 特定条件に合う行だけを別シートに抽出 | 低 |
| G3 | 部署別集計ダッシュボード | 部署ごとの集計結果を別シートに自動生成 | 中 |
| G4 | 月次データの自動集計 | 月ごとのシートから年間サマリーを作成 | 中 |
| G5 | スプレッドシートの自動フォーマット | データに応じてセルの色分けや書式を自動設定 | 高 |
Session 03 の80分間はこの5ステップで進行する。時間配分の目安を頭に入れておくこと。
| Step | 内容 | 時間目安 | 成果物 |
|---|---|---|---|
| Step 1 | 要件整理 | 10分 | 要件メモ(目的・入出力・リスク) |
| Step 2 | プロンプト設計 | 10分 | 4要素を含むプロンプト文 |
| Step 3 | コード生成 + セキュリティチェック1回目 | 15分 | 生成コード + チェック結果記録 |
| Step 4 | テスト実行・動作確認 | 10分 | ダミーデータによる実行結果 |
| Step 5 | 改善依頼 + セキュリティチェック2回目・3回目 | 25分 | 改善済みコード + 最終チェック結果 |
テーマ例の中から難易度「低」か「中」を選ぶことを推奨する。初めてのVibe Coding実践で高難度に挑むと、80分では時間が足りない。まず小さく成功体験を積むことが先決。
ここからが本番。自分で設定した業務課題に対して、Vibe Codingで実際にツールを開発する。各ステップでセキュリティチェックを忘れずに。
手順書の要件整理テンプレートに記入する。以下の4項目を空欄なく埋めることが目標。
プロンプトをテキストファイルに書き出してから Copilot に渡すと、後で見返せる。いきなりチャット欄に打ち込むのではなく、一度手元で整理する習慣をつけたい。
AIが生成したコードをそのまま実行しない。まずチェックリストを1行ずつ確認する。
修正内容を具体的に指示する。「セキュリティ的に直して」ではなく「3行目の fetch を削除し、ローカルファイルからの読み込みに変更してください」と書く。曖昧な修正依頼は曖昧な修正を呼ぶ。
ダミーデータを使って実行し、結果が期待通りか確認する。実データは絶対に使わない。
追加機能や改善を依頼するたびに、新しいコードに対してセキュリティチェックを実施する。機能追加は新たなリスクの追加と同義。
| 回 | タイミング | チェック焦点 | 対応カテゴリ |
|---|---|---|---|
| 1回目 | 初回コード生成後 | import/外部通信/ファイルパス/認証情報 | 入力+生成 |
| 2回目 | 機能追加・修正後 | 追加処理のリスク/新たなAPI使用 | 生成+出力 |
| 3回目 | 完成時 | 全体通し確認/共有前チェック/権限 | 全4カテゴリ |
| 問題 | 原因 | 対処法 |
|---|---|---|
| プロンプトが漠然としている | 入出力の形式が未定 | 「入力ファイルの形式と出力ファイルの形式を具体的に書きましょう」 |
| 生成コードが長すぎて理解できない | 一括依頼をしている | Copilotに「このコードを短く簡潔に書き直してください」と依頼 |
| GASの関数名がおかしい | CopilotがGAS特有のAPIを知らない場合がある | 「Google Apps Script用に修正して」と再依頼 |
| GASが6分でタイムアウトする | データ量が多すぎる | データ量を減らすか処理を分割する |
| セキュリティチェックを飛ばしている | 開発に集中して忘れる | チェックは実行前に必ず。ここを飛ばすとテストに響く |
1回のチェックで安全と言い切れるほどAI生成コードは単純ではない。機能を追加するたびにコードの構造が変わる。前回OKだった部分も、追加コードとの組み合わせで新しいリスクが生まれ得る。手間に感じるかもしれないが、この反復が「安全にVibe Codingを使いこなす力」になる。
開発した成果物を発表し、他の受講者の目でセキュリティレビューを行う。自分では気づけなかったリスクを他者が見つけてくれる体験がこのセッションの核心。
隣の人とペアを組む。できれば異なるテーマ(VSCode組とGAS組)でペアを組むと視点が広がる。
「何をするコードか」を口頭で説明してからコードを見せること。背景情報なしでコードだけ渡しても的確なレビューはできない。
チェックリスト4カテゴリを相手のコードに適用する。気になる点はメモに書き出してフィードバックの準備をする。
見つけた指摘事項を相手に伝える。「ここは問題ない」「ここが気になった」を具体的に。褒めるべき点も見逃さない。
| チェック観点 | 結果 | コメント |
|---|---|---|
| 入力チェック(機密情報の混入) | OK / NG | 自由記述 |
| 生成チェック(不審な処理) | OK / NG | 自由記述 |
| 出力チェック(不要データの出力) | OK / NG | 自由記述 |
| 共有チェック(ライセンス・承認) | OK / NG | 自由記述 |
| 総合コメント | 良かった点 / 改善点 | |
レビューで見つかった指摘事項を全体で共有する。「自分では気づかなかったが他者に指摘されたリスク」があれば、それがまさにレビューの価値。1人でチェックリストを回すのと、他者の目が入るのとでは発見率が段違いに変わる。
2日間の集大成。このテストに合格すると、社内でVibe Codingを実務利用するための資格が付与される。
| 項目 | 内容 |
|---|---|
| 合格基準 | 5問中4問正解 |
| 合格者 | 社内資格付与 -- Vibe Coding の実務利用が解禁される |
| 不合格の場合 | 後日再受験可能(問題は差し替え) |
| 再受験方法 | 研修担当に連絡し、日程を調整 |
| 範囲 | Day | 出題内容 |
|---|---|---|
| セキュリティリスク4分類 | Day 1 | 各分類の理解、具体例の判断 |
| チェックリスト4カテゴリ | Day 1 | 各カテゴリの適用場面 |
| セキュリティチェック5ポイント | Day 1 | 生成コードの確認項目 |
| プロンプト4要素 | Day 2 | 効果的なプロンプトの構造 |
| インシデント対応 | Day 1-2 | 想定外の権限要求時の行動 |
テストの目的は「落とす」ことではなく、Vibe Codingを安全に使う最低限の知識が身についているかの確認。Day 1 のリスク4分類、チェックリスト4カテゴリ、Day 2 のプロンプト4要素を理解していれば合格できる内容になっている。
| 観点 | Day 1 で手に入れたもの | Day 2 で手に入れたもの |
|---|---|---|
| 知識 | セキュリティリスク4分類 | プロンプト4要素の書き方 |
| ツール | チェックリスト4カテゴリ | 段階的依頼法 |
| 体験 | 初めてのVibe Coding | 業務課題をVibe Codingで解決 |
| 実践 | セキュリティチェック5ポイント | 相互レビューで「他者の目」の価値を実感 |
| 認定 | -- | 資格認定テストで知識の到達度を確認 |
| 区分 | 内容 |
|---|---|
| 許可範囲 | VSCode + GitHub Copilot、Google Apps Script でのVibe Coding |
| 求められること | チェックリストによるセキュリティ検証の実施 |
| 承認プロセス | ツール共有前に上長承認を得る(カテゴリ4の遵守) |
| 情報共有 | 新たなリスクやインシデントを発見した場合は即時共有する |
資格は「ルールを理解した上で使ってよい」という許可証。チェックリストを省略した開発や、承認なしのツール配布は資格の取り消し対象になり得る。安全に使い続けることが、組織全体のAI活用を前に進める。
2日間の研修内容について、疑問や不安が残っている点があれば質問を受け付ける。実務で使い始めた際に「こういう場面ではどうすればいいか」という具体的な質問を歓迎する。