uncached-llm-call
LLM API call without @cache decorator wastes money on duplicate requests
Applies to: Python
Why this matters
LLM API calls are expensive and non-deterministic. The same prompt can return different results each time, making debugging harder and costing money on redundant requests. Wrapping calls with @cache ensures deterministic results and eliminates duplicate API costs.
Catch it before it ships
pip install stablestack # or: npx stablestackstablestack # scans your project, DET009 includedstablestack explain DET009DET009 is part of the Pro rule set. See pricing — the free tier ships 24 checks with no signup.
False positive in your codebase? Suppress a single line with # noqa: DET009
More Determinism checks
unsorted-dict-iteration
Dictionary iteration without a canonical sort order
DET002unsorted-set-iteration
Set iteration without sorting can produce unpredictable order
DET003missing-sort-tiebreaker
Sorting by a single field without tiebreaker can produce unstable order
DET004list-set-dedup
Using list(set(...)) for deduplication scrambles element order
DET005random-without-seed
Random values without seed cause non-reproducible behavior
DET006datetime-now-usage
datetime.now() makes code non-deterministic and hard to test
DET007unsorted-directory-listing
Directory listings have no guaranteed order across systems
DET008hash-unsorted-collection
Hashing dicts/sets without sorting produces inconsistent cache keys