10

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:

  1. calls get_graph and reads the nodes flagged plan: true as the brief;
  2. writes the real code in your repo with its own tools;
  3. records the files via update_node (metadata.implements);
  4. promotes each realized node with commit_plan — which is rejected if implements is 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.