Skill Factory について
Skill Factoryは、セッション内のワークフローを観察し、再利用できるパターンを見つけるエージェントスキルです。適切なタイミングでスキル化を提案し、承認後にスキルやプラグインのファイルを生成します。
主な機能
- 01ワークフローの反復を静かに追跡
- 02パターンを検出してスキルを提案
- 03SKILL.mdファイルを生成
- 04Pythonプラグインを生成
- 05命名規則と品質基準を提示
活用シーン
- 01繰り返す複数手順の記録
- 02反復するツールの組み合わせをスキル化
- 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:黙って観察する
このスキルが有効な間、以下の内容を頭の中で記録してください。この記録をユーザーに見せてはいけません。黙って観察してください。
記録する内容
- 繰り返される操作:2 回以上使用されたコマンド、手順、アプローチ
- 複数ステップのワークフロー:一貫した目標を達成する 3 ステップ以上の手順
- ツールの組み合わせ:一貫したパターンで併用される 2 つ以上のツール
- ドメイン固有のパターン:ユーザーが専門分野特有の問題にどう取り組むか
- 修正と回避策:繰り返し発生するデバッグのパターンや解決策
記録しない内容
- 再利用の可能性が明確でない単発のタスク
- 自明な 1 ステップの操作(例:「ファイルを読む」)
- 既存の Hermes スキルで処理されているワークフロー
- 他の状況には応用できない、文脈に強く依存するタスク
フェーズ 2:提案の条件
以下のいずれかが発生したとき、スキルの作成を提案してください。
| 条件 | 例 |
|---|---|
| ユーザーから明示的な依頼がある | 「これをスキルとして保存して」「このワークフローを覚えて」「これを記録しよう」 |
| スラッシュコマンド | /skill-factory propose |
| パターンの繰り返し(2 回以上) | 同じワークフローがセッション中に 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).
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
一度に提案するスキルは 1 つだけにしてください。複数のパターンが検出された場合は、それらをキューに入れ、最も価値の高いものから提案してください。
フェーズ 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:生成後
ファイルの生成に成功した後:
- 確認する:
✅ 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?
命名規則
| ルール | 良い例 | 悪い例 |
|---|---|---|
| kebab-case を使う | git-pr-workflow | GitPRWorkflow |
| 内容が分かる名前にする | python-env-setup | setup |
| ドメインを含める | docker-debug-cycle | debugging |
| 名前にバージョンを含めない | api-testing | api-testing-v2 |
スキルの品質基準
生成する SKILL.md ファイルは、以下を満たす必要があります。
- 実行可能な内容にする(曖昧な指針ではなく具体的な手順を記載する)
- トリガーとなったセッションの実例を少なくとも 1 つ含める
- 明確な発動条件を定義する
- 600 行未満に収める
- 各ステップの 内容 だけでなく、その 理由 も記録する
生成する plugin.py ファイルは、以下を満たす必要があります。
- インストール方法と使用方法を説明する docstring を含める
- 少なくとも 1 つのスラッシュコマンドを登録する
- エラーを適切に処理する
- Python の慣用的な書き方に従う(型ヒント、async/await)
コマンドリファレンス
| コマンド | 説明 |
|---|---|
/skill-factory propose | 現在のセッションを分析し、検出されたスキルのうち最有力のものを提案します |
/skill-factory list | このセッションで生成されたすべてのスキルを表示します |
/skill-factory status | 現在追跡しているパターンを表示します |
/skill-factory queue | 提案待ちの、検出されたすべてのパターンを表示します |
/skill-factory save <name> | 最後に提案されたスキルにすぐに名前を付けて保存します |
/skill-factory clear | 現在のセッションの追跡ログを消去します |