feat: ClassIsland / ClassHelper 灵动岛提示词套件
- 重构版主提示词(14 parts,面向 ClassHelper 灵动岛重构) - ClassIsland 全量规格提示词(20 parts,含分卷与逐章版本) - 投喂指南、分卷、逐节文件 - 调研记录、一致性基线、生成与质检脚本
This commit is contained in:
commit
22c1784bab
117 files changed
+47759
No files matched your search
@@ -0,0 +1,104 @@
|
||||
# 团队总简报:反推 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` 工具读文本。
|
||||
Reference in new issue
Block a user