過去のVibeCodingでやったことを悔いるぜ!
「この番組は、エンジニアの成長は楽しい学びからをモットーに、暇な3人が—昨日よりちょっと成長できる話題を、わいわいお届けするテク系ポッドキャストです」
「忙しいけどね」
「忙しいんですけどね—」
「忙しいけどね」
「はい、ありがとうございます」
「はい」
「暇を作っていきましょう、というところで、本日はですね、えー、バイブコーディング反省会というところで、お話ししていきたいと思います」
「お、バイブコーディング反省会」

「はい。ちょっと反省していきましょうよ、というところなんですけど、まああの、ちょっと古め、ま、古めと言いつつも、今年の、えー、ま、ニュースというか話題とかも取り上げていきながら、話せていければなと思いますが」
「ほう」
「今年2026年の上半期ですね」
「はい」
「AIコードのツケが、表面化した半年だった、というふうな結論を、クロード君が出しています、と。私の」
「あ、あなたのね。はい」
「はい、私の」
「うん」

「2025年の12月あたりに、AIコードの品質を測った大規模調査が、あー、出ました、と」
「うーん」
「で、2026年1月に、OSSの有名プロジェクトがですね、立て続けにAIの生成コードに、こう、門を閉めたというか。ま、お金とか出してたけど、なんか一旦それもうやめるよ、みたいな話とかが出たり。あと2月からさ、4月、2月4月とかですかね、AIエージェントが、こう、本番のDBを消す事故とかが起きましたよね、とか」
「うん」
「なんかちょっと話題になったのとか、あったと思うんですけど」
「うん、うん、うん」
「うん。で、これは、はい、あの、バイブコーディングという言葉が生まれて、ちょうど1年ぐらいらしくですね」
「おお」

「今、ま、今8月なので、もうちょっと前かな」
「はい、はい、はい」
「はい。っていうので、ま、そこら辺ね、あの、しっかりこう、1年経ったんで、いろいろ見えてきたものがありますんで」
「うん」
「そこらへん踏まえて、はい、話していきます」
「お、僕もちょうどね、バイブコーディング、1年経った今日な気がします」
「おお。割と、こう、かなりあれですね、もう、アイアダプターじゃないですか、そうすると多分」
「かもね」

「出始めた当初から。うん」
「うん、ちょうど去年の8月かな。うん、7月か8月ぐらいから、その、もうほぼAIだけでコード書いて、えー、プロダクト作るみたいなのをやってて、ちょうど1年経ったぐらいかもしんない」
「おお、いいですね。そんな、えー、プロバイブコーダーののりさんへお届けする」
「はい」
「えー、まずこのバイブコーディングって、えー、言い出したのは、えー、アンドレール・カルパシーさん、おそらく」
「はい」
「この方、オープンAIの、はい、共同創業メンバーで、元テスラのAI開発責任者らしくて」
「はい、はい、はい」

「ま、その方が、2025年2月とかに、Xでなんか言い始めたらしい」
「うん、うん、うん」
「でも、ま、これはご存知のとおりですけど、ま、こういうのがほしいという、ま、雰囲気、バイブを伝えて、えー、出てきたコードを、特に確認せず、もう動かしていく、開発するスタイル」
「うん」
「動けばオッケー、みたいなのがバイブコーディングですよね」
「はい、はい」
「はい。で、これは、えー、週末とか、ま、自分の遊びのプロジェクトなら最高っていう文脈で言っていたらしいんですけど」
「うん」

「えー、それが仕事の現場に持ち込まれてしまってますよね、というのから、今日の話は始まるんですが」
「ほう」
「これは、めっちゃ分かるな。僕もなんか、自分のアプリ作ってて、えっと、最初は、あの、かいちさんとかがよく言ってたCCSDDとかでやろうとするんですよ」
「うん」
「でも気づいたら、バイブコーディングになってるんですよね」
「おお」
「これは」
「うん、うん、うん」

「なっちゃいません?あんまなんないですか」
「うーん、タスクによるかな」
「うん」
「えっとね、今作ってる、今主に開発してるツールだと、細かい部分こっちで決めていいから」
「うん」
「もうバイブスでやったほうがね、早いんすよね」
「うん」
「一方」

「早いっすよね」
「えっと、要件決まってる系のやつとかだったら」
「うん」
「結構その設計書を読ませた上で、固めてから動かすかもしんない」
「うん。で、動かして、レビューとかも、こう、なんて言うんですかね、どういう、どこまでやるみたいな、なんかルールとかあります?」
「ありますよ、もちろん」
「おお」
「ちなみに僕、コードレビューしなくなりましたね」

「うん」
「それで言うと」
「それもAI君に」
「もうコードの良し悪しは一旦さておき、もう」
「はい」
「あんまりちゃんと見てない、コード」
「うん、うん」
「クソでか関数とかできてないかぐらいしか見てない」

