Trace a feature from work item to code
Follow one feature across work items, commits, PRs, and the code it changed.
Goal: follow one feature across work items, commits, PRs, and the code it actually changed — the kind of archaeology that used to take an afternoon.
This works because Chiron's ontology shares meaning across planes: the ticket, the commit that references it, and the module it touched resolve to connected entities, not three unrelated searches. You will use activity, search, and fetch in sequence.
1. Find the work item
Start from the plan side. Search the work_items source (optionally narrowed to a provider):
curl -s "$BASE/search" "${AUTH[@]}" -H "Content-Type: application/json" -d '{
"query": "session token not rotated on role change",
"sources": ["work_items"], "top_k": 3
}' | jq '.results[] | {title, ref, url}'2. Pull the surrounding activity
Take the work item's timestamp and ask what else happened around it — the commits and PRs that reference the same feature:
curl -s "$BASE/activity" "${AUTH[@]}" -H "Content-Type: application/json" -d '{
"since": "2026-09-01T00:00:00Z",
"sources": ["commits", "prs"], "top_k": 20
}' | jq '.events[] | select(.title | test("role change"; "i")) | {source, ref, timestamp}'3. Jump to the code
Now search the code and graph sources for the behavior the feature changed, then fetch the file:
REF=$(curl -s "$BASE/search" "${AUTH[@]}" -H "Content-Type: application/json" \
-d '{"query":"reissue session on role change","sources":["code"],"top_k":1}' \
| jq -r '.results[0].ref')
curl -sG "$BASE/fetch" "${AUTH[@]}" --data-urlencode "ref=$REF" | jq '{title, url, content}'Why the chain holds together
Every hit in every step carries a ref and a provider, and each ref resolves through the same fetch endpoint regardless of source. You are not stitching four tools together — you are walking one graph through one contract. An agent does the same thing with the ontology_search / ontology_activity / ontology_fetch MCP tools.

