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

93 lines
8.7 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.
# 投喂指南(重构版):把提示词交给 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 的现状、数据契约与迁移)。