# CLAUDE ## General - Don't use emoticons, and try to limit all text to ASCII. - If you use abbreviations, ensure that somewhere at the top of the file the expanded form of the abbreviation is documented. - You will use **Beads** (`bd`) to track work tasks. If you cannot remember how to use Beads, run `pd prime` to get instructions. See [@~/.claude/rules/beads](beads.md) rules for for details. ## Code - Don't import code anywhere else than at the top of a code file. - When generating code, use a behavior-driven development cycle as described in the [@~/.claude/rules/testing](testing) rules. - Write clean, self-documenting code with short functions of low complexity as described in the [@~/.claude/rules/clean-code](clean-code) rules. - Follow the SOLID principles when designing or writing code: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion. - Always prefer strongly typed code if possible (Python typing and ty, TypeScript, etc.). - Don't litter the code with comments, unless the code behavior is not obvious. Use functions to make behavior explicit. ## Dependencies - ONLY ADD DEPENDENCIES WHEN NEEDED. - Do not add dependencies just because they are planned. - Only add a dependency when writing code that needs it. - Only add dependencies ad hoc if the project does not compile or start because of a missing dependency. ## Documentation - When creating code blocks in documentation, do not add comments into the code blocks. Add the comments outside, in the text area.