AGENTS.md · git:20260916.c3747e5 · 2026-09-16 · sha256 a5d18097874fd693

AGENTS.md git:20260916.c3747e5A

Immutable. This exact content never changes and is served at /api/v1/blob/a5d18097874fd693.

# SNAP Skills Repository

Portable, self-contained [Agent Skills](https://agentskills.io/specification).

## Authority

User instructions override the nearest repository instructions; nearest instructions override the Agent Skills specification. This file owns evergreen repository invariants only. Skill-local files own activation, workflow, schemas, templates, examples, assets, scripts, and gotchas.

Persist behavior in repository files, not conversation memory. Keep skills self-contained; prefer small intentional duplication over cross-skill coupling.

## Skill contract

Each `skill-name/` requires `SKILL.md` and may contain `references/`, `assets/`, and `scripts/`.

| Field | Contract |
| --- | --- |
| `name` | Required, 1–64 lowercase letters, numbers, and hyphens; no leading/trailing hyphen or `--`; must match the directory. |
| `description` | Required, 1–1024 characters; model-facing activation pointer beginning `Use when...`; name distinct trigger branches, not body identity. |

Keep `SKILL.md` activation-critical: route selection, ordered procedure, completion criteria, resource pointers, and execution-critical guardrails. Inline steps every route needs. Move branch-specific detail to one-level-deep references. Prefer fewer than 500 lines and 5,000 tokens.

End each step with a checkable completion condition. The final condition must account for every selected item, changed path, finding, or artifact relevant to the skill.

## Resources and invocation

- Put exact artifact bodies in focused `references/` files; use topic-specific names when a skill has multiple artifacts. Wrap exact bodies in plain `<template>` / `</template>` tags with a blank line inside.
- Point from the step to the exact resource it needs. Co-locate definitions, rules, and caveats. Keep reference chains one level deep.
- Keep deterministic automation in `scripts/`: non-interactive, dependency-light or documented, safe from repository and skill roots, clear on failure, stable on stdout, diagnostic on stderr.
- Argument-taking skills declare `/skill:<name> [key|key=value]...` with `## Invocation`, `## Args`, and `## Routes`. Bare keys mean `true`. Reserve `help`; document defaults and conflicts; stop with concise usage for unsafe unknown arguments.

## Authoring

Write for predictable execution:

- clean, concise, brief, high-signal, direct
- procedure before supporting reference
- one authoritative home per meaning
- precise established vocabulary instead of repeated explanation
- positive protocol; prohibitions only as necessary guardrails
- exact scope, ids, paths, commands, enums, risks, evidence, and next actions
- no tutorial prose, motivational filler, broad adjectives, duplicated caveats, or discoverable environment facts

Match the consumer. Human-reviewed artifacts are natural and scannable. Machine-bound artifacts are deterministic and parseable. Preserve exact decisions, verification, and unresolved work.

## Work protocol

Before editing, read the nearest instructions and every resource required by the changed branch. Reuse active context before fetching external artifacts; refresh only when missing, stale, or explicitly requested.

Treat manifests, scripts, and the filesystem as source of truth rather than copying their contents into instructions.

After edits, verify frontmatter, directory/name agreement, links, template tags, stale references, command syntax, and `git diff --check`. Keep temporary files, traces, generated outputs, and secrets out of git.