GPT-5 コーディングテスト!💥 GPT-5 in Cursor 初心者チュートリアル💥

GPT-5、5.1、5.2
この記事は約13分で読めます。

この動画では、GPT-5とCursorを使用してPythonのCLIツール「ConfRaider」を一から開発する過程を詳細に記録している。開発者は単純なプロンプトから始めて、GPT-5にカンファレンス情報を管理するツールを作らせ、基本的な機能実装からTUI(ターミナルユーザーインターface)の追加、データの永続化、単体テストの作成、最終的にはGitHubへの公開とPyPIへのパッケージ配布まで、実際のソフトウェア開発の全工程を実演している。

GPT 5 CODING TEST! 💥 GPT-5 in Cursor Beginners Tutorial💥
In this video, I show How i built a Python CLI tool using GPT-5 and CursorHere's the GPT-5 built Python package and CLI ...

GPT-5とCursorでPythonパッケージ開発に挑戦

実際の使用ケースでLLMをテストするんは本当に難しいねん。みんなそれぞれ違う使い方してるからな。せやから今回は、GPT-5とCursorを使って、Pythonライブラリを作ってみようと思うてん。これはPythonパッケージでもあるし、CLAコマンドラインインターフェイスでもあるねん。コマンドを打つだけで、いろんなことをやってくれるツールや。

今回の動画では、このPythonパッケージを作るまでのすべてのステップを見せるで。テストを書くところまでな。これはvibe codingやない。GPT-5を使った本格的なプログラミングや。さあ、始めよか。

ConfRaiderの基本設計と初期開発

GPT-5に頼んで、ConfRaiderっていうPythonパッケージ、正確にはCLIツールを作ってもらうわ。アイデアとしては、カンファレンスのリストがあって、コマンドを打てば表示されるっていうもんや。

CLIを使ったことない人にとって、これは色鮮やかで、なんかかっこええインターフェイスが欲しいやろ?RichとかTyperっていうPythonライブラリがそういうのをやってくれるんや。でも俺は詳細な仕様は一切渡さん。これだけのプロンプトで、しかもこれでもマックスじゃない。GPT-5に考えさせて、CursorとGPT-5で勝手に決めてもらうで。どんなツールを使うかもな。

ただ、色鮮やかなオプションのリストが欲しいって言うてるだけや。それから今後のカンファレンスも表示してほしい。これが俺が送ったプロンプトや。見てみ、もう考え始めて、何をするべきか計画立ててるで。左側を見てもらったら、俺はすでにconfriderっていうフォルダの中におるんや。今のところconfriderは完全に空っぽやけど、この動画の後半でGPT-5がどんどんコードを追加してって、ファイルがどんどん増えてくるのが見えるはずや。

今、どんな実装をするべきか計画を立ててるのが見えるやろ?CLA機能をどうするか、どんなコマンドにするか、ダッシュダッシュにするか、スラッシュにするか。俺は何も指定してへん。詳細も何も追加してへんのに、もうpyproject.tomlを作り始めてるで。

基本的なファイルが作られてるのが見えるけど、Pythonを知ってる人やったら、すごく変で奇妙なことに気づくと思う。1行目を見てもらったら、最初の行、一番最初の行でGPT-5が大きなミスをしてるんや。インデンテーションエラーが起きてる。

PhD レベルのモデルがこんなエラーをするなんて考えられへんけど、なんか変やったわ。すべてのエラーの中で、これがGPT-5がやらかしたエラーなんや。でもGPT-5に任せとこ。コードを実行して、ライブラリをインストールして、このライブラリをインストールする。俺はGPT-5が実行したいコマンドは全部許可するで。

そしてGPT-5はインデンテーションエラーがあることを発見して、調査してる。3秒考えて、修正することにしたんや。CLI.pyとinit.pyの両方にある。両方のファイルでインデンテーションエラーを修正する必要があるんや。

正直、この全体の作業で一番ショックやったのは、GPT-5みたいなすばらしいモデルがインデンテーションエラーをするなんて思いもせんかったことや。なんでこんなことが起こったんかわからん。Cursorの実装の問題かもしれんけど、とにかくインデンテーションエラーがあって、なんとかそれを発見して解決に向けて動き始めた。init.pyファイルではすでに解決済みで、次のファイルでも同じようにやってくれる。

