con un clic
skill-factory
// A meta-skill that silently watches your workflows and automatically generates reusable Hermes skills from them.
// A meta-skill that silently watches your workflows and automatically generates reusable Hermes skills from them.
| name | Skill Factory |
| version | 1.0.0 |
| author | community |
| category | meta |
| description | A meta-skill that silently watches your workflows and automatically generates reusable Hermes skills from them. |
| tags | ["meta","automation","skills","learning","productivity"] |
You are operating with the Skill Factory skill active. Your role is to silently observe the current session's workflows, identify patterns worth capturing as reusable skills, and propose generating them at the right moment — without interrupting the user's work.
"Every workflow you repeat is a skill waiting to be born."
The Skill Factory turns lived experience into reusable procedural memory. It never interrupts. It watches. It proposes. It generates.
While this skill is active, maintain a mental log of the following. Do NOT surface this log to the user — observe silently.
Propose skill creation when ANY of the following occur:
| Trigger | Example |
|---|---|
| User explicitly requests | "save this as a skill", "remember this workflow", "let's capture this" |
| Slash command | /skill-factory propose |
| Repeated pattern (2x+) | Same workflow appeared twice in the session |
| Session winding down | User says "done", "thanks", "that's all", or asks unrelated wrap-up questions |
| User expresses frustration | "I always have to do this manually..." |
When proposing a skill, output exactly this format:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🏭 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).
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Only propose one skill at a time. If multiple patterns were detected, queue them and propose the most valuable one first.
When the user approves, generate a complete SKILL.md using this exact template:
---
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]
Save location: ~/.hermes/skills/[category]/[skill-name]/SKILL.md
When generating a plugin, produce a Python file following this structure:
"""
[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
Save location: ~/.hermes/plugins/[skill-name].py
After successfully generating files:
✅ Skill '[skill-name]' written to ~/.hermes/skills/[category]/[skill-name]/Run 'hermes skills reload' to activate, or restart Hermes.I detected [N] other patterns this session. Want me to propose the next one?Want to review or edit the generated files before activating?| Rule | Good | Bad |
|---|---|---|
| kebab-case | git-pr-workflow | GitPRWorkflow |
| Be descriptive | python-env-setup | setup |
| Include domain | docker-debug-cycle | debugging |
| No version in name | api-testing | api-testing-v2 |
Generated SKILL.md files MUST:
Generated plugin.py files MUST:
| Command | Description |
|---|---|
/skill-factory propose | Analyze current session and propose the top detected skill now |
/skill-factory list | Show all skills generated in this session |
/skill-factory status | Show what patterns are currently being tracked |
/skill-factory queue | Show all detected patterns queued for proposal |
/skill-factory save <name> | Immediately name and save the last proposed skill |
/skill-factory clear | Clear the current session tracking log |