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。
📄 许可证与链接
- 许可证: MIT
- 实时演示: https://2686521696.github.io/WhyBuddy/agent-loop/sliderule
- 主要仓库: https://github.com/2686521696/WhyBuddy
- 产品网站: https://sliderule.ai
- 奖项: TRAE Pioneer Skill Award 2026‑07
SlideRule 不是“一键应用程序生成器”。它的价值在于让每个设计决策在代码交付前都可见、可审计且可逆转。
相关
- 项目
- 项目
- 项目
- 项目
- 项目