Files
ClassIsland Prompt Kit 22c1784bab feat: ClassIsland / ClassHelper 灵动岛提示词套件
- 重构版主提示词(14 parts,面向 ClassHelper 灵动岛重构)
- ClassIsland 全量规格提示词(20 parts,含分卷与逐章版本)
- 投喂指南、分卷、逐节文件
- 调研记录、一致性基线、生成与质检脚本
2026-11-12 21:59:58 +08:00

8.8 KiB
Raw Permalink Blame History

ClassHelper 灵动岛重构:给 ChatGPT 的完整实现提示词

文档性质:这是一份「提示词」而非分析报告。请把本文件(或按章节分卷)投喂给 ChatGPT,要求它在 ClassHelper 现有仓库(LoveChengke/ClassHelper,pnpm monorepo,Electron + Vue 3)中,以 ClassIsland(ClassIsland/ClassIsland,C#/Avalonia)的灵动岛(主界面)为基准,重构 ClassHelper 的灵动岛子系统。不是从零新建项目,不重写服务端与管理端,不更换技术栈。

信息来源:ClassHelper 工作区源码(repos/ClassHelper-master)与 ClassIsland v2.1 源码(repos/ClassIsland)。文中所有确切数值、文件名、行为均尽量标注 packages/...:行号 或 repos/ClassIsland/...:行号;无源码依据处标注【推断】。ClassIsland 的源码只作为行为与视觉基准,不得把其 C#/Avalonia 代码、XAML、本地档案体系引入 ClassHelper。

重要纪律:本重构的一切自动验证(构建、冒烟、截图、动画检查)必须无头/离屏运行,禁止弹出可见窗口、禁止播放声音、禁止干扰用户桌面。ClassHelper 仓库默认的 verify:desktop / verify:packaged 就是后台快速检查,只有显式 --visual 才允许可见验收——重构后必须保持这一约定(见第 11、12 部分)。

使用说明(给人类读者,不投喂给模型)

  1. 投喂方式:全文约 12 万 tokens,建议按 out/投喂指南-重构版.md 的五卷/逐章方式投喂;一次性投喂需 ≥ 128k 上下文模型。投喂前请把 ClassHelper 仓库(或至少 packages/desktop-client、packages/shared、packages/ui、docs/)提供给 ChatGPT(作为代码上下文或附件)。
  2. 推荐开场:「请先阅读第 0–2 部分,复述你对现状、目标与 8 条裁决的理解;然后给出文件级重构计划(含迁移与回滚),等我确认后再按 M0–M7 逐阶段实现。」
  3. 证据约定:packages/...:行号 指 ClassHelper 仓库相对路径;repos/ClassIsland/...:行号 是 ClassIsland 基准来源(相对本工作区),只用于理解行为,不是运行时依赖。
  4. 验收纪律:任何「已完成」的声明都必须附带无头验证输出与第 12 部分的逐项勾选结果;未验证项必须标注。

0. 给 ChatGPT 的任务声明(从本节开始执行)

0.1 你的任务

你是一名资深 Electron + Vue 3 + TypeScript 桌面工程师,熟悉透明置顶窗口、逐像素自绘 UI、CSS 动画与主进程/渲染进程协作。你的任务是在 ClassHelper 现有 monorepo 中重构灵动岛(island)子系统:

  • 保留 ClassHelper 的工程结构、技术栈、服务端数据来源、既有业务规则与配置体系;
  • 以 ClassIsland 的灵动岛为视觉与行为基准,重构 ClassHelper 的 fixed(经典)与 custom(自定义常驻)两套布局的渲染、交互、动画、设置与编辑器;
  • 新增 winisland 兼容风格开关,使老用户可保留现有观感;默认使用 ClassIsland 风格;
  • 不新建应用、不重写服务端/数据库/Web 管理端、不引入新的 UI 框架。

最终交付是可合并进 ClassHelper 的代码改动 + 数据迁移 + 文档 + 无头测试 + 验收报告,而不是示例代码或原型。

0.2 不可协商的技术与工程约束

  1. 技术栈原样沿用:pnpm@11.8.0 monorepo;Electron ^44.3.0;Vue ^3.5.42;Element Plus ^2.14.5(仅设置/编辑器界面);Pinia ^4.0.3;Vue Router ^5.3.1;Vite ^8.3.0;TypeScript ~5.9.3;主进程/preload 用 esbuild,渲染层用 Vite。
  2. 包边界不变:packages/shared(类型/常量/纯函数/岛 schema)、packages/ui(共享控件/tokens)、packages/desktop-client(Electron 主进程 + preload + 主窗口渲染 + 独立岛渲染 island.html);服务端 packages/server 与 Web 管理端 packages/web-admin 不在本次改动范围。
  3. 岛窗口仍是独立透明 BrowserWindow + 独立 island.html 渲染入口 + 独立 island preload;主窗口设置页只作为编辑器入口,编辑预览不创建额外桌面窗口。
  4. 渲染层零 Node 权限:preload 仅暴露 contextBridge 白名单,不暴露 ipcRenderer;nodeIntegration:false、contextIsolation:true、sandbox:true。
  5. 禁止 setBackgroundMaterial() / vibrancy / backdrop-filter 等会破坏逐像素透明的 API;透明、圆角、阴影全部由 CSS 自绘。
  6. 数据来源不变:课表/时间点/通知/作业/叫人/课件仍来自 ClassHelper 服务端解析结果(ScheduleDto、IslandTimePointDto、IslandState、IslandNotification 等);不得引入 ClassIsland 的本地 Profile/ClassPlan 档案体系。
  7. 配置仍写入 config.json.islandLayout(本机,不同步服务端);新增字段必须可迁移、可回滚,旧 fixed/custom 配置无损升级。
  8. 既有硬约束必须保留:winisland 兼容形态下的连续圆角与投影常驻、触摸输入、失焦宽限、固定窗口几何护栏;所有形态下消息按 id 去重、通知/叫人双播不重复、课件传输优先、默认验证不创建可见岛或托盘、冒烟假执行不真关机。
  9. 所有自动验证无头执行;不得修改验收标准来「通过」;未验证项必须标注。

0.3 交付物

  • 代码:packages/shared、packages/desktop-client(main/preload/island/renderer)的改动;如涉及 packages/ui 的 token 复用也需提交。
  • 数据迁移:config.json.islandLayout 的版本化迁移函数、旧配置升级、失败回滚路径;不得丢失用户的 schemes/rows/nodes/外观设置。
  • 文档:更新 docs/app/island.md 与 docs/dev/implementation.md 的岛章节;新增本次重构的 docs/dev/island-refactor.md(架构、数据契约、动画表、迁移说明)。
  • 测试:无头单元测试(schema 迁移、normalize、消息队列、课程状态机)+ 组件测试(岛渲染快照)+ 既有无头 verify:desktop 的适配;视觉验收仅在 --visual 下执行。
  • 报告:第 12 部分验收清单逐项勾选;与 ClassIsland 的差异说明;未实现项与原因;性能数据(启动、空闲 CPU、内存、动画帧率)。

0.4 工作方式

  1. 先通读本提示词与 ClassHelper 相关源码,输出:①你对现状与目标的理解复述;②文件级重构计划(含每个文件的改动类型、接口变化、迁移与回滚);③你识别出的歧义点(一次性提问);④M0 的无头验证方案。
  2. 严格按第 13 部分的 M0–M7 顺序推进;每个里程碑结束都交付「可无头启动 + 通过该阶段验收 + 不回归既有功能」的状态。
  3. 每个模块完成后写清:改了什么、证据(文件/行号/行为变化)、未完成/推断项、验证方法与结果。
  4. 遇到本提示词未覆盖的细节:ClassHelper 既有行为优先(业务语义与既有交互),ClassIsland 规格优先(视觉、像素、动画);仍不明确时在代码与交付说明中标注【推断】。
  5. 不得顺手重构无关模块;保持 diff 可审阅、可回滚。

0.5 术语表

  • 灵动岛 / 岛(island):ClassHelper 的独立透明窗口与 island.html 渲染的悬浮界面。
  • fixed(经典):ClassHelper 现有「胶囊 + 详情卡」消息型布局。
  • custom(自定义常驻):ClassHelper 现有「多行 + 组件 + 组件方案」布局,常驻显示。
  • winisland:ClassHelper 现有观感(WinIsland 风格:连续圆角、胶囊 268×44、纯黑/毛玻璃/主题色渐变);作为兼容风格保留。
  • ClassIsland 风格:本重构的默认观感,按 ClassIsland 主界面的行/组件/像素/动画规格实现。
  • 行(row / line):承载组件的横向容器(对应 ClassIsland MainWindowLine)。
  • 组件(component / node):IslandComponentNode,最小显示单元(日期/时钟/天气/倒计时/课程表/文本/容器等)。
  • 方案(scheme):IslandLayoutScheme,一套常态 rows 与无消息展开 expandedRows 的组件布局。
  • 消息(message):通知/作业/叫人的统称(IslandNotification)。
  • 强提醒(Topmost effect):ClassIsland 的全屏强调特效窗口;本次以 Electron 独立窗口实现,不抢焦点、不阻塞。
  • 无头验证:不创建可见窗口/托盘/声音的自动化检查(ClassHelper 的 verify:desktop 默认模式)。

0.6 阅读顺序

0 → 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10 → 11 → 12 → 13。第 2 部分先建立现状地图,第 3 部分给出行为基准,第 4/5 部分给改造清单与数据迁移,第 6/7/10 部分给视觉、组件、动画规格,第 8/9 部分给消息与编辑器,第 11/12/13 部分给兼容、验收、里程碑。