Skip to main content
The tool layer lives in .sightkick/, beside the corpus it reads:
Every *.yaml file inside .sightkick/ is merged into one manifest. tools and journeys accumulate across files; the singular fields are taken from whichever file sets them. Split a large layer however helps, one file per view plus a journeys.yaml, or keep a small one in a single tools.yaml.

File shape

Tools

A tool is one atomic action at a single point in time. It bundles ordered steps, a returns read, or both, and yields a structured result.
A live tool needs at least one step or a returns.
Set ensure_view on every tool. The documentation describes it as optional, but a tool that omits it currently fails to resolve any component reference at compile time, with Available: (none). Tracked as sightkick#9.
ensure_view does two jobs: it scopes component resolution to that view plus globals, and it view-scopes the tool at runtime, so the tool only registers on pages whose route matches. An empty tool list on a non-matching page is correct behaviour, not a failure.

Steps

Each step is a single-key mapping naming the operation. Reads are not steps. Declare them with returns. A tool that ends in a mutation should wait_for its own visible feedback before returning.
Narrow every wait_for query to a single node. A component query that matches many nodes — which repeated rows always do — currently times out rather than matching, and the failure reads as though the page never loaded. Use 'RowName#0' or a property predicate. Tracked as sightmap#387.

Returns

Exactly one of value or list, or a description on its own.

Component queries

Tools address elements by component identity, never by raw CSS. Every property you filter on or read must be declared in the corpus. There is no > child combinator; whitespace is the descendant combinator.

Journeys

A journey is a compile-time ordering over tools. It never executes anything. It compiles into guidance breadcrumbs attached to each tool’s result, so an agent that calls one tool is told what tends to come next and why.
Each journey needs at least two steps to produce guidance edges. A tool used in several journeys accumulates the union of its successors. A result then carries them:

What the compiler checks

sightkick build is the validator. Common diagnostics: --verify needs a captured snapshot of the view. Run sightmap capture on it first.