「うーん」
「で、見るのは、まずテストケースだね」
「テストケース、はい」
「うん。テストコードの、えー、テスト観点というか、そこ日本語で全部書いてる、書いてもらってるんですけど、それを見て、えー、実際にそのテストできるかどうかは、あのー、もう信頼して、えー、中身を読んでない。で、こういうテストしてれば、今回の要件満たせそうだなっていう観点でしか見てないかもしんない」
「なるほど」
「で、えー、あと、コードレビュー的な部分で言うと、基本コーデックスにぶん投げますね、全部」
「うーん、はい、はい、はい」
「GitHubプルリク作って、もうコーデックスにレビューさせて」

「うん」
「あ、でもちょっと待ってね。それで言うと、ちょっと手順違ってて。えっと、まず、ま、これさ、えー、じゃあバイブコーディング的に進めるとしたら、まず最初にやりたいことばーっと伝えて、えー、なんとなく作る方針決めますと」
「はい」
「で、それを元に、あのー、まずクロードコードかカーサー使って、えーと」
「うん」
「その機能実装しきってもらいますと」
「はい」
「で、実装しきったら、えーと、もう動作テスト、動作、動作チェックを自分でやりますね、まず」

「うん」
「ちゃんとこれ思ったような機能の付き方になってるかどうかみたいな」
「うん、うん、うん」
「で、えー、それが大方オッケーだったらプッシュしてプルリク作って、コーデックスにレビュー投げて、えー、そのコーデックスの言いなりで修正しまくるみたいな。結構そういうループになってますね、今」
「なるほど。なんか、それで言ったら、のりさん自身はあれですかね、あんまり、こう、レビューの負荷は別に上がってはないのかな。ま、今までAIに結局ある程度は任せてるから、そんなに上がってないですかね」
「うん。下がったと思うよ、当時よりは」
「あ、あ、そう」
「うん」

「AIがなかった時代と比べると、やっぱりさすがに下がってますね」
「あ、そう、そう、そう。下がってるね」
「なるほどな」
「なんかコード品質とかもさ」
「はい」
「変なプログラマーが書くコードより全然きれいなものができちゃうから」
「うん」
「もうコードの良し悪しとかもそんなに気にしなくなったしね」

「なるほどな」
「うん」
「そこ、あー、なるほどな。なんか、大規模プロジェクトとかだと、やっぱり結構人の目で見てるっぽいんですよね、今日の話とかだと」
「うん、うん、うん」
「ってなると、やっぱり圧倒的に、こう、コストとか、えー、負担が増えているらしくてですね」
「うん」
「なんで、そうっすね、ちょっと、のりさんの、分かんないっす、そのプロジェクトの規模なのか、ま、結構1人で動きやすい状況だと思うので」
「うん」

「あれなんかもしれないんですけど。ちょっとそうだな、あんまり参考になんなかったかな」
「すいません」
「いや、いや、いや、それはそれで1つのやり方なんでいいと思うんですけど」
「うん」
「なんか僕が1個取り上げようと思ってたのが、まずOSSで」
「うん」
「えー、カール」
「うん」

「で、カールの、その、バグバウンティが死んだと言われていまして、これ、えっと、ま、カールって、あの、あれです、あの、あれ、なんて言うんですか、あれ、データ、データの通信のツ、ツールっていうんですかね」
「うん」
「はい」
「えっと」
「カールコマンドとか」
「うん、うん」
「はい。で、そこの、このカールって、えー、個人が支えている、こう、社会インフラらしいですと。スウェーデンの開発者」
「うん、うん、うん」

「が中心になって維持してるOSSっぽいんですよね」
「へー」
「ダニエル・ステンバーグ」
「はい、はい、はい」
「で、このカールですね、あのー、脆弱性を見つけて報告してくれた人に報奨金を払う制度っていうのをやってましたと。バグ、これがバグバウンティ」
「うん、うん」
「うん。で、ま、大手とかも多分普通にやっていることですかね。で、カールはこれ6年間ですね、バグバウンティを運営してて、累計、えーと、大体約1,300万円を支払ってきましたと、これまで」
「へー」

「で、えーと、ところが最近、届く報告のうち、えー、本物の脆弱性が約5%ぐらいまで低下してますと」
「うん」
「20件届いてて、19件は外れらしいんですよ」
「うん、うん」
「うん。で、えー、ま、これ2026年の最初の21日間で、えー、20件報告届きましたと。で、そのうち、えー、あ、20、うー、そうですね、そのうち本物の脆弱性は0」
「うん、うん、うん」
「で、もう、要はその報告届いた、見るのが要は無駄な時間になってるわけなんですよね」
「うん、うん、うん」

