一键导入
architecture-design
Tauri 架构设计技能,指导双进程架构下的模块拆分和代码组织。 触发场景: - 需要设计新模块的架构 - 需要重构现有代码结构 - 需要决定功能放在 Rust 还是 React 侧 - 需要设计插件集成方案 触发词:架构、设计、模块、拆分、重构、组织、结构
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Tauri 架构设计技能,指导双进程架构下的模块拆分和代码组织。 触发场景: - 需要设计新模块的架构 - 需要重构现有代码结构 - 需要决定功能放在 Rust 还是 React 侧 - 需要设计插件集成方案 触发词:架构、设计、模块、拆分、重构、组织、结构
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Git 工作流与版本管理技能,规范分支策略、提交信息和发布流程。 触发场景: - 用户需要创建分支或合并代码 - 用户需要规范提交信息格式 - 用户需要管理版本发布流程 触发词:Git、分支、提交、合并、版本发布
发布 Tauri 桌面应用新版本,处理版本号同步、Git tag、GitHub Actions 构建、Release 仓库产物同步、Cloudflare R2 上传、update.json 生成、自动更新发布和文档站重建。 触发场景: - 需要发布新版本或 release - 需要打 tag、推送发布分支或触发 CI 构建 - 需要生成或更新 update.json - 需要处理 Tauri updater 签名产物 - 需要同步 R2 CDN、GitHub/Gitee release 仓库或发布安装包 触发词:发布、release、版本发布、推送、打Tag、update.json、签名构建、安装包、自动更新、R2、CDN
Git 工作流与版本管理技能,规范分支策略、提交信息和发布流程。 触发场景: - 用户需要创建分支或合并代码 - 用户需要规范提交信息格式 - 用户需要管理版本发布流程 触发词:Git、分支、提交、合并、版本发布
自主连续开发方法论(Codex 版)。把一个项目按「每轮一个最小可提交单元」的方式推进到完成: 每轮读真相源 → 选下一个未做项 → 做一个最小单元 → 过验证门 → 记录勾选 → 最小提交 → 报进度。 适用于"按需求/台账建功能、还原原型、修一批 bug、补测试、重构、迁移、清理"等需要反复同构推进的任务。 与 Claude Code 的关系:Claude Code 有内置 `/loop` 自动续期(`/loop /dev-loop`),Codex 没有—— 所以 Codex 端由你(或脚本 / cron)反复触发"继续下一轮",方法论本身一致。 触发场景: - 想让 Codex 把某个项目/某个意图"一轮轮推进到完成" - 还原原型图、修一批 warning、补单测、重构模块等同构重复任务 - 需要"每步可编译、可回退、可恢复"的稳健推进方式 触发词:自主开发、连续开发、循环开发、一轮一提交、还原原型、批量修复、autonomous dev、continuous dev
Tauri 打包与分发技能,指导桌面端(Windows/macOS/Linux)与移动端(Android/iOS)的构建、签名和分发。 触发场景: - 需要构建生产安装包(exe/dmg/deb/apk/aab/ipa) - 需要配置各平台打包参数 - 需要代码签名(Windows 证书 / Android keystore / iOS 描述文件) - 需要减小安装包体积 - 需要设置应用图标和元数据 - 需要打包 Android / iOS App 触发词: 打包、构建、build、发布、安装包、exe、dmg、deb、apk、aab、ipa、签名、分发、release、android build、ios build、移动端打包
排查已发生的问题、定位 Bug 原因。 触发场景: - 代码运行报错,需要定位原因 - 功能不正常,需要排查 - Tauri Command 返回错误,需要分析 - 日志分析、调试代码 触发词:Bug、报错、不工作、调试、排查、为什么、出问题、失败、不生效、无效、找不到原因、定位问题
| name | architecture-design |
| description | Tauri 架构设计技能,指导双进程架构下的模块拆分和代码组织。 触发场景: - 需要设计新模块的架构 - 需要重构现有代码结构 - 需要决定功能放在 Rust 还是 React 侧 - 需要设计插件集成方案 触发词:架构、设计、模块、拆分、重构、组织、结构 |
| 放在 Rust 侧 | 放在 React 侧 |
|---|---|
| 文件系统操作 | UI 渲染和交互 |
| 系统 API 调用 | 表单处理 |
| 数据库操作 | 状态管理(UI 状态) |
| 网络请求(安全原因) | 路由导航 |
| 计算密集型任务 | 动画和视觉效果 |
| 安全敏感操作 | 用户输入验证(前置) |
| 后台任务/定时器 | 国际化文本 |
用户点击 → React 处理交互
需要系统资源? → Rust Command
纯 UI 逻辑? → React 组件
需要持久化? → Rust (文件/数据库)
需要安全? → Rust (不暴露给 WebView)
src/ # React 前端
├── components/
│ ├── layout/
│ │ ├── AppLayout.tsx # 主布局(Ant Design Layout)
│ │ └── Sidebar.tsx # 侧边栏导航
│ └── ui/
│ └── ErrorBoundary.tsx # 错误边界
├── hooks/
│ └── useCommand.ts # invoke 封装
├── lib/
│ └── api/
│ └── index.ts # API 类型安全封装
├── pages/
│ ├── home/index.tsx # 首页
│ ├── settings/index.tsx # 设置页
│ └── about/index.tsx # 关于页
├── store/
│ └── index.ts # Zustand 全局状态
├── styles/
│ └── global.css # TailwindCSS
├── types/
│ └── index.ts # TS 类型
├── App.tsx # 根组件(ConfigProvider + Router)
├── Router.tsx # React Router 配置
└── main.tsx # 入口
src-tauri/src/ # Rust 后端(三层架构)
├── commands/ # Layer 1: IPC 入口
│ ├── mod.rs
│ ├── system.rs # 系统命令(greet/get_system_info)
│ └── config.rs # 配置 CRUD 命令
├── services/ # Layer 2: 业务逻辑
│ ├── mod.rs
│ └── config.rs # 配置服务
├── database/ # Layer 3: 数据访问
│ ├── mod.rs # Database 结构体
│ └── schema.rs # Schema 迁移
├── models/
│ └── mod.rs # 数据模型
├── error.rs # thiserror 错误类型
├── state.rs # AppState 定义
├── lib.rs # Builder 统一注册
└── main.rs # 进程入口
| 层级 | 目录 | 职责 | 依赖方向 |
|---|---|---|---|
| Layer 1: Commands | commands/ | IPC 入口,参数校验,调用 Service | 向下调用 Service |
| Layer 2: Services | services/ | 业务逻辑,事务编排 | 向下调用 Database |
| Layer 3: Database | database/ | 数据访问,SQL 执行,Schema 迁移 | 直接操作 rusqlite |
mod commands;
mod services;
mod database;
mod models;
mod state;
mod error;
use state::AppState;
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_opener::init())
.plugin(tauri_plugin_store::Builder::default().build())
.plugin(tauri_plugin_log::Builder::new().build())
.manage(AppState::new()) // 包含 Database 实例
.invoke_handler(tauri::generate_handler![
// 系统模块
commands::system::greet,
commands::system::get_system_info,
// 配置模块
commands::config::get_config,
commands::config::set_config,
commands::config::list_configs,
commands::config::delete_config,
])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
前端 invoke("get_config", { key })
→ commands/config.rs::get_config() // Layer 1: 参数校验
→ services/config.rs::get() // Layer 2: 业务逻辑
→ database/mod.rs::query() // Layer 3: SQL 执行
全局状态 (Rust tauri::State<AppState>)
├── Database (rusqlite) → 持久化结构化数据
├── tauri-plugin-store → 键值持久化(设置/偏好)
└── 运行时状态(进程级 Mutex<T>)
UI 状态 (React)
├── 组件内 useState
├── 全局状态 Zustand (src/store/index.ts)
└── API 封装 src/lib/api/index.ts
| 错误做法 | 正确做法 |
|---|---|
| 前端直接操作文件/网络 | 通过 Rust Command 代理 |
| 所有代码堆在 lib.rs | 按三层架构拆分(commands/services/database) |
| Command 中直接写 SQL | Command 调用 Service,Service 调用 Database |
| 不考虑跨平台差异 | 路径/API 使用跨平台方案 |
| 前端直接 invoke 不封装 | 通过 src/lib/api/index.ts 统一封装 |