Authoring Anthropic Skills

This chapter explains how an Anthropic-style skill bundle should be structured if the goal is to match the current parser and preparation logic of the subsystem.

Descriptor Format

The normative descriptor file for this family is SKILL.md in uppercase. The subsystem reads that file through a dedicated parser rather than through the generic markdown parser used by the other skill families. The parser supports optional frontmatter delimited by ---. If frontmatter contains name:, that value becomes the skill name. Otherwise the first top-level heading becomes the name. If neither is present, the folder name becomes the fallback skill name.

The body of the file is then split into sections by markdown headings. Unlike some of the other families, the subsystem does not enforce a narrow fixed set of section names here. What matters is that the raw body remains coherent enough to serve as a loop-session system prompt. This means the file should be written as operational guidance rather than as loose narrative description.

The practical consequence is that instructional quality matters directly. Since the raw body becomes part of the session prompt, vague text becomes a runtime problem rather than merely a documentation issue.

Optional Helper Folders

The current subsystem recognizes scripts/ and resources/. Files under scripts/ are discoverable through the runtime tool run-script. Files under resources/ are discoverable through the runtime tool get-resource. These two folders are therefore part of the prepared skill surface.

Minimal Anthropic skill layout

  • skills/
    • pdf-lite/
      • SKILL.md
      • scripts/
      • resources/

The assets/ folder may still be used in a skill bundle for auxiliary files, but it is not loaded into the session context at runtime by the Anthropic subsystem. In practice, assets/ should be treated as repository storage rather than as an active runtime surface.

Minimal Example

A compact example, taken from the repository’s own Anthropic skill fixtures, looks as follows.

---
name: pdf-lite
description: Use for simple text-based PDF checks when the PDF content is provided as plain text.
---

# PDF Lite

## Overview
This skill evaluates plain-text PDF content against a checklist.

## Inputs
- **pdf_text**: The PDF content pasted as plain text.

## Steps
1. Use `get-resource` to read `resources/checklist.md`.
2. Check the provided text for each required item.
3. Output a PASS/FAIL line per item and a short summary.

This example illustrates the intended style. The file is concise, operational, and written as direct behavioral guidance for the runtime rather than as detached documentation.