Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Reusable Procedures

Reusable Procedures can be understood as turning procedures into reusable assets. This is the foundation layer of the entire Skills system: each skill is, at its core, a packaged procedure — the thing you would normally have to re-explain to the agent (or to a new colleague) every time you need it done.

The structure of a practical skill

A SKILL.md is not free-form text — it follows a standard template so the agent can read it and act consistently. Here is a skill that produces a weekly sales report:

---
name: weekly-sales-report
description: Compiles the weekly revenue report from CRM and sends it via Slack
version: 1.0.0
---

# Weekly Sales Report

## When to Use
Every Monday morning, or whenever asked to "run the sales report".

## Procedure
1. Pull last week's order data from CRM (via the MCP connector)
2. Compute total revenue, compare with the previous week and the same week last month
3. List the top 5 largest deals and the deals at risk of slipping
4. Build a table + chart and post it to the #sales-weekly channel on Slack

## Pitfalls
- CRM data has a sync delay of ~2h on Monday mornings — run it after 9
- Completed/cancelled orders are still counted unless you filter the "refunded" status

## Verification
Total revenue in the report matches the figure shown on the original CRM dashboard

The four parts When to Use / Procedure / Pitfalls / Verification are not arbitrary — this is exactly the formula for a procedure that is reliable when repeated: know when to use it, know what to do, know what tends to go wrong, and know how to confirm it was done right.

Why “reusable” and not just “documented”

The difference from simply writing a procedure into a wiki: a skill is loaded conditionally. You can flag a skill so it only shows up when it fits the context — for example, only visible when a specific toolset (like a CRM connection) is available, or only visible as a fallback when the primary tool is missing. This keeps the agent from being “overwhelmed” by hundreds of irrelevant skills, and seeing exactly the right one in the right situation.

Practical application — combining several procedures into one flow

When a task always needs several procedures together (pull data → analyze → draft report → send notification), you don’t have to invoke each skill one by one. Group them into a bundle:

hermes bundles create monday-ritual \
  --skill weekly-sales-report \
  --skill pipeline-health-check \
  --skill slack-digest

From then on, /monday-ritual loads all three procedures at once and the agent gets the full context in a single command — “Monday morning, just type one line” in the truest sense.

Notes

  • Write a skill the way you would write a runbook for a new colleague — if a newcomer can read it and follow along, the agent can follow it too.
  • Use patch instead of edit when updating an existing skill (both you and the agent) — patch sends only the changed parts, which saves far more tokens than resending the whole file.
  • The more a procedure gets repeated, the sooner it should be split into a skill, instead of being crammed into the system prompt or repeated in every chat — that is the investment that “compounds interest” over time.