# 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.