基本的なCLI機能の実装と動作確認

すべて完了したので、CLIの基本的な形ができ上がって動いてる。confrrを実行してるのが見えるやろ?そして「confrr your radar for upcoming tech conferences」って表示されて、いろんなオプションがある。全リスト表示、トピック別フィルタ、国別フィルタ、国別フィルタやと思う。ターミナルで開けるし、どんなものが用意されてるか見れる。名前で検索、終了。これらのオプションが全部ある。これが一番基本的な形で、GPT-5はこれが動くかテストしようとしてる。

1番、2番、3番、好きな番号を選んで実行できて、結果が表示される。pythonって言ったら、Python 2025がいつ開催されるか、どんなトピックに関係してるかを教えてくれた。

基本的な部分が完了したので、次はさらに改善していこう。現在GPTは完了したって言ってて、やったことのリストと実行方法を示してる。リスト表示なんかがある。Cursor内だけじゃなく、実際にターミナルで開いて実行してみたい。

見てもらったら、confriderフォルダ内で仮想環境を有効化してる状態で、うまく実行できてる。期待したとおりに動いてる。カンファレンス情報があって、色もついてて、テーブルもあって、カンファレンスのリストもある。トピック、国でフィルタできるし、名前で検索もできる。終了したかったら終了できる。基本的なテストは無事完了や。

でも、これはまだCLIとしてはかなり基本的な形やと思う。もう一段階上に行こう。

TUIの追加と永続化機能の実装

これをもう少し良くしたかったら、どうしたらええやろ?かっこええけど、TUIを追加できる?TUIはTerminal UIの略で、ターミナル内でGUIみたいなのを持つことや。そのためのライブラリもいろいろある。でも、またしても俺はどのライブラリを使うかは指定せん。

二つ目にほしいのは永続化や。イベントを自分で保存できて、ローカルに保存できる機能。新しいイベントを追加したい場合とかな。

GPT-5に最終的にはPythonパッケージとして完成させて、GitHubにレポジトリとして公開して、PyPiにもプッシュできるように作ってもらいたい。PyPiは全てのPythonライブラリが保存されてて、誰でもダウンロードしてインストールできる場所や。

このメッセージを送った瞬間、GPT-5が動き始めた。何をするべきか計画を立ててる。GitHubにプッシュするためには、これが必要やとか。PyPiにプッシュするためには、興味深いことに俺は考えてなかったけど、GPT-5はすでにワークフローファイルが必要やと計画してる。GitHubアクションと連携して、PyPi用に必要なものをビルドするやつな。これは面白いアイデアや。GPT-5が自分で思いついた。

今は永続化のためのストレージ部分をやってる。TUIはターミナルユーザーインターフェイス用や。必要なファイルの追加が始まった。例えば、publish.yamlはPyPiにプッシュするためのもの。.gitignoreもある。GitHubにプッシュしたいからな。要求したものは全部やろうとしてくれてる。

contributing.mdファイルも作ってる。他の貢献者がこのオープンソースレポジトリに貢献できるようにするためや。readme.mdファイルもあって、誰でもこのPythonライブラリをダウンロードして実行する方法を書いてる。必要なファイルが全部追加されて、また仮想環境を有効化してテストしてる。

部分的に初期化されたモジュールみたいな、インポートがうまく動いてへん問題があることを認識してる。それを修正しようとしてる。コマンドラインからターミナルからエラーを発見して、自分で修正しようとしてる。ええことや。

循環インポートが修正されて、修正後にまた変更を加えてる。core.pyっていう新しいファイルが追加された。ライブラリのインポート、循環インポートの使い方についての変更がされて、またconfrコマンドを実行してライブラリが正常に動くか確認してる。

GitHubにプッシュする方法、やるべきことの詳細を教えてくれた。同時に面白い提案もしてくれた。ライブのカンファレンスソースを取得できるって言ってる。同時に俺もconfence.jsonがハードコードされたファイルやと気づいた。GPT-5がJSONやRSSソースを取得できるっていうアイデアをくれたので、どんなソースか自分で見つけてほしい。手動で追加することもできるけど、GPT-5に見つけてもらいたい。

