前書き
バイブコーディングをしても、自端末で動かすことが出来ない。
そのことにもどかしさを感じたので、専用のバイブコーディングツールの作成を検討する。
まずは、生成AIに設計書を作成してもらった。
以下生成AIの成果物。
📄 バイブコーディングツール 全体設計書(骨格)
Version 0.1 – Draft
1. 概要
本ドキュメントは、ローカル環境で動作する「バイブコーディングツール」の全体設計の骨格をまとめたものである。
本ツールは、ユーザーの直感的な“vibe”をコード構造へ変換する AI 支援ツールであり、環境検出と環境非依存設計を基盤として、再現性・監査性・変更耐性を重視したアーキテクチャを採用する。
2. システム全体構成(アーキテクチャ概要)
本ツールは以下の 4 レイヤーで構成される。
2.1 UI レイヤー
- VS Code 拡張機能(メイン UI)
- 必要に応じて Web UI(ブラウザ)
2.2 アプリケーション API レイヤー
- Python FastAPI ベースのローカル HTTP サーバ
- 「vibe → プロンプト → コード生成」処理の中心ロジック
2.3 環境基盤レイヤー(環境検出 + 非依存設計)
- 環境検出モジュール
- 設定ファイル管理(config/*.yaml)
- 依存関係管理(uv/venv/Node)
- 起動前セルフチェック
2.4 LLM・ストレージレイヤー
- LLM バックエンド(ローカル or 外部 API)
- 監査ログ(JSONL または SQLite)
- 設定ファイル(YAML/JSON)
3. 環境検出モジュール(B)
3.1 目的
ユーザーの PC 環境を自動検出し、
「この環境で安全に動作する最適構成」 を決定する。
3.2 検出項目(骨格)
- OS 情報(Windows / macOS / Linux)
- CPU / メモリ / GPU(VRAM含む)
- Python バージョン
- Node バージョン
- 仮想環境(uv / venv / conda)
- ポート使用状況
- ファイルシステムの書き込み権限
- ローカル LLM モデルの有無
3.3 出力
検出結果は config/system.yaml に保存される。
4. 環境非依存設計原則(D)
4.1 原則1:環境差分は設定ファイルで吸収する
config/
system.yaml # 自動生成
model.yaml # LLM設定
server.yaml # ポート・API設定
user.yaml # ユーザーのvibe設定
4.2 原則2:依存関係はロックしつつ、環境で最適化
- Python: uv.lock / requirements.txt
- Node: package-lock.json
- GPU の有無で LLM 実行方式を切り替える
4.3 原則3:OS 差分は抽象化レイヤーで吸収
- パス操作(pathlib)
- プロセス起動
- ログディレクトリの扱い
4.4 原則4:起動前セルフチェック
- Python バージョンチェック
- ポート競合チェック
- GPU 利用可否
- 権限チェック
5. バイブコーディング機能の論理構造
5.1 コアフロー
- ユーザー入力(vibe)
- Vibe プロンプトエンジン
- LLM 呼び出し(ローカル or API)
- 出力ポストプロセス(整形・補助生成)
- VS Code への反映
5.2 Vibe プロンプトエンジン
- 専用テンプレートを内部に保持
- 環境情報(system.yaml)を自動付与
- 監査性・変更耐性を強制するプロンプト構造
6. ログと監査性の設計
6.1 ログ種別
- 環境ログ:環境検出結果
- 生成ログ:入力 vibe、内部プロンプト、LLM 出力
- エラーログ:起動失敗、モデル未ロードなど
6.2 格納形式
- JSONL(開発中の扱いやすさ重視)
- 将来的に SQLite へ移行可能
7. 今後の詳細化ポイント
- 環境検出モジュールの詳細設計
- config/*.yaml のスキーマ定義
- 起動フローの詳細化
- Vibe プロンプトエンジンの内部構造
- ログスキーマの詳細化