.sightkick/, beside the corpus it reads:
*.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 orderedsteps, a returns read, or both, and yields a structured result.
live tool needs at least one step or a returns.
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.
Returns
Exactly one ofvalue 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.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.