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
发布闭合 检查所有六个必要的“技能”(证据、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 schemas) 保证 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 锁定的审批状态机。

每个示例都展示端到端路径:意图 → 规格 → 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 不是“一键应用程序生成器”。它的价值在于让每个设计决策在代码交付前都可见、可审计且可逆转。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目