For AI agents

i2 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 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.

i2-castgraph

Routing data through a graph of type/representation conversions with i2.castgraph’s TransformationGraph — register pairwise transformers, then convert any source representation to any reachable target via multi-hop shortest-path routing. Trigger on “convert between many data representations”, “type conversion registry / service”, “transformation graph”, “filepath -> text -> record style pipeline”, “find a conversion path between two kinds”, “adapter / anti-corruption layer for external formats”, “cast a thing whose form varies but role is stable”.

Source: .claude/skills/i2-castgraph.

i2-multi-object

Composing and combining a fixed collection of functions (or context managers) with i2.multi_object — Pipe (function composition), FuncFanout (apply many functions to the same input), ParallelFuncs (per-key dict-to-dict), FlexFuncFanout (shared argument pool), and ContextFanout (bundle context managers). Trigger on “compose functions into a pipeline”, “apply several functions to the same arguments”, “run a function per dict key”, “chain transformations”, “bundle multiple context managers as one”, “function pipeline”, “fan out / fan in”.

Source: .claude/skills/i2-multi-object.

i2-sig-arithmetic

Building, merging, and editing function signatures with i2’s Sig — signature “+/-” arithmetic, changing parameter names/kinds/defaults/annotations, and giving a function a different signature (a la functools.wraps but signature-driven). Trigger on “merge two signatures”, “combine the parameters of several functions”, “give this function a new signature”, “rename/reorder function parameters”, “change a parameter’s default”, “make all params positional-or-keyword”, “add an optional keyword argument to a function”, “Sig() decorator”, “ch_func_to_all_pk”.

Source: .claude/skills/i2-sig-arithmetic.

i2-signatures

Introspecting function signatures and binding call arguments to parameter names with i2’s Sig class — turning an arbitrary (*args, **kwargs) call into a named-argument dict (with defaults filled in), and back. Trigger on “bind args to parameter names”, “get the full kwargs of a call”, “apply defaults to a call”, “what are this function’s parameter names/kinds/defaults”, “call a function forgivingly / ignoring extra kwargs”, “normalize a call for caching/hashing”, “inspect.signature is not enough”, “Sig”, “map_arguments”.

Source: .claude/skills/i2-signatures.

i2-wrapper

Wrapping functions to transform their interface, inputs, and output with i2.wrapper — wrap, Ingress/Egress, ch_names, include_exclude, rm_params, arg_val_converter, partialx, and caller-based wrapping (Wrapx). Trigger on “wrap a function and change its signature”, “transform arguments before calling”, “rename/remove/reorder a function’s parameters but keep it working”, “convert/cast argument values”, “make a CLI/HTTP-friendly version of a function”, “currying with a clean signature”, “apply a function over an iterable of inputs (iterize)”, “ingress / egress”, “decorator factory”.

Source: .claude/skills/i2-wrapper.

Instruction files

Files agents read before working in this repository.

Machine-readable documentation

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

  • llms.txt: an index of every page with a one-line description (llms.txt format)

  • i2.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: the Sphinx inventory: a symbol-to-URL index (sphobjinv convert plain objects.inv -)