「なんで、このステンバーグさんは、えー、もうそのバグバウンティ制度をもう停止を決断しましたと、2026年の1月。もうAIで変な報告がめちゃくちゃ上がってくるから」
「へー」
「うん」
「元々どんくらいだったんだろう」
「元々、いや、ま、さすがにどうなんでしょう。21日間で20件の報告が上がってたんで。ほんとに1件とか2件とかだったんじゃないですか。そんな脆弱性見つかんないっすもんね」
「うん」
「1か月で、1か月で1個も上がんるのか。カールですからね、どうなんだろう。平常時はですね」
「はい」

「まあ、しゅー、1週間で、なんか1件とか2件とか、そのぐらいの感じっぽいな。そんなにあるかとも思いますけど」
「うん、うん」
「全体としては、約7年間で脆弱性87件を修正」
「うーん」
「ただ、これは、ま、公式の数値はちゃんと、なんか、多分どっかで言ってるものがなさそうな感じっぽいですね」
「はい、はい、はい」
「はい。ま、多分、ま、ざっくりそんな感じっぽい。正式な数値ではないですが」
「うん、うん」

「はい。なんでもうほんとに10倍、20倍みたいな、な、レベルで増えちゃってるのかな」
「あー、あれっぽいっすね。なんか、本物率はそんなに変わってなさそう」
「うーん。なるほど。ただ一気に教える、教えを教えるようになっちゃったよ、というとこですかね」
「多分、量がめっちゃ増えたんだろうね」
「うん、うん、うん。なるほどな。ま、それぐらい、こう、なんて言うんですか、AIスロップと呼ばれてるんですかね。えー、どこだっけな。最もらしく見える低品質のAIコンテンツ、AI生成コンテンツが大量に押し寄せる現象をAIスロップとか言うらしいですけど」
「うん、うん、うん」
「残飯みたいな」
「あ、残飯って意味なの?」

「ま、そういう状況に。はい。豚の餌みたいな、なんかそういう意味っぽいですね、スロップ」
「へー」
「うん。まあとかとか、いうのが、まあ、めちゃくちゃ増えて、バグバウンティ消しちゃったよねとか。で、これ中身やっぱ、こう、英語とか、あの、しっかり体裁整っちゃってるんで、もう結構最もらしいこと言ってるんで、結局読んでるのは人間ですよと」
「うん」
「で、まあ、あのー、AIで作らせてるだけなんでね、作らせる側はコストゼロだけど、読む側は人間なんで、めっちゃこう、精度として積んじゃってるんで、これやめましょっかっていうのでやめたらしいですね」
「うん、うん、うん」
「はい。ま、あくまでこれカールは、その脆弱性の報告書とかの話、報告の話ですけど」
「うん」

「ま、コードとして見たら、今度はどうなのかっていうところで、コードラビット」
「はい、はい、はい」
「っていう、なんか、AIコードレビューのスタートアップがあるんですけど」
「うん」
「ま、そこが、こう、なんかGitHubのプルリク、AIが自動でレビューしてくれる、こう、サースを売ってる会社で、2025年の12月時点で、えー、ま、結構大手というか、約200億円調達とかの企業で、えー、その会社がですね、調査した感じで言うと、実在する、こう、OSSのGitHubプロ、プルリクエスト470件集めましたと」
「うん、うん」
「で、えー、その470件を2グループに分けた。で、その2グループは、そのAIが関与しているものか、人間のみのもの」
「うん」

「に、グループに分けた。で、具体的には320件を、その、コミットにAIが関与してるよっていう、ま、ラベルみたいなの付いているものと」
「うん」
「えー、人間だけで作られたやつですよっていうPRを150件っていうもので分けましたと。で、その両グループをコードラビット自身のそのAIレビューツールで同じ条件でレビューさせましたと」
「うん」
「はい。で、AIが書いたコードが人間のコードに比べて何倍ぐらい、こう、問題があるかっていうところ」
「うん」
「その、も、問題がどの粒度なのかみたいなところはちょっとあると思うんですけど。えー、ロジックとか正確性で言うと1.75倍、AIのほうがひどい」
「へー」

「まあ、なんか、なんて言うんですか、変な条件分岐とか」
「うん」
「ま、ロジックのなんかミスみたいのがあったり。セキュリティのめめ、面で言うと、こう、2.74倍、パスワードの不適切な扱いとか、権限チェック漏れとか、なんかそういう部分でもAIが2.74倍、こう、悪い数値」
「うん、うん、うん」
「で、これも可読性も大体3倍超え、3倍超えぐらいで変な命名とかをしてたりすると」
「へー」
「可読性とか得意そう、得意そうですけどね、AI」
「いや、ま、日本人より得意なんじゃないですか」

