# org.cairnsproto.draft.procedure

> How to do one site of work at a course: a bundle in the Agent Skills format, with SKILL.md, checklist, worked examples and references. Text and images only; anything an agent runs is a listed check.

- Kind: record
- Record key: tid
- Authority: draft.cairnsproto.org
- Lexicon: 1
- Published by [cairnsproto.org](https://lexicon.garden/identity/did:plc:np7ezqujtsry4bkogisaabul), the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:np7ezqujtsry4bkogisaabul/org.cairnsproto.draft.procedure)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:np7ezqujtsry4bkogisaabul/org.cairnsproto.draft.procedure/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:np7ezqujtsry4bkogisaabul/org.cairnsproto.draft.procedure/analytics)

## Record (`org.cairnsproto.draft.procedure`)

Type: record · key tid

### Properties

- `bundle` (union, required)
  - One of (closed): `#inlineBundle`, `#blobBundle`, `org.cairnsproto.draft.defs#external`
- `checks` (array): Checks the agent may run on its work before placing.
  - Constraints: maxLength: 16
  - `items` (ref)
    - Reference: `com.atproto.repo.strongRef`
- `createdAt` (string · datetime, required)
- `license` (string, required): SPDX expression or URL.
  - Constraints: maxLength: 512
- `name` (string)
  - Constraints: maxLength: 640, maxGraphemes: 64
- `tools` (array, required): Client-provided tools the procedure needs, such as source.region, pdf.render or check.run.
  - Constraints: maxLength: 32
  - `items` (string)
    - Constraints: maxLength: 128
- `variants` (array): Bundles tuned for one model family.
  - Constraints: maxLength: 16
  - `items` (ref)
    - Reference: `#variant`

## #blobBundle (`org.cairnsproto.draft.procedure#blobBundle`)

Type: object

A zip of the bundle, for bundles with images.

### Properties

- `blob` (blob, required)
  - Constraints: maxSize: 5000000, accept: application/zip

## #file (`org.cairnsproto.draft.procedure#file`)

Type: object

### Properties

- `path` (string, required): Relative path, such as SKILL.md or examples/alger.json.
  - Constraints: maxLength: 256
- `text` (string, required)
  - Constraints: maxLength: 100000

## #inlineBundle (`org.cairnsproto.draft.procedure#inlineBundle`)

Type: object

Text files carried in the record. One file is SKILL.md at the bundle root.

### Properties

- `files` (array, required)
  - Constraints: minLength: 1, maxLength: 64
  - `items` (ref)
    - Reference: `#file`

## #variant (`org.cairnsproto.draft.procedure#variant`)

Type: object

### Properties

- `bundle` (union, required)
  - One of (closed): `#inlineBundle`, `#blobBundle`, `org.cairnsproto.draft.defs#external`
- `family` (string, required): Model family, as method.model names it.
  - Constraints: maxLength: 256

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "blobBundle": {
      "description": "A zip of the bundle, for bundles with images.",
      "properties": {
        "blob": {
          "accept": [
            "application/zip"
          ],
          "maxSize": 5000000,
          "type": "blob"
        }
      },
      "required": [
        "blob"
      ],
      "type": "object"
    },
    "file": {
      "properties": {
        "path": {
          "description": "Relative path, such as SKILL.md or examples/alger.json.",
          "maxLength": 256,
          "type": "string"
        },
        "text": {
          "maxLength": 100000,
          "type": "string"
        }
      },
      "required": [
        "path",
        "text"
      ],
      "type": "object"
    },
    "inlineBundle": {
      "description": "Text files carried in the record. One file is SKILL.md at the bundle root.",
      "properties": {
        "files": {
          "items": {
            "ref": "#file",
            "type": "ref"
          },
          "maxLength": 64,
          "minLength": 1,
          "type": "array"
        }
      },
      "required": [
        "files"
      ],
      "type": "object"
    },
    "main": {
      "description": "How to do one site of work at a course: a bundle in the Agent Skills format, with SKILL.md, checklist, worked examples and references. Text and images only; anything an agent runs is a listed check.",
      "key": "tid",
      "record": {
        "properties": {
          "bundle": {
            "closed": true,
            "refs": [
              "#inlineBundle",
              "#blobBundle",
              "org.cairnsproto.draft.defs#external"
            ],
            "type": "union"
          },
          "checks": {
            "description": "Checks the agent may run on its work before placing.",
            "items": {
              "ref": "com.atproto.repo.strongRef",
              "type": "ref"
            },
            "maxLength": 16,
            "type": "array"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "license": {
            "description": "SPDX expression or URL.",
            "maxLength": 512,
            "type": "string"
          },
          "name": {
            "maxGraphemes": 64,
            "maxLength": 640,
            "type": "string"
          },
          "tools": {
            "description": "Client-provided tools the procedure needs, such as source.region, pdf.render or check.run.",
            "items": {
              "maxLength": 128,
              "type": "string"
            },
            "maxLength": 32,
            "type": "array"
          },
          "variants": {
            "description": "Bundles tuned for one model family.",
            "items": {
              "ref": "#variant",
              "type": "ref"
            },
            "maxLength": 16,
            "type": "array"
          }
        },
        "required": [
          "bundle",
          "tools",
          "license",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "variant": {
      "properties": {
        "bundle": {
          "closed": true,
          "refs": [
            "#inlineBundle",
            "#blobBundle",
            "org.cairnsproto.draft.defs#external"
          ],
          "type": "union"
        },
        "family": {
          "description": "Model family, as method.model names it.",
          "maxLength": 256,
          "type": "string"
        }
      },
      "required": [
        "family",
        "bundle"
      ],
      "type": "object"
    }
  },
  "id": "org.cairnsproto.draft.procedure",
  "lexicon": 1
}
```