インターネットに行って何かを見つけることができるか理解しようとしてる。それが俺が言ったことや。JSON URLを追加できて、そこから取得できるって言ってる。confrder refreshができる。でも俺が本当に欲しいのは、GPT-5自身がインターネットに行って、特定のソースから取得することや。

TUIの問題解決とデータソースの追加

ここで非常に美しいTUIができてるのが見えるけど、問題もある。気づいたかもしれんけど、上矢印と下矢印がちゃんと動いてへん。上下に移動しようとしても、技術的に動いてへん。TUIならこれは動くべきやのに。

俺がソースを追加できるけど、理想的にはGPT-5が一連のソースを追加してくれるべきや。俺に作業をさせてるけど、俺はGPT-5に作業をしてもらいたいねん。

人気のあるカンファレンスのリストを取得してもらって、コールドスタート問題がないようにしてほしい。ユーザーがリフレッシュして開始できるものがあって、その後でユーザーが追加したかったら追加できるようにしてほしい。そして上下が動かへんのも修正してほしい。TUIインターフェイスやったら簡単に修正できるはずや。

これを言った瞬間、GPT-5が動き始めた。作業スピードが気に入ってる。クラウドモデルでも同じスピードが出るかわからんけど、GPT-5モデルはすでに動いてる。上下矢印が俺のターミナルでも動いてへんのが見える。

今、ソースを取得してる。ウェブを検索して、カンファレンスの詳細を取得できるJSONソースの情報を探してる。GitHubで全ての情報を探してる。

GPT-5は新しいデータソースを追加して、そこからリフレッシュして取得できるようにしたし、上下矢印も修正したって言ってる。確認してみよう。ターミナルでconfrを実行してみる。Cursor内やなくて、別のところで。confrder interactiveって入力したけど、エラーが出てる。本来やったら出るはずやないのに。

エラーをコピーして戻ってくる。俺のターミナルだけの問題やないか確認するために、Cursorのターミナルでも同じエラーが出てる。エラーをコピーしてGPT-5のチャットインターフェイスに戻る。貼り付けて、このインタラクティブなconfratorインタラクティブモードで変なエラーが出たって言う。

これを言った瞬間、何をするべきかわかって、バグ修正を実装してる。完了したら再実行して、121のカンファレンスがソースから取得されたって表示される。今はいろんなカンファレンスがある。日付がちょっと変やけど、もっと時間かけて修正することもできるけど、そこまでせんでもええ。今後のカンファレンスだけ頼んだのに、1月も入ってる。

見た感じええな。コンテキストウィンドウの21%しか使ってへんのには驚いた。正直、もっと使ってると思ってたけど、ええことや。

単体テストの実装とパッケージ化の準備

ええ感じや。単体テストを追加してくれる?何か見落としがないか確認してくれる?すごいバカなプロンプトやけどな。俺たちがパートナーやってことを伝えようとしてる。あと、俺のメールアドレスはlittlecoder@gmail.comや。pyproject.tomlにメールアドレスを追加してくれる?

PyPiでやりたい設定に入る情報や。全ての詳細を渡してるし、PyPiやGitHubにプッシュする準備ができてるか確認してもらってる。必要なものが全部そろってるかな。

テスト部分を計画してる。これは重要や。特にPythonパッケージを公開する時は、俺らだけやなく他の人にも動くことを確認する必要がある。APIをモックしないといけない場合もある。この時点ではモックするAPIはないと思うけど、APIラッパーを作る場合は必要になる。

22秒考えて、どんな単体テストを追加するか決めた。test_core.pyっていうファイルに全ての単体テストを追加してる。coreをテストするからな。35行追加した。

test_sourcesも追加してる。sources.pyをテストするためや。メインファイルの各主要コンポーネントに対してテストを追加してる。テストはメインファイルにあるものが失敗しないことを確認するんや。これは重要な部分や。

これがvibe codingとの違いやと思う。ほとんどのvibe codingには良いテストケースがない。ここでは俺もテストケースを追加してへんけど、GPT-5に手動テスターや自動テスター、人間のテスターになってもらって、テストケースを書いてもらって実装してもらってる。それがやってくれたことで、pytestを実行してテストケースが正常に動くか確認してる。

