Opus finding
`_excluded_methods` does not exclude `do_nothing` despite being a real LLM-callable; `sign_up` is excluded but agents do call it
lowmaintainabilitymedium
- backend/wonderwall/simulations/base.py:236-238
`sign_up` is excluded from the LLM tool list, which is correct (it's invoked once at reset). However, the docstring on `do_nothing` strongly suggests it is intended as a key user-facing tool — and it IS auto-discovered (not excluded). That part is fine. The risk is that `_excluded_methods` is class-level mutable, and a subclass that adds more excludes will mutate the parent's set unless careful (e.g., `set.add` mutates in place). Subclasses should reassign `_excluded_methods = BaseAction._excluded_methods | {...}` but there's no doc enforcing this.
Recommendation
Make `_excluded_methods` a frozenset or document explicitly that subclasses must override (not mutate) it. Consider also excluding `do_nothing` from auto-discovery only when desired.