Skip to content

Latest commit

 

History

History
103 lines (81 loc) · 3.94 KB

File metadata and controls

103 lines (81 loc) · 3.94 KB

Autolith Skills

Skills

A Skill is a named bundle of request-local instructions for the model. Autolith shows the model a bounded catalog, then the model calls skill.load to load each applicable Skill before work that depends on it.

Standard SKILL.md

Autolith supports the Agent Skills SKILL.md format. Put this in .autolith/skills/release-check/SKILL.md:

---
name: release-check
description: Verify a release from source through its packaged artifact.
license: ISC
metadata:
  author: Lambda Symbolics
allowed-tools: Read Grep
---
Follow the repository release procedure completely.
Run every relevant check before reporting success.

The YAML frontmatter requires name and description. It may also contain license, compatibility, metadata, and allowed-tools. Unknown and duplicate fields are rejected. metadata must map strings to strings. The other optional fields must be strings.

Standard names contain 1 to 64 lowercase ASCII letters, digits, or single hyphens. A name cannot begin or end with a hyphen, contain consecutive hyphens, or differ from its parent directory.

The Markdown after the closing --- line is the exact instruction body. An empty body is valid. allowed-tools is descriptive metadata and does not grant command or tool permissions.

Autolith hashes the exact decoded source re-encoded as UTF-8 and converts it to a native cache below the configured cache root at skills/agent-skill-v1/<sha256>/SKILL.sexp. An unchanged source reuses that cache across restarts. Changed content gets a new conversion. A malformed or corrupt cache is regenerated from SKILL.md.

Native SKILL.sexp

The native format remains available:

(:autolith-skill
 :version      1
 :name         "release-check"
 :description  "Verify a release from source through its packaged artifact."
 :instructions
 "Follow the repository release procedure completely.
Run every relevant check before reporting success.")

A native file is one bounded top-level form with required :version, :name, :description, and :instructions fields after :autolith-skill. Autolith rejects unsupported versions, unknown or duplicate fields, malformed data, extra forms, reader labels, circular or shared structure, and values of the wrong type.

Locations and precedence

Autolith scans these roots recursively, with earlier roots taking precedence:

  1. .autolith/skills/ at the project root
  2. ${XDG_CONFIG_HOME:-~/.config}/autolith/skills/
  3. bundled Skill roots

Outside Git, the workspace directory is the project root. Only the exact, case-sensitive filenames SKILL.sexp and SKILL.md count. Within one directory, a valid native definition is considered before SKILL.md. An invalid definition does not reserve its name, so another valid definition may still be selected.

Loading

  • Every inference provider request gets a bounded catalog when Skills exist.
  • The catalog contains names, descriptions, and original source paths.
  • skill.load records the selected name for the current logical turn.
  • In compact tool view, the terminal finalizes a visible ◆ loaded skill: NAME transcript marker when selection succeeds. The marker survives ordinary redraws but is not written to durable conversation history. Expanded tool view presents the ordinary transient skill.load result instead.
  • At the next provider boundary, Autolith rereads the original source. A changed SKILL.md is rehashed and reconverted before its current Markdown body is injected.
  • Selected Skills stack in catalog order.
  • Child agents may load Skills only when their role permits skill.load.

Diagnostics

The (skills) command inspects the catalog. It shows selected definitions, descriptions, paths, and diagnostics for rejected or shadowed files. With no Skills, it shows the roots where you can create one.

Use (context) to show the catalog, selected contributions, omissions, and contributor failures.