用途:Visual Companion 是一个独立的浏览器可视化协作技能,不绑定更广泛的头脑风暴流程。当内容本身是视觉性的(UI 线框图、布局、导航结构、组件设计、架构图、数据流、关系图、并排视觉对比、设计打磨、空间关系如状态机与流程图)时,用浏览器展示比文字更易理解;而需求范围、概念性 A/B/C 选择、权衡清单、技术决策、澄清性问题等文字或表格内容仍用终端。判断标准是逐问题而非逐会话:用户看图是否比读文字更明白。
主要能力:服务器监视目录并把最新 HTML 文件提供给浏览器;用户可在浏览器中点击选择选项或提交小表单。浏览器事件通过 WebSocket 与即时 HTTP 回退发送,服务器按 eventId 去重,事件持久化到 state_dir/events、latest-event.json、latest-selection.json。诊断信息以 JSON 行追加到 state_dir/diagnostics.jsonl。服务器向页面注入每会话令牌,事件、诊断和 WebSocket 路径均需该令牌,防止本地其他页面伪造选择。内容片段默认由服务器自动包裹进框架模板(页头、CSS 主题、选择指示器与交互基础设施);若文件以 <!DOCTYPE 或 <html 开头则按原样提供。
使用方式:启动服务器 scripts/start-server.sh --project-dir /path/to/project,返回 port、url、screen_dir、state_dir;启动 JSON 也会写入 $STATE_DIR/server-info。把 HTML 写入 screen_dir 的新文件(语义化文件名,不复用),服务器自动提供最新文件。响应模式有两种:自动桥接,运行 node scripts/wait-for-event.cjs "$STATE_DIR" --clear --timeout-ms 1800000,阻塞直到浏览器事件并打印 JSON;持久待答模式,运行 node scripts/mark-pending-question.cjs "$STATE_DIR" --id <short-id>,之后用 node scripts/read-pending-event.cjs "$STATE_DIR" 恢复。多选容器加 data-multiselect,配合 --type submit 等待提交事件。
适用场景与限制:适合视觉性问题的交互式选择与迭代。服务器 4 小时无活动自动退出,浏览器页面心跳可保活;远程或容器环境可用 --host 0.0.0.0 --url-host localhost 绑定非回环主机。使用 --project-dir 时文件持久化在 .brainstorm/,否则写入 /tmp 会被清理,建议将 .brainstorm/ 加入 .gitignore。该桥接不通过私有 UI API 注入消息,而是经代理已控制的 shell/工具通道返回事件。其余细节暂未提供。