<!-- generated by epythet -->

# For AI agents

`an` ships artifacts for coding agents alongside its code. This page lists
them, says where each lives in the repository, and points at the
machine-readable copies of this documentation.

## Skills

Skills are folders holding a `SKILL.md` (the [Agent Skills](https://agentskills.io) format): a description that tells an agent when to use it and a body with the procedure. Install one into your agent with `gh skill` (any host: `--agent claude-code`, `copilot`, `cursor`, `codex`, `gemini`), or use the copy bundled in the wheel.

### `an`

Use whenever the user wants to author, edit, render, or iterate on a structured animation, cartoon, explainer video, or motion graphic via the an Python package. Triggers on “make a cartoon”, “animate”, “render a scene”, “let’s build a video”, “an init”, “an validate”, “an render”, or any request that maps to the chat-driven director workflow.

Source: [`.claude/skills/an`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an).

### `an-art-package`

Moved to the `cutan-art-package` skill in the cutan repository (an#225). Use `cutan-art-package` for the artist-facing contract for a cut-out character and how to check a delivery. Triggers on the old name.

Source: [`.claude/skills/an-art-package`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-art-package).

### `an-dev`

Use when working *inside* the an repo itself — writing or modifying an’s own Python code, tests, schemas, adapters, or skills. Triggers when CWD is the an repo and the task is implementation work (adding a renderer, fixing a schema bug, updating a store). Not for using an from a downstream project.

Source: [`.claude/skills/an-dev`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-dev).

### `an-dev-bench`

Use when working on `an bench`, the metrics ledger, the golden corpus, or anything that measures rendered output in the `an` repo. Triggers on “add a metric”, “the ledger”, “an bench”, “golden frames”, “mutation test the harness”, “why is this number moving”, “bench corpus”, or any change to `an/bench/`, `misc/bench/`, or the encode/decode flags in `an/media/mp4.py` (formerly `an/stage/render.py`), or the frame stage in `an/engines/`.

Source: [`.claude/skills/an-dev-bench`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-dev-bench).

### `an-dev-expression`

Moved to the `cutan-dev-expression` skill in the cutan repository (an#225). Use `cutan-dev-expression` for the cut-out face: expression presets, bindings, blinks, gaze. Triggers on the old name.

Source: [`.claude/skills/an-dev-expression`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-dev-expression).

### `an-dev-licensing`

Use before adding, upgrading, vendoring or swapping ANY third-party dependency, model weight, font, art asset or JS bundle in the an repo — and before writing any licence claim into a doc, comment or PR body. Also use when choosing between two libraries that solve the same problem, when a search result recommends the obvious package, and when deciding whether an asset an end user’s video will contain may ship. Triggers on “add a dependency”, “which library”, “vendor”, “is X permissive”, “can we use”, “licence”, “license”, “attribution”, “model weights”.

Source: [`.claude/skills/an-dev-licensing`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-dev-licensing).

### `an-dev-lipsync`

Moved to the `cutan-dev-lipsync` skill in the cutan repository (an#225). Use `cutan-dev-lipsync` for cut-out lip-sync: providers, visemes and coarticulation. Triggers on the old name.

Source: [`.claude/skills/an-dev-lipsync`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-dev-lipsync).

### `an-dev-path`

Stroked paths in the `an` repo (an#160, epic

Source: [`.claude/skills/an-dev-path`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-dev-path).

### `an-dev-render-pipeline`

The frame path in the `an` repo, end to end — Pixi rasterisation, Playwright element capture, the PNG stage, the x264 mux, concat and delivery — and what each stage can lose. Use when changing anything that touches a pixel or an encode flag - supersampling, resolution, antialias, `device_scale_factor`, `autoDensity`, downscale filters, `-pix_fmt` / CRF / preset / colour tags, `_capture_frames`, `_ffmpeg_mux`, `an/engines/` (the frame stage, `capture_frames`, `frame_stage_renderer`), `an/media/` (`mp4.py`, `supersample.py`, `shutter.py`, sinks), `_ffmpeg_concat`, `runtime.js`’s PIXI.Application options, or the per-shot mp4 store. Triggers on “supersample”, “why is the render soft”, “add an encoder flag”, “make it render bigger”, “downscale”, “4:4:4”, “faststart”, “the frames look wrong”, “speed up the render”.

Source: [`.claude/skills/an-dev-render-pipeline`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-dev-render-pipeline).

### `an-dev-rig-contract`

Moved to the `cutan-dev-rig-contract` skill in the cutan repository (an#225). Use `cutan-dev-rig-contract` for the cut-out rig contract: descriptor, skeleton, slots and skins. Triggers on the old name.

Source: [`.claude/skills/an-dev-rig-contract`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-dev-rig-contract).

### `an-dev-runtime-assets`

Use when adding, moving, renaming or removing any non-Python file that the renderer loads at run time — anything under `an/stage/runtime/` (the stage’s runtime, `an/data/cutout_runtime/` before an#247) or `an/data/`, a vendored JS bundle, an SVG part, a font, an HTML page. Also use when a render looks wrong rather than failing, when something works in the dev tree but not from a `pip install`, or when a “fix” to a data file appears to have no effect. Triggers on “vendor”, “bundle”, “asset”, “force-include”, “packaging”, “it works locally but not installed”.

Source: [`.claude/skills/an-dev-runtime-assets`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-dev-runtime-assets).

### `an-dev-stage`

The stage in the `an` repo — the camera (which is `root.pivot`, and already exists), parallax as one compile-time factor per plane, the multiplane environment descriptor, props, the StylePack, and the rename `Shot.style` → `Shot.renderer`. Load before touching `_add_camera_clips`, `_build_environment_subtree`, `_build_scene_root`, `Camera`, `AssetRef.stage`, the environments/styles/props stores, or any scene that pans. Triggers on “camera”, “pan”, “parallax”, “tilt”, “perspective”, “rotation_x”, “crawl”, “multiplane”, “plane”, “environment”, “backdrop”, “prop”, “style pack”, “art direction”, “renderer selector”.

Source: [`.claude/skills/an-dev-stage`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-dev-stage).

### `an-dev-swap-channels`

Moved to the `cutan-dev-swap-channels` skill in the cutan repository (an#225). Use `cutan-dev-swap-channels` for whole-character swaps, `swap_poses`, and the view/eyelid/viseme conventions (the generic swap mechanism itself is in `an-dev-stage`). Triggers on the old name.

Source: [`.claude/skills/an-dev-swap-channels`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-dev-swap-channels).

### `an-dev-text`

Text on screen in the `an` repo (an#155, an#175, epic

Source: [`.claude/skills/an-dev-text`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-dev-text).

### `an-spec`

Use when the user is starting a new an scene and needs help dialogically developing a scene specification — clarifying questions about characters, dialogue, art style, voices, pacing, and camera. Triggers on “let’s design a scene”, “I want to make a video about…”, “help me sketch a cartoon”, or any open-ended creative request handed to an.

Source: [`.claude/skills/an-spec`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-spec).

### `an-style`

Moved to the `cutan-style` skill in the cutan repository (an#225). Use `cutan-style` for applying a named cut-out style (South Park, OverSimplified, Kurzgesagt, Gilliam, Reiniger, Norstein) to a scene and linting the render. Triggers on the old name.

Source: [`.claude/skills/an-style`](https://github.com/thorwhalen/an/tree/HEAD/.claude/skills/an-style).

## Instruction files

Files agents read before working in this repository.

- [`CLAUDE.md`](https://github.com/thorwhalen/an/tree/HEAD/CLAUDE.md): read by Claude Code

## Machine-readable documentation

This site publishes the same documentation in forms that fit an agent’s context window:

- [`llms.txt`](https://thorwhalen.github.io/an/llms.txt): an index of every page with a one-line description ([llms.txt](https://llmstxt.org) format)
- [`an.md`](https://thorwhalen.github.io/an/an.md): the whole documentation as one Markdown file
- `<page>.html.md`: a rendered Markdown twin of every page, advertised from each page’s `<head>` with `<link rel="alternate" type="text/markdown">`
- [`objects.inv`](https://thorwhalen.github.io/an/objects.inv): the Sphinx inventory: a symbol-to-URL index (`sphobjinv convert plain objects.inv -`)
