Claude 与 Skill
把一句话想法变成可执行计划:开源桌面应用 Vibewright 让 Claude Code 逐步搭建项目
作者开源了一款 Windows/macOS 桌面应用 Vibewright:输入一句话想法,通过访谈、需求分析、计划和工具检查四道人工审批关卡,再由内嵌的 Claude Code 交互式终端逐步实现。文章详细拆解了 headless 规划调用、状态机、Markdown 单一事实来源等关键技术决策和踩坑经验。
今天就能做
- 用 claude -p --tools "" --json-schema 做 headless 结构化调用,可把规划类任务的 token 消耗降到约 1/15
- 让 AI 产出的计划以纯 Markdown 文件落盘,进度从 checklist 推导,就能在应用、编辑器和 agent 之间共享状态
- 从别的 Claude Code 会话里启动子进程时,记得清理 CLAUDECODE 等继承的环境变量
从想法到构建的完整流程
- 流程为:想法 → 访谈 → 需求分析 → 计划 → 工具检查 → 构建,每个环节都需要用户点击批准
- 访谈采用每屏一道选择题的形式,共两轮短访谈,只在信息缺失时追问
- 需求分析输出目标、范围、必须项、非目标、风险和可行性红绿灯
- 计划拆成 3–6 个阶段,每个阶段有明确的「完成标准」和通俗步骤
规划调用:headless、无工具、省 token
- 每个规划步骤都是一次 Claude Code CLI 的 headless 调用,用 --tools "" 禁用所有工具,规划阶段不碰磁盘、不弹权限确认
- 用 --setting-sources project --strict-mcp-config 忽略用户全局的 hooks、skills 和 MCP 服务器,避免用户配置干扰规划
- 短系统提示加无工具,让单次调用从 15000–20000 token 降到约 1000,把 Pro/Max 订阅额度留给实际构建
- 用 --json-schema 返回结构化输出,UI 不用解析自由文本;--resume 让整个项目共享一个会话
- 一个坑:--bare 更精简,但订阅登录不支持,必须用 API key
状态机与 Markdown 单一事实来源
- 每个项目的状态存在 JSON 文件里,规则是只有 Claude 调用成功后才改状态,失败重试不会留下半成品
- 计划、阶段和清单全部写成 Markdown 文件,可放进 Obsidian vault(支持 Dataview 和 Kanban)或普通文件夹
- 进度不单独存储,应用解析任务文件的 ## Checklist 部分推导出阶段状态、进度百分比和下一步
- 勾选框在任何地方生效:应用内、Obsidian 里、或 Claude Code 直接改文件,fs.watch 监听后 UI 实时更新
内嵌真正的 Claude Code
- 构建阶段用 xterm.js 和 node-pty 在应用内运行真正的交互式 Claude Code,而不是重新实现一个 agent
- 启动前向项目 CLAUDE.md 写入带标记的区块(<!-- projekthelper:start --> … ende),记录当前阶段、目标和下一步,用户原有内容不动
- 新想法可随时输入,Claude 会归入合适阶段;如果正忙则等当前步骤完成
- 支持多个项目同时各跑一个 Claude Code 会话
踩过的坑与安全设计
- 嵌套会话问题:从另一个 Claude Code 会话里启动应用时,继承的 CLAUDECODE / CLAUDE_CODE_* 环境变量会改变行为,启动前需剥离
- Windows 的 .cmd shim:npm 安装的 claude.cmd 无法直接启动,走 shell 又会弄坏 JSON-schema 参数,应用优先找 claude.exe(原生安装版)
- 工具检查阶段 Claude 只拿到系统清单(OS 版本、已装插件、skills、MCP 服务器),只返回需要的工具名和常见安装路径,由应用自己检查,规划全程只读
- 技术栈很轻:Electron + 原生 HTML/CSS/JS,无框架无打包器,仅三个运行时依赖
评论区补充的两个隐患
- Obsidian 等编辑器采用原子保存(写临时文件再重命名),只监听文件路径会在首次重命名后丢失事件,应监听父目录
- 让编码会话自己勾选 Checklist 等于让 agent 给自己打分,每个步骤应有测试退出码或文件检查兜底
原文:I built a desktop app that turns a one-line idea into a plan – and lets Claude Code build it
来源:DEV Community · 2026-11-13
查看原文本文由 AI 阅读原文后整理,未经人工逐字核对,内容以原文为准。
登录后可以点赞、查看和发表评论