feat: ClassIsland / ClassHelper 灵动岛提示词套件

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

No files matched your search

+92
View File
@@ -0,0 +1,92 @@
# 投喂指南(重构版):把提示词交给 ChatGPT,重构 ClassHelper 灵动岛
> 本指南配合主提示词 `ClassHelper灵动岛重构-给ChatGPT的完整提示词.md` 使用。该文件是**在 ClassHelper 现有仓库内做重构**的任务书,不是「从零新建 ClassIsland」。全文约 **26.8 万字符(去空白)、约 12.3 万 tokens**。
## 一、投喂前必须做的准备
1. **把 ClassHelper 仓库交给模型**:至少提供 `packages/desktop-client`、`packages/shared`、`packages/ui`、`docs/`(在 ChatGPT 里上传仓库压缩包/快照,或使用支持仓库上下文的 IDE Agent)。提示词中的 `packages/...:行号` 需要模型能读到源码才能落实。
2. **不需要提供 ClassIsland 仓库**:提示词已把 ClassIsland 的行为、像素与动画基准写全;`repos/ClassIsland/...` 只是证据来源说明。
3. **先约定工作方式**:只读分析 → 文件级计划 → 迁移先行 → 分阶段实现 → 每阶段无头验证;避免模型直接大改 UI。
4. **明确禁止**:不要运行 Electron / `pnpm dev` / `verify:desktop:visual` / 截图 / 冒烟等会弹窗的操作;默认 `verify:desktop` 是后台无头检查;用户要求静默(见提示词第 0.2、11、12 部分)。
## 二、交付物
| 文件 | 内容 | 用途 |
|---|---|---|
| `../ClassHelper灵动岛重构-给ChatGPT的完整提示词.md` | 主提示词(14 个 part:00–13,含目录) | 权威版本;长上下文一次投喂 |
| `vol1` ~ `vol5` | 5 个分卷 | 适合 32k–128k 上下文模型分批投喂 |
| `refactor-sections/` | 14 个独立 part | 逐章投喂、或只补某一章 |
| `../analysis/`、`../parts-r/` | 调研记录与源 part | 人工核对证据,不投喂 |
## 三、各 part 体量
| # | 内容 | 文件 | 字符(去空白) | 估算 tokens |
|---|---|---|---|---|
| 00 | 使用说明 + 给 ChatGPT 的任务声明(总入口) | `00-preamble.md` | 4349 | 2002 |
| 01 | 重构目标与范围(Keep/Change/Add/Remove、7 条裁决、成功标准) | `01-objective.md` | 5548 | 3076 |
| 02 | ClassHelper 灵动岛现状基线(文件级现状地图) | `02-current-state.md` | 20803 | 9312 |
| 03 | ClassIsland 灵动岛行为基准(行/组件/提醒/课程/隐藏/主题) | `03-classisland-baseline.md` | 16807 | 8918 |
| 04 | 目标架构与文件级改造清单(38 项 + IPC v2 + 顺序) | `04-file-plan.md` | 23457 | 10684 |
| 05 | 数据契约、schema v2 与配置迁移(islandLayout.version=2) | `05-data-migration.md` | 23721 | 10904 |
| 06 | 设计 tokens 与视觉基线(双风格:classisland 默认 / winisland 兼容) | `06-tokens.md` | 29545 | 11499 |
| 07 | 岛结构与组件规格(窗口/行/气泡/11+ 组件像素级) | `07-island-components.md` | 43882 | 18197 |
| 08 | 消息、提醒、课程提醒、强提醒、天气与课件覆盖 | `08-messages-lessons.md` | 22437 | 10853 |
| 09 | 编辑器与设置页重构(IslandSettingsView / IslandEditorView) | `09-editor-settings.md` | 37715 | 17118 |
| 10 | 动画与动效映射(现状基线 20 条 + 映射 84 条) | `10-animations.md` | 23809 | 11186 |
| 11 | 兼容性、性能、平台与测试基线 | `11-compat-tests.md` | 5252 | 2897 |
| 12 | 验收清单(逐项可勾选) | `12-acceptance.md` | 4132 | 2447 |
| 13 | 重构里程碑(M0–M7) | `13-milestones.md` | 2994 | 1696 |
> token 按「汉字 0.9、其他 0.3」粗算;实际以模型 tokenizer 为准。
## 四、三套投喂方案
### 方案 A:一次性投喂(上下文 ≥ 128k)
- 适用:GPT-5 级长上下文 / Gemini 2.5 Pro / Claude 长上下文等。
- 做法:粘贴主提示词全文,末尾追加:
> 请只在 ClassHelper 现有仓库内重构灵动岛,不要新建项目、不要改服务端。先通读第 0–2 部分并复述现状、目标与 7 条裁决;然后输出文件级重构计划(Keep/Change/Add/Remove、迁移与回滚、M0–M7 拆分)。确认后再写代码。禁止运行 Electron/冒烟/截图等会弹出窗口的操作;所有验证必须无头。
- 注意:长上下文也会「中间遗忘」,每个里程碑要求模型复述关键像素/动画值。
### 方案 B:五卷投喂(上下文 32k–128k)
1. `vol1`(任务声明 + 目标 + 现状)→ 要求模型输出:现状理解、现状问题清单、不可破坏契约。
2. `vol2`(ClassIsland 基准 + 文件级改造 + 数据迁移)→ 要求输出:文件级 diff 计划、schema v2 迁移算法、IPC 契约变更。
3. `vol3`(tokens + 岛/组件像素规格)→ 要求输出:DOM/CSS 结构、组件逐个实现清单、像素验收表。
4. `vol4`(消息/课程/强提醒 + 编辑器/设置)→ 要求输出:状态机、动画时间线、编辑器交互清单。
5. `vol5`(动画 + 兼容/测试 + 验收 + 里程碑)→ 要求输出:最终实施顺序、每阶段无头验证脚本、验收勾选表,然后从 M0 开始实现。
- 每批结束要求模型把「已确认参数」写进 `SPEC-LOCK.md`,下一批先复述。
### 方案 C:逐章投喂(上下文 32k–64k)
- 顺序:00+01+02 → 03 → 04+05 → 06 → 07 → 08 → 09 → 10 → 11+12+13。
- 每次投喂加一句:「只改本章涉及的文件;先复述本章关键数值与验收点,再动手;不得运行会弹出窗口的命令;不要重写其他模块。」
## 五、推荐的开场与追问
- 开场:「你在 ClassHelper 仓库中做**重构**,不是新建项目。请先阅读提示词第 0–2 部分与仓库中 `src/main/island.ts`、`src/island/*`、`packages/shared/src/island-layout.ts`,输出:①现状理解;②不可破坏契约;③文件级重构计划(含迁移/回滚);④M0 无头验证方案。先不要写代码。」
- 计划评审:「请给出 `packages/desktop-client/src/island/` 目标文件树,每个文件一句话职责,并标注它替换/新增/保留哪些现有文件。」
- 迁移评审:「请给出 `islandLayout` v1→v2 的迁移函数伪代码、幂等性论证、失败回滚路径和 fixtures 清单。」
- 像素评审:「请按第 6/7 部分输出 fixed 信息行(classisland 风格)与 custom 行的 DOM/CSS 变量清单,标注每个数值来源。」
- 动画评审:「请把第 10 部分的 84 条映射按 M0–M7 归类,给出每条的无头验证方法(不打开窗口)。」
- 无头验证:「请给出 `pnpm typecheck`、`pnpm verify:desktop` 的预期输出与失败排查;禁止 `--visual` 作为默认验证。」
- 交付前:「请对照第 12 部分逐项勾选,列出未通过项与原因;对照第 11 部分确认迁移/回滚/无头纪律。」
## 六、必须向模型强调的五件事
1. **这是重构**:保留 ClassHelper 技术栈、包边界、服务端数据源、既有业务规则与配置;不新建工程、不引入新框架。
2. **默认 ClassIsland 规格,老用户可回退**:`appearance.family='classisland'` 为默认;升级用户迁移为 `winisland`(fixed 保留旧胶囊);`custom` 始终 ClassIsland 规格(与 family 无关)。
3. **fixed 重定义**:classisland 下 fixed = 40px 信息行(默认日期 + 课程表,行内气泡,3px 进度条);胶囊 + 详情卡只在 winisland 保留。
4. **迁移先行**:先版本化 `islandLayout.version=2` + 备份/回滚 + fixtures,再改渲染;任何阶段都必须能切回旧渲染。
5. **不打扰纪律**:默认验证无头;不弹窗、不发声、不创建可见岛/托盘;不碰真实班级数据。
## 七、已知的「与 ClassIsland 原版差异」(模型需在交付说明中列出)
- Avalonia 窗口 → Electron 透明 BrowserWindow;窗口包围盒/命中/触摸沿用 ClassHelper 既有方案。
- 数据源:ClassHelper 服务端解析结果(`ScheduleDto`/`IslandTimePointDto`/通知/作业/叫人/课件),不引入 ClassIsland 本地档案。
- 插件/自动化/主题市场/管理端/Excel 导入/更新器不在本轮范围。
- 壁纸取色不实现;天气继续 Open-Meteo;强提醒为独立透明窗口实现。
- 视 ClassIsland 源码为行为基准,不复制其 C#/XAML 代码。
## 八、与上一份「ClassIsland 从零实现提示词」的关系
- 上一轮产物 `ClassIsland-给ChatGPT的完整提示词.md` 是**ClassIsland 全功能规格**(约 200k tokens),详细覆盖 ClassIsland 原版的组件、窗口、动画、设置等。
- 本重构提示词已把这些规格中**灵动岛相关**的部分改写为「ClassHelper 落地版」;只有当你需要补充 ClassIsland 原版细节(例如某个组件的完整设置项、ClassIsland 的窗口列表)时,才把上一份作为附录/参考资料一并投喂。
- 两份提示词的冲突以本重构提示词为准(因为它包含 ClassHelper 的现状、数据契约与迁移)。