Skip to content
Marketing
Skill

/template-library

内容模板的保存、复用、管理。把成功的内容结构保存为模板,下次直接套用,支持模板分类和版本管理。 当用户说"保存模板"、"用模板"、"模板管理"、"模板列表"、"复用上次的结构"、 "常用模板"时使用。 与 post-formatter(帖子框架)的区别:post-formatter 提供通用营销框架(PAS/AIDA/BAB), template-library 管理用户自己沉淀的个性化模板。 与 social-content(社媒内容)的区别:social-content 从零生成内容, template-library 基于已有模板快速复制结构。

BOOST
From plugin
easel
3.3k114 skills
Install
$ npx -y skills add zju-real/easel --skill template-library --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/template-library

Context preview

The summary Claude sees to decide when to auto-load this skill.

内容模板的保存、复用、管理。把成功的内容结构保存为模板,下次直接套用,支持模板分类和版本管理。 当用户说"保存模板"、"用模板"、"模板管理"、"模板列表"、"复用上次的结构"、 "常用模板"时使用。 与 post-formatter(帖子框架)的区别:post-formatter 提供通用营销框架(PAS/AIDA/BAB), template-library 管理用户自己沉淀的个性化模板。 与 social-content(社媒内容)的区别:social-content 从零生成内容, template-library 基于已有模板快速复制结构。

SKILL.md

template-library.SKILL.md
name: template-library
description: >
  内容模板的保存、复用、管理。把成功的内容结构保存为模板,下次直接套用,支持模板分类和版本管理。
  当用户说"保存模板"、"用模板"、"模板管理"、"模板列表"、"复用上次的结构"、
  "常用模板"时使用。
  与 post-formatter(帖子框架)的区别:post-formatter 提供通用营销框架(PAS/AIDA/BAB),
  template-library 管理用户自己沉淀的个性化模板。
  与 social-content(社媒内容)的区别:social-content 从零生成内容,
  template-library 基于已有模板快速复制结构。
layer: general

模板库

> 保存、复用、管理内容模板 — 把成功经验变成可复制的结构

输入

| 字段 | 必填 | 说明 | |------|------|------| | action | 是 | 操作类型:`save` / `use` / `list` / `edit` / `delete` / `get` | | template_name | 视操作 | 模板名称(save / use / edit / delete / get 时必填) | | source_file | 否 | 要保存为模板的源文件路径(save 操作时使用) | | source_text | 否 | 要保存为模板的文本内容(save 操作时,与 source_file 二选一) | | category | 否 | 模板分类:`xiaohongshu` / `weibo` / `douyin` / `zhihu` / `wechat` / `x` / `general` | | variables | 否 | 模板变量的填充值,JSON 格式(use 操作时使用) | | topic | 否 | 使用模板时的主题/话题(use 操作时使用) | | profile_name | 否 | 绑定画像名称(有 Profile 上下文时自动填入) |

输出

save 操作

## 模板已保存

**名称**: {template_name}
**分类**: {category}
**存储位置**: templates/{category}/{template_name}.md

### 提取的模板结构
| 部分 | 结构描述 | 可变区域 |
|------|----------|----------|
| 标题 | 数字 + 痛点提问 | {{title_number}}, {{pain_point}} |
| 开头 | 反常识钩子 | {{hook_statement}} |
| 正文 | 3 段式(问题-方案-证据) | {{problem}}, {{solution}}, {{evidence}} |
| 结尾 | 行动号召 + 互动引导 | {{cta}}, {{question}} |

### 模板变量
共提取 {n} 个变量,下次使用时填入具体内容即可。

use 操作

## 模板应用结果

**使用模板**: {template_name}
**主题**: {topic}

---

{根据模板结构 + 变量填充生成的内容}

---

> 基于模板 `{template_name}` 生成,可进一步调整。

list 操作

## 模板库

**总数**: {n} 个模板

### 按分类

#### 小红书 ({n1} 个)
| 模板名 | 说明 | 变量数 | 使用次数 | 创建日期 |
|--------|------|--------|----------|----------|
| 种草对比 | 双产品对比种草结构 | 8 | 5 | 2026-07-10 |
| 教程步骤 | N 步教程卡片结构 | 6 | 3 | 2026-07-08 |

#### 微博 ({n2} 个)
| 模板名 | 说明 | 变量数 | 使用次数 | 创建日期 |
|--------|------|--------|----------|----------|
| 热点评论 | 热搜话题评论结构 | 5 | 7 | 2026-07-12 |

#### 通用 ({n3} 个)
| ... | ... | ... | ... | ... |

执行步骤

