Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- New `analyzeInfrastructureWithoutImplementation()` function in slop-analyzers.js
- Focused test suite covering key scenarios and edge cases

- **Code Smell Detection** - High-impact code smell patterns for maintainability (#106)
- High-certainty patterns (low false positive rate):
- `boolean_blindness`: Function calls with 3+ consecutive boolean params
- `message_chains_methods`: Long method chains (4+ calls)
- `message_chains_properties`: Deep property access (5+ levels)
- `mutable_globals_js`: let/var with UPPERCASE names in JavaScript
- `mutable_globals_py`: Mutable global collections in Python
- Multi-pass analyzers:
- `analyzeDeadCode()`: Unreachable code after return/throw/break/continue (JS, Python, Go, Rust)
- `analyzeShotgunSurgery()`: Files frequently changing together (git history analysis)
- Heuristic patterns (may have false positives):
- `feature_envy`: Method using another object 3+ times
- `speculative_generality_unused_params`: Underscore-prefixed params
- `speculative_generality_empty_interface`: Empty TypeScript interfaces
- All patterns have ReDoS-safe regex and comprehensive test coverage

### Fixed
- **findMatchingBrace** - Now skips comments to avoid breaking on quotes/apostrophes in comment text (e.g., "it's", "we're")
- **Reality Check Output Size** - Condensed collector output to ~700 lines/~4.5k tokens (was thousands of lines)
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ Remove debugging code, old TODOs, and AI slop from your codebase.
- Excessive documentation (JSDoc >3x function body)
- Phantom references (issue/PR mentions, file path references in comments)
- Infrastructure components configured but never used (unused DB clients, caches, API clients)
- Code smells: boolean blindness, message chains, mutable globals, dead code, shotgun surgery

---

Expand Down
Loading
Loading