<!-- generated by epythet -->

# For AI agents

`lacing` 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.

### `lacing-adapter-authoring`

Use when adding, modifying, or reviewing an I/O format adapter for lacing — Praat TextGrid, ELAN EAF, WebVTT, JAMS, Label Studio JSON, W3C Web Annotation, OpenTimelineIO, CoNLL, brat standoff, SubRip, TTML, CSV, or any new format. Triggers on “add a … adapter”, “import/export … format”, “support … in lacing”, “round-trip … format”, or any work under lacing/adapters/. Encodes the plugin contract, the round-trip test pattern, license-checking the underlying parser, schema URI conventions, and the common pitfalls (offset invalidation, rate mismatch, lossy round-trips).

Source: [`.claude/skills/lacing-adapter-authoring`](https://github.com/thorwhalen/lacing/tree/HEAD/.claude/skills/lacing-adapter-authoring).

### `lacing-architecture`

Use when starting any non-trivial work on the lacing package — adding modules, designing APIs, choosing dependencies, planning a new feature, or making architectural decisions. Triggers on tasks like “implement X in lacing”, “design the Y component”, “add support for Z format”, “where should this code go”, or any edit under lacing/ or lacing-ui/. Loads the ten non-negotiables, the package decomposition, and pointers to the design docs.

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

### `lacing-schema-codegen`

Use when modifying lacing’s data model, body schemas, or the Pydantic→JSON-Schema→Zod codegen pipeline. Triggers on edits to lacing/model.py, lacing/schema.py, lacing/tier.py, body_schema_uri, schema migrations, schema versioning, or anything in lacing-ui/src/types/generated/ or src/domain/envelope.ts that mirrors a Python type. Encodes the single-source-of-truth rule (Pydantic v2 is SoT), the additive-by-default versioning rule, the migration-registration pattern, and the codegen wiring (lacing-ui’s `npm run codegen` via scripts/codegen.mjs, CI-freshness-gated).

Source: [`.claude/skills/lacing-schema-codegen`](https://github.com/thorwhalen/lacing/tree/HEAD/.claude/skills/lacing-schema-codegen).

### `lacing-time-and-intervals`

Use when writing or reviewing any code in the lacing project that touches time, intervals, durations, rates, frame numbers, sample positions, timestamps, or interval queries. Triggers on `RationalTime`, `TimeInterval`, `fractions.Fraction`, `intervaltree`, Allen relations (overlap/during/meets/before), interval boundaries, half-open ranges, snapping, or any conversion between seconds/ticks/frames/samples. Catches the most common landmines: float drift, closed-vs-open boundaries, mixed rates, and ad-hoc overlap predicates.

Source: [`.claude/skills/lacing-time-and-intervals`](https://github.com/thorwhalen/lacing/tree/HEAD/.claude/skills/lacing-time-and-intervals).

## Instruction files

Files agents read before working in this repository.

- [`CLAUDE.md`](https://github.com/thorwhalen/lacing/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/lacing/llms.txt): an index of every page with a one-line description ([llms.txt](https://llmstxt.org) format)
- [`lacing.md`](https://thorwhalen.github.io/lacing/lacing.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/lacing/objects.inv): the Sphinx inventory: a symbol-to-URL index (`sphobjinv convert plain objects.inv -`)
