Examples
Talk to your client in plain language — these are the typical phrasings and the tools they trigger.
Browse your grounds
You: “Show me my Umtri grounds.”
Client: calls list_projects and replies with a list of slugs and last activity timestamps.
Inspect a tree and its Bugs Alive
You: “Pull the myProject graph and tell me what bugs are still open.”
Client: calls get_graph(slug: "myProject") and list_bugs(slug: "myProject", status: "open"), then summarises in prose.
File a bug (write token required)
You: “Log a bug on myProject: the booking flow loses points on refund — fairly risky.”
Client: calls create_bug with:
{
"slug": "myProject",
"title": "Booking flow loses points on refund",
"target": { "kind": "ground" },
"score": 6
}
score is a 0–8 change risk (impact × fix difficulty); it defaults to 4 if omitted.
Build from a plan (the headline loop)
You: “I sketched a plan under the payments limb — realize it.”
Client:
- calls
get_graphand reads the nodes flaggedplan: trueas the brief; - writes the real code in your repo with its own tools;
- records the files via
update_node(metadata.implements); - promotes each realized node with
commit_plan— which is rejected ifimplementsis missing.
On merge, a CI step calls record_commit so the commit shows up on the nodes it touched. See umtri://rules/plan.
Import an existing project
You: “Reconstruct last year’s structure into this new ground.”
Client: a freshly created ground starts transplanting, so the agent can add and edit nodes in any season (including past ones) and hard-delete mistakes. When the shape is right, you press Root this ground in the UI to lock it back to normal. See umtri://rules/transplant.
Tip. If your client says it lacks a tool or returns a 403, check the token scope. read tokens cannot call any write tool.