まだ処理中やけど、26秒で4つのテストが通ったって表示された。全てのテストが通った。GitHubにプッシュする方法の指示をくれて、書いたテストケースについて全て教えてくれてる。どんなテストを書いたか、GitHubにプッシュする方法についての情報もある。

今の時点で、コンテキストウィンドウの23%を使ってる。まだ余裕やな。限界からはかなり余裕がある。ええことや。

confrr interactiveを実行して、最近の作業で何も壊してへんか確認する。上下移動、全て正常に動いてる。色のハイライトも。この時点で進んでもええと思う。

最終調整とGitHub公開

一つだけ変に思ったのは、インターフェイス内でトピックが空になってることや。すまん、一つだけ、ほとんどのカンファレンスでトピックが抜けてる。追加できるなら良いけど、できひんなら問題ない。ただ気になったから言っただけで、GPT-5で解決できるか見てみたい。

何かしらの方法でカンファレンストピックを追加できたみたいや。全部やないけど、前よりは改善された。confrtor list JavaScriptって入力したら、JavaScript関連のカンファレンスを表示してくれる。ええことや。

期待したことが起こったので、GitHubに公開する準備ができた。GitHubにpublishしよう。同じ名前でGitHubレポジトリを作る。confratorや。これでリモートレポジトリができて、現在のローカルレポジトリとリンクする。

confratorが作成できて、リンクも取得した。ここにリンクを貼り付けるから、リモートリンクを追加して、全てのファイルを追加、コミットしてくれる。コミットメッセージを自動で作成するように設定してるのも見える。Cursorの絶対好きな機能や。開発者やったらわかると思うけど、多くの開発者がちゃんとしたコミットメッセージを書かへん。

confriderの最も一貫性があって良いバージョンを俺のGitHubレポジトリに無事プッシュできた。MITライセンスで公開されてる。スクリーンショットも後で追加した。

PyPiに公開するワークフローも開始されたけど、残念ながらGitHubアクションが変なエラーで失敗してる。エラーをコピーしてCursorに渡して、何が起こったか解明して修正してもらう。

スクリーンショットを渡したら、もう修正することに決めた。GitHubアクションのエラーを分析して、何をするべきかわかって、修正作業に取り組んでる。ええことは、今の全てのメッセージ、変更はローカル変更で、自分でプッシュもしてくれることや。

バージョン管理を追跡できるからええことや。もし何かがおかしくなって、Cursorが何かひどいことをしてコードを完全に台無しにしても、GitHubからロールバックできる。だから常にコードをバージョン管理しろ。遊びでやってるんやなくて、意味のあることをやろうとしてる時は特に重要や。

最終的な成果物とまとめ

コードを実行して、適切なワークフローでGitHubに戻すために必要なすべてのことを確認してる。理想的にはビルドしてくれるはずや。ローカルビルドを作成して、whlファイル、tar.gzファイルを作った。Pythonライブラリの準備ができてるかローカルでチェックするんや。これがPyPiに行くPythonライブラリのビルド版や。ローカルビルドが成功したので、ワークフローをもう一度GitHubにプッシュする。

やることは、バージョンタグをもう一度上げて、プッシュすることだけや。これで公開ワークフローが始まって、理想的にはファイルがPyPiに送られる。この時点でコンテキストウィンドウの29.99%を使ってる。GitHubにプッシュして、ワークフローがまた始まってるのが見える。全世界と共有する準備が整った。

GPT-5とCursorを使うだけで、世界中の誰もが使って恩恵を受けることができるPython CLIツールの構築に成功した。俺のエラーや、GPT-5が作ったエラーを通して、役に立つチュートリアルやったと思う。どう感じたか教えてくれ。

GPT-5はコーディング関連のタスクで非常に高速やと思う。開発者コミュニティではこのモデルについて賛否両論あるのは知ってる。Claudeに大金を払ってへん人やったら、GPT-5は非常に役立つと思う。でも、すでにClaudeに大金を払ってる人やったら、大きな違いはないと思う。また別の動画で会おう。ハッピープロンプティング。

コメント

タイトルとURLをコピーしました