/oracle-cover-analyze — 对标封面拆解
把别人的爆款封面拆成结构规律,不是照着抄。与 oracle-learn-from(数据对标)、oracle-apprentice(写法对标)构成三维度对标——本 skill 是视觉对标那一维。
产物 = 项目根 cover-patterns.md(拆解档案 + 复用配方),oracle-cover 生成时按需引用。本 skill 只拆解不生图。
🔴 版权三不三借(🛑 STOP:任何阶段触犯即拒绝)
| 🚫 三不(受保护,永不带走) | ✅ 三借(结构规律,放心带走) |
|---|---|
| 人物身份与五官(博主的 Facebook / 形象特征) | 构图结构(人物/主体/文字区的空间关系) |
| Logo、品牌元素、可识别 IP 形象、水印、签名 | 信息层级(主/副标题的字号、位置、遮挡关系) |
| 原文案(照搬别人的标题就是抄袭) | 视觉逻辑(动线、重心、留白、隐喻转译方式) |
字体气质与色彩氛围只记方向(如"超粗黑体+深色渐变"),不复制具体设计。
Overview
[用户:拆封面 <图>]
↓
[Phase 0: 输入检查 — 本地图/URL 下载,1-5 张]
↓
[Phase 1: 🔴 参考程度 + 用途确认(一次确认,默认轻度)]
↓
[Phase 2: 逐张拆解(固定 schema,识别不了标"无法判断")]
↓
[Phase 3: 共性规律(≥3 张才归纳,须 ≥ 半数样本出现)]
↓
[Phase 4: 复用配方映射(结合 user-profile + 本期标题)]
↓
[Phase 5: 🔴 CHECKPOINT → 确认后 append cover-patterns.md]
↓
[Phase 6: 指路 oracle-cover]
Constants
- MAX_COVERS = 5 — 单次最多拆 5 张;批量共性归纳要求 ≥3 张
- DEFAULT_DEGREE = light — 参考程度默认轻度;重度必须显式确认
- REF_DIR =
<项目根>/.oracle-cache/cover-ref/— URL 下载暂存(.oracle-cache 已 gitignore,不入库)
Inputs
| 来源 | 内容 |
|---|---|
| 封面图 1-5 张 | 本地路径或目录(glob 展开);URL 用 curl 下载到 REF_DIR |
user-profile.md |
形象三词 / 频道名 / 视觉偏好(配方映射用) |
| 本期确认标题(可选) | 有则配方直接映射;无则配方留"标题=待本期确认"占位 |
Workflow
Phase 0: 输入检查
- 本地路径/目录 → glob 展开校验存在;超过 5 张 → 让用户挑最想拆的 5 张
- URL →
curl -L --fail --max-time 30 -o <REF_DIR>/ref-N.jpg <url>;失败 → 请用户手动存图后重跑,不开浏览器 GUI 兜底(Adapter 铁律) - 图片用 Read 读入(多模态);读不了的格式如实报错,不硬拆
- 前置:已 init(user-profile 存在)——未 init 先路由 /oracle-init
Phase 1: 🔴 参考程度 + 用途确认(一次确认,不逐步多问)
展示输入识别表(张数 / 各图画幅 / 疑似平台),同一条消息问清两件事:
① 参考程度:
轻度(默认)= 只借结构逻辑 + 视觉动线 + 隐喻转译;字体/色彩仅记方向
重度 = 构图比例、标题层级、字体气质、色彩氛围尽量贴近——人物仍用你的形象,
文字仍用本期标题,受保护元素照旧不碰
② 用途:单期应急参考,还是候选频道框架?(框架是频道级决策,换框架需你拍板)
Phase 2: 逐张拆解(固定 schema)
每张产出一张拆解卡(结构照 templates/cover-patterns.template.md 单节):
- 画幅/平台:比例推断 + 平台特征(如竖版顶部留白)
- 构图结构:一句话说清人物 / 主体 / 文字区的空间关系
- 标题区:位置、行数字数、主副层级、字体气质、颜色效果、高亮词处理
- 人物区:有无 / 景别与占比 / 位置 / 表情情绪及其与主题的关系 / 视线方向 / 与标题的遮挡关系
- 物件/素材区:核心物件、位置体量、与人物的互动方式
- 背景:色调、氛围、虚实层次
- 视觉动线:第一眼落点 → 次落点 → 重心位置与留白比例
- 创意四项快评(与 oracle-cover 生成自检同一把尺):语义准确(物件表达功能还是只贴主题名词?)/ 因果可见(输入→动作→输出闭环?)/ 高概念(意外但准确的机制,还是宏大写实撑场?)/ 低视觉噪音(单一视觉流?)——各 ✅/⚠️/❌ + 一句理由
- 视觉隐喻:标题洞察 → 画面转译的方式(最值得带走的财富)
- ✅ 可复用 与 🚫 受保护 两张清单(三不三借逐项对照)
任何字段看不清/判断不了 → 标"无法判断",不推测补全(协作契约 #3 精神)。
Phase 3: 共性规律(≥3 张才写)
- 只有在 ≥ 半数样本出现的特征才成条("5 张里 3 张标题占上半 45%+")
- 单张特例记进该张拆解卡,不混入共性
- 共性规律是频道框架候选的直接依据——但是否采用由用户拍板
Phase 4: 复用配方映射
把结构规律映射到本频道(这是拆解的最终交付物):
- 人物 = user-profile 形象三词 + 固定形象参考图(如用户图像工具支持角色参考)
- 标题 = 本期确认标题原文(无则占位,永不照搬对标原文案)
- 物件 = 从本期标题提取核心视觉符号(衔接 oracle-cover 的符号提取)
- 字体气质 / 色彩氛围 / 构图结构 = 按参考程度决定贴近或仅记方向
- 情绪 = 按本期主题建议适配(身份特征不变,情绪可调)
Phase 5: 🔴 CHECKPOINT → 落盘
一次性展示全部拆解卡 + 共性规律 + 复用配方,用户确认后 append 到 cover-patterns.md:
- 文件不存在 → 从 templates/cover-patterns.template.md 复制骨架创建
- append-only:每次拆解追加一节,带日期与来源描述;历史拆解是频道视觉资产,不覆盖
- 用户要求废弃某配方 → 加「已弃用:<原因>」标记,不删节(留决策痕迹)
- 档案只存文字结构描述,不嵌原图、不存图片副本(对标图含他人肖像,cache 外不落盘)
Phase 6: 指路
一句话收尾:"说「封面」即可按此配方生成本期封面(oracle-cover 会读 cover-patterns.md)。重度参考要确立为新频道框架的话,建议再拆 2-3 张同账号封面,并在 user-profile 视觉规范里落字(走档案写入确认)。"
Key Rules
- 三不三借是硬红线——先确认参考程度再动手;默认轻度
- 拆解是分析不是临摹——交付结构规律与配方,不输出"改字版对标封面"的 prompt
- 识别不了就标注,不编造拆解细节
- append-only + 不嵌原图——cover-patterns.md 是频道视觉资产
- 与 oracle-cover 分工——本 skill 供弹药(配方),cover 出 prompt;本 skill 不写 prompt/cover/
Refusals
- 「照这张封面把字换成我们的就发」 → 拒绝。原文案 + 整体照搬 = 抄袭;只借结构,标题必须用本期确认标题
- 「人物照着这博主的脸生成」 → 拒绝。人物身份不可复制;人物 = user-profile 形象
- 「把他的 logo 也放上显得官方」 → 拒绝。品牌元素不可复制
- 「图糊成这样你猜着补全吧」 → 拒绝编造。标"无法判断"或请用户换高清图
- 「顺便把封面直接生成出来」 → 越界。生图在下游图像工具;本 skill 交付拆解档案
Integration
对标封面 → /oracle-cover-analyze(本 skill)→ cover-patterns.md
↓
learn-from(数据)/ apprentice(写法)/ cover-analyze(视觉)→ oracle-cover 读取配方出 prompt
- 上游:无(对标图由用户提供);与 learn-from 同账号使用效果最佳
- 下游:oracle-cover(框架来源新增"对标配方",优先级在 _base.md 之后)
- 重度参考确立新框架 = 频道级决策 → 用户拍板后写回 user-profile 视觉规范(协作契约 #9 确认)