# check_my_changes

> After editing: callers you didn't update, and anything we can't see.

Your agent asks it after editing.

## What it takes

| Input | Type | What it is |
| --- | --- | --- |
| paths | list of text, optional | — |
| tests | true or false, optional | tests: true also lists the tests that call the changed code (off by default). |
| expand | text, optional | A w-handle from this session to list in full, or reset. |
| format | text or json, optional | — |
| family | yes, no or unsure, optional | family: your answer to 'are all subclasses of these types inside this repository?' yes, no or unsure (default unsure). It sets the [a] assumption in answers. |

## Example

The example project's `Store.save` gained a required parameter, and the file was saved.

Your agent asks: `check_my_changes(paths: ["app/store.py"])`

The engine's answer, captured on the example project:

```text
llmgraph · check_my_changes: 1 file changed, 2 calls break
  [delta] files changed since your last call: app/store.py: Store body differs; Store.save signature differs (parameters, types)
  ⚠ breaks if it runs Store.save app/admin.py:3 reset: misses "flag" (within_these, one of 1, closed: repo only) [c] w17
  ⚠ breaks if it runs Store.save app/service.py:4 persist: misses "flag" (within_these, one of 3, closed: repo only) [a] w18
  ⚠ may break app/service.py:8 persist_any (open: type unknown) w19
  ⚠ plus dynamic calls elsewhere that could reach Store.save w20
  assumes [a]: all subclasses are in this repo (project setting)
  assumes [c]: our own reading, not confirmed by the checker
```

Each line explained: [Reading an answer](https://beta.llmgraph.in/docs/answers/reading-an-answer.md).

Optionally, the answer can end with one group, "tests that call the changed code": one line per test file with its number of calls and its weakest label (up to four files, then a count line with a handle), so your agent can re-run those tests first. It is off by default. Your agent asks for it with `tests: true`, or you switch it on for every call with the setting `tests = "on"` under `[check]` in your settings file; any other value means off.

## How fast

Once LLMGRAPH has caught up with a save (a second or two on the projects we tested), `check_my_changes` answers in well under a second.

## What it cannot tell you

- It checks argument count and names, not types, for Python.
- TypeScript type clashes read "may break" until the type checker confirms.
- It skips `*args` and spread arguments, and decorated functions.
- It sees only saved files.