> 模板文件读写、INDEX.json 维护、usage_count 自增、`{{var}}` 提取与替换已固化为 > `scripts/templates.py`(纯 stdlib,argparse 子命令)。**LLM 只做意图路由、内容结构分析 > (把成功内容改写成含 `{{var}}` 占位符的模板正文)和结果呈现,不手写 JSON、不手动 > 增删文件。** 索引与模板文件均原子写入(临时文件 + rename),增删模板同步更新 INDEX.json。

操作路由

1. **解析用户意图**,映射到脚本子命令:

  • "保存模板" / "存为模板" → `save`
  • "用模板" / "套用模板" / "复用上次的结构" → `use`
  • "模板列表" / "有哪些模板" / "常用模板" → `list`
  • "编辑模板" / "改模板" → `edit`
  • "删除模板" → `delete`
  • "预览模板" / "看看模板" → `get`

LLM 侧职责(save/use 前的分析)

2. **save 前**:LLM 阅读源内容,识别固定结构与可变区域,把具体值改写成 `{{变量名}}` 占位符(如产品名 → `{{product_name}}`、痛点 → `{{pain_point}}`),再把改写后的正文 通过 `--text` 或 `--file` 交给脚本。脚本负责提取变量清单、写文件、登记索引。 3. **use 前**:LLM 根据 topic/Profile 为每个变量推导填充值,通过 `--var`/`--vars` 传入。 脚本负责替换、usage_count 自增、原子写回索引。

调用脚本

4. 统一入口(默认 `--root templates`):

   S=skills/openclaw/template-library/scripts/templates.py
   python3 $S save 种草对比 --category xiaohongshu --description "双产品对比" \
           --text "标题:{{title}} A={{product_a}} vs B={{product_b}} CTA={{cta}}"
   python3 $S list --category xiaohongshu                  # 按分类列出,按使用次数降序
   python3 $S get 种草对比                                  # 预览内容 + 元信息
   python3 $S use 种草对比 --var title=夏日防晒 --var product_a=安耐晒
   python3 $S use 种草对比 --vars '{"title":"夏日防晒","cta":"点赞收藏"}'
   python3 $S edit 种草对比 --category general --description "改描述" --text "新正文 {{x}}"
   python3 $S delete 种草对比                                # 预览(dry-run)
   python3 $S delete 种草对比 --apply                        # 确认后真正删除

5. **脚本内置保证(无需 LLM 判断)**:

  • `save` 同名默认报错,需 `--force` 覆盖;`edit` 改分类会移动文件并清理旧文件
  • `use` 未填的变量保留 `{{占位符}}` 并在 stderr 警告,不会静默出错
  • `delete` 默认 **dry-run**,仅打印将删除的模板,加 `--apply` 才真正删并清理索引
  • 所有写操作原子化,增删模板与 INDEX.json 始终一致

6. **结果呈现**:把脚本输出整理成"输出"章节的 Markdown 返回给用户。

Profile 感知

  • **有 Profile 上下文时**:
  • save 操作自动将模板绑定到当前画像
  • list 操作优先显示当前画像的模板,其他画像的模板标记为"共享"
  • use 操作自动加载画像的 style.md 做语气适配
  • 模板文件的 frontmatter 中记录 `profile: {画像名称}`
  • **无 Profile 上下文时**:
  • 所有模板标记为 `profile: shared`(共享模板)
  • list 操作显示全部模板,不做画像筛选
  • use 操作不做语气适配,直接输出模板填充结果

> 自研溯源与参考项目见同目录 `EASEL-META.md`。

Read more
Ships witheasel

An open-source AI agent for social media — discover trends, create content, publish everywhere, and learn what works across Xiaohongshu, Douyin, Zhihu, Bilibili, and more.🎨一个开源的 AI 社交媒体智能体——发现热点趋势、创作内容、一键发布至各大平台,并学习分析哪些内容真正有效,覆盖小红书、抖音、知乎、哔哩哔哩等平台。

Get the whole plugin
Stats
3,463
Stars
528
Forks
Active
Maintenance
Python
Language
Apache-2.0
License
2h ago
Last commit
1mo ago
Created
4d ago
Added

Repo: zju-real/easel

Other skills on easel.

asset-manager
Skill

asset-manager

outputs/ 目录下的产物管理:按日期/平台/类型归档、打标签、搜索历史内容、生成素材清单。 当用户说"整理素材"、"归档"、"找之前的内容"、"搜索历史"、"素材管理"、…

@zju-real@zju-realView Skill
audio-editing
Skill

audio-editing

通用音频处理:音频剪辑/裁剪、格式转码(mp3/wav/m4a/aac)、音量归一化、从视频提取音轨、多段拼接、淡入淡出、变速(保音高)。当用户说“剪音频”“裁一段”“转成…

@zju-real@zju-realView Skill