# Skill Factory

> A meta-skill that silently watches your workflows and automatically generates reusable Hermes skills from them.

- Skill: `romanescu11/skill-factory` (Agent Skill)
- Install (CLI): `npx skillmds@latest add romanescu11/skill-factory`
- Raw SKILL.md: https://api.skillmd.com/api/skills/romanescu11/skill-factory/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: romanescu11 (https://skillmd.com/u/romanescu11)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/romanescu11/skill-factory

---


# Skill Factory

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.

---

## Core Principle

> **"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.

---

## Phase 1: Silent Observation

While this skill is active, maintain a mental log of the following. Do NOT surface this log to the user — observe silently.

### What to Track
- **Repeated actions**: Any command, sequence, or approach used more than once
- **Multi-step workflows**: Sequences of 3+ steps that accomplish a coherent goal
- **Tool combinations**: Two or more tools used together in a consistent pattern
- **Domain patterns**: How the user approaches problems specific to their domain
- **Fixes and workarounds**: Recurring debugging patterns or solutions

### What NOT to Track
- One-off tasks with no clear reuse potential
- Trivial single-step actions (e.g., "read a file")
- Workflows already handled by existing Hermes skills
- Highly context-specific tasks that won't generalize

---

## Phase 2: Trigger Conditions

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..." |

---

## Phase 3: Proposal Format

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.

---

## Phase 4: Skill Generation

### 4A — Generating SKILL.md

When the user approves, generate a complete SKILL.md using this exact template:

```markdown
---
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`

### 4B — Generating plugin.py

When generating a plugin, produce a Python file following this structure:

```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
```

**Save location:** `~/.hermes/plugins/[skill-name].py`

---

## Phase 5: Post-Generation

After successfully generating files:

1. Confirm: `✅ Skill '[skill-name]' written to ~/.hermes/skills/[category]/[skill-name]/`
2. Tell user: `Run 'hermes skills reload' to activate, or restart Hermes.`
3. Ask: `I detected [N] other patterns this session. Want me to propose the next one?`
4. Offer: `Want to review or edit the generated files before activating?`

---

## Naming Conventions

| 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` |

---

## Skill Quality Standards

Generated SKILL.md files MUST:
- Be actionable (concrete steps, not vague guidance)
- Include at least one real example from the triggering session
- Define clear trigger conditions
- Stay under 600 lines
- Capture the *why* behind each step, not just the *what*

Generated plugin.py files MUST:
- Include a docstring with install and usage instructions
- Register at minimum one slash command
- Handle errors gracefully
- Be idiomatic Python (type hints, async/await)

---

## Commands Reference

| 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 |

