从 Skill Creator 到会议纪要与 AI 日报:Claude Skill 创建与落地实战
- 前言
- 1. 为什么要把 Prompt 固化为 Skill
- 1.1 一次性 Prompt 的局限
- 1.2 Prompt、Skill 与最终产物的关系
- 2. 项目目录与文件职责
- 3. 在 Claude 项目中拉取 Skill Creator
- 3.1 拉取前先理解 GitHub 链接
- 3.2 只拉取目标子目录
- 4. 创建会议纪要 Skill
- 4.1 用原始 Prompt 描述业务流程
- 4.2 生成后的 Skill 如何工作
- 4.3 导入会议文字稿进行调用
- 5. 创建 moss 每日 AI 新闻概览 Skill
- 5.1 从功能清单生成第二个 Skill
- 5.2 Skill、模板与页面产物
- 5.3 AI 日报的完整执行过程
- 6. Skill 被触发和执行的底层逻辑
- 6.1 Claude 如何发现一个 Skill
- 6.2 为什么资源文件要与规则分离
- 7. 从创建到复用的完整方法
- 7.1 先识别值得固化的重复任务
- 7.2 Prompt 要写清五个要素
- 7.3 用真实输入测试,而不是只看 SKILL.md
- 7.4 根据偏差继续修改 Skill
- 8. 实践中的关键经验
- 8.1 Skill 不是更长的 Prompt
- 8.2 不确定信息必须有处理策略
- 8.3 联网任务必须关注时间与来源
- 8.4 文件命名要区分能力和产物
- 总结
前言
开会之后整理文字稿、每天从多个网站筛选 AI 新闻,这两类任务看起来不同,实际却有相同的问题:执行步骤固定、重复频率高、输出格式明确,但每次输入都会变化。
如果每次都临时写一段 Prompt,AI 当然也能完成任务。不过,Prompt 会散落在不同对话里,规则容易遗漏,输出格式也可能随着表达方式变化。更适合长期使用的方法,是把已经验证过的工作流程固化为Skill,让 Claude 在识别到对应需求后,自动加载并执行这套规则。
这次实践完成了两条工作流:
- 将会议转写文本整理为结构化会议纪要
- 抓取并筛选 AI 资讯,最终生成可直接打开的 HTML 日报
其中,skill-creator来自 Anthropic 官方 Skills 仓库。本文只介绍它的拉取与使用过程,不展开分析其内部实现。随后创建的meeting-minutes和tian-ai-daily,都是在 Claude 中调用skill-creator,通过自然语言需求生成的 Skill。
1. 为什么要把 Prompt 固化为 Skill
1.1 一次性 Prompt 的局限
普通 Prompt 更像一次任务说明。以会议纪要为例,我们不仅要告诉 AI “总结这场会议”,还希望它先清理停顿词和重复表达,再按会议信息、会议目标、讨论主题和行动项组织内容,遇到不确定信息时还不能自行补全。
当规则逐渐变多后,每次重新输入会出现三个问题:
- 容易遗漏某一步,例如忘记要求提取负责人和截止时间
- 相同任务的输出结构不稳定,不方便归档和继续处理
- Prompt 只存在于某次对话中,难以复用、维护和迭代
Skill 的价值,就是把这些稳定规则从一次对话中抽离出来,变成项目内可复用的能力。
Skill 是一组可被模型按需加载的任务说明与配套资源。它把“什么时候使用、按照什么流程执行、最终输出什么”固化在项目中。
1.2 Prompt、Skill 与最终产物的关系
| 层次 | 作用 | 本次实践中的例子 |
|---|---|---|
| Prompt | 用自然语言描述想创建的能力 | “根据文字稿生成会议纪要” |
| Skill | 保存触发条件、执行流程和输出规范 | meeting-minutes/SKILL.md |
| 输入数据 | 每次任务中变化的原始材料 | meeting_content.txt、近 24 小时资讯 |
| 最终产物 | Skill 执行后交付的结果 | 会议纪要、moss_ai_daily.html |
这四层不能混在一起。Prompt 用来创建或调用能力,Skill 用来固化能力,输入文件提供本次任务的数据,最终文件才是实际交付物。
2. 项目目录与文件职责
本次实践的核心目录如下:
meeting/ ├── .claude/ │ └── skills/ │ ├── skill-creator/ # 从 Anthropic 官方仓库拉取 │ ├── meeting-minutes/ │ │ └── SKILL.md # 第一段 Prompt 创建的会议纪要 Skill │ └── tian-ai-daily/ │ ├── SKILL.md # 第二段 Prompt 创建的 AI 日报 Skill │ └── assets/ │ └── template.html # 日报页面模板 └── moss_ai_daily.html # AI 日报 Skill 生成的页面 meeting_content.txt # 导入的会议转写文本这里有一个容易混淆的命名细节:第二个 Skill 的实际名称是tian-ai-daily,它生成的文件则叫作moss_ai_daily.html。前者是能力名称,后者是输出产物名称。
meeting_content.txt是导入的会议文字稿,包含多位发言人的连续转写内容。它是meeting-minutes的输入材料,不是 Skill 本身。当前资料中没有单独保存由它生成的会议纪要文件,因此本文只说明输入与处理链路,不虚构一份不存在的输出。
3. 在 Claude 项目中拉取 Skill Creator
3.1 拉取前先理解 GitHub 链接
skill-creator的来源是 Anthropic 官方仓库中的子目录:
https://github.com/anthropics/skills/tree/main/skills/skill-creator
这个地址是 GitHub 的目录浏览页,不是一个可以直接执行git clone的独立仓库地址。真正的仓库地址是:
https://github.com/anthropics/skills.git在 Claude 中可以直接说明来源和目标位置,让 Claude 帮助完成拉取,例如:
请将下面仓库中的 skill-creator 拉取到当前项目的 .claude/skills/skill-creator 目录: https://github.com/anthropics/skills/tree/main/skills/skill-creator关键不是让 Claude 记住某个网页,而是把两个约束说清楚:从哪里取,以及放到哪里。
3.2 只拉取目标子目录
如果希望自己在终端完成,也可以使用 Git 的稀疏检出,只获取仓库中的目标目录:
# 浅克隆仓库,并暂不检出全部目录gitclone--depth1--filter=blob:none--sparse\https://github.com/anthropics/skills.git anthropic-skillscdanthropic-skills# 只检出官方仓库中的 skill-creator 子目录gitsparse-checkoutsetskills/skill-creator# 将它放进 Claude 项目的 Skills 目录mkdir-p../.claude/skillscp-Rskills/skill-creator../.claude/skills/完成后,通过下面的命令检查目标文件是否存在:
# SKILL.md 存在,说明 Claude 已经能发现这个 Skilltest-f../.claude/skills/skill-creator/SKILL.md&&echo"skill-creator ready"到这里,拉取过程就完成了。后续只需要在 Claude 中提出“创建一个 Skill”的需求,并明确业务规则与保存位置即可。本文不继续展开skill-creator目录中的脚本、Agent 或评测实现。
4. 创建会议纪要 Skill
4.1 用原始 Prompt 描述业务流程
第一个 Skill 的目标,是把冗长、口语化的会议文字稿整理为结构化会议纪要。在 Claude 中调用skill-creator时,使用的 Prompt 为:
请帮我创建一个skill,这个skill用于生成会议纪要。根据用于提供的文字稿, 生成会议纪要,具体流程为:先通读全文,去除停顿词等与会议无关内容。 结构化输出:会议基本信息(时间,地点,人物),会议目标(目的/预算,背景信息) 会议内容(按主题划分,讨论了什么,观点是什么) 行动项(谁在何时需要做什么)不确定的内容请留空 请将技能创建在当前工作目录的/.claude/skills 文件夹中。这段 Prompt 虽然不长,却提供了创建 Skill 最关键的四类信息:
| 信息类型 | Prompt 中的要求 | 固化后的作用 |
|---|---|---|
| 能力目标 | 生成会议纪要 | 确定 Skill 的职责边界 |
| 输入类型 | 用户提供的文字稿 | 让 Claude 知道处理对象 |
| 处理流程 | 通读、清理停顿词、去除无关内容 | 保证先清洗再总结 |
| 输出结构 | 基本信息、目标、主题内容、行动项 | 保证不同会议使用统一格式 |
| 可靠性约束 | 不确定内容留空 | 避免模型补造时间、地点和负责人 |
4.2 生成后的 Skill 如何工作
Claude 最终在.claude/skills/meeting-minutes/下创建了SKILL.md。这个文件把原始需求扩展成了更完整的执行规范,包括触发描述、清理原则、结构化模板、行动项表格以及不确定信息的处理方式。
一个典型 Skill 的开头使用 YAML Front Matter 保存基础信息:
---name:meeting-minutesdescription:根据会议文字稿生成结构化会议纪要。当用户提供会议记录、 会议录音转写文本,或要求整理会议纪要、提取行动项时使用。---其中,name是 Skill 的稳定标识;description不只是介绍文字,也是模型判断是否应该加载该 Skill 的重要依据。正文则保存真正的工作流程。
这套会议处理链路可以概括为:
meeting_content.txt ↓ 通读完整文字稿,理解会议上下文 ↓ 删除停顿词、重复表达和无关闲聊 ↓ 按讨论主题归并观点与结论 ↓ 提取负责人、任务和截止时间 ↓ 无法确认的信息留空 ↓ 输出结构化会议纪要这里最重要的约束不是“总结得多漂亮”,而是信息必须可追溯到输入文本。会议时间、预算、负责人和截止日期都属于高风险字段,原文没有明确说明时就应留空。对会议纪要而言,少写一项通常比编造一项更可靠。
4.3 导入会议文字稿进行调用
meeting_content.txt是这次导入的原始会议转写文本。它保留了发言人编号、时间戳、重复表达和语音识别产生的不通顺内容,正好可以用于检验 Skill 是否真的执行了“先清洗、再结构化”的流程。
在 Claude 中调用时,不需要重新粘贴整套会议纪要规则,只需要提供文件并说明任务:
请读取 meeting_content.txt,并生成会议纪要。Claude 根据文件类型和用户意图匹配meeting-minutes的description,加载SKILL.md中的流程,再对本次文本执行处理。这正是 Skill 相比一次性 Prompt 的价值:稳定规则只维护一次,后续调用只提供变化的输入。
5. 创建 moss 每日 AI 新闻概览 Skill
5.1 从功能清单生成第二个 Skill
第二个 Prompt 的目标更复杂,不仅要检索和摘要内容,还要生成一个带交互和样式的 HTML 页面:
帮我创建一个skill,下面是详细描述。 Skill名称:tian-ai-daily(moss每日 AI 新闻概览) 核心功能:为你精选每日最值得关注的AI行业资讯,让你用最少的时间掌握 最新的行业动态。 具体要求: 1. 收集近24小时内的AI领域重要新闻,覆盖权威AI科技媒体 (TechCrunch、The Verge、Hacker News)。 2. 智能过滤,只保留有价值的行业资讯。 3. 将抓取内容转化为中文精华版,每条提炼50-100字核心要点。 4. 智能标注关键词标签,方便快速定位感兴趣的内容。 5. 输出精美的可视化HTML页面,顶部显示“moss AI日报-[日期]”。 6. 使用卡片式设计,每条资讯一目了然,每张卡片可点击查看原文详情。这一次,需求同时包含了数据源、时间范围、过滤标准、内容格式和页面形式。与会议纪要相比,它已经是一条小型内容生产流水线。
5.2 Skill、模板与页面产物
生成后的tian-ai-daily不只有一个SKILL.md,还包含assets/template.html。两者分工如下:
| 文件 | 职责 |
|---|---|
tian-ai-daily/SKILL.md | 定义资讯来源、筛选规则、中文摘要要求和页面生成步骤 |
assets/template.html | 提供页面结构、卡片样式、响应式布局和标签筛选交互 |
moss_ai_daily.html | 将当天资讯写入模板后得到的独立 HTML 页面 |
将模板单独放在assets中,比每次让模型从零生成整页 HTML 更稳定。页面骨架和样式可以持续复用,每次变化的只有日期、统计数字、标签以及新闻卡片数据。
模板中预留了类似下面的占位位置:
<!-- 日期、数量和新闻卡片由 Skill 在执行时写入 --><divclass="date-badge">DATE_PLACEHOLDER</div><divclass="stat-num">NEWS_COUNT_PLACEHOLDER</div><divclass="news-grid"><!-- NEWS_CARDS_PLACEHOLDER --></div>实际生成的moss_ai_daily.html是一个独立文件,CSS、新闻卡片和筛选脚本都已经写入其中,不需要启动服务器即可在浏览器打开。当前页面产物包含日期、资讯统计、标签筛选、十张新闻卡片和原文链接,也体现了第二段 Prompt 中的主要要求。
5.3 AI 日报的完整执行过程
这个 Skill 的运行链路可以拆成六步:
| 阶段 | 输入 | 处理 | 输出 |
|---|---|---|---|
| 资讯发现 | 指定媒体与搜索结果 | 收集候选新闻 | 候选链接集合 |
| 时效筛选 | 发布时间 | 判断是否属于目标时间窗口 | 近期资讯 |
| 价值过滤 | 标题与正文 | 去重、排除广告和低价值内容 | 精选资讯 |
| 中文加工 | 新闻正文 | 提炼 50-100 字摘要 | 中文标题与摘要 |
| 结构标注 | 新闻主题 | 生成关键词标签 | 可筛选的分类数据 |
| 页面生成 | 模板与新闻数据 | 替换占位内容 | moss_ai_daily.html |
与会议纪要不同,AI 日报依赖外部信息源,时效性和来源准确性必须在每次运行时重新验证。当前 HTML 产物中存在超出“近 24 小时”范围的时间标签,来源也比原 Prompt 指定的三类媒体更广。这并不影响页面作为生成结果展示,但说明 Skill 创建完成不等于业务规则已经永久正确,真实产物仍需要验收并继续迭代。
6. Skill 被触发和执行的底层逻辑
6.1 Claude 如何发现一个 Skill
项目级 Skill 放在.claude/skills/<skill-name>/下。Claude 首先读取可用 Skill 的基础信息,再根据当前请求判断是否需要加载某个 Skill。可以把这个过程理解为两阶段匹配:
- 发现阶段:通过
name和description了解有哪些能力 - 执行阶段:命中用户意图后,读取
SKILL.md正文及所需资源,按照流程完成任务
因此,description不能只写一句空泛的“这是一个很有用的 Skill”。它需要包含真实的输入类型和触发表达,例如“会议文字稿”“整理会议纪要”“提取行动项”或“AI 日报”“最近的 AI 行业动态”。描述越具体,模型越容易在正确的任务中触发它,同时避免在无关请求中误用。
6.2 为什么资源文件要与规则分离
会议纪要主要输出 Markdown,使用一个SKILL.md就足以表达模板。AI 日报还需要稳定的视觉布局,因此增加了assets/template.html。
这体现了一条实用原则:
规则写进
SKILL.md,可复用且较长的模板、素材或脚本放进独立目录,运行结果输出到 Skill 目录之外。
这样设计后,修改页面配色不必重写新闻筛选流程,调整资讯规则也不会破坏 HTML 骨架。规则、资源和产物各自拥有清晰边界,后续维护会简单很多。
7. 从创建到复用的完整方法
把两次实践放在一起,可以得到一套通用的 Skill 创建流程。
7.1 先识别值得固化的重复任务
并不是所有问题都需要 Skill。适合固化的任务通常具备以下特征:
- 会重复执行,只有输入数据发生变化
- 处理步骤相对稳定,而且顺序很重要
- 输出存在明确结构或文件格式
- 对准确性、边界条件或异常处理有固定要求
会议纪要和 AI 日报正好满足这些条件。
7.2 Prompt 要写清五个要素
向skill-creator描述需求时,建议至少写清以下内容:
| 要素 | 需要回答的问题 | 示例 |
|---|---|---|
| Skill 名称 | 这项能力如何被稳定标识 | meeting-minutes |
| 触发场景 | 用户说什么、提供什么时使用 | 提供会议文字稿并要求整理 |
| 输入 | Skill 会接收哪些数据 | TXT 转写文件、网页资讯 |
| 处理流程 | 每一步做什么,顺序如何 | 清理 → 归类 → 提取行动项 |
| 输出 | 最终格式、路径和质量要求 | Markdown 纪要、独立 HTML |
如果任务包含高风险信息,还要写清禁止事项。例如会议纪要不能编造负责人,资讯日报必须保留原文链接。约束写得越明确,输出越容易验收。
7.3 用真实输入测试,而不是只看 SKILL.md
Skill 文件创建成功,只能说明目录和规则已经存在,不能证明实际效果符合预期。正确做法是准备真实输入并检查最终产物:
- 用
meeting_content.txt检查口语清理、主题归并和行动项提取 - 用当天资讯检查 24 小时时间窗口、来源覆盖和去重逻辑
- 打开
moss_ai_daily.html检查链接、移动端布局和标签筛选
验收时,应把“规则是否写了”和“结果是否做到”分开检查。日报 Skill 已经写明近 24 小时要求,但现有页面仍混入更早内容,这就是只有产物验收才能发现的问题。
7.4 根据偏差继续修改 Skill
当测试发现问题时,不要只在当前对话里临时纠正,而应把稳定的修正规则写回 Skill。例如,可以为日报增加以下约束:
发布时间无法确认的资讯不得进入“近24小时”列表; 如合格资讯不足8条,应明确显示“今日有效资讯不足”,不得用旧闻补足数量。也可以为会议纪要补充验收要求:
每个行动项必须能在原始文字稿中定位到对应表述; 未明确负责人或截止时间时,对应单元格保持为空。这一步把一次测试中的经验继续沉淀回 Skill,使它从“能运行”逐步变成“输出稳定、边界清楚、可以长期复用”。
8. 实践中的关键经验
8.1 Skill 不是更长的 Prompt
Skill 的重点不是字数,而是可维护的工作流。一个好的 Skill 会明确触发条件、步骤顺序、输入输出和异常边界,还能按需携带模板等资源。它解决的是长期复用问题,而不是把一次性 Prompt 换个目录保存。
8.2 不确定信息必须有处理策略
会议纪要中最重要的规则之一,是“不确定的内容留空”。AI 很擅长生成语言通顺的答案,但语言通顺不代表事实可靠。对时间、地点、人物、金额和截止日期等字段,必须优先保证准确性。
8.3 联网任务必须关注时间与来源
日报类 Skill 的难点不在 HTML 卡片,而在资讯是否真实、近期且值得阅读。页面再精美,如果混入旧闻、重复报道或不可核验链接,也没有完成核心任务。因此,时间窗口、来源白名单、原文链接和失败时的降级策略都应该成为明确规则。
8.4 文件命名要区分能力和产物
tian-ai-daily是 Skill 名,moss_ai_daily.html是页面产物。稳定的 Skill 名便于触发和维护,面向读者的文件名则可以服务品牌与交付场景。两者可以不同,但应在文档中明确映射,避免后续调用时找错目录。
总结
这次实践没有停留在“让 AI 帮我写一次内容”,而是完成了从能力引入到实际产物的完整闭环:先从 Anthropic 官方仓库拉取skill-creator,再用两段自然语言 Prompt 分别创建meeting-minutes和tian-ai-daily,最后把真实的会议转写文本与资讯任务交给对应 Skill 处理。
meeting_content.txt展示了输入数据与 Skill 规则分离的价值,assets/template.html展示了复杂任务中资源复用的方式,moss_ai_daily.html则证明 Skill 可以直接交付一个可打开、可交互的页面。
更重要的是,Skill 并非创建一次就结束。真实输入负责暴露问题,产物验收负责发现偏差,规则迭代负责把经验沉淀下来。当一项重复工作拥有清晰的输入、稳定的步骤、可验证的输出和明确的异常边界时,它才真正从一段 Prompt 变成了可以长期使用的 AI 能力。