skill存档

Kecheng-Yugao-Skill 使用说明书

Skill 名称:Kecheng-Yugao-Skill(内部调用 ID:kecheng-yugao-skill
当前适用项目:课程预告文本与课程海报批量制作

自动触发条件:用户输入中只要包含“课程预告”“课程预告文本”或“课程预告海报”中的任一短语,就应自动调用本 Skill。也可以使用 $kecheng-yugao-skill 显式调用。

更新时间:2026-08-11

1. 这个 Skill 是什么

Kecheng-Yugao-Skill 用于把“查看课表、整理 Word 预告、补充课程详情、 修改课程海报、保存 PSD、检查成品”组织成一个有审批停点和质量检查的重复生产 流程。

它不是后台定时任务,也不会在无人确认的情况下自动发布内容。它由用户在 Codex 中主动调用,每次处理一个明确日期。

2. 可以做什么

2.1 日常课程预告

2.2 课表临时变更

适用于:

Skill 会按“标准化班级+标准化课程名称”定位课程,不按 Word 段落序号修改。 修改后会比较前后 manifest,并检查是否误改了其他课程。

直播/录播和时间会一起展示。例如:

原状态:直播 19:30
新状态:录播 12:00

用户只说“改为录播”但没有可靠新时间时,Skill 会询问时间,不会自行推断。

2.3 文本模板管理

2.4 海报模板管理

2.5 教师人物形象管理

2.6 PSD 处理和交付保护

3. 适用场景

推荐在以下场景使用:

  1. 每天或每周固定制作课程预告;
  2. 多个班级使用不同课表,需要统一整理某一天课程;
  3. 课程介绍分散在多份历史 Word 中;
  4. 海报需要沿用旧设计,只替换课程文字、日期和时间;
  5. 不同课程需要使用不同版本的海报模板;
  6. 教师人物形象会新增或替换;
  7. 需要保留可编辑 PSD,但希望每门课程只长期保存一份;
  8. 需要防止课表临时变更误修改其他课程;
  9. 需要对新 Word 样式或新海报样式进行版本管理。

不适合的场景:

4. 安装方式

4.1 推荐:安装到课程项目中

把完整 Skill 文件夹放到项目根目录:

<项目根目录>/.codex/skills/kecheng-yugao-skill/

当前项目位置为:

C:\Users\1\Desktop\海报制作\.codex\skills\kecheng-yugao-skill\

工作区安装适合本项目,因为 Skill 中的目录约定、模板注册表和项目设置都与该 课程资料库绑定。

4.2 可选:安装到用户级 Skill 目录

如果多个项目都要调用,可复制到:

C:\Users\<用户名>\.codex\skills\kecheng-yugao-skill\

不要同时保留名称相同但内容不同的工作区版和用户级版,否则 AI 可能读取到不一致 的版本。需要跨项目复用时,建议保留一份 Skill,并为每个项目建立独立的模板注册表 和 project-settings.json

4.3 Skill 文件结构

kecheng-yugao-skill/
├─ SKILL.md
├─ 使用说明书.md
├─ agents/
│  └─ openai.yaml
├─ references/
│  ├─ data-contract.md
│  ├─ decision-rules.md
│  ├─ template-registry.md
│  ├─ text-template-workflow.md
│  ├─ weekly-document.md
│  ├─ teacher-assets.md
│  └─ photoshop-posters.md
└─ scripts/
   ├─ course_preview.py
   ├─ workflow_guardrails.py
   ├─ manifest_semantic_diff.py
   ├─ course_aliases.py
   ├─ docx_layout_guard.py
   ├─ manifest_finalize.py
   ├─ delivery_check.py
   ├─ weekly_document.py
   ├─ photoshop_inspect.ps1
   ├─ photoshop_inspect_smartobject.ps1
   ├─ photoshop_edit_poster.ps1
   ├─ photoshop_run_job.ps1
   └─ photoshop_pixel_slot_transplant.ps1

4.4 安装后验证

在项目根目录运行:

python .codex/skills/kecheng-yugao-skill/scripts/course_preview.py --help
python .codex/skills/kecheng-yugao-skill/scripts/workflow_guardrails.py --help
python .codex/skills/kecheng-yugao-skill/scripts/manifest_semantic_diff.py --help
python .codex/skills/kecheng-yugao-skill/scripts/docx_layout_guard.py --help
python .codex/skills/kecheng-yugao-skill/scripts/delivery_check.py --help
python .codex/skills/kecheng-yugao-skill/scripts/weekly_document.py --help

Skill 结构校验:

python -X utf8 <skill-creator目录>/scripts/quick_validate.py `
  .codex/skills/kecheng-yugao-skill

如果 Codex 提供 bundled workspace Python,应优先使用该 Python,不需要用户另外 创建虚拟环境。

5. 依赖条件

5.1 必需依赖

依赖用途
Codex Desktop 或可访问本地文件的 Codex 环境调用 Skill、查看课表和管理文件
Python 3.10 或更高版本manifest、模板、Word 和交付校验
python-docx读取和生成 DOCX
PillowPNG 透明度和人物素材检查
pypdf 或 PyMuPDF读取渲染后的 PDF,执行分页守卫
Windows PowerShell 5.1 或兼容 PowerShell调用 Photoshop 自动化脚本

PyYAML 只在运行 skill-creator/scripts/quick_validate.py 检查 Skill 结构时 需要,不参与日常课程制作。

独立 Python 环境缺少库时可安装:

python -m pip install python-docx Pillow pypdf PyYAML

5.2 Word 渲染依赖

至少需要以下一种:

如果两者都没有,AI 可以修改 DOCX,但不能完成可靠的逐页视觉验收,因此不应把 文本阶段报告为正式完成。

5.3 Photoshop 依赖

制作可编辑 PSD 海报需要:

海报模板二“老师海报 3.0”还要求 Photoshop 可识别 4 个 AlibabaPuHuiTi 2.0 字重。原稿在缺字体时仍可能显示正常,但编辑文字后会被替换成 其他字体,因此必须先通过字体预检。当前电脑已从 阿里巴巴官方字体站安装模板二所需的 75、85、95、115 四个字重并通过 Photoshop 检查。更换电脑或 Windows 用户后需要重新安装、刷新字体并 重启 Photoshop。

没有 Photoshop 时,Skill 仍可完成课表和 Word,但复杂 PSD 海报阶段会停止。

5.4 可选依赖

6. 第一次使用时,用户需要提供什么

第一次使用建议一次说明以下信息:

  1. 项目根目录;
  2. 课表文件夹;
  3. 历史课程预告 Word 文件夹;
  4. 历史 PSD 和历史 PNG 文件夹;
  5. 当前默认文本模板;
  6. 当前默认海报模板;
  7. 可复用课程 PSD 要保存到哪个文件夹;
  8. 哪个文件夹是人物参考文件夹;当前项目已指定为“人物”;
  9. 软件图标文件夹;当前项目已指定为“图标”;
  10. 如果海报模板按老师管理,提供每位老师对应的 PSD;
  11. 本次目标日期。

示例:

使用课程预告自动化 Skill。项目根目录是“海报制作”,课表在“课表”,历史课程 文本在“课程预告文本”,PSD 在“课程预告ps”,历史 PNG 在“课程预告海报”。 默认使用文本模板一和海报模板一,可复用课程 PSD 保存到“课程预告ps”。制作 8 月 4 日 的课程预告,先给我基础信息确认。

人物文件夹可以在 Word 阶段稍后指定。通用模板在人物制作前必须完成配置;教师专属 模板优先使用目标老师的已登记 PSD。若模板契约已记录用户批准的 Jelly 基准派生规则, 缺少老师版本时可从基准 PSD 生成,但只能改人物智能对象和姓名文字,并先通过锁区 QA。

7. 推荐项目目录

海报制作/
├─ 课表/
├─ 课程预告文本/                 # 每个周区间只保留一个规范命名的正式 Word
├─ 课程预告ps/
├─ 课程预告海报/
├─ 人物/                         # 教师透明 PNG
├─ 图标/                         # 软件透明图标与图标来源.json
├─ 卡通/                         # 可选,用户明确指定后才生效
├─ 模板库/
│  ├─ 文本模板/
│  │  └─ text-template-registry.json
│  ├─ 海报模板/
│  │  ├─ poster-template-registry.json
│  │  └─ poster-template-2/
│  │     └─ teacher-variants/<老师姓名>/
│  ├─ 课程别名/
│  │  └─ course-aliases.json
│  └─ 项目设置/
│     └─ project-settings.json
├─ _course_preview_runs/
└─ .codex/skills/kecheng-yugao-skill/

项目设置示例:

{
  "schema_version": 1,
  "revision": 5,
  "project_root": "C:\\Users\\1\\Desktop\\海报制作",
  "teacher_asset_folder": "人物",
  "software_icon_folder": "图标",
  "poster_psd_output_folder": "课程预告ps",
  "course_alias_registry": "模板库\\课程别名\\course-aliases.json"
}

8. 如何调用

当前项目默认模板为:

文本模板一和海报模板一的可执行基准资产已经同步到 Skill 的 assets/。用户没有明确 指定模板时使用上述默认值;以后仍可通过明确指令更换默认模板。

8.1 完整制作

使用 $kecheng-yugao-skill 制作 2026 年 8 月 4 日课程预告文本和海报。 先完成基础信息并给我确认。

8.2 只制作基础信息

使用课程预告自动化 Skill,整理 8 月 4 日全部班级的基础课程信息,生成 Word 后 停止,不要追加详情和海报。

8.3 确认后继续

基础信息确认无误,继续追加课程详情并制作海报。

8.4 修改一门课程

将“21期 AIGC 灵机班(无基础)”的“留人率飙升!Seedream打造高级直播间”改为 录播,时间改为 12:00,其他课程不变。给我变更后的基础 Word 再确认。

8.5 指定模板

本次 Word 使用文本模板二;“影刀RPA监控并抓取网站数据”使用海报模板三,其他 海报使用默认模板。

8.6 修改默认模板

将文本模板二设为默认文本模板。

将海报模板三设为默认海报模板。

8.7 添加新模板

根据这个 DOCX 提取文本模板二,先生成示例和使用说明,不要自动设为默认。

将这个 PSD 注册为海报模板二,检查图层合同并生成测试海报,先不要设为默认。

将“老师海报3.0_Jelly老师.psd”登记为海报模板二的 Jelly 老师版本。所有图层位置 锁定;只允许三行主标题按内容调整字号,其他文字字号保持不变。其余老师 PSD 到齐 后按老师姓名继续登记。

8.8 设置人物文件夹

将“人物”文件夹设为教师人物形象参考文件夹。以后所有含人物位置的海报都使用 该文件夹中的透明人物主体。

8.9 更换教师形象

本次将卡卡老师换成参考文件夹中的新形象。如果有多张候选,列出完整文件名让我 选择。

8.10 验收并清理本次运行残留

Word 和全部海报确认可以使用。关闭 Photoshop,保留最终 PNG、正式 Word 和课程 PSD,清理本次完整运行目录和本次新增的 Photoshop 暂存文件,并给出清理报告。

9. 完整运行流程

Stage 0:配置和运行记录

  1. 读取用户指定日期;
  2. 解析当周 Word:不存在则准备创建,恰好一个则准备更新,两个及以上则停止;
  3. 确定唯一正式文件名 <起始M.D>-<结束M.D>课程预告.docx
  4. 建立 schema-v2 manifest;
  5. 给每门课生成稳定 course_key
  6. 解析文本模板和每门课海报模板;
  7. 读取 PSD 输出目录、课程别名表和人物文件夹配置;
  8. 在第一次调用 Photoshop 前保存 run-cleanup-baseline.json,用于最终只清理本次 新增的 Photoshop 暂存文件。
  9. 建立本次运行目录。

解析命令示例:

python .codex/skills/kecheng-yugao-skill/scripts/weekly_document.py resolve `
  --project-root . `
  --run-dir _course_preview_runs/2026-08-07 `
  --period-start 2026-08-03 `
  --period-end 2026-08-07 `
  --out _course_preview_runs/2026-08-07/weekly-document-plan.json

推荐运行目录:

_course_preview_runs/YYYY-MM-DD/
├─ drafts/
├─ schedule-evidence/
├─ inspections/
├─ measurements/
├─ failed-qa/
├─ working-psd/
├─ backups/weekly-document/
└─ qa/

Stage A:基础课程信息

  1. 打开全部课表;
  2. 先读取每张课表自己的直播/录播图例,再查找目标日期;不同课表不得共用颜色规则;
  3. 对目标日期完整单元格做两遍扫描:第一遍只统计色块总数,第二遍再从上到下逐条 抄录;尽可能把目标单元格截图保存进 schedule-evidence/。若有 N 个课程色块, 必须建立 N 条课程记录,分别写入第 1…N 块和总数 N;找到第一门课后仍要继续扫描;
  4. 跳过没有课程的班级;
  5. 为每个色块记录班级、课表原始课程名、标准课程名、色块颜色、图例原文、 直播/录播判定来源和证据;
  6. 直播/录播只允许来自当前课表图例、课表明确文字或用户确认。不得根据课程名中的 “直播”“直播间”“直播贴片”、教师、时间或历史 Word 推断;
  7. 运行清单校验,确保每班课程编号完整覆盖 1…N,缺少任何一门都停止;
  8. 从历史 Word 确认教师;
  9. drafts/ 生成只有基础行的 Word;正式 课程预告文本/ 此时不新增 _基础信息_待确认 文件;
  10. 同班多门课共用一次班级标题,但每门课保留独立课程行;
  11. 直播行按模板一显示为红色粗体;
  12. 渲染所有页面并检查;
  13. 给用户基础 Word、模板选择和不确定项;
  14. 停止等待确认。

用户确认的是运行目录中的基础 Word。它是审批材料,不是正式目录中的第二份周文档。

课程变更防误改

用户修改一门课程时:

  1. 修改 manifest 中对应 course_key
  2. 不直接编辑 Word 的某个段落序号;
  3. 从 manifest 重新生成目标块;
  4. 运行 manifest_semantic_diff.py
  5. 检查只发生了用户指定的变化;
  6. 重新生成审批哈希并等待确认。

Stage B:课程详情

  1. 校验 Stage A 审批哈希;
  2. 从历史 Word 建立课程目录;
  3. 优先使用精确标准化标题;
  4. 查询已经由用户确认的课程别名;
  5. 模糊候选仍然必须让用户确认;
  6. 分别记录工具、作业和目标的来源;
  7. 追加详细介绍;
  8. 导出 PDF;
  9. 运行分页守卫;
  10. 逐页视觉检查;
  11. 备份旧周文档,通过临时 DOCX 校验和原子替换发布规范文件名;
  12. 检查该周在正式目录中恰好只剩一个规范命名的有效 DOCX。

发布示例:

python .codex/skills/kecheng-yugao-skill/scripts/weekly_document.py publish `
  --plan _course_preview_runs/2026-08-07/weekly-document-plan.json `
  --source-docx _course_preview_runs/2026-08-07/drafts/8.3-8.7课程预告.docx `
  --out _course_preview_runs/2026-08-07/weekly-document-publication.json

同一天重新运行时,按稳定 course_key 替换该日期的课程块,不能在文末重复追加 一组 8.7 内容。

分页守卫会拒绝:

Stage C:海报和 PSD

  1. 搜索模板范围内的候选 PSD/PNG;
  2. 只读打开候选 PSD 的标题智能对象;
  3. 用完整标准化课程名称精确匹配内部标题,不用文件名或子串代替证据;
  4. 零个匹配准备新增课程 PSD,一个匹配直接复用,多个匹配停止;
  5. 若 PSD 含人物位置,强制从“人物”文件夹选择对应讲师 PNG,并检查透明背景;
  6. 建立 UTF-8 海报作业 JSON;
  7. 通过 photoshop_run_job.ps1 修改 PSD;
  8. 检查标题画布、水平视觉中心和标题下方间距;
  9. 检查课程目标与日期时间安全区域;
  10. 检查课程目标是否进入模板内框、页脚或底部装饰的不可用区域;
  11. 导出 PNG 和工作 PSD;
  12. 查看整张海报和修改区域裁切;
  13. 为 PSD 标记可编辑等级;
  14. 批量检查课程名称与 PSD 的唯一映射;
  15. 已有课程 PSD 时不发布;没有时只发布一个 <课程名称>.psd
  16. 按 manifest 生成最终文件名并汇总最终 manifest;
  17. 执行完整交付检查并向用户展示 Word 和 PNG;
  18. 第一次调用 Photoshop 前保存暂存文件基线;
  19. 用户明确确认可以使用并关闭 Photoshop 后,删除本次日期的整个运行目录;
  20. 只删除基线之后新增的 Photoshop Temp* / ~PST*.tmp,不清空系统 Temp;
  21. _course_preview_runs/_cleanup_reports/ 保存清理报告,并验证正式 Word、最终 PNG 和课程 PSD 的哈希未变化。

运行开始时记录基线:

python .codex/skills/kecheng-yugao-skill/scripts/workflow_guardrails.py `
  run-cleanup-baseline `
  --project-root . `
  --run-dir _course_preview_runs/2026-08-11 `
  --out _course_preview_runs/2026-08-11/run-cleanup-baseline.json

最终验收后清理:

python .codex/skills/kecheng-yugao-skill/scripts/workflow_guardrails.py `
  final-run-cleanup `
  --manifest _course_preview_runs/2026-08-11/manifest-final.json `
  --run-dir _course_preview_runs/2026-08-11 `
  --baseline _course_preview_runs/2026-08-11/run-cleanup-baseline.json `
  --out _course_preview_runs/_cleanup_reports/2026-08-11.json `
  --user-approved

10. 课程详情别名

当新课名与历史课名含义相同但不是精确匹配时,Skill 会停止。例如:

本次课程:影刀RPA监控并抓取网站数据
历史课程:全自动竞品数据抓取与监控

用户确认一次后,可写入:

模板库/课程别名/course-aliases.json

以后只有课程名和教师约束均匹配时才复用。出现教师冲突或一个别名对应多个标准 课程时仍会停止。

11. 海报排版保护

11.1 标题保护

11.1.1 模板二自适应软件栏与时间栏

模板一在本次 8 月 5 日运行中的标题智能对象宽度为 938px,目标中心为 469px,最大 允许偏差为 15px。其他模板必须在模板注册时单独记录,不能默认照搬模板一。

11.2 课程目标安全区

课程目标位于左下区域,日期和时间位于右下区域。Skill 会检查:

课程目标右边界 + 最小间距 <= 日期/时间区域左边界
课程目标下边界 <= 模板课程目标安全底线 <= 海报画布下边界

默认最小间距为 20px。模板课程目标安全底线应位于内框、页脚和底部装饰之上,不能只 使用原始画布下边界。失败时重新从未修改的源 PSD 开始,并通过语义换行缩短每行;若 完整文字因此增加一行,可只对课程目标文字层设置经过测量的 objective_translate_y_px,并同时设置 objective_bottom_limit_px。审计必须记录移动前后 边界。不能移动无关设计元素,也不能通过隐藏文字、缩小到不可读或跳过检查来通过。

11.3 PSD 可编辑等级

等级含义是否可交付
A标题、日期、时间、状态、目标和需要的人物保持可编辑可以
B完全同款历史底图+独立日期时间替换层,仅日期时间不同可以,但报告中必须说明
C单层扁平图或缺少必要可编辑结构不可以

12. Photoshop UTF-8 作业方式

不建议在命令行中直接传递长中文标题和中文引号。海报作业使用 JSON:

{
  "schema_version": 1,
  "source_psd": "源模板.psd",
  "out_psd": "working-psd/成品.psd",
  "out_png": "8.4/成品.png",
  "out_audit": "qa/成品-audit.json",
  "source_expected_title": "源课程标题",
  "target_title": "新课程标题\\n第二行",
  "target_title_justification": "center",
  "center_title_horizontally": true,
  "source_expected_date": "07/22",
  "target_date": "08/04",
  "source_expected_time": "19:30",
  "target_time": "12:00",
  "source_expected_status": "直播时间",
  "target_status": "录播时间",
  "source_expected_objective": "课程目标\\n源目标",
  "target_objective": "课程目标\\n新目标",
  "guards": {
    "title_center_target_x_px": 469,
    "maximum_title_center_delta_px": 15,
    "minimum_title_gap_px": 20,
    "minimum_objective_time_gap_px": 20
  }
}

运行:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File `
  .codex/skills/kecheng-yugao-skill/scripts/photoshop_run_job.ps1 `
  -JobPath <作业JSON>

source_expected_* 是源 PSD 当前值,target_* 是要写入的新值。两者分开可防止把 “改后值”误当成“改前校验值”。

13. 文本模板规则

一个有效文本模板必须能区分:

14. 人物形象规则

  1. 人物参考文件夹必须由用户指定;
  2. 只选择 PNG;
  3. 多张候选必须回复完整文件名;
  4. 相同文件名出现在不同子目录时必须先重命名;
  5. PNG 有 Alpha 通道不等于背景已经透明;
  6. 抠图预览必须经过用户确认;
  7. 替换前备份到 _原图备份/
  8. 通用模板从权威文件夹重新置入人物;教师专属模板先精确选中老师变体,只有用户明确更换形象,或模板已批准从固定基准派生新老师版本时才置入新人物;
  9. 最终人物图层或智能对象只保留人物主体,不保留原图背景。

15. 最终交付条件

只有同时满足以下条件才能报告完成:

16. 常见问题

课表看不清怎么办

放大并截取目标区域;仍无法确认时报告具体文件和单元格,停止该班级,不猜测。

为什么同一班当天只记录了一门课

这是目标日期单元格没有完整扫描造成的。现在每班必须先统计课程色块总数 N,再为 每个色块写入 schedule_entry_index=1…N。校验器发现编号缺失、重复或总数不一致时, 不会生成基础 Word。

如何区分直播和录播

先读取当前课表自己的图例,再把课程色块颜色与该图例对应。不同班级课表的直播颜色 可能不同,不能建立全局固定颜色。课程名出现“直播”不代表直播课;历史 Word 只用于 教师和详情检索,不得覆盖当天课表的直播/录播判定。

用户只修改直播/录播,没有说时间怎么办

询问新的可靠时间。不会因为录播通常是 12:00 就自动填写。

模糊课程详情每次都要问吗

首次必须确认。确认后写入课程别名表,满足同一教师约束时可自动复用。

Word 出现第 7 页只有一行怎么办

不能交付。调整模板允许的空白段落和课程块绑定,再重新渲染并运行分页守卫。

为什么同一周出现多个课程预告 Word

旧流程把 Stage A 基础版、Stage B 完整版和修订版都发布到了正式目录,并用 _FINAL/new/v2 区分;候选选择又可能按修改时间或后缀静默挑选,因此副本会越积 越多。新流程把这些文件全部放进 _course_preview_runs/目标日期/,正式目录只发布 一个规范文件。

如果运行前已经检测到同一周有两个及以上 Word,Skill 会列出完整路径并停止,不会 猜哪一个最新。需要先由用户确认保留内容,再做一次可恢复的合并或整理。

同一周已有一个带 _FINAL 后缀的 Word 怎么办

可以把它作为唯一旧来源复制到运行目录编辑。正式发布前先备份旧文件,再原子发布为 规范名称;发布成功并复检后才移除旧后缀文件。备份位于本次运行目录的 backups/weekly-document/

海报课程目标碰到日期怎么办

从未修改源 PSD 重新开始,对目标进行语义换行;安全区检查通过后才导出。

海报课程目标没有超出画布,但被内框或底部装饰挡住怎么办

这说明只检查“画布底边”不够。为该模板登记 objective_bottom_limit_px,重新从未修改 源 PSD 开始;若语义换行导致行数增加,只上移课程目标文字层并记录 objective_translate_y_px。最终同时检查整图和下半区 100% 局部图。

海报课程标题没有居中怎么办

不能只修改文字锚点。先检查标题智能对象中的段落对齐,再以实际文字边界计算视觉 中心;按模板记录的目标中心自动平移,重新保存、导出并运行水平中心守卫。

海报被命名为 c.pngfinal.png 怎么办

临时名称不能交付。最终名称必须由 manifest 中的班级、日期、课程、教师和直播状态 生成。PNG 不要求与长期保存的课程 PSD 同名。删除或备份临时别名后,重新运行 manifest、课程PSD映射和交付检查;早先通过的检查不能继续沿用。

只有历史 PNG 可以做吗

只有标题、教师、状态、目标完全相同,仅日期时间变化时,才能使用 B 级分层日期替换。 其他变化需要可编辑 PSD,或由用户明确接受近似重建,但近似重建不得冒充 A 级 PSD。

Photoshop 报中文乱码怎么办

使用 UTF-8 JSON 作业和 photoshop_run_job.ps1,不要把长中文内容直接放进 Windows PowerShell 命令行;读取 JSON 时显式使用 UTF-8。

PNG 已完成但缺少 PSD 怎么办

先检查 课程预告ps/ 中所有候选 PSD 的内部标题。如果存在唯一精确课程标题匹配, 将 PNG 映射到它,不再复制;如果没有,才从通过 QA 的工作 PSD 新增一个课程 PSD。 存在多个精确匹配时先整理重复项,不能猜测。

为什么制作完成后还有工作 PSD

工作 PSD、草稿、渲染图、检查数据、失败输出和运行备份都属于本次运行证据,必须保留到 用户确认 Word 和海报可以使用。验收后关闭 Photoshop,运行 final-run-cleanup --user-approved:它删除整个日期运行目录,并记录删除前的路径、大小 和哈希;同时只删除运行基线之后新增的 Photoshop 暂存文件。课程 PSD、PNG、正式 Word、 模板库、人物、图标、Skill 文件以及运行前已经存在的临时文件均不会被删除。

同一个课程找到了两个 PSD 怎么办

停止制作并列出两个 PSD 的完整路径与内部标题。用户需要决定保留哪一个并整理重复 文件。Skill 不会按文件名、日期或修改时间自动选择。

同一课程改了教师、课程目标或海报模板怎么办

日期、时间、直播/录播可以只改工作副本,不需要更新课程 PSD。教师、人物、课程目标 或海报模板属于课程 PSD 的稳定内容;发生变化时停止并让用户确认是否替换唯一课程 PSD。替换前必须备份旧 PSD,不能静默覆盖。

如果模板本身按老师分别提供 PSD,先精确选择目标老师变体。没有该老师版本时不能直接 套用其他老师版本;只有模板契约中已有用户批准的基准派生规则,才可从该基准生成新版本, 并且只能修改人物和姓名,锁定课程主标题、“90天成为AI全能人才”及其余区域。模板要求的 字体缺失时也必须停止;不能接受 Photoshop 自动替换字体后继续出图。

17. 数据安全与注意事项

  1. 用户指定日期优先于系统日期;
  2. 每个课表都要检查;
  3. 课表负责课程和授课方式证据,历史 Word 负责教师和详情;
  4. 用户确认的临时变更必须写入 override 证据;
  5. 课程修改以 manifest 为准,不按 Word 段落位置操作;
  6. 模糊匹配不能直接生成成品;
  7. 工具、作业、目标分别记录来源;
  8. 文本模板与海报模板分开管理;
  9. 历史 PSD、PNG 和原始资料不可覆盖;正式周 Word 只允许在运行目录备份后原子更新;
  10. Photoshop 失败后只允许从未修改源文件隔离重试一次;
  11. 失败输出保存在 failed-qa/,不得混入最终文件夹;
  12. 自动化减少重复劳动,但保留课程确认、模板确认、人物选择和抠图确认。
  13. 课程预告文本/ 可以保存不同周的正式文档,但同一周区间只能有一个;
  14. 最终运行清理必须在用户验收且 Photoshop 关闭后执行,只能作用于本次准确日期的 _course_preview_runs/YYYY-MM-DD/ 和基线之后新增的 Photoshop 暂存文件;
  15. 课程 PSD 以内部完整课程标题为准,文件名只用于帮助搜索。
  16. 教师专属模板必须精确匹配老师;位置锁定模板不得移动图层;
  17. 模板二只有三行主标题可调字号,其他文字字号锁定;
  18. 软件图标必须来自“图标”目录且有来源记录;
  19. 基础版、待确认版、QA 文件和备份只能保存在 _course_preview_runs/

18. 本次优化后的关键变化

2026 年 8 月 4 日和 8 月 5 日试运行暴露的问题已转化为以下机制:

这些规则已写入 Skill 和脚本。新文本模板、新海报模板、新教师、多人物图和抠图 仍需要在真实素材首次出现时完成对应的实例验证。