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

105 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 团队总简报:反推 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` 工具读文本。