# Junk-drawer `utils` and `helpers` modules and folders

*Files and folders*: one of the ways AI coding agents bloat software, from lessloc's [pattern catalog](https://lessloc.org/patterns/index.md). lessloc catches it as [`junk-drawer`](https://lessloc.org/guide/reference.md#tier-2).

## What makes junk-drawer utils and helpers modules and folders a bad practice?

The standard that calls it a bad practice: Fowler: Mysterious Name.

## What does lessloc do about junk-drawer utils and helpers modules and folders?

lessloc catches it as [`junk-drawer`](https://lessloc.org/guide/reference.md#tier-2).

- `junk-drawer` (tier 2): A new `utils`, `helpers`, `common`, `misc` or similar module or folder.

## Related patterns

The other patterns in [Files and folders](https://lessloc.org/patterns/index.md#files-and-folders):

- [Scratch, backup, copy and harness files](https://lessloc.org/patterns/index.md#scratch-files): lessloc catches it as `junk-file` and refuses it before it lands.
- [Caches, build output and logs about to be committed](https://lessloc.org/patterns/index.md#caches): lessloc catches it as `junk-file`.
- [CI workflows and Dockerfiles nobody asked for](https://lessloc.org/patterns/scaffolding.md): lessloc catches it as `unrequested-file`.
- [Tiny one-function files; file-per-concern splits](https://lessloc.org/patterns/tiny-files.md): lessloc catches it as `tiny-file` and `new-files`.
- [New folders for one or two files; layer trees for small apps](https://lessloc.org/patterns/one-file-folders.md): lessloc catches it as `new-folder`.
- [Vague names (process\_data, handle)](https://lessloc.org/patterns/vague-name.md): lessloc catches it as `vague-name`.
- [Moving or renaming files without a reason](https://lessloc.org/patterns/moved-files.md): lessloc catches it as `moved-files`.
- [Secrets: a committed .env, API keys, private keys](https://lessloc.org/patterns/secrets.md): lessloc catches it as `secret`.