「うん、うん、うん。ですね。とかとか、もうほんとにエラーハンドリングとかも、えー、失敗時の処理とかも2倍以上、え、人間が書いたものより悪いし」
「うん、うん」
「ま、整形の乱れとか、ま、いろいろ、いろいろな観点があるっぽいんですけど、指摘のカテゴリ。ま、ぐらいAIのほうが、やっぱなんかまだまだ人間が書いたコードより。ま、その人間によって書かれたコードのレベルが」
「うん」
「ちょっと分からないですけどね。その人間もどのレベルなのかっていうのはあると思うんですけど」
「いや、なんか結構ハイレベルな人間と比較してそうな感じすごいけどな、それ」
「そうですよね。AIのコードだいぶいい感じですから、もう」
「うーん」

「はい。ま、とはいえ、こう、おそらく、ま、それなりの人間が書いたコードよりもまだまだっていうところらしいですね。あとパフォーマンスとかもだいぶ無駄なインプットアウトプット」
「うん、うん、うん」
「なんか過剰なファイルとかDBへのアクセスとか、もうこれも8倍とか」
「うん」
「AIのほうが悪かったというようなデータになってたりしますね。っていうぐらい、こう、なんて言うんですかね、動くけど無駄に遅いとか、ま、セキュリティの穴があったりとか。ってのでVibeCodingはまだまだ、ま、伸びしろがあるというか」
「うん、うん、うん」
「まだまだ任せっきりはちょっと怖いとこありますよというとこですね」
「うーん」

「はい。っていうデータが出てますと。ま、ここまでは一旦品質の話ですよね」
「うん、うん、うん」
「うん。っていうところですけど、ま、なんか事件とかですよね。頭で言った2026年のその4月のポケットOS、ポケットOS、これ話題になったやつですかね。あの、レンタカー会社向けの、えーと、業務サース、予約とか車両管理とか」
「はい、はい」
「っていうので、これ、えーと、カーサかけるClaudeを使ってた方で」
「うん、うん」
「えーと、AIエージェントが環境内にあったRailwayのCLIに設定された権限無制限のAPIトークンを発見。えー、GraphQL上で、えー、本番のボリュームを削除」
「うん」

「で、バックアップも同じ場所にあったんで、もう一瞬で、これ何件、2万5千とかデータが吹っ飛んだ。違うな。ちょっとデータは出てないな、データ量は。もうバックアップとかもデータも一瞬で」
「うん、うん」
「消えちゃいましたよと」
「はあ」
「いうような事件。だったり、2026年2月、えー、データトークスドットクラブ」
「うん、うん」
「これはデータエンジニア向けの学習コミュニティ。無料講座とかポッドキャストで有名らしいですね。ちょっと知らないな」
「うーん」

「で、これも、えーと、ClaudeCodeかけるTerraformの操作で、えー、2.5年分の本番DBとスナップショットを削除しましたと」
「おおー、香ばしいっすね」
「はい。はい。っていう、まあ、まだまだ人間には及ばないよねっていうレベルではなく、ま、実害がね、ここまで出ちゃうのはやっぱり怖いですよねと」
「うん、うん、うん」
「いうところですね。うん。ま、これはただ、そもそもバックアップとかも、こう、同じ場所で同じ権限で、こう、なんかいじれるようになってたとかっていうのも、もちろんミスですし」
「うん」
「ま、人間だったらね、その本番のDB消すコマンドって絶対ね、ちょっと、これ大丈夫ってなると思うんですよね」
「うん」

「だから、そこの止まる仕組み、権限みたいなところもちゃんと設計する必要があるよねというところで。なんか、ここらへんね、VibeCoderであっても、知識を付けることはやっぱ必要なんじゃないですかっていうところなんですけど」
「うん、うん」
「なんか、ここらへんの権限周りとかって、のりさん、なんかどんな感じでや、でやってたりします?」
「権限」
「結構気を付けてます?」
「権限周りは気を付けてるかな」
「うん」
「え、少なくとも、あのー、本番環境とか触れる状態にはしてないっすね」

「うん、うん、うん。本番とかに適用するのはあくまで自分の主導で」
「うん。ま、そうね。ま、でも全部CIとかでやってるけど」
「はい、はい」
「権限ってあとなんだ?トークン系もAIには渡してないっすね」
「うん、うん、うん。トークン系渡してないってのは、なんか、なんだ、ドットエンブとかに書いといて」
「あー、そうね。あー、ただね、ドットエンブのやつ読まれるんだよな」
「あー」
「読まれるイメージあるわ。なんかあったよな、そういう、そういうの解決するやつ。エンブXだっけ?」

「へー」
「ドットエンブXかな」
「うーん、そういうのがあるんだ」
「本来はこれチームで共有するみたいな目的っぽいけど。まあ、でもリスクは減るね」
「うん、うん」
「うん。うん、そうだね。エンブが暗号化されるからAIで読み取れなくなるね」
「えー」
「でもそこまではやってないなー。なんかローカルに入れるエンブの情報とかはやっぱ、要は触られてもいいやつしか入れてないというか」

