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
# 全局作用域 (Global)
~/.reasonix/skills/
├── audit-logs.md
└── refactor-react/
└── SKILL.md

# 项目作用域 (Project - 优先级更高)
<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

1
/skill git-push

执行结果:AI 分析你的更改,自动写好类似 feat: 新增 Reasonix 自动化初体验文章 的 Commit,并推送到你的 GitHub/Gitee 仓库,触发部署动作。