Ghost Inspector: who imports each module
gi_module_usageIdentify which tests break when editing a module by tracing import chains. Flags dead, stale, and vacuous tests that silently pass.
Instructions
Answers the one question the API cannot: if I edit this module, which tests break? Builds the reverse index of execute steps ā for every imported test, its direct importers and its full transitive blast radius through nested chains. Run this BEFORE editing any module.
Also surfaces three things that only appear once the index exists: import-only tests nobody imports (dead, or a test that lost its caller and is silently not running); imported tests NOT flagged import-only, which run standalone and inside their importers, so an edit changes both paths; and execute steps pointing at ids that no longer exist.
š“ It also finds vacuousTests: tests that execute no steps at all, because their definition is only execute calls and the chain bottoms out in empty modules. Those pass ā nothing can fail ā so the dashboard shows them green while they assert nothing, which is worse than a red test and invisible any other way. Emptying one shared module does this to every test that imports it.
This is the expensive tool. steps is absent from the test listing, so it costs one request per test in the account ā a few seconds for a few hundred tests, at deliberately low concurrency because the rate limit is undisclosed. Call it once and work from the result rather than per module. A definition that cannot be read is counted in scanned.unreadable, never skipped silently, because a missing definition understates a blast radius.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| module | No | Case-insensitive substring of a module name. Narrows the listing and names every importer instead of capping the list. |