「うん、うん、うん」
「で、デブ環境とか本番環境に関してはまた全然違う値使ってるから」
「うん」
「あんまりそこで、なんか、危ねえってなったことはないかもしんないな」
「あー、さすがです。そういうのな。ま、そうですね。さすがに個人開発とは違いますからね、ちゃんと」
「うん」
「会社としてのプロダクトですからね」
「うん」

「はい、ありがとうございます。ちょっとそこらへんしっかり勉強、勉強というか、VibeCoderとしても」
「うん」
「勉強していただきたいところですね」
「お」
「世の中のVibeCoderには。僕も含め」
「環境情報ね」
「はい。環境上、気を付けるのってなんですかね。環境情報と、あのー、ま、でも環境情報に紐づくっすけど、ま、課金系のやつとか?」
「うーんと、ま、課金も、課金はどうなんだ。ま、多分」

「そう、単純に設定か」
「APIパスワード、ま、APIのキー、パスワード」
「うん」
「あとは、えー、本番のインフラに直接アクセスできる系のやつを渡しちゃいけないんじゃないですかね」
「うん、あ、分かりやす」
「うん」
「うん」
「一旦その辺死守すれば事故らない気がするけど」

「ありがとうございます。ちょっとそこらへん、僕も。いや、気を付けたいな。いつかやる気がするんすよね。はい。ありがとうございます」
「いつかやる気がするんすよね」
「って。いつかやる気。どこまで話したっけな。まあ、そういうのありつつ、ま、結果としてほかにも起きてる、じ、事件というか事例」
「うん」
「で言うと、なんかゴースティー、これ高速で人気のターミナルアプリらしいんですけど」
「うん」
「ちょっと僕知らないですわ。ゴスティー、ゴスティー」
「ゴスティー」

「ゴスティー」
「うん」
「これあれらしいですね、み、ミッシェル、橋本、あの、ハシコップのあの共同創業者」
「はい」
「はい、らしいですね」
「へー」
「テラフォームやベイグラントを作った人。で、ま、これ、あのー、質の低いAI生成コードを投稿したら永久赤板するっていうゼロトレランスを方針としてるらしいです」
「うん」

「で、この人が言ってることとしては、はい、あの、これは反AIのスタンスではない、反バカのスタンスだと言ってますね」
「おー」
「うん。まあ、なんでAI作って」
「うん」
「AIでなんか生成させて、それをちょっとやっぱちゃんとチェックし、しもしない」
「うん、うん、うん」
「バカのことを言ってるんですかね。はい。もうちょっと深いのかも分からないですけど」
「ゴースティーは、えっと、OSS?」

「らしいですね」
「あー、なるほどね」
「はい。ミッシェル、橋本はおそらく上がってますね、この人」
「上がってそう」
「あの、上場、はい、上場企業を作ったあと、今は趣味でゴースティーを開発しているらしい」
「うん、うん、うん」
「ですね。とか、TLドロー、これはブラウザで動くホワイトボード、作図ツールのOSS」
「うん」

「これとかも、はい、あの、外部から来るプルリクス、UXとをもうすべて閉じているらしいですね」
「うーん」
「うん。GitHubがまともな管理ツールを提供するまでの暫定措置ですと」
「はい、はい、はい」
「いう感じらしいです」
「なるほどね」
「はい。はい。なんで、まあ、今回ね、ちょっとOSSにフォーカスしてますけど、まあ、基本ただ働きなんで」
「うん、うん、うん」

「あの、やり、よりそこの、こう、なんて言うんですか、影響というか、顕著に現れてますよね。もう見てらんねえぞ、そんなものだと」
「そうね。てか、まあ」
「AIが」
「あの、あれだよね。作る、作る側の労力のほうがさ、相対的に下がってるからさ」
「うん。めちゃくちゃ下がりましたね」
「OSSとかは確かに」
「でも」
「受け、見る側大変だよね、それは」

「うん。なので、あのー、データドッグ、あの会社ですね」
「うん」
「サーバーとかアプリのかん、監視、サースの企業」
「うん、うん、うん」
「とかも、えーと、ま、公式のブログで、AIコーディングアシスタントの普及で、個人のアウトプット指標は生産性と完全に切り離されたと言ってます」
「うん」
「なので、AIで数字は増やせるんで」
「うん」

「数字が多い人イコール優秀じゃないよと、もう」
「うん」
「いうふうに、多分、社内での指標もどんどん変えてる、てるっぽいですね」
「うん」
「もうそうだよなというとこですけど」
「うん」
「はい。あー、ま、これも裏付けとして、Gitクリア、これもコードの必須とか生産性を分析している調査会社」
「うん、うん」

