vscode-mdv を公開しました
ちょっと前の話
以前のポストにも書いたのですが、ここ最近は制作をする時に積極的にAIを使うようになりました。その中でストレスのひとつとしてあったのが、AIとどうコミュニケーションをとるのが最善か、というものです
基本的にはチャットのインターフェイスで意思疎通を図るのですが、扱うべき文脈が大きくなってくるにしたがってMarkdown形式のテキストを共同で編集する、といったケースが増えていきます。その流れは、仕様書駆動開発(SDD) に手を出したあたりで決定的になりました
SDDでは、開発の方針や詳細を決定する時にまず仕様書を作成して、それを通じて欲しい機能の方向性だったり、最終的なイメージと出来上がるもの実際とのギャップを少なくしよう、という、いわゆるバイブコーディングの弱点を補う手法として登場しました。 gotalab/cc-sdd などをよく使っていたのですが、弱点として大量のMarkdownファイルを読んだり編集したりしなくはいけないことになります
さすがにテキスト状態の .md を読んでいくのはしんどかったので、最初のほうはChrome機能拡張の Markdown Viewer を使っていました
なのですが、時には6~8個のドキュメントを相互に参照する必要のあるケースも出てきたりして、さすがに閲覧すべきMarkdownの数が増えてくるとChromeの機能拡張だけでは捌ききれない状態になっていきました。もっと効率的に複数のドキュメントを閲覧する方法が必要でした
mdv の制作
それらの問題を解決するために、今回公開した機能拡張の元ネタとなるアプリケーションを作ることにしました。名前を mdv といいます (Rust+Tauriで実装)
mdv は、左のファイルツリーで選んだ .md を右のペインで表示する、というシンプルなものですが、閲覧性はかなり上がりました。タブで複数のドキュメントを切り替えながら閲覧できるだけでもかなり嬉しかった思い出があります
また、これまでになかった機能として選択した部分にコメント(アノテーション)を入れていって、あとで一括でAIとのチャット欄にペーストできる機能を入れました。
これによってMarkdownファイルは基本触らずに、変更したい意図のみをAIに伝えることができるようになりました (.md を直接編集してしまうとAIがユーザーが何を編集したかを読みとるためにファイル読みなおさないといけなくなるのですが、それがなくなる、というトークン消費削減方向での副次的なメリットもありました)
vscode-mdv
mdvを作成して、しばらくは便利に使っていっていたのですが、VSCodeとmdvを両方立ち上げるのがダルくなってきて、VSCode内蔵のMarkdownプレビューをだましだまし使う、というのが増えてきた時に、ふと Markdownレンダリング部分だけVSCode拡張で作れればそれが一番いいのでは? と思いついたのが vscode-mdv を作ることになったきっかけです
リファレンス実装があったので、移植はかなりさくっとできました。すでに見やすいように調整していたスタイルもあったので使用感は変わらず、SSHやWSL接続先でも使えるのでただ単に便利になった感じで、かなり気にいっています
この件で学びがあるとしたらこんなかんじでしょうか:
- AIを使った開発では 人間の認知能力がボトルネック になる。認知負荷を下げるためのツールは最優先で作るべき
- いくら便利なものができたとしても、使うまでがめんどくさいと使わなくなる
- なるべくいつも使っている 「環境」は変えずに「使い勝手」をよくする のがいいのではないか