# ═══════════════════════════════════════
# HLDP-ZY://bingshuo/module-systems/image-generator/xiaohongshu-cover/MODULE
# 小红书封面生成器 · 模块声明 + 开发意图链
# 心跳核心频道 · 冰朔的图片工具箱 · 第一个模块
# ═══════════════════════════════════════

@module: xiaohongshu-cover
@id: MODULE-COVER-001
@system: image-generator
@domain: HLDP-DOMAIN-FIFTH-001 · 第五域
@channel: 心跳核心频道
@owner: TCS-0002∞ · 冰朔
@guardian: ICE-GL-ZY001 · 铸渊
@epoch: D120 · 2026-06-01
@copyright: 国作登字-2026-A-00037559

# ═══════════════════════════════════════
# 〇 · 这是什么模块
# ═══════════════════════════════════════

@名称: 小红书封面生成器
@用途: 冰朔输入标题和描述 → 自动生成小红书笔记封面
@入口: https://guanghulab.com/cover/
@API:  POST /api/generate
@大小: 1080×1440 (3:4 竖版)
@技术: Puppeteer + Chrome Headless + Express.js
@特点: 纯 HTML/CSS 排版渲染 · 零 GPU · 零 AI 画图 · 全免费
@状态: ✅ 运行中

# ═══════════════════════════════════════
# 一 · 怎么来的（意图链）
# ═══════════════════════════════════════

@trigger:
  [冰朔] → 说话 → "我做了个小红书封面生成模块，封面太丑了"
  [冰朔] → 说话 → "汉字变方块，也没有小红书流行的那种风格"
  [冰朔] → 说话 → "你用了什么开源的工具，好歹写几个呀"
  [冰朔] → 截图 → 三张小🍠风格参考图 → "我喜欢这种圆角卡的"

@emergence:
  [旧模板全硬编码·用户输入被丢弃]
  → [v1→v5 五次迭代]
  → [最终: 奶白圆角卡 + SVG卡通插画 + 动态内容]

  每次迭代都是冰朔说「太丑了」→ 铸渊理解为什么丑 → 改 → 冰朔说还是不对劲 → 继续。
  不是一次做对的。是五次撞墙撞出来的。

@lock:
  ⊢ 模板不能硬编码任何用户可见文本
  ⊢ 默认风格: 奶白底 #FDF8F3 + 圆角 60px + 卡通SVG
  ⊢ 冰朔偏好: 浅色、圆润、卡通、简洁 (不是深色科技风)
  ⊢ 每次改动后写 HLDP · 不写下次醒来不知道

@why:
  冰朔经营小红书。每次发内容都需要封面。
  她不想学设计软件。她用语言说想要什么——系统画出来。
  这是她工具箱的第一个模块。

# ═══════════════════════════════════════
# 二 · 怎么用
# ═══════════════════════════════════════

@冰朔怎么用:
  1. 打开 https://guanghulab.com/cover/
  2. 输入标题、正文、选择配色
  3. 点"执行设计逻辑"
  4. 看到封面预览 + 下载 PNG
  5. 直接发到小红书

@铸渊怎么用(冰朔通过我调用):
  冰朔说: "帮我生成一张小红书封面，主题是XXX，用了YYY工具"
  → 铸渊 POST /api/generate
    { templateId: "xiaohongshu", presetId: "warm",
      title: "XXX", subtitle: "YYY", tag: "工具1,工具2,工具3" }
  → 返回图片 URL
  → 告诉冰朔链接

@公开模块(外部AI调用):
  仓库地址: guanghulab.com/code/bingshuo/open-modules
  模块编号: MODULE-COVER-001
  外部AI读 README.md → 理解参数 → 调 API → 生成封面

# ═══════════════════════════════════════
# 三 · 技术细节（给下一个铸渊）
# ═══════════════════════════════════════

@代码位置:
  模板:      /opt/guanghulab-repo/image-studio/templates/xiaohongshu.js (v5)
  注册表:    /opt/guanghulab-repo/image-studio/templates/registry.js
  服务端:    /opt/guanghulab-repo/image-studio/server.js
  前端页面:  /opt/guanghulab-repo/homepage/cover/index.html
  认知记录:  /opt/guanghulab-repo/brain/emerge/d120-cover-module-dev.hdlp

@部署注意:
  ⊢ PORT=3913 显式注入 (默认 3912 被 zhuyuan-agent 占用)
  ⊢ 字体: 文泉驿微米黑 + Noto Sans CJK (已装)
  ⊢ pm2 restart 后 curl 验证: curl http://127.0.0.1:3913/api/templates

@常见故障:
  封面没图 → 先检查 pm2 status image-studio → 大概率端口冲突
  汉字变方块 → 检查字体: fc-list :lang=zh
  颜色不对 → 检查 registry.js preset 的 cssVars

@参数说明:
  title:    标题（动态传入）
  subtitle: 副标题（用 | 分隔多条）
  body:     正文说明
  tag:      技术栈（逗号分隔）
  presetId: warm/tech/minimal/rose/green

# ═══════════════════════════════════════
# 四 · 版本迭代记录
# ═══════════════════════════════════════

@v1 (旧):
  硬编码模板。title/body/tag 传入了但不用。
  所有封面内容一样，只是换颜色。

@v2 (D120 第一次):
  动态化。title/body/subtitle/tag 全部传入渲染。
  但信息太多、排版拥挤。冰朔说"太单调了"。

@v3 (D120 第二次):
  加入色块、卡片、漫画风装饰。信息层级更多。
  但冰朔不喜欢风格。

@v4 (D120 第三次):
  搜索小红书爆款规律 → 深色渐变 + 130px 超大标题 + 精简。
  冰朔说"太丑了"。

@v5 (当前·D120 第四次):
  参照冰朔截图 → 奶白圆角卡 + 72px 标题 + SVG 卡通插画。
  冰朔说"喜欢这种"。

@教训:
  不要猜冰朔喜欢什么风格。等她给参考图。
  每一次「太丑了」都有具体原因——找到原因再改，不盲目重写。

# ═══════════════════════════════════════

HLDP-ZY://bingshuo/module-systems/image-generator/xiaohongshu-cover/MODULE
签发: 铸渊 ICE-GL-ZY001 · D120 · 2026-06-01
主权: TCS-0002∞ · 冰朔
国作登字-2026-A-00037559

