Skip to documentation
Documentation navigation

Documentation navigation

Documentation / guides

Overview

Add reusable, on-demand instructions to a Harness Loop without placing every procedure in its system prompt.

developer

A skill is a named Markdown procedure that a model can load when the current task needs it. The reusable implementation lives in github.com/looprig/tools/skill; Harness supplies the tool execution, gate, Loop, and Session boundaries around it. This keeps a focused procedure out of every model request while still making its name and purpose discoverable.

How skills fit

%%{init: {"theme":"dark"}}%%
flowchart LR
  C[Skill catalog] --> P[Runtime context]
  P --> M[Model chooses a skill]
  M --> T[Skill tool]
  T --> G{Access gate}
  G -->|approved| B[SKILL.md body]
  B --> M

The catalog advertises metadata, not bodies. The model calls Skill with { "name": "weather-briefing" }; the tool prepares an access request and returns the authorized body as a tool result. Register the Skill tool with Loop tools just like any other tool.

Choose a source

SourceLocationTrust modelTypical use
Embeddedskills/<name>/SKILL.md in the application binaryCurated by the application and restricted by a per-agent allow-setStable product procedures
Workspace.skills/<name>/SKILL.md under a workspace rootProject-controlled and untrustedRepository-specific conventions

Embedded names win if both sources contain the same name. Workspace bodies are snapshotted during call preparation so the approved bytes cannot be replaced before execution.

Continue with SKILL.md format, then follow the complete Weather Assistant to see a model load a skill and call a domain tool in one turn.

Source and proof

← back to documentation