# 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 - `.html.md`: a rendered Markdown twin of every page, advertised from each page's `` with `` - [`objects.inv`](https://thorwhalen.github.io/lacing/objects.inv): the Sphinx inventory: a symbol-to-URL index (`sphobjinv convert plain objects.inv -`)