# ClassIsland 复刻工程:给 ChatGPT 的完整实现提示词(ClassHelper 技术栈版) > **文档性质**:这是一份「提示词」而非分析报告。请把本文件(或按章节分卷)直接投喂给 ChatGPT,要求它按第 17 部分的里程碑从零实现一个 ClassIsland 等价应用;实现技术栈采用 ClassHelper 桌面端(Electron 44 + Vue 3.5 + Element Plus + Pinia + Vite 8 + TypeScript 5.9 + pnpm monorepo),以等价替换 ClassIsland 原项目的 C# / .NET 8 / Avalonia / FluentAvalonia / XAML。 > > **信息来源**:ClassIsland v2.1 源码(`repos/ClassIsland`,C#/Avalonia)与 ClassHelper 源码(`repos/ClassHelper-master`,TypeScript/Electron)。文中所有确切数值、资源名、行为均尽量标注 `文件:行号` 证据;无源码依据处标注【推断】。ClassIsland 的截图与文档仅用于校对视觉语义,不复制其代码。 > > **重要说明**:本提示词要求实现者的一切自动验证(构建、冒烟、截图、动画检查)必须**无头/离屏运行,禁止弹出可见窗口、禁止播放声音、禁止干扰用户桌面**。这是本项目的强制纪律,也是验收的一部分(见第 18 部分)。 ## 使用说明(给人类读者,不投喂给模型) 1. **整体投喂**:全文约 200k tokens,需使用上下文 ≥ 200k 的模型(如 GPT-5 级长上下文 / Gemini 2.5 Pro)才能一次粘贴;将本文件从「## 0.」到结尾整体粘贴,尾附一句:「请严格按此提示词实现,先给出实施计划与文件树,再按里程碑推进。」 2. **分卷投喂**:按 `## 0` + `## 1` + `## 2`(基础)→ `## 3`~`## 5`(视觉与组件)→ `## 6`~`## 8`(业务)→ `## 9`~`## 13`(系统与数据)→ `## 14`~`## 19`(动画、资源、验收)的顺序分批发送;每批发完后要求模型复述关键参数,避免长上下文丢失。 3. **推荐追问**:「请先输出 20 个你认为最可能歧义的点」「请给出 packages/desktop-client 的完整文件树与每个文件的职责」「请先实现 M0/M1 并给出无头验证脚本」。 4. **证据约定**:文中 `repos/ClassIsland/...` 与 `repos/ClassHelper-master/...` 是规格来源路径,不是让你照抄的运行时依赖;实现时应把这些规格转写为 TypeScript/CSS。 ## 目录 - 使用说明(给人类读者,不投喂给模型) - 0. 给 ChatGPT 的任务声明(从本节开始执行) - 1. 项目总纲:产品定位、总体体验与系统架构 - 1.1 你的角色与最终目标 - 1.2 产品定位 - 1.3 目标用户与典型场景 - 1.4 十条不可妥协的体验原则 - 1.5 功能全景(必须实现的模块) - 1.6 总体技术架构(ClassHelper 栈) - 1.7 信息架构与导航 - 1.8 首次启动与默认状态 - 1.9 本提示词的使用方式与验收总则 - 2. 技术栈与工程结构 - 2.1 技术选型总则(必须逐条遵守) - 2.2 依赖清单(版本必须按此锁定) - 2.3 仓库目录结构(必须逐项落地) - 2.4 进程模型(必须五类进程分离) - 2.5 构建管线(命令与产物必须一致) - 2.6 应用启动时序(必须按此顺序,不得提前读配置) - 2.7 窗口参数(像素级基线) - 2.8 主进程核心模块(ClassIsland 服务层在 Electron 下的等价物) - 2.9 渲染层挂载顺序(必须逐行对齐) - 2.10 岛渲染进程的技术约定(必须与 ClassIsland 视觉对齐) - 2.11 自动更新与打包(工程结构的一部分) - 2.12 ClassIsland → ClassHelper 技术映射决策表(必须按此实现) - 2.13 第三方库等价映射(.NET/Avalonia → npm,必须按此实现) - 2.14 共享包(`packages/shared`)的工程约定 - 2.15 共享 UI 包(`packages/ui`)与样式令牌工程 - 2.16 主进程并发与 I/O 纪律(直接决定"卡不卡") - 2.17 安全基线(不得为了"方便"削弱任何一条) - 2.18 环境变量、命令行参数与调试开关 - 2.19 性能预算(超预算必须优化,不得降级功能) - 2.20 本地化与文案工程 - 2.21 验收标准(第 2 部分) - 3. 设计系统 Token 总表(颜色 / 字体 / 圆角 / 间距 / 阴影 / 层级 / DPI / 深浅色) - 3.1 颜色 Token - 3.2 字体 Token - 3.3 圆角 Token - 3.4 间距 Token - 3.5 透明与模糊 Token - 3.6 层级(z-index)Token - 3.7 DPI 与缩放规则 - 3.8 深浅色规则 - 3.9 ClassHelper 侧落点(实现映射表) - 3.10 落地顺序与常见错误 - 3.11 验收标准 - 4. 主界面(岛):窗口、行、背景、进度、遮罩、编辑模式 - 4.1 术语与实现映射总则 - 4.2 窗口(BrowserWindow)逐项规格 - 4.3 几何:包围盒、可见内容盒与编辑画布 - 4.4 DOM 层级与 CSS 变量 - 4.5 主界面行(MainWindowLine) - 4.6 主界面的缩放(裁决:只做缩放,不做平移) - 4.7 提醒宿主、遮罩与进度条(行内) - 4.8 编辑模式 - 4.9 隐藏与显示规则(完整判定) - 4.10 右键菜单(原生菜单)与托盘 - 4.11 本部分动画总表(照此实现,不得自创) - 4.12 验收标准 - 5. 组件系统:全部内置组件逐个规格 - 5.1 组件系统总则 - 5.2 日期(DateComponent) - 5.3 时钟(ClockComponent) - 5.4 倒计时(CountDownComponent) - 5.5 课程表(ScheduleComponent) - 5.6 天气简报(WeatherComponent) - 5.7 文本(TextComponent) - 5.8 滚动容器(RollingComponent) - 5.9 轮播容器(SlideComponent) - 5.10 分组容器(GroupComponent) - 5.11 堆叠容器(StackComponent) - 5.12 分割线(SeparatorComponent) - 5.13 组件设置 UI(组件设置页 + 高级设置页) - 5.14 空数据与异常兜底(逐组件) - 5.15 Vue 组件结构与 CSS 变量 - 5.16 验收标准 - 6. 课程表 / 时间表 / 档案 / 科目 / 周次 / 调课 / 导入导出 - 6.1 数据结构(必须逐字段实现) - 6.2 当天应使用哪张课表:选择算法(必须逐分支实现) - 6.3 时间状态机与课程计算(主循环) - 6.4 周次轮换(单双周 / 多周) - 6.5 时间表编辑(档案编辑窗口 · 时间表页) - 6.6 课表编辑页与「换课 / 调课 / 临时层」 - 6.7 档案管理(多档案) - 6.8 科目管理 - 6.9 导入 / 导出 - 6.10 附加设置(AttachedObjects)模型 - 6.11 档案分析(可视化辅助) - 6.12 边界与异常(必须处理) - 6.13 验收标准 - 7. 提醒系统(队列、提供者、气泡、强提醒、音效与 TTS) - 7.1 核心数据结构 - 7.2 队列、优先级与去重(最终确定语义) - 7.3 提供者与渠道注册 - 7.4 内置提供者行为(逐个实现) - 7.5 消费者(谁负责显示) - 7.6 播放流程(气泡两阶段 + 状态机) - 7.7 气泡视觉与动画参数(像素级) - 7.8 强提醒:全屏强调特效 - 7.9 声音、语音与音量 - 7.10 取消与清理 - 7.11 设置页(提醒)UI 规格 - 7.12 边界与异常(必须处理) - 7.13 验收标准 - 7.14 天气服务与数据模型 - 8. 自动化(触发器 / 行动 / 规则集) - 8.1 概念与总开关 - 8.2 数据结构(必须逐字段实现) - 8.3 加载与生命周期(必须实现资源纪律) - 8.4 执行语义(触发 / 规则 / 恢复 / 中断) - 8.5 内置行动(逐个实现,共 8 个) - 8.6 内置触发器(逐个实现,共 12 个) - 8.7 规则集求值(算法必须逐字实现) - 8.8 内置规则(逐个实现,共 15 个) - 8.9 时间点行动(TimeType = 3) - 8.10 设置页 UI(自动化) - 8.11 边界与异常(必须处理) - 8.12 验收标准 - 9. 主题系统(内置主题、主题包格式、壁纸取色、主题预览、自定义颜色) - 9.1 应用主题(明暗 + 强调色) - 9.2 内置主界面主题 - 9.3 主题包格式(必须实现安装/卸载/打包/市场) - 9.4 主题包在 ClassHelper 栈中的落地格式(CSS 版) - 9.5 XAML 主题 → CSS 主题的映射规则 - 9.6 壁纸/屏幕取色 - 9.7 自定义颜色(用户手动覆盖) - 9.8 主题预览卡片(主题市场 UI) - 9.9 ClassHelper 侧映射 - 9.10 外观设置页(主题相关控件的精确规格) - 9.11 主题调试、兼容性与安全边界 - 9.12 验收标准 - 10. 设置中心 - 10.1 设置窗口外壳(必须逐像素对齐) - 10.2 导航结构(左侧 NavigationView) - 10.3 页面容器与通用控件(必须映射到 Element Plus) - 10.4 每个设置页的逐项规格 - 10.5 设置持久化、缓存与叠层(行为级要求) - 10.6 键盘与交互细节 - 10.7 验收标准 - 11. 其它窗口与向导(闪屏 / OOBE / 崩溃 / 恢复 / 更新 / 换课 / 导入导出 / 迁移 / 教程 / 授权 / 日志) - 11.1 通用窗口规则(所有窗口必须遵守) - 11.2 欢迎向导(OOBE)`WelcomeWindow` - 11.3 启动闪屏 `SplashWindow` - 11.4 崩溃窗口 `CrashWindow` - 11.5 恢复模式 `RecoveryWindow` 与恢复页 - 11.6 更新相关窗口与流程 - 11.7 换课窗口 `ClassChangingWindow` - 11.8 课表详细信息 `ClassPlanDetailsWindow` - 11.9 Excel 导入向导 `ExcelImportWindow` - 11.10 Excel 导出窗口 `ExcelExportWindow` - 11.11 数据迁移 `DataTransferWindow` / `DataTransferPage` - 11.12 授权窗口 `AuthorizeWindow` 与集控加入对话框 - 11.13 教学(教程)窗口组 - 11.14 日志窗口 `AppLogsWindow` - 11.15 其余窗口与对话框(逐个规格) - 11.16 全局快捷键与关闭行为总表 - 11.17 验收标准 - 12. 插件系统、跨进程通信、单实例与自动更新 - 12.1 目标与边界 - 12.2 ClassIsland 插件体系事实(必须对齐的语义) - 12.3 本实现的插件规范(必须逐项落地) - 12.4 跨进程通信(IPC)设计(必须完整实现) - 12.5 单实例与 URI 协议(必须实现) - 12.6 自动更新(必须按此流程实现) - 12.7 崩溃自愈与看门狗(必须实现) - 12.8 验收标准(第 12 部分) - 13. 数据模型、存储、备份与迁移 - 13.1 存储总则(必须遵守) - 13.2 目录与文件清单(必须逐项命名一致) - 13.3 `config.json` 完整 schema(字段级,含默认值) - 13.4 档案(Profile)schema — 与 ClassIsland 完全同构 - 13.5 组件布局(ComponentProfile)schema - 13.6 自动化配置 schema - 13.7 提醒数据 - 13.8 主题数据 - 13.9 其他存储 - 13.10 备份、恢复与迁移(必须实现) - 13.11 读写一致性与错误处理 - 13.12 天气数据 schema(与 07 天气服务对齐) - 13.13 验收标准(第 13 部分) - 14. 动画与动效总表 - 14.0 全局动效规则 - 14.1 A. 主界面(岛)动效 - 14.2 B. 提醒与强提醒动效 - 14.3 C. 启动、OOBE、欢迎动效 - 14.4 D. 弹层、抽屉、列表与设置动效 - 14.5 E. 组件动效 - 14.6 F. ClassHelper 既有动效(必须复用,不得重造) - 14.7 实现方式规范(必须遵守) - 14.8 与源码的差异说明(必须写进实现注释) - 14.9 验收标准 - 15. 资源清单(图标 / 字体 / 音效 / 天气图标 / 教程 / 本地化) - 15.1 应用图标 - 15.2 字体 - 15.3 音效 - 15.4 天气图标(4 套模板) - 15.5 贴纸资源(HoYoStickers) - 15.6 教程资源 - 15.7 本地化 - 15.8 其他资源与文档 - 15.9 ClassHelper 侧资源落点 - 15.10 资源命名、加载与缓存规范 - 15.11 资源版本与许可核对 - 15.12 验收标准 - 16. 质量门禁与验收清单 - 16.1 工程与构建门禁 - 16.2 像素级视觉验收(主界面) - 16.3 功能行为验收(按模块) - 16.4 动画验收 - 16.5 数据完整性与容错 - 16.6 性能与资源 - 16.7 平台与兼容性 - 16.8 安全验收 - 16.9 交付物清单 - 17. 开发里程碑与实现顺序 - M0 工程脚手架与进程骨架(0.5–1 天) - M1 岛窗口 + 时钟引擎 + 基础显示(1–2 天) - M2 组件系统(2–3 天) - M3 课程表与档案系统(3–4 天) - M4 提醒系统(2–3 天) - M5 设置中心 + OOBE(2–3 天) - M6 主题系统(+ 可选壁纸取色 P2)(1–2 天) - M7 自动化 + 天气 + 高级窗口(2–3 天) - M8 插件、更新、恢复与打磨(2–4 天) - 里程碑总览表 - 18. 禁止事项与实现边界 - 18.1 关于「不打扰」的硬性要求 - 18.2 技术红线 - 18.3 数据与安全红线 - 18.4 质量与流程红线 - 18.5 本提示词未明确时的裁决顺序 - 19. 结语(给实现者的最后要求) ## 0. 给 ChatGPT 的任务声明(从本节开始执行) ### 0.1 你的任务 从零实现一个名为 **ClassIsland**(实现代号 `classisland-ts`)的跨平台桌面应用:它常驻班级多媒体屏幕,以悬浮「岛」显示当天课表、当前课程、倒计时、日期时间、天气等信息;在上下课等重要时间点发出包含音效、语音与全屏特效的提醒;并提供课表编辑、档案管理、组件系统、主题、自动化、插件、自动更新等完整能力。灵感来源是 iOS 灵动岛(Dynamic Island),但它是为教室大屏与「不打扰授课」场景重新设计的桌面工具。 你必须交付**可安装、可离线运行、可长时间无人值守运行**的 Electron 应用,而不是网页 Demo 或原型。视觉与交互规格必须严格按本提示词执行,尤其是第 3(设计 tokens)、4(主界面)、5(组件)、14(动画)部分中的数值。 ### 0.2 不可协商的技术栈 - pnpm@11.8.0 monorepo;Node.js >= 20.19;TypeScript ~5.9.3(strict)。 - Electron ^44.3.0 + electron-builder ^26.15.3;主进程/preload 用 esbuild 打包,渲染层用 Vite ^8.3.0 多入口(`index.html` 应用窗口、`island.html` 岛)。 - Vue ^3.5.42 + Vue Router ^5.3.1 + Pinia ^4.0.3;Element Plus ^2.14.5 仅用于设置/管理类界面,**不得进入岛的渲染进程**。 - 三个进程角色:主进程(窗口/调度/配置/更新/IPC)、岛渲染进程(常驻、透明、逐像素自绘)、应用窗口渲染进程(按需创建)。 - 复用 ClassHelper 已验证的实现模式:独立 `island.html` + 独立透明 BrowserWindow、连续圆角 `squircle.ts`、弹簧动画 `spring.ts`、`config.json` 原子读写、contextBridge 白名单、`tokens.css` 设计变量、自研 `auto-update.ts`(禁止 electron-updater)、崩溃守卫 `crash-guard.ts`。 - 不引入服务端依赖;所有业务数据本地存储;可选管理端联动只能作为 P2 可裁剪子包。 ### 0.3 硬性纪律(违反即不合格) 1. 所有自动验证必须无头/离屏执行;不得显示可见窗口、托盘气泡、系统通知或声音;需要人工观察的验证用显式 `--visual` 参数开启且不得作为默认。 2. 渲染层零 Node 权限:preload 只暴露 contextBridge 白名单,不暴露 `ipcRenderer`;`nodeIntegration=false`、`contextIsolation=true`、`sandbox=true`。 3. 主窗口(岛)不得抢焦点、默认不进入任务栏;不得使用 `setBackgroundMaterial()` 等破坏逐像素透明的 API。 4. 动画必须 60fps:优先 transform/opacity,禁止 `setInterval` 逐帧驱动、禁止逐帧改布局属性。 5. 核心功能离线可用;数据写入原子化并自动备份;迁移前先备份。 6. 不得伪造验收结果;未验证项必须显式标注。 ### 0.4 交付物 - 完整源码 + `pnpm-lock.yaml` + 构建/打包脚本;`README.md` 含运行、构建、打包、数据目录说明。 - `docs/architecture.md`、`docs/data-schema.md`、`docs/plugin-api.md`、`docs/theme-api.md`。 - 至少 1 个示例课表档案、1 个示例主题、1 个示例插件(P1)。 - 无头测试(单元 + 组件 + 端到端)与第 16 部分的验收报告。 ### 0.5 工作方式 1. 通读本提示词后,先输出:实施计划、完整文件树、你识别出的歧义点(一次性提问)。 2. 按第 17 部分的 M0→M8 顺序实现;每个里程碑结束都交付「可无头启动 + 通过该阶段验收」的状态。 3. 每完成一个模块,写清楚:实现了什么、证据(文件与行号)、未实现/推断项、如何验证。 4. 遇到本提示词未覆盖的细节:按第 18.5 节的优先级裁决,并在代码注释标注「推断」。 5. 不得把不同模块混在一起「顺手重构」;保持提交/变更范围单一、可回滚。 ### 0.6 术语与阅读顺序 - **岛(Island / MainWindow)**:常驻悬浮主界面;由一行或多行「行(Line)」组成。 - **行(MainWindowLine)**:承载组件的横向容器,拥有自己的背景、进度条、遮罩与提醒气泡。 - **组件(Component)**:最小显示单元(日期、时钟、倒计时、课程表、天气等),可嵌套。 - **档案(Profile)**:一套课表/时间表/科目的配置集合,对应一个 JSON 文件。 - **课表(ClassPlan)** 与 **时间表(TimeLayout)**:见第 6 部分。 - **提醒(Notification)**、**自动化(Automation)**、**规则集(Ruleset)**、**主题(XamlTheme→CSS 主题包)**、**插件(Plugin)**:见对应章节。 - 阅读顺序:0 → 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10 → 11 → 12 → 13 → 14 → 15 → 16 → 17 → 18 → 19。 --- ## 1. 项目总纲:产品定位、总体体验与系统架构 ### 1.1 你的角色与最终目标 你是一名资深跨平台桌面应用工程师,精通 Electron、Vue 3、TypeScript 与现代桌面 UI 动效实现。你的任务是从零实现一个**班级多媒体屏幕课表信息显示工具**,本提示词称其为 **ClassIsland(实现代号 `classisland-ts`)**。它常驻在教室大屏/讲台电脑上,以悬浮「岛」的形式显示当天课表、当前课程、倒计时、天气、日期时间等信息,并在上课、下课、课前准备、放学、天气变化等重要时间点发出提醒,同时提供课表编辑、组件自定义、主题、自动化、插件扩展等一整套能力。 最终交付必须是一个**可安装、可离线运行、可长时间无人值守运行**的 Windows / macOS / Linux 桌面应用,而不是网页 Demo。你必须严格按本提示词的数值、交互、动画与数据结构实现;凡本提示词给出确切数值的地方,不得用「差不多」的默认样式替代。 ### 1.2 产品定位 - 一句话定位:**给班级多媒体屏幕用的、灵感来自 iOS 灵动岛的课表与班级信息悬浮显示工具。** - 使用环境:Windows 10+(主目标)、macOS 11+、Linux X11(不支持 Wayland);屏幕常见 1920×1080、2560×1440、3840×2160,缩放 100%–200%,也可能是希沃等触摸一体机。 - 使用方式:开机自启,常驻桌面最上层;上课时悬浮在课件上方但不遮挡关键内容;教师可通过右键菜单/托盘快速进入编辑、换课、设置;放学后可由自动化或管理策略隐藏。 - 核心价值:**零打扰**(不弹系统级窗口、不抢焦点、可点击穿透)、**秒级准确**(网络对时 + 本地时钟补偿)、**一眼可读**(大字号、强对比、信息分层)、**完全可定制**(组件、主题、课表、提醒、自动化)。 - 明确不是:不是 Web 管理系统、不是手机 App、不是需要登录云服务的 SaaS。除天气、更新、可选管理端外,全部功能必须离线可用。 ### 1.3 目标用户与典型场景 1. **班主任/任课老师**:用 Excel 导入课表,设置单双周/多周轮换、临时换课;设置上下课提醒音效与语音;用自动化在午休时关闭屏幕。 2. **电教委员/学生**:日常只看岛,不需要任何操作;断网、重启后应用自动恢复;不误触、不遮挡投影。 3. **学校管理员**:通过主题/配置批量部署;可选管理端下发策略(本提示词的 P2 可选模块,默认不依赖服务器)。 4. **插件开发者**:按插件规范扩展组件、提醒提供者、自动化触发器/行动、设置页。 ### 1.4 十条不可妥协的体验原则 1. **像素级还原本提示词的视觉规格**:圆角、透明度、字号阶梯、间距、进度条、阴影必须逐项落实;默认参数见第 3、4 部分。 2. **绝不打扰授课**:主窗口默认不抢焦点(`show: false` 显示、`focusable: false`)、不进入任务栏、可配置鼠标穿透;任何自动验证/冒烟必须无头运行,不得创建可见窗口。 3. **60fps 丝滑动画**:所有过渡优先使用 CSS transform/opacity(合成层),禁止用 JS 逐帧改布局;弹簧动画采用本提示词给定的物理参数。 4. **时间必须准**:所有课程状态以「带补偿的当前时间」计算;支持 NTP 对时、手动时间偏移、时间倍速调试;跨天、跨周、闰秒、系统休眠唤醒都要正确。 5. **离线优先、数据安全**:配置、课表、提醒全部本地存储;写入采用原子替换 + 自动备份;任何迁移前先备份,迁移失败可回滚。 6. **组件化与可组合**:主界面的每一行、每一个显示单元都是组件;组件可嵌套(分组/堆叠/滚动/滑动)、可单独设置、可按规则隐藏。 7. **默认即好看**:首次启动走完 OOBE 后,即使不导入课表也要显示一个可用的岛(日期、时间、欢迎信息),不能白屏。 8. **可恢复**:渲染进程崩溃、GPU 崩溃、配置损坏、误删数据时,应用必须能自愈或进入恢复模式;崩溃后不得反复重启刷屏。 9. **可扩展**:插件/主题/提醒提供者/自动化行动全部通过注册表扩展,核心不写死;公共 API 保持向后兼容。 10. **可访问与本地化**:中文为默认语言(ClassIsland 2.1 的界面文案为硬编码中文);支持高对比、减少动画(`AnimationLevel`)、键盘操作、触摸操作;文案集中到常量/词条文件,预留 i18n key 体系,不得把字符串散落在组件里。 ### 1.5 功能全景(必须实现的模块) > 优先级:P0 = 首版必须;P1 = 首个稳定版必须;P2 = 可分期但提示词要求预留架构。 | 模块 | 能力清单 | 优先级 | |---|---|---| | 主界面(岛) | 多行岛、背景/圆角/透明度/毛玻璃、课程信息行、进度条、倒计时、遮罩/提醒宿主、编辑模式、隐藏规则、点击穿透、多显示器停靠、缩放、窗口置顶 | P0 | | 组件系统 | 日期、时钟、倒计时、课程表、天气、文本、滚动、滑动、堆叠、分组、分隔线、容器;组件设置、显示/隐藏规则、多行组件、轮播 | P0 | | 课程表与档案 | 时间表(节次/课间/分割线/行动)、课表(单日/多日/周模板)、多周轮换(1–9 周)、科目与教师、临时课表/预定课表、单日与跨天换课、CSES 导入导出(P0)、Excel 导入导出(P1,用 xlsx 重建;ClassIsland 2.1 源码中该功能被 `#if false` 停用,布局仅作参考)、多档案 | P0/P1 | | 提醒系统 | 提醒队列与优先级、上/下课/课前/放学提醒、天气类提醒、自定义提醒、气泡与强提醒特效、音效、TTS 语音、提醒历史与清除(ClassIsland 2.1 无独立「静音时段」;只有全局提醒开关与 `-q` 静默启动后 10s 丢弃提醒,不得虚构静音时段,P2 扩展需默认关闭) | P0 | | 设置中心 | 通用/外观/组件/提醒/自动化/天气/窗口/时钟/主题/更新/存储/插件/管理/隐私/高级/关于/调试,即时保存、设置覆盖层、按注册顺序导航(ClassIsland 2.1 无搜索框,本实现不编造搜索;如需可标 P2 增强) | P0 | | OOBE 向导 | 8 页:欢迎、许可、翻新/迎新、基本、颜色、外观、系统、完成;可跳过、可重复打开 | P0 | | 主题系统 | 内置 Fluent/Classic 两套主题、主题包(CSS 变量 + 资源 + 预览图)、自定义强调色/背景色/前景色、深浅色跟随系统;壁纸取色在 ClassIsland 2.1 中已整体停用(`WallpaperPickingService` 全文 `#if false`,设置页对应项禁用隐藏),本实现只作为 P2 实验性能力(默认关闭、给算法与数据结构、不纳入 P1 验收) | P1(壁纸取色 P2) | | 自动化 | 触发器(时间点/CRON/信号/URI/托盘菜单/窗口状态/当前课程/天气/日出日落)、行动(提醒/运行程序/打开文件网页/关机/睡眠/重启/修改设置/广播信号/切换课表等)、规则集(嵌套条件) | P1 | | 天气 | 当前天气、逐小时/未来 3 天预报、降水提醒、极端天气预警、定位/城市选择、天气图标主题 | P1 | | 插件系统 | 插件包格式、清单、权限、生命周期、组件/提醒/触发器/行动/设置页扩展点、插件市场(可选)、启用/禁用/更新 | P1 | | 调试与诊断 | 日志查看、配置校验、崩溃上报(可选 Sentry)、渲染模式切换、时间调试、动画调试、窗口规则调试、教程系统 | P1 | | 更新与运维 | 自动检查更新、镜像/通道、断点下载、哈希校验、静默安装、崩溃恢复、单实例、开机自启 | P1 | | 管理端联动 | 可选远程策略、管理凭据、通知通道(P2,默认关闭且不得成为运行前置依赖) | P2 | ### 1.6 总体技术架构(ClassHelper 栈) **必须采用 ClassHelper 的技术栈与工程约定**(来源:`repos/ClassHelper-master/package.json`、`pnpm-workspace.yaml`、各 `packages/*/package.json`、`AGENTS.md`): - 包管理器:`pnpm@11.8.0`,Node.js >= 20.19;根 `package.json` 为版本单一来源。 - 语言:TypeScript ~5.9.3,开启 `strict`;Vue 3.5 SFC(`