🧩

Vibe CodingでVSCode拡張を作った時にやったこと

に公開

前提

以下の状態から開始。

  • VS Code拡張を実装したことはなく、「あーなんかTypeScriptで書けるらしいよね」くらいの知識
  • TypeScript自体は普通に書ける

作ったもの

VS Codeで今開いているすべてのファイルを、相対パスでクリップボードにコピーする拡張機能。
Claude Codeを使うときや、コードレビューでコミュニケーションを取る際に、こういう機能が欲しいと思っていたため。
(着想はGitHub Copilot Chatの Add Context -> Open Editors から得た。)

成果物はこちら。

使ったツール

  • VS Code (できたものを見る用)
  • Claude Code
  • ChatGPT (Plusプラン)

Vibe Codingの流れ

1. VS Code拡張開発のはじめ方を調べる(AIに聞く)

以下をChatGPT o3に聞いて、前提知識として頭に入れた。

  • リポジトリ名、プロジェクト名のアイデア(命名ルールはあるか、デファクトはあるか)
  • VS Code拡張でもテストは書けるかどうか
  • (もうすでに忘れたけど)なんかコマンド一発でプロジェクトを作れること

2. 要件定義書を作る

o3に以下のような流れで要件定義書(markdown)を作成してもらい、気に入らないところは手で微修正した。

  1. 「こういう課題があって」「こういう機能を作りたい」「こうやったらできると思っている」「率直に意見をくれ」 と o3 に投げる
  2. (VS Code拡張を作るのが初めてなので当然疑問点があり、) 質問しながら会話の中で方針を固めていく。
    • 例えば今回は VSCode QuickPick の機能を自分は知らなくて、o3 のおかげで初めてそれを使う方針案が出てきた。
  3. 方針が固まったら、「要件定義書の叩き台を完全なMarkdownファイルとして出力して」とお願いする。
  4. 手で直した方が早い部分は手で微修正して完成させる。

ちなみに成果物はこちら

3. Coding開始

  1. 事前に「VS Code拡張開発のはじめ方」を調べていたので、それをClaude Codeに依頼。
  2. Claude Codeに上記の「要件定義書を理解して」と依頼。
  3. あとは要件定義書に基づいて実装してもらう
  4. 途中で、うまくいかないことや学びがあったらプロジェクトの CLAUDE.md に追記していく
    • 例えば、最初は実装後にコンパイルやリントをしてくれず、エラーが出てしまっていたので、自動で行うようにルールを追記した。
  5. CIとかテストもよしなに指示しながら実装してもらった。(テストは癖があって何度かハマった)
    • (当然だけど)うまくいったところで都度、セーブポイント的にcommitすると良い感じだった。

4. Publish

完成してテストも通ったら、VS Code MarketplaceにPublishした。Publishの仕方も o3 と o4 に聞きながら進めた。(Claude Codeを使わなかったのはコスト節約のため)

アイコンもChat GPTに作ってもらった。

感想

  • 自分も知識がなくて、ネット上にもそれほど情報がない部分はやはりハマるパターンがあった。今回だとテストの部分。
    • Claude Codeにテスト実行させると、VS Code拡張テストの場合標準出力エラーが良く出るので失敗したと見なされて、めちゃくちゃにされることがあってハマった。
  • 逆に、事前知識がほぼ無かったにもかかわらず「とりあえず動くもの」は10分くらいですぐに完成した。ここで良しとするか、品質を担保するためにもう少し踏ん張るかのところで、エンジニアの介入余地があるんだろうなと思った。
  • (まあそうだよねって感じw)

おわり

GitHubで編集を提案

Discussion