前回の記事はこちら:
はじめに
前回の記事「AIを使って無料でツールを作ろう -シャドバ連勝デッキ検索ツール編-」では、Google ColabとPlaywrightを使って完全無料で動く連勝デッキ抽出ツールのコードをご紹介しました。
今回はその開発裏話として、「AI(Gemini)にどのようなプロンプト(指示)を出してツールを完成させたのか」、そして**「開発やQiita投稿の途中でどんな壁にぶつかり、どう乗り越えたのか」**という試行錯誤の裏話をお届けします。
この記事はこんな方におすすめ
- 前回の「シャドバ連勝デッキ検索ツール編」を読んでくれた方
- AIを活用してツール開発をしてみたい初心者エンジニア
- Qiitaに記事を書いたことがなく、初投稿にハードルを感じている方(僕も今回がQiita初投稿でした!)
- アイデアはあるけれど、AIへの具体的な指示出しに悩んでいる方
筆者のスペックと技術選定の背景
記事に入る前に、僕自身の前提(スペック)と今回のツール開発に至った背景を少しお話ししておきます。
僕はインフラ・運用保守寄りのシステムエンジニアとして働いており、コードをガリガリ書く開発専門ではありませんが、ITの基礎知識は多少ある状態でした。そのため、今回の開発は「完全な0からのスタート」ではありません。
実務の現場でもAIを使って簡単なツールを作成した経験がありましたし、プライベートでもAIを活用して自分用のリマインダーツールなどをたまに作っていました。
「開発のプロ」ではないものの、**「AIに相談しながらちょっとしたツールを形にする感覚」**は少し身についている、というのが僕のリアルなスペックです。
なぜ最初にGASを考え、最終的にPython ✕ Google Colabになったのか?
実は最初、**Google Apps Script(GAS)**で作ろうとしていました。以前「特定の時間になったら自動で動くシステム」を作ったことがあり、「今回も1日1回(20時間ごとなど)自動でデッキを集計させたい」と考えた時に、真っ先に浮かんだのがGASだったからです。
しかし、AIに相談したところで壁にぶつかりました。
無料枠の範囲でXの最新ポストをスクレイピングしようとすると、GASでは対応が難しく、Xの公式API連携もうまくいかないことが分かったのです。
そこでAIが提案してくれたのが**「Python ✕ Google Colab(+Playwright)」**という構成でした。
仕事の現場で少しPythonを触ったことがあったため「実行環境の触り方やコードの雰囲気」はなんとなく分かっていましたし、何より完全無料で動的なスクレイピングができるというAIの提案が決め手となり、Pythonへの切り替えを決断しました。
開発スケジュールと所要時間
AIとの対話を取り入れたことで、構想からツールの完成、そして記事の整理まで**トータルで9〜10時間ほど(実質1日強)**で進めることができました。大まかな時間の流れはこんな感じです。
-
1日目(約7時間)
- 構想: 話を聞いてすぐ「これを作ってみよう」とアイデアが浮かぶ
- 要件定義〜開発: AIと音声で会話しながら、GASからPython/Colabへ切り替え。スクレイピングコードの作成やノイズ除去の調整
- 記事作成: 試行錯誤の過程をまとめ、社内の方に確認してもらうための初稿(下書き)を作成
-
2日目(約2時間)
- 修正・投稿対応: Qiitaの投稿エラー(投稿禁止フィルター)への対応やGitHub連携、記事の構成整理
合計所要時間: 約9〜10時間
プログラミングやスクレイピングにどっぷり時間を割いたというよりは、AIに相談しながら手探りで進めていたら「気づけば1日強で記事の形までまとまっていた」という感覚に近いです。
※余談:最大の敵は肩こりと「新たなひらめき」
アイデアが浮かんでから一気に集中して作業していたのですが(途中、1時間くらいご飯休憩は挟みました)、AIと対話しながらノンストップで進めていたら終わった頃にはめちゃくちゃ疲れて肩がバキバキに凝っていました(笑)。
さらにその日の夜、「よし、寝よう!」と布団に入った瞬間に、**「あ、待てよ……こうやって処理したらもっとズルい(効率的な)実装ができるんじゃないか!?」**と新しいアイデアが降ってきてしまい、脳が興奮してなかなか寝付けなくなるというオマケまでついてきました。
AI開発は作業自体は爆速ですが、人間側の脳みそとテンションがフル回転するので体力の消費にはご注意ください。
1. 開発速度を爆速にした「音声入力(会話形式)」への転換
今回の開発で作業スピードが圧倒的に上がった一番の要因は、社内の先輩エンジニアからいただいたアドバイスでした。
今まではキーボードでプロンプトを丁寧に手入力していたのですが、「チャットに打ち込むよりも、今まさにAIと会話しているみたいに音声入力でどんどん投げかけてみると、圧倒的に早くアウトプットが出るよ」と教えていただいたのです。
実は途中、別のAIツール(Claude Code等)で音声入力を試した際、僕の滑舌のせい(?)なのかうまく聞き取ってもらえず不完全燃焼に終わる場面もありました。しかし、Geminiに切り替えてみたところ、こちらの喋りをめちゃくちゃスムーズに聞き取ってくれて一気に会話が成立! 最終的にGeminiとの対話に落ち着きました。
- 思考を止めることなくAIに伝令できる(「こういうエラーが出た」「ここをもっとこうしたい」をそのまま喋るだけ)
- AIとの「キャッチボール」の速度が段違いに跳ね上がる
「文章をきれいに整えてから送信する」のをやめ、頭の中にある疑問や試行錯誤を音声でそのまま叩きつけるスタイルに変えたことで、開発のスピード感が一気に加速しました。
2. 精度向上のための対話:ノイズ除去と判定ロジック
基本コードができてから実際に動かしてみると、「連勝」ではなく「連敗」の投稿、YouTubeなどの配信告知といったノイズも含まれていました。
これらを解消するために、AIに具体的な例と数字を添えて音声で指示を出しました。
提示した指示例:
「5連勝以上の投稿だけに絞りたいです。『配信開始』『YouTube』『連敗』といったキーワードが含まれる投稿は除外してください。クラス名も文脈から高精度に判定する関数を追加してください。」
あいまいな指示(「ノイズを消して」)ではなく、「消したい具体例」や「残したい数値の範囲(5〜50連勝)」を指定することで、AIは正確な正規表現を用いたコードを生成してくれました。
3. 最後の壁:Qiita初投稿と「投稿禁止」エラーとの戦い
コードも完成し、人生初のQiita記事を書き上げていざ「全体公開」に切り替えようとした際、予期せぬエラーが発生しました。
本文に投稿禁止の内容が含まれています。
コードの「折りたたみ」に苦労した話
実はエラーが出る前段階でも一つ苦労したところがありました。コードが長かったため、「そのまま貼るとだらだら伸びて読みにくいよな…」と思い、HTMLの <details> タグを使ってコードブロックを折りたたむ工夫をしようとしたのです。
書き方を調べて実際に綺麗に折りためた時は「よし、見やすくなった!」と達成感があったのですが……。
エラー発生と試行錯誤(折角作った折りたたみも…)
いざ公開しようとすると例の投稿禁止エラーが発生。
僕自身も初心者なので「100%これが原因だった」と断定はできないのですが、削ったり試行錯誤したりする中で、**「おそらくコード内に含まれていたスクレイピング対象のURLやXのリンク構造([twitter.com](...))がQiitaの自動フィルターに引っかかっていたのかな?」**という推測をAIがたててくれました。
そしてエラー原因と思われるコードを丸ごと記事から削る必要が出てきたため、苦労して実装した「折りたたみコード」も結果的に使えなくなってしまうという悲しいオチがつきました(笑)。
解決策:コードをGitHub経由で埋め込む
そこで最終的に行き着いたのが、**「コードはGitHub(Gistやリポジトリ)にアップロードし、Qiita側にはそれを埋め込む」**という方法でした。
これを試したところ、見事にエラーを回避して保存・公開することができました!
- 苦労して折りたたまなくても、自動的にすっきりして圧倒的に読みやすくなる
- コードを修正・アップデートした際も、GitHub側を直すだけで記事側に即座に反映される
Qiita初投稿で手探り状態でしたが、「せっかく調べた折りたたみが無駄になる」という失敗も含めて、試行錯誤しながら最終的に一番スマートな形にたどり着く良い経験になりました。
まとめ
「ツールを作りたい」と思ってから完成に至るまで、AIは単なる「コード出力機」ではなく、**「仕様を一緒に考えてくれる頼もしい技術パートナー」**でした。
過去に少し触ったことのあるうっすらとした知識でも、AIと音声でテンポよく対話し、途中の壁(Qiitaの投稿エラーなど)を工夫して乗り越えることで、しっかりと「動くツール」と「記事」として形にすることができました。
Qiitaへの投稿を含めて「自分にはハードルが高いかも」と思っている方も、ぜひAIを相棒にして一歩を踏み出してみてください!