MooTool Next Compose:Cursor 编码开发主指南
2026-09-08 · 产品 ID
next-compose· 状态:0.1.0 开发切片已开始(见 README / acceptance);完整阶段未完成。
1. 要交付什么
交付真正可用、可独立安装的 Compose Multiplatform Desktop 开发者工具箱。Electron 用户能沿原有记忆找到工具、输入、结果及主要动作;Java 用户可继续相同的核心任务。界面采用更统一的桌面密度、可见焦点、清晰层级和可调整分栏。
目标不缩减为“25 个菜单能打开”。完整产品包含工具业务、编辑器、文件与历史、Vault/Git、多窗口、设置、备份、安装和更新。允许逐阶段交付,阶段状态必须真实。
首轮目标平台:macOS arm64、Windows x64、Linux x64。先在开发机跑通,再逐平台验证;macOS x64 和 Windows/Linux arm64 是条件目标,依赖所选 Compose/Skiko/JDK/helper 的完整支持,不预先承诺。移动端、Web、云同步账户、AI 工作台、插件市场、OCR 不属于本轮。
优先级:数据与安装隔离 > 真实功能及语义 > 原有布局/工作流 > 编辑与桌面交互 > 现代化视觉 > 次要风格装饰。修正现有缺陷可以成为本产品决定,不能为赶进度取消复杂能力。
2. 产品线独立:最高架构边界
Java、Electron、Tauri、Flutter、macOS Native、Compose 是独立产品。允许各自需要的代码结构、重复实现、依赖、版本和路线图。用户没有要求共享业务内核,也没有要求以后保持发布同步。
| 允许 | 不应引入 |
|---|---|
| 复制可授权源码/资源到本目录,维护自己的测试 | sourceSets 指向根 src、../next 或其他产品 |
| 用 JVM 第三方库完成相同算法 | 依赖 MooTool Java 的 jar、安装目录或全局单例 |
| 借鉴 Electron 文案/样本并保留来源 | 运行时读取相邻目录、符号链接资源 |
| 自有轻量 native helper 或自带工具依赖 | 启动另一版 MooTool 提供后台功能 |
| 显式导入指定来源和版本的数据副本 | 默认扫描并写入其他产品数据库或 Vault |
| 本产品内部共享公共组件与服务 | 为 Compose 强制重构所有产品的公共库 |
独立构建定义:只复制 next-compose/ 到仓库外,具备已声明工具链及正常第三方依赖下载条件即可构建。构建不调用 Maven/npm/Cargo/Flutter/Swift 相邻产品任务。首次下载 Maven 依赖或产品自有 helper 依赖不违反独立性。
独立使用定义:无须预先安装其他 MooTool;内置 JVM 支撑工具箱本身。用户选择运行 Java/Groovy/Python/Node 代码时的外部运行环境单独检测,不因此要求所有使用者安装开发工具。
3. 阅读与实施方式
- 按 基线 核对注册表、当前页面、算法、main service 和测试;不只读 README。
- 从 功能规格 找出本次条目,列出全部 Tab、按钮、选项、默认值、持久化字段和错误。
- 依据 UI 规格 确定面板关系,先完成该工具一条真实输入到输出路径。
- 使用 架构 的会话/服务边界;数据与桌面行为遵循 数据平台文档。
- 完成适用失败路径、保存恢复、快捷键和跨窗口状态后,以 验收 记录结果。
每次报告以结果为单位:实现了什么、实际怎么验证、尚有什么限制。源码存在不等于功能已验收;其他版本的测试通过不能代替 Compose 测试。
4. 主要设计决定
| 决策 | 首选方案 | 变更条件 |
|---|---|---|
| D01 桌面目标 | KMP 单一 jvm("desktop"),commonMain 放模型/纯逻辑,desktopMain 放 JVM UI 及能力 |
不为尚未提出的移动端强行抽象所有服务 |
| D02 UI | Compose Foundation + 自有桌面组件/Token;可用已验证的稳定 Material 组件 | 不套用手机 Scaffold、FAB、巨大卡片与底部导航 |
| D03 编辑器 | 先验证 EditorHost + RSyntaxTextArea 互操作路线;普通字段使用 Compose 文本组件 |
列编辑/IME/叠层/分离验收不通过时,由实验切换实现;不得悄悄删能力 |
| D04 窗口 | 单 JVM 进程多个 Compose Window,一个工具一个持续会话,单一编辑宿主 | 暂不照搬 Electron 子视图/IPC 进程架构 |
| D05 存储 | SQLite JDBC + 显式迁移;设置 JSON 原子写;Vault 为独立文件目录 | 数据 schema 从本产品 v1 起,不沿用 Electron 12 |
| D06 算法 | 优先成熟 JVM 实现,建立跨实现 fixtures 和适配 | 不因同属 JVM 就整体引入 Java 应用依赖 |
| D07 更新 | 固定 next-compose 节点;先检查、下载、校验、打开本产品安装包 | 自动安装必须另有可验证的平台实现 |
| D08 视觉 | 默认 modern;保留 3 导航模式;其余外观风格后续阶段完整实现 | 风格未实现不能提供无效开关 |
上述决策不表示已经做过技术实验。D03、动态 Protobuf、截图/取色、Git、SVG helper 和安装身份是前置风险项,应优先做最小可行实验。
5. 分阶段路线图
阶段以退出条件判断,不以日期或代码行数判断。每个阶段只创建需要的组件和服务;避免先生成全套空模块。
| 阶段 | 输入与工作 | 退出条件 |
|---|---|---|
| P0 工具链与风险实验 | 冻结基线;独立 Gradle Wrapper/version catalog;打包 runtime;编辑器、窗口转移、SQLite、Protobuf 及平台能力实验 | 本机独立目录构建/启动/打包成功;关键实验有真实证据和架构结论;其他平台任务可在对应 runner 执行 |
| P1 桌面壳 | 导航 26 入口、搜索、modern 明暗、语言、设置基本项、分栏/状态栏、会话和窗口 | 重启恢复、设置同步、分离/收回、键盘流程可用;未实现工具明确显示开发状态 |
| P2 首个完整纵向工具 | JSON + 编辑器 + JSON Vault 基础 CRUD/保存、历史、查找/替换、格式/转换/JSONPath | F04 除明确列入 P6 的 Git 高级能力外逐项验收;3 MiB 用例可用;不能以格式化按钮代替整个阶段 |
| P3 本地文本与算法 | 编码、UA、时间、计算器、正则、Cron、Diff、配置、格式化、Protobuf | F02/F03/F06/F07/F12/F13/F15/F16/F18/F21 的 UI/语义/历史闭环;不可取消计算已隔离 |
| P4 媒体与加密 | Crypto、QR、颜色、图片、PDF、留言板 | F14/F17/F19/F22/F23/F24;字节兼容、真实文件、图片库、SVG 和权限场景完成 |
| P5 网络与系统 | HTTP、Host、网络、环境、翻译、系统信息 | F08–F11/F20/F25;受控服务器测试、真实进程/权限行为、离线失败和取消完成 |
| P6 文档与开发工作流 | 随手记完整工作区、附件、列编辑、JSON/随手记 Git、代码运行、备份/恢复、可选来源导入适配器 | F01/F05 与 A03 完成;冲突恢复、进程树终止、真实备份恢复;A01/A02 剩余设置与收藏闭环 |
| P7 产品完整验收 | 其余主题/导航偏好、性能/输入法、多平台安装、更新、并存升级/卸载、许可资源 | 所有必需条目已验收或有明确产品差异,候选包有平台证据;没有伪成功、无效按钮、跨产品依赖 |
P0 的实验要直接降低后续风险:
- 编辑器:5 MiB 中英混排;中文预编辑、emoji、Tab;矩形选择与跨行粘贴;撤销;复制;深色;弹层;分离/收回后继续撤销。
- 动态 proto:用户粘贴定义,经编译/解析得到 Descriptor,处理 nested/repeated/oneof/map/int64/bytes,再解码;不以预生成类通过实验。
- 平台:读取剪贴板图片、文件选择、托盘可用性、真实窗口坐标;截图/权限可单独列平台结果。
- 安装:自带运行时启动;确认不会出现第二个名为 MooTool.app 的同名覆盖;输出唯一应用 ID 与数据目录。
- 性能:壳首帧与交互时点分开测;重任务不能抢占 UI 线程;首次工具载入失败可重试。
若实验不通过,记录问题、尝试和下一项具体替代措施;仍可继续独立的工作,不能把“待评估”永远留到 P7。
6. 第一轮交给 Cursor 的具体任务
第一轮授权建议为 P0 + P1 + JSON 最小纵向切片,详细提示词见 Cursor 提示词。该切片只是 P2 的起点,不能标记完整 JSON 已完成。
交付至少包括:
- 自有
settings.gradle.kts、build.gradle.kts、gradle.properties、Wrapper、gradle/libs.versions.toml、composeApp/。 ProductIdentity、AppPaths、ToolRegistry、SettingsRepository、SessionManager和 window host。- 可调整侧栏、26 项注册表、命令搜索、modern 明暗、设置入口;工具壳仅渲染当前所需内容。
- 真实 JSON 导入、编辑、校验、格式化、压缩、查找、复制/导出、一次操作一次 undo、历史保存恢复。
- 中文输入、重启恢复、分离/收回、临时数据根的集成测试和本机安装镜像运行记录。
docs/evidence/实测材料、已确定版本组合、已知限制和下轮细分清单。
禁止用改 Electron/Java 源码来让 Compose 测试通过。技术示例不足时先查当前官方 API,不能编造 Gradle DSL、编辑器支持项或跨平台权限实现。
7. 维护规则
- 本目录 README 和 acceptance 是当前状态入口,规格中的“必须”不能批量替换成“已完成”。
- 设计差异编号
DIFF-xxx,技术决定编号ADR-xxx;在对应工具、验收表与记录中互链。 - 每项完成至少包含正常结果、关键错误、持久化/状态验证、必要视觉检查。纯样式可逆小改不额外写重复实现的单元测试。
- 后续正式发布才按根发布约定增量登记
next-compose;本次文档工作不修改根清单、不提交或发布版本。