Skip to content

Skill Format

Each skill in Homingo is a directory containing a SKILL.md file with YAML frontmatter.

Structure

skills/
  invoice-summary/
    SKILL.md
  tax-optimizer/
    SKILL.md
  legal-review/
    SKILL.md

SKILL.md Format

markdown
---
name: invoice-summary
description: "Generates concise summaries of invoice documents, extracting key fields like total amount, due date, vendor name, and line items."
---

# Invoice Summary

Additional context, examples, or documentation for the skill.

Frontmatter Fields

FieldRequiredDescription
nameYesUnique identifier for the skill. Should match the directory name.
descriptionYesThe text the model sees when deciding which skill to route to. This is what Homingo tests.

Writing Good Descriptions

Do

  • Be specific about what the skill handles
  • Include key distinguishing terms that separate it from similar skills
  • State what the skill does NOT handle when ambiguity exists
  • Keep it under 1024 characters — longer descriptions trigger scope overload warnings

Don't

  • List every possible use case — focus on the primary job
  • Use vague language like "handles various tasks related to..."
  • Duplicate terms that appear in other skill descriptions
  • Combine multiple intents — if a skill does 3+ distinct jobs, consider splitting

Examples

Good Description

yaml
description: "Generates concise summaries of invoice documents, extracting key fields like total amount, due date, vendor name, and line items. Does NOT perform invoice creation, payment processing, or financial analysis."

Clear scope, specific outputs, explicit negative boundaries.

Problematic Description

yaml
description: "Handles all invoice-related operations including summarization, creation, sending, tracking, payment reconciliation, and dispute resolution."

Too broad — covers six distinct intents. This will conflict with any other finance-related skill and will likely be flagged as scope overloaded.

The Body

Everything below the frontmatter is the skill body. Homingo does not use the body for routing analysis — only the name and description fields are tested. The body is for your team's documentation.

Released under the MIT License.