「が、えーと、AI普及後コードチャーンがほぼ倍増。えー、コードチャーンっていう、チャーンっていうのは、ま、書いてから間もなく修正、破棄されるコードの割合」
「うん、うん、うん」
「えー、が、倍増。これ具体的にいくつかちょっと分かんないんですけど、2億行超えのコードを分析した結果」
「うん」
「その、すぐ破棄されるもの、修正してすぐ破棄されるコードの割合がほぼ倍になりましたよと」
「うん」
「なので、書かれてもすぐ捨てられちゃうよっていうので、ま、やっぱりその質の悪いAIコードの量産の裏付けというか」
「うん、うん」

「っていうのもやっぱ起きてるっていう、まあ、ちゃんとしたデータですね、エビデンスとして」
「うーん」
「とかとかも起きていたりするらしいですね。はい。っていうので、もう諸々データとかいろいろちょっと紹介しましたが」
「はい」
「じゃあどうしますっていう感じですよね。そのー、僕たちのほうで言うと」
「うん」
「レビューの基準、もちろんAIは使うんですけど」
「うん」

「なんか、どこまで改めてチェックするかとかで言うと、やっぱさっきの、のりさんのそのテストをちゃんと通して、で、その際テストにおいては、ここ通ってればオッケーだよねとかっていう観点を見るのは」
「うん」
「やっぱめちゃくちゃ有効ですかね」
「いやー、テストじゃないですか、やっぱ」
「うん」
「これまで、なんだ、俺、業務のほとんどがもうテストになってるような気がしてて」
「うーん。QAエンジニアじゃないですか」
「QAエンジニアです。もうだから、ほんとに、えーと、ぶっ壊れないかどうかみたいなところとか、動作確認とか、あとは、ま、自動テストのところか」

「はい」
「もうここに担保の信頼、信頼をもうできるような状態にしておかないと。ま、やっぱコード量多すぎて」
「うん」
「なんかたまにプルリクとかでもさ、なんか10万行とかいっちゃうからさ」
「おお」
「でかい機能だとね」
「うん」
「それに対して、こう、1個1個見るのは無理なんだよね」

「不可能ですね」
「うん。てなったときに」
「10万行、はい」
「てなったとき、やっぱり、あのー、実際に動作テストして動いてるかどうかっていうところと、自動テストで何がチェックできてるかを、なんかちゃんと担保するみたいな」
「うん」
「ところはめっちゃ重要、重要な感じしますね」
「うん、うん、うん。テストもなー、自分のアプリとかだったら全然やらないからなー」
「まあ、自分のアプリだとそうかも」

「使って動くかなーみたいになっちゃう。うーん。怖いな、ちょっとその癖がね」
「うん」
「付いちゃってると怖いので。あと権限周りか」
「いや、でもテスト揃ってるときの安心感やばいっすね、やっぱ」
「うーん。そのテスト作らせるとき、どんな感じで指示するんですか。もう最初っから指示してます?こういう流れで作ってとか」
「えっとねー、な、なんで作ってくれてるかもはや記憶にないんだけどね」
「はい」
「多分どっかの指示に突っ込んでるはず、プロンプト」

「うーん」
「リポジトリが、リポジトリの中のどっかにテストかけって書いてあるはず」
「はい」
「で、観点、日本語で書くのと」
「うん」
「あとなんだ、あんまでもそんななんかこだわったこと書いてないと思うよ。絶対テストかけっていうのと」
「ま、普通にどっかのドキュメントに書いてある、仕様書かなんかに書いてあるはずですね」
「多分、か、うーん、な、何、なんでだろうな。でもテストのディレクトリあるから、もうそれ作るのが当たり前みたいになってる説もあるかもしんない」

「うん、うん、うん」
「うん、でもあんまちょっとこだわったことはやってないっす」
「あー、オッケーです。意外とそこの出力は、ま、テストをかけさえやっていれば、ま、ある程度のものじゃできるっていう感じですね」
「そうだね。で、あとは」
「ま、で、観点は一応チェックしつつ、はい」
「そうね。で、あとはコーデックスのレビューのときも、えーと、ちゃんとテスト揃ってる、テストとドキュメント揃ってるかどうかチェックさせてますね」
「うーん。そうか、ドキュメントと照らし合わせて、必要なテストが揃ってるかどうか」
「うん」

「大事ですね。なるほどなー。ありがとうございます。そうですね。AIのその出力を疑える人っていうのは」
「うん」
「なんか、今日の話からすると、やっぱり価値がありそうな感じがするので」
「うわー、それね、めっちゃ思うわ」
「うん」
「それね」
「でも、もう結局いつも同じ結論なんですけど」
「うん」

「AIの出力を疑えるには、普通はこう書くを知ってないとだめじゃないですか」
「うん、うん、うん、うん」
「なんで結局その基礎というか、自分で書いている経験というか」
「うん」
「そこらへんが結局必要なんかなーと思ったりもした、しましたね」
「いやー、てかねー、あのー」
「うん」
「これ、その、なんだ、あのー、AIの出力を疑うというか、批判する力みたいなやつめっちゃ大事だなと思ってて」

