xiaojilele-glitch/WhyBuddy

A Simple and Universal Product Rehearsal Engine, Speccing Anything. 简洁通用的产品推演引擎,推演万物。

🎯 SlideRule (WhyBuddy) とは

SlideRule はオープンソースの製品リハーサルエンジンです。製品アイデアを説明する一文を与えると、システムは完全な製品仕様、UI モックアップ、データモデル、さらには実行可能なウェブアプリまで、決定的で段階的な作成プロセスを案内します。すべてブラウザ内で行われます。各中間成果物は、次のステップに進む前に明示的な「ゲート」(証拠チェック)を通過する必要があるため、最終アプリは「LLM が完了と言った」だけではなく、具体的で監査可能な作業によって保証されます。


🛠️ 中核概念とワークフロー

フェーズ 何が起こるか 誰/コンポーネント
意図 一文を入力します(例:「ペットクリニックの予約」)。 クライアント UI
コントロールプレーン 文はスコープカードと前提カードに変換され、リハーサルを駆動します。 rehearsal_control (Node/TS)
仕様 → ページ → 構造 → バインド 仕様ファーストパイプラインが要件仕様、次に UI ページ、次にデータ構造グラフを生成し、最後にすべてをバインドします。 spec-first パイプライン (Python)
前提レビュー 隠れたモデル分岐はカードとして表示されます。ユーザーは続行する前に確認する必要があります。 spec.assumptions
公開クロージャ 6 つの必須「スキル」(証拠、RBAC、ワークフロー、データ、AIGC など)がすべてチェックされます。ゲートが失敗した場合、リハーサルは改善のために一時停止されます。 publish closure
実行 / 改善 完全に機能するウェブアプリがブラウザで起動されます。反復、修正、エクスポートが可能です。 ブラウザランタイム + コントロールプレーン

ループ全体はリポジトリの Live path 図で視覚化され、ホストされたデモですぐに試せます(バックエンドや API キーは不要)。キーが提供されると、LLM は OpenAI 互換エンドポイントを介してブラウザ内で実行されます。


🚀 内部の仕組み

レイヤー 技術 役割
フロントエンド Vite + React (TypeScript) 意図の作成、リハーサルステップの表示、生成されたアプリの実行のための UI。
軽量プロキシサーバー Express (Node) /api/sliderule と /api/agent-loop エンドポイントを公開し、Python エンジンに転送します。
オーソリティエンジン FastAPI (Python) – slide-rule-python 決定的パイプライン、ゲートチェック、アーキテクチャグラフ検証を実装します。
共有コントラクト shared/ (JSON スキーマ) TS と Python 間で同じデータモデルを保証します。
スキルパッケージ skills/sliderule.zip 自己完結型の「スキル」で、任意の TRAE/Claude スタイルのエージェントホストにドロップできます。文を完全な仕様パッケージに変換します。
Docker docker‑compose.yml ワンコマンドの開発/本番スタック(Node + Python、オプションで MySQL、Redis、Lobster エグゼキュータ)。

すべてのアーキテクチャ図はコードから生成され(arch_graph.py / arch-graph-ts.mjs)、視覚表現が実際の実装から乖離しないことを保証します。


📦 クイックスタート (Docker)

# クローンして設定
git clone https://github.com/2686521696/WhyBuddy.git && cd WhyBuddy
cp .env.example .env   # OpenAI 互換の LLM_API_KEY を追加

# スタックをビルドして実行
docker compose up -d --build

# UI を開く
open http://localhost:3000/agent-loop/sliderule

LLM キーを省略すると、エンジンは決定的テンプレートにフォールバックするため、UI は探索用に引き続き機能します。


🧪 ソースから実行(Docker なし)

pnpm install                     # TS 依存関係をインストール
pnpm run dev:all                 # Vite (3000) + Node プロキシ (3001) + Python FastAPI (9700)

上記と同じ URL を開きます。リポジトリは、軽量な dev:sliderule モード(フロントエンド + Python のみ)と、オフラインデモ用の UI のみの dev:frontend モードも提供します。


🎓 ユースケース例(README より)

  • ペットクリニックの予約とトリアージ – トリアージ UI を備えた完全な予約フローを生成します。
  • 中古楽器委託販売 – 台帳、査定ワークベンチ、カレンダービューを作成します。
  • 脚本殺人イベント会場スケジューリング – セッションボード、申し込みフォーム、相乗り調整を構築します。
  • フィールドレベルの権限を持つ調達承認 – RBAC でロックされた承認状態機械を備えた 5 システムモデルを生成します。

各例は、意図 → 仕様 → UI → 実行可能アプリというエンドツーエンドのパスを示し、すべて証拠チェックによってゲートされています。


📊 プロジェクト規模(リポジトリ時点)

  • 9,313 の追跡ファイル
  • 3,336 の TS/TSX ファイル(約 945 k 行の TypeScript)
  • 817 の Python ファイル(約 226 k 行の Python)
  • 2,018 のテストファイル
  • 2,205 のライブモジュール(実行中システムの一部であるモジュール)

🤝 貢献

プロジェクトはゲート付きマージワークフローを使用します:

bash scripts/merge-gated.sh <branch> "msg"   # → pre_main
bash scripts/merge-gated.sh pre_main "msg" main   # → main

ローカルで pnpm run check && pnpm run test を実行し、Python テストは次のコマンドで実行します:

slide-rule-python/.venv/bin/python -m pytest slide-rule-python/tests/ -q

完全なガイドラインは CONTRIBUTING.md を参照してください。


📄 ライセンスとリンク


SlideRule は「ワンクリックアプリジェネレーター」ではありません。その価値は、コードがリリースされる前に、すべての設計決定を可視化し、監査可能にし、元に戻せるようにすることにあります。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト