### Required

[\[1\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/api/anthropicClient.ts#L81-L81)[\[2\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L213-L213)
This assertion is unnecessary since it does not change the type of the expression.

[\[1\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/commands/cleanupCommand.ts#L95-L95)[\[2\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L73-L73)[\[3\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L89-L89)[\[4\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L92-L92)[\[5\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L95-L95)[\[6\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L118-L118)[\[7\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L121-L121)[\[8\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L127-L127)[\[9\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L128-L128)[\[10\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L142-L142)[\[11\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L145-L145)[\[12\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L146-L146)[\[13\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L163-L163)[\[14\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L178-L178)[\[15\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L196-L196)[\[16\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L223-L223)[\[17\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L249-L249)[\[18\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L252-L252)
Use sentence case for UI text.

[\[1\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/main.ts#L114-L114)
The command ID should not include the plugin ID.

[\[1\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/services/cleanupService.ts#L67-L96)
Unnecessary try/catch wrapper.

[\[1\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L57-L57)
Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the `void` operator.

[\[1\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L73-L73)[\[2\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L89-L89)[\[3\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L142-L142)[\[4\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L163-L163)[\[5\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L223-L223)[\[6\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L246-L246)
Use `new Setting(containerEl).setName(...).setHeading()` instead of creating HTML heading elements directly.

[\[1\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L151-L151)[\[2\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L170-L170)[\[3\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L187-L187)[\[4\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L202-L202)
Async arrow function has no 'await' expression.

[\[1\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/settings.ts#L337-L337)
Unexpected console statement. Only these console methods are allowed: warn, error, debug.



---

### Optional

[\[1\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/main.ts#L75-L75)
'modelCache' is assigned a value but never used.

[\[1\]](https://github.com/AlexKucera/freewriting-cleanup/blob/c8ddeaeb2dbdc39e4da6bf44b391caa33abf7937/services/cleanupService.ts#L4-L4)
'Notice' is defined but never used.

