Reasonix Skills 编写与实战指南:打造自动化博客工作流
在 Reasonix 中,Skill 是一种使用 Markdown 编写的剧本(脚本),允许大语言模型通过特定指令调用以执行预设任务。Skill 的名称和描述会被注入到 prompt 中,而具体内容(body)则会在调用时按需加载。
本教程将介绍如何配置、编写 Skill,并以一套完整的 Hexo 博客发布工作流为例,演示如何将零散的步骤串联成自动化流水线。
1. 基础配置与目录布局
Skill 按照作用域分为**全局(Global)**和**项目级(Project)**。当存在同名 Skill 时,项目级配置会覆盖全局。
目录布局
你可以将 Skill 定义为单个 .md 文件,或者为了方便管理附属资源,将其建立为包含 SKILL.md 的文件夹:
Plaintext
1 2 3 4 5 6 7 8 9
| ~/.reasonix/skills/ ├── audit-logs.md └── refactor-react/ └── SKILL.md
<project>/.reasonix/skills/ └── release-notes.md
|
快捷命令
- 查看列表:
/skill list(按作用域列出全部 skill)
- 查看详情:
/skill show <name>(打印完整内容)
- 快速创建:
/skill new <name>(加 --global 可写到全局)
- 执行脚本:
/skill <name> [args](后续 args 会作为单一字符串拼接到剧本之后执行)
2. Frontmatter 核心配置
在 Markdown 文件的最顶部,使用 --- 包裹 YAML 配置区域。
| 字段 |
说明 |
name |
Skill 名称。1-64 个字符(字母、数字、_、-、.)。默认取文件名。 |
description |
单行描述。会在 /skill list 列表中向用户展示。 |
runAs |
运行模式。 • inline(默认):正文内容直接进入当前父循环的日志中执行。 • subagent:启动一个隔离的子循环执行,完成后仅回传最终结果。 |
allowed-tools |
子循环的工具白名单(如 bash,read,write)。仅 subagent 生效。 |
model |
覆盖子循环使用的模型(必须以 deepseek- 开头)。仅 subagent 生效。 |
max-iters |
子循环的工具调用预算。默认 16,范围 [1, 32]。仅 subagent 生效。 |
3. 实战案例:Hexo 博客自动化工作流
下面我们将编写三个 Skill,分别负责新建文章、智能生成元数据和自动提交推送,完美覆盖 Hexo + Stellar 博客的写作闭环。
阶段一:新建文章 (new-post.md)
这个剧本使用 inline 模式,直接在当前上下文中调用 Hexo 原生命令创建文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| --- name: new-post description: 使用 hexo new 命令创建 Hexo + Stellar 博客文章。 runAs: inline ---
## 任务
使用 Hexo 原生命令创建新文章。
### 执行规则
1. **解析参数** - `$1` = 文章标题或布局(支持 Hexo 的布局语法) - 可选参数:`--layout` 或 `-l` 指定布局(默认 `post`)
2. **执行 hexo new 命令** ```bash hexo new [layout] <title> 3. **结果汇报** - 提示用户新建文章成功,文件目录为:source/_posts/
|
阶段二:智能完善元数据 (set-front-matter.md)
文章正文写完后,这个 subagent 剧本会赋予模型读取文件、分析正文、自动获取时间,并精准生成 Frontmatter 的能力。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| --- name: enrich-frontmatter description: 智能分析正文,自动补充或完善 title, date, tags, excerpt 等指定的 Frontmatter 字段。 runAs: subagent allowed-tools: read,write,bash model: deepseek-chat max-iters: 16 ---
## 任务目标
你是一个精通 Hexo Stellar 博客的智能文字编辑。你的任务是读取指定的 Markdown 文章,提取并分析现有的 Frontmatter 和正文内容,严格按照指定的字段列表为其补充或修正缺失的元数据,最后安全地写回文件。
## 执行步骤
1. **解析文件路径**: - 提取附在命令后的参数,识别目标**文件名**。 - 文件路径在 `source/_posts/`。 - 如果没找到,提示用户检查文件名。 2. **读取内容与获取时间**: - 使用 `read` 工具读取文件,分离已有的 YAML Frontmatter(`---` 之间)和正文。 - 使用 `bash` 工具执行 `date "+%Y-%m-%d %H:%M:%S"` 获取当前的标准时间,备用。 3. **按字段规则合并与补充**: - **核心原则**:如果原字段已有有效内容,**保留原内容**;如果缺失或为空,则通过分析正文智能生成。必须确保生成的 YAML 格式严格正确。 - 字段处理规则如下: - `title`: 根据正文大意总结一个精简的标题。 - `date`: 如果缺失或为空,填入刚刚通过 bash 获取的当前时间。 - `categories`: 如果缺失或为空,根据文章宏观领域归纳一个主分类(格式为 `[分类名]`)。 - `tags`: 如果缺失或不足 2 个,从正文提取 2-4 个核心主题词(格式为 `[标签1, 标签2]`)。 - `excerpt`: 如果缺失或为空,根据正文核心大意,提炼出一段 50~80 字的精炼摘要。 - `poster` / `banner`: 如果用户在参数中明确指定或原文件已有,则保留;否则留空或省略。 4. **覆写文件**: - 将处理好的完整 Frontmatter 与正文重新拼接,首尾加上 `---`。 - 使用 `write` 工具整体写回原文件。 5. **成果汇总**: - 简明扼要地向用户输出被修改或补充的字段情况(以 Markdown 列表展示),并告知处理完成。
|
阶段三:自动提交与发布 (git-push.md)
最后,使用该脚本接管 Git 操作,它会自动生成符合规范的提交信息并推送到远程仓库。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| --- name: git-push description: 自动暂存所有更改,基于 diff 智能生成规范的 commit message,并完成提交和推送。 runAs: subagent allowed-tools: bash model: deepseek-chat max-iters: 16 ---
## 任务目标
你是一个资深的研发工程师兼 Git 助手。你的任务是接管当前工作区,自动将所有更改暂存,通过分析代码差异(diff)生成一份高质量的 Git 提交信息,最后自动提交并推送到远程仓库。
## 执行步骤
1. **暂存更改与状态检查**: - 使用 `bash` 工具执行 `git add .`。 - 执行 `git diff --staged` 获取暂存的具体代码差异。 - 如果没有任何差异,向用户报告“当前没有需要提交的更改”,并终止后续操作。 2. **智能生成 Commit Message**: - 仔细阅读 diff 输出,严格遵循 **Conventional Commits (约定式提交)** 规范生成前缀(如:`feat:`, `fix:`, `docs:` 等)。 - 主体使用**中文**,简明扼要。例如:`feat: 新增格式化文章的 skill 脚本`。 - 融入用户调用时附带的额外参数说明。 3. **执行提交 (Commit)**: - 使用 `bash` 执行 `git commit -m "<你生成的 commit message>"`。 4. **推送到远程 (Push)**: - 执行 `git push`。 - **自动容错处理**:如果遇到无 upstream 分支的报错,执行 `git rev-parse --abbrev-ref HEAD` 获取当前分支名,然后执行 `git push --set-upstream origin <当前分支名>`。 5. **成果汇总**: - 汇报操作完成,并以引用块形式 `>` 展示最终生成的 Commit Message。
|
4. 工作流实战演示
将上述文件放入项目的 .reasonix/skills/ 目录后,你就可以像魔法一样顺滑地写博客了:
1. 产生灵感,一键建档
Bash
1
| /skill new-post "Reasonix 自动化初体验"
|
执行结果:AI 自动运行 Hexo 命令,生成 source/_posts/Reasonix-自动化初体验.md 并提示你开始写作。
2. 专注写作正文,其余交给 AI
你在 Markdown 中写完了内容,不需要管繁琐的标签、摘要和日期,front-matter直接交由reasonix解决。
Bash
1
| /skill enrich-frontmatter Reasonix-自动化初体验.md
|
执行结果:AI 自动读取该文件,获取当前时间,根据你的正文提炼出分类、标签和摘要,并完美回写覆盖。
3. 一键发布,优雅收尾
Bash
执行结果:AI 分析你的更改,自动写好类似 feat: 新增 Reasonix 自动化初体验文章 的 Commit,并推送到你的 GitHub/Gitee 仓库,触发部署动作。