「うん」
「なんかさ、さっきなんだ、いい行動知ってないとみたいなこと言ってたと思うんだけど」
「はい、はい」
「必ずしもなんかそうじゃないような気もしてて」
「ほー」
「てかなんか観点が、まあちょっとコードじゃないんだけど」
「はい」
「どっちかっていうと僕、提案資料とかそっち系のほうがよく見るんですよ、AIで作ったやつと、作ったやつとかだと」

「うん」
「もう正直コードのほうは割と信頼しきってるから、あんま細かく見てなくて。どっちかっていうとそういう資料生成系のほうが結構細かくチェックするんだけど」
「はい」
「やっぱ世の中を見てると、そのー、資料とかもさ、結構きれいにできるじゃないですか、なんか、ある程度見た目整ってるような」
「うん、めっちゃいい感じのできますね、もう」
「そう。でもさ、なんか見た目きれいでつるっとしてるんだけど、結局何言ってるか分かんないなみたいな資料多くて」
「それっぽいだけで」
「そう、それっぽいだけで、なんか、なんかうっすいこと言ってるなみたいな」

「うん」
「っていうのを見抜ける人と見抜けない人がいるなっていう感覚があるのね、まず」
「あー」
「ぱっと見で、なんか」
「あ、分からんなくない、はい」
「一発で出てきたものを、これめっちゃ、もうこれ、これでいいじゃんみたいになっちゃう人と」
「うん」
「そうじゃない人がいると思ってて」

「えー、あのー、あれですよね、僕のイメージ、そのー、あのー、なんですか、情報商材系の」
「うん」
「内容うっすい人たちに引っかかる人と、そうじゃない人たちというか。これちょっと、あれだな。ちょっとなんかあれだな、はい」
「いや、あの、まあでもね、分からなくはないな」
「はい」
「要はなんか形きれいなだけで思考放棄しちゃってるというか」
「うん」
「なんかほんとはちゃんと読んだら、なんかよくわ、わけ分かんないのに、なんか流れきれいに整ってるように見えるから、それに騙されていいものだと思ってしまうみたいな」

「はい。はい、はい」
「っていうのに気づけて批判するみたいな」
「うん」
「のを最近1番重要視してますね」
「おー、いいっすね」
「うん」
「それを気づけるには」
「うん」

「なんなんすかね、結局バックグラウンドですかね、自分の知識量と」
「いやー、どうなんだろうな。俺的にはさ、あのー、諦めない気持ちだと思うんだよね」
「諦めない気持ち?」
「諦めない気持ちが大事だと思うんだよな。なんかAIの出力ってさ、なんかあんまりちっちゃくないから」
「はい」
「読むの大変なのよ」
「あ、大変。分かります」
「そうで」

「負荷すごいっすよね」
「負荷すごい。で、読むの大変だから」
「うん」
「なんか雰囲気良かったらいっかってなっちゃいそうになる」
「うーん」
「ところをこらえて、ちゃんと読む力」
「いやー、分かるな。最近でももうClaudeとかも、あの、よくパーミッション求められるじゃないですか。もう全然見なくなっちゃってるんだよな」
「パーミッションは見ないなー」

「パーミッションもですし、あのー、ま、出力に対しても」
「うん」
「だからめんどくさくなくて、めんどくさくなっちゃって、出力されてバーって出てきた文章に対して」
「うん」
「で、え、つ、つまり何が言いたいのとか、さらに要約させたりとかしちゃいますもんね」
「うん、うん、うん、うん、うん」
「うーん。それもちゃんと読まないとっすよねー」
「あの読みにくさ、なんなんだろうな、まじで。あの読みにくさと戦う力が大事だと思うんだよね」

「うーん、うん」
「で、そこでちゃんと批判して」
「すごいんだよな」
「はい。練り直して、こう磨き上げができる人が、あの、AIでちゃんとした成果を出せる人だと思う」
「うーん。僕が今話しててふと思ったのは、なんか自分が説明しようとしてできるかが1つの基準かもなって思いました。説明するにはまず納得してないといけないんで」
「うん、うん」
「納得するには、なんかロジックがちゃんとできてないといけなくて」
「うん」

「ってなったら説明するときにちゃんと、こう、説明して、質問が来ても打ち返せるかっていうのは1つ基準かなと思いましたね」
「うん、うん、うん、うん」
「内容薄いと、なんか質問来たときに答えられなそうですからね」
「そうねー。でもそれがじゃあ」
「自分で説明しても、ん?ってなりそう。はい」
「うん。なんかで、ただその、なんか、見なきゃいけない場所っていうのが、ま、資料生成なら、ま、資料だし」
「はい」
「じゃあコードならどこの部分なんだろうってなったときに」

