This document provides specific instructions for Claude when working with the Ditto CoT library project.
Multi-language libraries (starting from a single managed JSON Schema) for translating between Cursor-on-Target (CoT) XML events and Ditto-compatible CRDT documents.
IMPORTANT: When working with Linear tickets:
- NEVER automatically change the status or state of Linear issues
- NEVER transition issues between states (e.g., from "In Progress" to "Done")
- DO read and reference Linear tickets for context
- DO add comments to issues when explicitly requested
- DO NOT modify any issue properties (assignee, labels, priority, etc.)
- All status transitions should be handled manually by the development team
- Always run tests before suggesting code completion
- For Ditto CoT library development:
- All tests:
make test
- All tests:
- Suggest running lint and type checking if available
- Verify that all tests pass before marking any task as complete
- Build debug:
make clean
- Follow existing code conventions in the codebase
- Use meaningful variable and function names
- Maintain consistent indentation (check existing files)
- Avoid adding debug prints or logs unless specifically requested
- Follow Java/Androind/Kotlin coding conventions
- Use proper null safety patterns
- Prefer data classes for data models
- Use appropriate visibility modifiers
- Follow Rust coding conventions and idioms
- Follow C# and .NET coding conventions and idioms
- Do not create documentation files unless explicitly requested
- Keep code comments minimal and meaningful
- Update existing documentation when making related changes
- Security: Never commit sensitive information like API keys, passwords, or tokens
- Dependencies: Check existing dependencies before suggesting new ones
- File Creation: Prefer modifying existing files over creating new ones
- Breaking Changes: Always highlight potential breaking changes
- Error Handling: Implement proper error handling for all new features
When you need more context about Ditto's architecture, conventions, or specific implementations:
For Rust SDK: https://software.ditto.live/rust/Ditto/4.11.0/x86_64-unknown-linux-gnu/docs/dittolive_ditto/index.html For Java SDK: https://software.ditto.live/java/ditto-java/4.11.0-preview.1/api-reference/ For C# SDK: https://software.ditto.live/dotnet/Ditto/4.11.0/api-reference/
If you don't know how to do something, and you can't find accurate and up-to-date information from sources such as online documentation, content in Notion or Linear, or a tool's help output or man pages, then ask about an approach before doing it instead of guessing.