Uncommitted changes
changesLists uncommitted work across git repos—changed files with porcelain status and optional capped diffs—so you can review or summarize work in progress without running git status or diff yourself.
Instructions
What is actually uncommitted in each selected repo: the changed-file list (each path with its git porcelain status) and, with include_patch:true, a size-capped unified diff of the working tree (diffs of sensitive files like .env or key material are withheld; the file list still names them). Use this to summarize or review uncommitted work — e.g. "what's the work sitting in payments?" — instead of cd-ing in and running git status / git diff. Clean repos are omitted. Omit the selector to cover every dirty repo, or scope it (e.g. {"name": "payments"}) to one.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "changes"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| selector | No | Predicate that selects repos across the fleet; set fields to AND them, omit a field for no constraint (ADR-024). Scope: all (bool — the whole fleet), ids[str], name (glob, e.g. "pay*"), path_glob (* stays within one path segment, ** crosses /), root, group (a config-defined cluster name, e.g. "payments"). Local state: dirty, ahead (alias unpushed), behind, diverged, no_upstream, unpublished (a branch never pushed although the repo has a remote), stale_fetch (remote not fetched for over 14 days), has_stash, detached, conflicted, in_operation (merge/rebase/… mid-flight), error, branch (exact name), attention ("any"|"notice"|"warn"|"risk"). Remote (needs a GitHub token): ci ("passing"|"failing"|"pending"|"none"), min_prs (int). Combine: any_of[selector] (OR), not (selector). The empty selector {} matches NOTHING by design — pass {"all": true} for the whole fleet. | |
| max_bytes | No | Cap each repo's patch in bytes (default 20000); the patch is flagged `truncated` when cut. | |
| include_patch | No | Also return a unified diff of the working tree per repo (default false; can be large). |