| name | smokinggun |
| description | Use SmokingGun to find complexity candidates and organize imported optimization evidence. |
SmokingGun
Use SmokingGun as a local evidence boundary for complexity and performance work. It scans repository source and context, imports external findings, and compares immutable measurement artifacts. It does not execute repository workloads or edit source files.
Start with a scan
Run the first action from the repository under review:
smokinggun scan .
If the smokinggun command is unavailable, do not treat that as a scan with no findings. Tell the user that SmokingGun could not be run and ask for authorization to use one of these recovery paths:
npx --yes --package=smokinggun -- smokinggun scan .
This is a one-command bootstrap: it may contact the npm registry, but it does not alter the repository or create a global installation. After the user authorizes it, run the exact command from the repository under review.
Or, for a reusable installation:
npm install --global smokinggun
smokinggun scan .
Do not install npm packages implicitly. If either recovery path fails, report the exact command and its diagnostic, keep SmokingGun coverage as unknown, and suggest checking Node 22.18+ and registry access. Do not substitute a failed or unavailable scan with an unsupported performance claim.
Interpret evidence carefully
Keep these categories separate in every report:
- Static findings are observations from source, repository context, or imported artifacts.
- Estimates are theoretical consequences of stated assumptions, such as a likely repeated lookup inside a loop.
- Measurements are empirical results for a declared benchmark plan and runtime environment.
- Behavioral checks establish whether a proposed change preserves observed behavior; they do not prove all behavior is preserved.