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

11 KiB
Raw Permalink Blame History

团队总简报:反推 ClassIsland 的「给 ChatGPT 的完整实现提示词」

0. 最终交付物

  • 主交付:D:\clword\ClassIsland-给ChatGPT的完整提示词.md(简体中文,由 Lead 汇总各 part 而成)。
  • 该文件是一份可以直接粘贴给 ChatGPT 的提示词:用户角色是「实现者」,提示词要求 ChatGPT 从零实现一个 ClassIsland 等价的桌面课表信息工具,技术栈采用 ClassHelper 的 Electron + Vue 3 技术栈(见 §4)。
  • 备选交付:out/ 下的分卷版(若有时间)。

1. 任务定义

  1. 深度研读 repos/ClassIsland(C# / .NET 8 / Avalonia / FluentAvalonia,ClassIsland v2.x 源码,含 MainWindow、Core、Shared、PluginSdk、平台层等)。
  2. 深度研读 repos/ClassHelper-master(TypeScript / pnpm monorepo / Electron 44 / Vue 3.5 / Element Plus / Pinia / Vite 8 / Socket.IO / Prisma,含 desktop-client 的「灵动岛」实现)。
  3. 把 ClassIsland 的全部功能、全部界面、全部动画、全部像素级参数反写成一份超详细的实现规格提示词;实现技术栈按 ClassHelper 的栈来写(必要处给出等价映射方案)。
  4. 输出不是分析报告,而是祈使句提示词:面向 ChatGPT 的实现任务书,要求「必须/不得/应当」,包含具体数值、文件结构、数据结构、交互、动画曲线、验收清单。

2. 硬性纪律(极重要)

  • 绝对禁止构建、运行、启动、截图、冒烟、smoke/verify 任何程序;禁止 dotnet build、dotnet run、pnpm dev、electron、npm、任何会弹窗或占用屏幕的命令。用户明确要求「不要打扰我,后台做好」。
  • 只允许静态分析:读文件(read 工具,UTF-8)、grep、glob、读取图片尺寸等不启动 UI 的操作。可以运行纯文本处理命令(如读取文件行数),但不得执行安装/构建/启动。
  • 不要修改 repos/ 下任何文件。只在 analysis/、parts/、out/ 写文件;不要动别人的文件。
  • 不要提交、不要联网克隆新仓库(需要的信息用已有文件 + 必要时 web_fetch 官方文档/README)。

3. 每个 part 文件的格式规范

文件路径:parts/NN-名称.md。文件内容仅包含该部分的正文,标题从 ## N. 标题 开始(一级标题由 Lead 汇总时生成)。

写作要求:

  • 简体中文;技术名词保留英文原名(如 FluentAvalonia、TransparencyLevelHint、Storyboard)。
  • 面向 ChatGPT 的实现指令:用「必须 / 不得 / 应当 / 需要」等祈使句;不要写「本项目如何如何」的旁观式分析。
  • 每个视觉/行为参数尽量给确切数值:宽高、Margin、Padding、CornerRadius、FontSize、FontWeight、颜色(HEX/资源名)、透明度、动画 Duration(毫秒)、缓动曲线(如 CubicEaseOut、0.65,0,0.35,1.0)、层级(ZIndex/窗口层级)、DPI/缩放规则。
  • 每个数值/行为尽量标注来源:repos/ClassIsland/ClassIsland/MainWindow.axaml:282 这种相对路径:行号;无法从源码确认的写【推断】。
  • 每个功能点建议覆盖:目的、默认值/默认行为、触发条件、UI 表现(像素级)、动画、边界/异常情况、数据结构(JSON 字段)、与其他模块的联动、验收标准。
  • 参照现有代码里的命名(MainWindow、MainWindowLine、Component、Profile、ClassPlan、TimeLayout、Notification、Automation、Ruleset、XamlTheme、Settings 等)。
  • 篇幅:不设上限,宁详勿略;但禁止空洞套话。目标每个 part 至少 3000 中文字,核心技术 part 6000+。

4. 技术栈事实(ClassHelper,实现时采用)

来自 repos/ClassHelper-master/package.json、pnpm-workspace.yaml、各 packages/*/package.json、AGENTS.md:

  • pnpm@11.8.0 monorepo,Node >= 20.19;根 package.json 为版本单一来源。
  • 包:packages/shared(三端共享类型/常量/权限/动效/岛方案与课件契约)、packages/ui(共享 Vue 控件、主题、tokens.css)、packages/desktop-client(Electron 主进程 + preload + 主窗口渲染进程 + 独立灵动岛渲染进程)、packages/server(Express 5 + Prisma 7 + Socket.IO,API 前缀 /api)、packages/web-admin(Vue 管理端 PWA)。
  • desktop-client 依赖:Electron ^44.3.0、Vue ^3.5.42、Element Plus ^2.14.5、Pinia ^4.0.3、Vue Router ^5.3.1、axios、socket.io-client、Vite ^8.3.0、TypeScript ~5.9.3、electron-builder 26。
  • 灵动岛实现要点(必须复用/对齐):独立 island.html 渲染入口 + 独立 BrowserWindow(透明、无边框、置顶、点击穿透、失焦宽限期等,见 src/main/island.ts);squircle.ts 连续圆角(超椭圆指数 4.2、每角 14 段);spring.ts 弹簧动画(stiffness 0.10、damping 0.68、换向动量保留 35%、单帧位移 ≤ 剩余距离 20%、snap 阈值 0.05px、60fps 帧单位);classic-island.css / custom-island.css;配置 config.json(主进程 config.ts);renderer/composables/motion.ts;renderer/styles/index.css 的 CSS token;IPC 走 contextBridge 白名单(src/preload/*)。
  • 安全约定:preload 只暴露 contextBridge 白名单、不暴露 ipcRenderer;保留 CSP;离线缓存隔离;不使用 setBackgroundMaterial() 破坏逐像素透明。
  • 后端在本任务中不要求(ClassIsland 是本地单机应用);如需数据层,优先采用本地文件 + IndexedDB(对齐 ClassHelper 客户端离线缓存模式),不要引入服务器依赖。若必须用到(可选),说明为可裁剪模块。

5. 术语表(统一用词)

  • 主界面 / 岛:ClassIsland 的悬浮课表窗口(MainWindow,可拆分为多行「岛」)。
  • 主界面行:MainWindowLine(一行;含组件集合、背景、进度条、遮罩、提醒气泡)。
  • 组件:Component(日期、时间、倒计时、课程表、天气、文本、滚动、堆叠、分组、分隔线等)。
  • 档案:Profile(一套课表/时间表/科目的配置,JSON 文件)。
  • 课表:ClassPlan(某周的每日课程);时间表:TimeLayout(时间点 TimeLayoutItem 列表)。
  • 时间点:TimeLayoutItem,类型 上课/课间/分割线/行动(OnClass/Breaking/Separator/Action)。
  • 提醒:Notification(NotificationRequest/NotificationProvider/NotificationHostService);强提醒:提醒特效(Topmost 全屏遮罩)。
  • 自动化:Automation(触发器 Trigger + 动作 Action + 规则集 Ruleset/Rule)。
  • 主题:XamlTheme(ClassIsland 用 XAML 资源字典;实现时映射为 CSS 变量 + 主题包,见 part 9)。
  • 设置:Settings(Settings.json,所有字段有默认值)。
  • 插件:Plugin(ClassIsland 的 .cipx/DLL 扩展;实现时映射为 npm 包/动态模块,见 part 12)。
  • 提醒优先级:NotificationPriority(Low/Medium/High 等,按源码)。

6. 分工与 part 对应

Part 内容 负责人 文件
01 总纲:产品定位、目标用户、体验原则、总体架构图 Lead parts/01-overview.md
02 技术栈与工程结构(ClassHelper 栈、目录、进程模型、构建) stack parts/02-tech-stack.md
03 设计系统 tokens(颜色/字体/字号/圆角/间距/阴影/层级/动效曲线/深浅色) design parts/03-design-tokens.md
04 主界面(岛)像素级规格:窗口、行、背景、进度、遮罩、编辑模式、隐藏/穿透、多显示器、右键菜单 ui-island parts/04-main-window.md
05 组件系统:全部组件逐个规格(含设置项、布局、动画) ui-island parts/05-components.md
06 课程表/时间表/档案/科目/周次/调课/导入导出 features parts/06-schedule-profile.md
07 提醒系统:提供者、队列、气泡、强提醒、音效、TTS、天气提醒 features parts/07-notifications.md
08 自动化:触发器/动作/规则集/条件 features parts/08-automation.md
09 主题系统:内置主题、主题包格式、壁纸取色、主题编辑器 design parts/09-themes.md
10 设置中心:页面树、每页控件与默认值、搜索、缓存策略 windows parts/10-settings.md
11 其他窗口:启动闪屏、欢迎向导 OOBE、通知中心、崩溃/恢复、数据迁移、更新、教程、作者/致谢等 windows parts/11-other-windows.md
12 插件系统 + 多进程 IPC + 单实例 + 自动更新(ClassHelper 映射) stack parts/12-plugins-ipc.md
13 数据模型与存储:Settings/Profile/ClassPlan/TimeLayout/Automation/Notification JSON schema、备份、迁移、路径 stack parts/13-data-storage.md
14 动画与动效总表:每个动画的触发、属性、时长、曲线、层级 design parts/14-animations.md
15 资源清单:图标、字体、音效、图片、本地化、主题预览 design parts/15-assets.md
16 质量门禁与验收清单 Lead parts/16-acceptance.md
17 开发里程碑与实现顺序 Lead parts/17-milestones.md
18 禁止事项与边界(禁止冒烟、性能底线等) Lead parts/18-forbidden.md

7. 产出质量自检(提交前逐条确认)

  • 所有关键数值有来源或标注【推断】,没有编造「看起来很精确」的数字。
  • 覆盖了该 part 对应源码目录的全部主要文件(列出已读文件清单在 analysis/ 备注中)。
  • 用词遵循术语表;part 之间不冲突(例如窗口圆角、动画时长、颜色 token 名)。
  • 有「验收标准」小节:实现者如何自查这一部分做对了。
  • 没有出现「我们可以/建议考虑」这类模糊表述。
  • 没有运行任何 UI/构建命令。

8. 参考入口(先读这些)

ClassIsland:

  • repos/ClassIsland/README.md、repos/ClassIsland/AGENTS.md、repos/ClassIsland/doc/(文档)
  • repos/ClassIsland/ClassIsland/MainWindow.axaml(686 行,主界面)、MainWindow.axaml.cs
  • repos/ClassIsland/ClassIsland/Models/Settings.cs(全部设置默认值)
  • repos/ClassIsland/ClassIsland/Controls/MainWindowLine.axaml
  • repos/ClassIsland/ClassIsland/XamlThemes/{FluentTheme,ClassicTheme}/(主题与样式)
  • repos/ClassIsland/ClassIsland/Controls/Components/(组件)
  • repos/ClassIsland/ClassIsland/Views/(全部窗口)
  • repos/ClassIsland/ClassIsland.Core/(框架、抽象、控件、服务)
  • repos/ClassIsland/ClassIsland/Assets/(图标/字体/音效/教程/Localization) ClassHelper:
  • repos/ClassHelper-master/AGENTS.md、README.md、docs/
  • repos/ClassHelper-master/packages/desktop-client/src/main/island.ts、config.ts、ipc.ts
  • repos/ClassHelper-master/packages/desktop-client/src/island/*(IslandApp.vue、spring.ts、squircle.ts、classic-island.css)
  • repos/ClassHelper-master/packages/desktop-client/src/preload/*、src/renderer/**
  • repos/ClassHelper-master/packages/ui/src/tokens.css、theme.css
  • repos/ClassHelper-master/packages/desktop-client/src/renderer/composables/motion.ts

提示:中文文件是 UTF-8;PowerShell Get-Content 可能乱码,请用 read 工具读文本。