- 重构版主提示词(14 parts,面向 ClassHelper 灵动岛重构) - ClassIsland 全量规格提示词(20 parts,含分卷与逐章版本) - 投喂指南、分卷、逐节文件 - 调研记录、一致性基线、生成与质检脚本
8.7 KiB
8.7 KiB
投喂指南(重构版):把提示词交给 ChatGPT,重构 ClassHelper 灵动岛
本指南配合主提示词
ClassHelper灵动岛重构-给ChatGPT的完整提示词.md使用。该文件是在 ClassHelper 现有仓库内做重构的任务书,不是「从零新建 ClassIsland」。全文约 26.8 万字符(去空白)、约 12.3 万 tokens。
一、投喂前必须做的准备
- 把 ClassHelper 仓库交给模型:至少提供
packages/desktop-client、packages/shared、packages/ui、docs/(在 ChatGPT 里上传仓库压缩包/快照,或使用支持仓库上下文的 IDE Agent)。提示词中的packages/...:行号需要模型能读到源码才能落实。 - 不需要提供 ClassIsland 仓库:提示词已把 ClassIsland 的行为、像素与动画基准写全;
repos/ClassIsland/...只是证据来源说明。 - 先约定工作方式:只读分析 → 文件级计划 → 迁移先行 → 分阶段实现 → 每阶段无头验证;避免模型直接大改 UI。
- 明确禁止:不要运行 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)
vol1(任务声明 + 目标 + 现状)→ 要求模型输出:现状理解、现状问题清单、不可破坏契约。vol2(ClassIsland 基准 + 文件级改造 + 数据迁移)→ 要求输出:文件级 diff 计划、schema v2 迁移算法、IPC 契约变更。vol3(tokens + 岛/组件像素规格)→ 要求输出:DOM/CSS 结构、组件逐个实现清单、像素验收表。vol4(消息/课程/强提醒 + 编辑器/设置)→ 要求输出:状态机、动画时间线、编辑器交互清单。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/目标文件树,每个文件一句话职责,并标注它替换/新增/保留哪些现有文件。」 - 迁移评审:「请给出
islandLayoutv1→v2 的迁移函数伪代码、幂等性论证、失败回滚路径和 fixtures 清单。」 - 像素评审:「请按第 6/7 部分输出 fixed 信息行(classisland 风格)与 custom 行的 DOM/CSS 变量清单,标注每个数值来源。」
- 动画评审:「请把第 10 部分的 84 条映射按 M0–M7 归类,给出每条的无头验证方法(不打开窗口)。」
- 无头验证:「请给出
pnpm typecheck、pnpm verify:desktop的预期输出与失败排查;禁止--visual作为默认验证。」 - 交付前:「请对照第 12 部分逐项勾选,列出未通过项与原因;对照第 11 部分确认迁移/回滚/无头纪律。」
六、必须向模型强调的五件事
- 这是重构:保留 ClassHelper 技术栈、包边界、服务端数据源、既有业务规则与配置;不新建工程、不引入新框架。
- 默认 ClassIsland 规格,老用户可回退:
appearance.family='classisland'为默认;升级用户迁移为winisland(fixed 保留旧胶囊);custom始终 ClassIsland 规格(与 family 无关)。 - fixed 重定义:classisland 下 fixed = 40px 信息行(默认日期 + 课程表,行内气泡,3px 进度条);胶囊 + 详情卡只在 winisland 保留。
- 迁移先行:先版本化
islandLayout.version=2+ 备份/回滚 + fixtures,再改渲染;任何阶段都必须能切回旧渲染。 - 不打扰纪律:默认验证无头;不弹窗、不发声、不创建可见岛/托盘;不碰真实班级数据。
七、已知的「与 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 的现状、数据契约与迁移)。