name: brainstorm
description: |
当需要探索方案、头脑风暴、创意思维时自动使用此 Skill。
触发场景:
触发词:头脑风暴、方案、怎么设计、有什么办法、创意、讨论、探索、建议、怎么做、如何实现
头脑风暴框架
本项目技术约束
所有方案必须在以下技术栈约束内思考
技术边界
- 后端架构: 三层架构(Commands → Services → Database)
- 后端语言: Rust 2021 edition + Tauri 2.x(不是 Java/Python/Node.js)
- 前端框架: React 19 + TypeScript 5.8 + Vite 7(不是 Vue/Angular)
- UI 组件库: Ant Design 5 + TailwindCSS 4(不是 Material-UI/Chakra UI)
- 状态管理: Zustand(不是 Redux/MobX)
- 路由: React Router v7(不是 Next.js/Remix)
- 通信: Tauri IPC
invoke() / listen()(不是 HTTP REST API)
- 安全: Capabilities 权限声明(不是 RBAC/JWT)
- 数据库: rusqlite (Rust 侧
Mutex<Connection>)(不是 tauri-plugin-sql)
- 数据存储: 本地文件 / SQLite(不是 MySQL/PostgreSQL 服务器)
- 部署: 桌面安装包 .exe/.dmg/.deb(不是服务器部署)
- 依赖管理: Cargo (Rust) + pnpm (Node.js)
思维模式
发散思维
- 不评判: 先不考虑可行性
- 联想: 从一个想法延伸
- Rust 生态: 能否用现有 crate 解决?
- Tauri 插件: 有没有现成的插件?
- Ant Design 组件: UI 能否复用现有组件?
- 跨界借鉴: Electron/Flutter 怎么做的?
- 反向思考: 反过来就是解决方案
收敛思维
- 复用优先: 能否复用现有 crate 或 npm 包?
- 可行性: 在 Rust + React 技术栈内能否实现?
- 三层架构: 这个逻辑应该放在哪一层?
- 前后端分工: 这个逻辑应该放在 Rust 侧还是 React 侧?
- 权限: 是否需要声明额外的 Capabilities?
- 成本: 开发时间和复杂度
- 跨平台: 方案在 Windows/macOS/Linux 上是否都能工作?
- UI 一致性: 是否符合 Ant Design 设计规范?
方案评估矩阵
| 方案 | 复用度(15%) | 可行性(20%) | 开发量(20%) | 跨平台(15%) | 安全性(15%) | UI一致性(15%) | 总分 |
|------|-------------|------------|-------------|-------------|-------------|--------------|------|
| 方案A | ? | ? | ? | ? | ? | ? | ? |
| 方案B | ? | ? | ? | ? | ? | ? | ? |
评分标准
| 维度 |
1 分 |
2 分 |
3 分 |
4 分 |
5 分 |
| 复用度 |
全新开发 |
少量复用 |
部分复用 |
大量复用 |
完全复用 |
| 可行性 |
不可行 |
技术风险高 |
需要探索 |
可行 |
完全可行 |
| 开发量 |
>5天 |
3-5天 |
1-3天 |
0.5-1天 |
<0.5天 |
| 跨平台 |
不跨平台 |
需要适配 |
部分兼容 |
基本兼容 |
完全兼容 |
| 安全性 |
存在风险 |
需要加固 |
一般 |
安全 |
非常安全 |
| UI一致性 |
不一致 |
需要定制 |
基本一致 |
一致 |
完美一致 |
方案探索模板
## 问题描述
- 是什么: [功能描述]
- 为什么重要: [业务价值]
- 当前状态: [现有能力]
## 可能方案
### 方案 A: [名称]
- **描述**: ...
- **架构设计**:
- Database 层工作: ...
- Service 层工作: ...
- Command 层工作: ...
- React 侧工作: ...
- **UI 组件**: [使用的 Ant Design 组件]
- **状态管理**: [Zustand store 设计]
- **数据库变更**: [需要添加的表/字段]
- **需要的 Capabilities**: ...
- **优点**: ...
- **缺点**: ...
- **评分**:
- 复用度: ?/5
- 可行性: ?/5
- 开发量: ?/5
- 跨平台: ?/5
- 安全性: ?/5
- UI一致性: ?/5
- **总分**: ?/30
### 方案 B: [名称]
- **描述**: ...
- **架构设计**:
- Database 层工作: ...
- Service 层工作: ...
- Command 层工作: ...
- React 侧工作: ...
- **UI 组件**: [使用的 Ant Design 组件]
- **状态管理**: [Zustand store 设计]
- **数据库变更**: [需要添加的表/字段]
- **需要的 Capabilities**: ...
- **优点**: ...
- **缺点**: ...
- **评分**:
- 复用度: ?/5
- 可行性: ?/5
- 开发量: ?/5
- 跨平台: ?/5
- 安全性: ?/5
- UI一致性: ?/5
- **总分**: ?/30
## 推荐方案
方案 [X] - [理由]
## 实施计划
1. [第一步]
2. [第二步]
3. [第三步]
架构决策要点
数据存储位置
| 场景 |
推荐方案 |
理由 |
| 持久化业务数据 |
SQLite (rusqlite) |
关系型数据、事务支持 |
| 简单键值配置 |
SQLite app_config 表 |
统一管理、易于查询 |
| 临时会话数据 |
Zustand store |
无需持久化 |
| 大文件 |
文件系统 + DB 存路径 |
性能更好 |
业务逻辑位置
| 场景 |
推荐层级 |
理由 |
| 数据验证 |
Service 层 |
业务逻辑集中 |
| 复杂计算 |
Rust Service 层 |
性能更好 |
| UI 交互逻辑 |
React 组件 |
用户体验更好 |
| 数据库查询 |
Database 层 |
职责单一 |
| 权限检查 |
Service 层 |
业务逻辑 |
UI 组件选择
| 需求 |
推荐组件 |
说明 |
| 表单 |
Ant Design Form |
完整的表单方案 |
| 表格 |
Ant Design Table |
功能强大 |
| 弹窗 |
Ant Design Modal |
标准弹窗 |
| 消息提示 |
Ant Design message |
轻量级提示 |
| 通知 |
Ant Design notification |
复杂通知 |
| 布局 |
TailwindCSS |
灵活的工具类 |
| 图标 |
@ant-design/icons |
官方图标库 |
常见场景方案库
场景 1:用户认证
方案对比:
| 方案 |
实现 |
优点 |
缺点 |
| 本地密码 |
SQLite 存储哈希 |
简单、离线可用 |
无云同步 |
| OAuth2 |
调用外部 API |
专业、安全 |
需要网络 |
| 生物识别 |
Windows Hello API |
用户体验好 |
平台限制 |
场景 2:数据同步
方案对比:
| 方案 |
实现 |
优点 |
缺点 |
| 文件导出/导入 |
SQLite dump |
简单 |
手动操作 |
| WebSocket |
实时同步 |
实时性好 |
复杂度高 |
| REST API |
定期拉取 |
简单可靠 |
非实时 |
场景 3:大文件处理
方案对比:
| 方案 |
实现 |
优点 |
缺点 |
| 流式处理 |
Rust async + chunk |
内存占用小 |
复杂度高 |
| 分片上传 |
分块处理 |
可断点续传 |
实现复杂 |
| Worker 线程 |
tokio::spawn |
不阻塞主线程 |
进度回报复杂 |
决策树示例
需要持久化数据?
├─ 是 → 数据类型?
│ ├─ 结构化数据 → SQLite (rusqlite)
│ ├─ 大文件 → 文件系统 + DB 存路径
│ └─ 简单配置 → SQLite app_config 表
└─ 否 → 数据作用域?
├─ 全局共享 → Zustand store
├─ 组件内 → useState
└─ URL 参数 → React Router params
常见陷阱
| 错误思路 |
正确思路 |
| 用 tauri-plugin-sql 从前端操作数据库 |
用 rusqlite 在 Rust 侧操作 |
| 把所有逻辑放在 Command 层 |
使用三层架构拆分职责 |
| 前端直接调用 Rust 业务逻辑 |
通过 Command 暴露 API |
| 混用多种状态管理方案 |
统一使用 Zustand |
| 不使用 Ant Design 重复造轮子 |
优先使用 Ant Design 组件 |
| 内联样式或 CSS-in-JS |
优先使用 TailwindCSS |
| HTTP 请求直接在前端 |
通过 Rust Command 代理 |
技术选型参考
Rust Crate 推荐
| 需求 |
推荐 Crate |
说明 |
| 数据库 |
rusqlite |
SQLite 绑定 |
| 错误处理 |
thiserror |
自定义错误类型 |
| 序列化 |
serde + serde_json |
JSON 序列化 |
| HTTP 请求 |
reqwest |
异步 HTTP 客户端 |
| 日期时间 |
chrono |
日期时间处理 |
| 加密 |
sha2, bcrypt |
密码哈希 |
| 日志 |
log, env_logger |
日志记录 |
NPM 包推荐
| 需求 |
推荐包 |
说明 |
| UI 组件 |
antd |
Ant Design |
| 样式 |
tailwindcss |
TailwindCSS |
| 状态管理 |
zustand |
轻量级状态管理 |
| 路由 |
react-router |
React Router |
| 图标 |
@ant-design/icons |
Ant Design 图标 |
| 表单验证 |
(内置在 antd) |
Form 组件内置 |
| 日期选择 |
(内置在 antd) |
DatePicker 组件 |
检查清单