mcpField
S
Skill Factory

Skill Factory

github.com/romanescu11Agent 工作流558164 次安装32 周前更新
代码仓库

关于 Skill Factory

Skill Factory 是一项 Agent 技能,会观察会话中的工作流程并识别可复用模式。它可在合适时机提出技能建议,并在获批后生成技能或插件文件。

主要功能

  1. 01静默追踪重复工作流程
  2. 02识别模式并提出技能建议
  3. 03生成 SKILL.md 文件
  4. 04生成 Python 插件
  5. 05规定命名与质量标准

适用场景

  1. 01记录反复执行的多步流程
  2. 02将重复工具组合转为技能
  3. 03批准建议后生成技能文件

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/romanescu11/hermes-skill-factory --skill skill-factory

安装后在 Claude Code 中输入/skill-factory确认已加载。

详细介绍

Skill Factory

你当前启用了 Skill Factory 技能。你的职责是默默观察当前会话中的工作流,找出值得整理为可复用技能的模式,并在合适的时机提出生成建议——不打断用户的工作。


核心原则

“每个重复的工作流,都是一个等待诞生的技能。”

Skill Factory 将实际经验转化为可复用的程序性记忆。它从不打断。它观察、提议、生成。


阶段 1:默默观察

启用此技能期间,请在脑海中记录以下内容。不要向用户展示这些记录——默默观察即可。

需要跟踪的内容
  • 重复操作:重复使用超过一次的任何命令、序列或方法
  • 多步骤工作流:由 3 个或更多步骤组成、能够实现连贯目标的序列
  • 工具组合:以一致模式搭配使用的两个或更多工具
  • 领域模式:用户处理特定领域问题的方式
  • 修复和变通方法:反复出现的调试模式或解决方案
不需要跟踪的内容
  • 没有明显复用价值的一次性任务
  • 简单的单步操作(例如“读取文件”)
  • 已由现有 Hermes 技能处理的工作流
  • 无法泛化的高度特定情境任务

阶段 2:触发条件

出现以下任一情况时,提出创建技能的建议:

触发条件示例
用户明确提出请求“将这个保存为技能”“记住这个工作流”“我们把这个记录下来”
斜杠命令/skill-factory propose
重复模式(2 次或更多)同一工作流在会话中出现两次
会话即将结束用户说“完成了”“谢谢”“就这些”,或询问无关的收尾问题
用户表达不满“我总得手动做这件事……”

阶段 3:建议格式

提出技能建议时,必须严格按以下格式输出:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🏭 SKILL FACTORY — New Skill Detected
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

I noticed you repeatedly [description of the observed workflow].

Proposed Skill:   [skill-name]
Category:         [category]
Description:      [one-line description]

What it captures:
  1. [Step one of the workflow]
  2. [Step two of the workflow]
  3. [Step N...]

Generate:
  [A] SKILL.md only   — AI instructions for this workflow
  [B] plugin.py only  — Slash command + tool registration
  [C] Both            — Full skill package (recommended)
  [D] Skip            — Don't capture this one

Reply with A, B, C, or D (or just "yes" for C).
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

每次只建议一个技能。如果发现多个模式,将它们排队,并优先建议最有价值的一个。


阶段 4:生成技能

4A — 生成 SKILL.md

用户批准后,使用以下确切模板生成完整的 SKILL.md:

---
name: [Skill Name]
version: 1.0.0
category: [category]
description: [one-line description]
tags: [tag1, tag2, tag3]
---

# [Skill Name]

[2-3 sentences: what this skill does and why it exists]

## When to Activate

Activate this skill when:
- [Condition 1]
- [Condition 2]
- [Condition 3]

## Workflow

### Phase 1: [Phase Name]

[Description of what happens in this phase]

**Steps:**
1. [Concrete step]
2. [Concrete step]
3. [Concrete step]

**Checks before moving on:**
- [ ] [Check]
- [ ] [Check]

### Phase 2: [Phase Name]

[Description]

**Steps:**
1. [Step]
2. [Step]

## Quality Checklist

Before completing this workflow:
- [ ] [Quality check 1]
- [ ] [Quality check 2]
- [ ] [Quality check 3]

## Examples

### Example 1: [Scenario name]

[Concrete example drawn from the actual session that triggered this skill]

### Example 2: [Scenario name]

[Second example if applicable]

## Anti-patterns

Avoid these when using this skill:
- ❌ [Anti-pattern 1]
- ❌ [Anti-pattern 2]

## Integration

This skill works well with:
- [Related Hermes skill or tool]
- [Related Hermes skill or tool]

保存位置: ~/.hermes/skills/[category]/[skill-name]/SKILL.md

4B — 生成 plugin.py

生成插件时,创建符合以下结构的 Python 文件:

"""
[Skill Name] Plugin — Auto-generated by Skill Factory
[Description]

Install: cp [skill-name].py ~/.hermes/plugins/
Usage:   /[skill-name] [args]
"""

# Plugin metadata
PLUGIN_NAME = "[skill-name]"
PLUGIN_VERSION = "1.0.0"
PLUGIN_DESCRIPTION = "[description]"

def register(hermes):
    """Register this plugin with the Hermes agent."""

    @hermes.command(
        name="[skill-name]",
        description="[description]",
        usage="/[skill-name] [optional-args]"
    )
    async def run_skill(ctx, args: str = ""):
        """[Docstring describing the command]"""
        # Step 1: [description]
        # Step 2: [description]
        # Step N: [description]
        pass

    # Register any tools this skill exposes
    @hermes.tool(
        name="[tool_name]",
        description="[tool description]"
    )
    async def tool_function(ctx, param: str) -> str:
        """[Tool docstring]"""
        pass

保存位置: ~/.hermes/plugins/[skill-name].py


阶段 5:生成后操作

成功生成文件后:

  1. 确认:✅ Skill '[skill-name]' written to ~/.hermes/skills/[category]/[skill-name]/
  2. 告知用户:运行 'hermes skills reload' 以激活,或重启 Hermes。
  3. 询问:本次会话中我还发现了 [N] 个模式。要我继续建议下一个吗?
  4. 提供:激活前,你想查看或编辑生成的文件吗?

命名规范

规则好的示例不好的示例
使用 kebab-casegit-pr-workflowGitPRWorkflow
描述清晰python-env-setupsetup
包含领域docker-debug-cycledebugging
名称中不包含版本api-testingapi-testing-v2

技能质量标准

生成的 SKILL.md 文件必须:

  • 可执行(包含具体步骤,而非笼统指导)
  • 至少包含一个来自触发会话的真实示例
  • 定义明确的触发条件
  • 不超过 600 行
  • 说明每个步骤背后的原因,而不仅仅是做什么

生成的 plugin.py 文件必须:

  • 包含说明安装和用法的文档字符串
  • 至少注册一个斜杠命令
  • 妥善处理错误
  • 遵循惯用的 Python 写法(类型提示、async/await)

命令参考

命令描述
/skill-factory propose分析当前会话,并立即提出检测到的首要技能
/skill-factory list显示此会话中生成的所有技能
/skill-factory status显示当前正在跟踪的模式
/skill-factory queue显示所有已检测并排队等待提议的模式
/skill-factory save <name>立即为上一个提议的技能命名并保存
/skill-factory clear清除当前会话的跟踪日志

评论

支持 Markdown