Thank you for your submission, an automated scan of your plugin code's revealed the following issues:

### Required

[[1](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/src/views/components/ChatInput.tsx#L50)][[2](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/src/views/components/ChatInput.tsx#L51)]:You should avoid assigning styles via JavaScript or in HTML and instead move all these styles into CSS so that they are more easily adaptable by themes and snippets.


[[1](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/src/views/components/FilePicker.tsx#L215-L216)][[2](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/views/components/FilePicker.test.ts#L54)][[3](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/views/components/FilePicker.test.ts#L58)][[4](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/views/components/FilePicker.test.ts#L63)][[5](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/views/components/FilePicker.test.ts#L66)][[6](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/views/components/FilePicker.test.ts#L109-L114)][[7](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/views/components/FilePicker.test.ts#L150-L152)][[8](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/views/components/FilePicker.test.ts#L322-L326)][[9](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/views/components/FilePicker.test.ts#L333-L335)]:You should not cast this, instead use a `instanceof` check to make sure that it's actually a file/folder.

[[1](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/src/views/components/FilePicker.tsx#L216)]:Obsidian's configuration directory isn't necessarily `.obsidian`, it can be configured by the user. You can access the configured value from `Vault#configDir`



---

### Optional

[[1](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/src/hooks/useConversationManager.ts#L234)][[2](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/src/llm/providers/Base.ts#L121)][[3](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/src/llm/providers/Base.ts#L323-L332)][[4](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/src/llm/providers/Base.ts#L334)][[5](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/src/llm/tools/TextEditor.ts#L60)][[6](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/FileManager.test.ts#L191)][[7](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/setup.ts#L24)][[8](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/setup.ts#L48)][[9](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/setup.ts#L55)][[10](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/setup.ts#L68)][[11](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/setup.ts#L69)][[12](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/setup.ts#L72)][[13](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/setup.ts#L73)][[14](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/setup.ts#L76)][[15](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/setup.ts#L80)][[16](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/setup.ts#L84)][[17](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/llm/TextEditor.test.ts#L45)][[18](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/llm/llmProvider.test.ts#L174)][[19](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/llm/mcpClient.test.ts#L214)][[20](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/llm/mcpClient.test.ts#L256)][[21](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/llm/mcpClient.test.ts#L318)][[22](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/llm/mcpClient.test.ts#L337)][[23](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/llm/streaming.test.ts#L39-L43)][[24](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/llm/streaming.test.ts#L114)][[25](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/llm/streaming.test.ts#L121)][[26](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/llm/tools.test.ts#L104)][[27](https://github.com/mruwnik/notes-critic/blob/784144910230120098dcc19264e6715a8797974c/tests/rules/RuleManager.test.ts#L350)]:Casting to `any` should be avoided as much as possible.



---



Do <b>NOT</b> open a new PR for re-validation.
Once you have pushed all of the required changes to your repo, the bot will update the labels on this PR within 6 hours.
If you think some of the required changes are incorrect, please comment with `/skip` and the reason why you think the results are incorrect.