「むずい」
「あのー、俺見てるのが、やっぱテスト観点1番まず見てるのと」
「はい」
「あと、えー、でかい関数できてないかどうか」
「うーん」
「あと適切なディレクトリというか、ちゃんと役割ごとに適切な場所に書かれてるかどうか」
「あー」
「だけは見るかもしれない」

「そこー、うん、うん。そこ特にAI苦手なイメージありますね、僕は。ディレクトリ構成というか」
「分かる」
「書く場所とか」
「なんかよくコントローラーにね、ろ、DBロジック書かれるイメージあるわ」
「えー、なんか、い、い、ま、し、指示出してなくてそこに書くってことですよね」
「そう、そう、そう、そう、そう」
「なるほどな。いやー、勉強になります、その観点。テストか、ちょっとちゃんとやろう、テストもそうだし。長いコード」
「うん」

「あと場所。うん、うん、うん。あー、参考になります。指標、その3つの指標あれば、なんか十分だな」
「うん。結局なんかいいコード書いたときって、短い関数」
「うん」
「で書けたりとか」
「うん」
「あと、なんかシンプルになるときもあるな、なんか。プルリクが」
「うーん」
「ちょっとこの感覚、あの、伝わるかどうか分かんないんですけど」

「はい」
「あのー、セッション管理系の処理を、セッション管理するためのクラスを作って、あー、あ、ちょっと待って。えっと、ララベルでセッション触るときって、なんかヘルパ関数用意されてて」
「はい」
「結構自由に呼び出せるんですよ。いろ、いろんなところから」
「はい」
「ゆえに管理難しくなるっていう問題があって。使いやすいけども」
「なるほど。はい」
「要は、そこで設置したセッション、じゃあどこで破棄すんのみたいなところとかの、なんか、そう、セットで考えるのが若干めんどくさいみたいな。ってのがあって」

「うん、うん」
「えー、なんかセッション管理するようなクラスとかを作るとね、そのセッション管理するクラスの関数たちは、もう非常に短いことばっか書かれてるんですよ」
「うん」
「で、かつ、それを呼び出す側もなんかね、そのー、どのページも似たような形の見た目に変わってね」
「はい」
「なんか美しいコードってのは、なんか、く、ほぼ繰り返しに見えるんだみたいな」
「へー」
「っていう感覚をね、得たことあるんだよな」

「えー、僕はちょっとだめだな、じゃあ。出会ったことないので」
「出会ったことない」
「修行が足りないっすね。はい。修行足りないなー」
「うん、なんかほんとに繰り返しに見えるみたいな」
「うん。それは決してあれですもんね、無駄な繰り返しじゃないんですもんね」
「あ、そう、そう、そう、そう、そう」
「必要最低限の繰り返しで」
「うん。という感じかなー」

「うん。ありがとうございます。参考になります。ちょっとバイブコーダーすぎるので、僕。ま、なんか」
「うん」
「ちゃんとお金を生み出すプロダクトをやってるわけじゃないので、あれなんですけど。まあまあでも、今後ね、ちょっとお金稼ぐプロダクトはちゃんとやりたいですからね、自分で」
「うん、うん、うん」
「はい。ちょっとAIの出力を疑える人として、忍耐強くやってきます」
「そうっすね」
「はい」
「疑う力は大事だと思います」

「はい。っていうので、皆さんもいろいろ権限周りとか、ま、出力を疑って、ちゃんとコントロールしていきましょうというのが今日のお話でした」
「お、大事」
「締まりましたか、これは。はい、では締めます。えー、ハッシュタグひまじんプログラマーで、えー、本日の感想、AIエージェントでこんなことやっちゃいましたみたいなとか」
「やらかしエピソード」
「おちょこちょい話待ってます。はい。エピソードの説明欄からGoogleフォームでお便り、なんでも、質問、なんでも募集してますので、えー、今後いろいろ感想だけでもお待ちしてます」
「なんでも送ってください」
「あとは番組の説明欄から、えー、Slackコミュニティ、ひまプロ談話室、入会できますので、ぜひぜひそこもお待ちしてます」
「こちら今、たくさんの人数が集まっていて、あと、あのー、申し込みフォームから申し込んでいただくと、サンクスページに参加用のリンクがあるので、そっから入れます」

「はい。で、最後に、えー、各種プラットフォームで高評価、いいね、えー、悪い評価も全然ウェルカムなので、フィードバックください」
「お願いしまーす」
「てなわけで」
「てなわけで」
「てなわけで、また次回。バイバイ」
「バイバイ」
「日本のエンジニアは使うアプリが多すぎる。事実、ひまプロの使用アプリ平均数38.6個。レイキャストならアプリの即起動、過去のコピー履歴を引き出せる。ウィンドウのリサイズなど、これ1つで作業効率アップ。しかも料金無料。今すぐレイキャストで検索」