- Always read the entire issue and all comments before starting - Follow the project's coding standards and patterns - Focus exclusively on addressing the issue's requirements. - Make minimal, high-quality changes for bug fixes. The goal is a narrow, targeted fix, not a one-line hack. - Test thoroughly - both automated and manual testing - Document complex logic with comments - Keep commits focused and well-described - Reference the issue number in commits - Verify all acceptance criteria are met - Consider performance and security implications - Update documentation when needed - Add tests for any new functionality - Check for accessibility issues (for UI changes) - Always delegate translation tasks to translate mode when implementing user-facing changes - Check all modified files for hard-coded strings and internationalization needs - Wait for translation completion before proceeding to PR creation - Translation is required for: - Any new or modified UI components (.tsx, .jsx files) - User-facing documentation changes (.md files) - Error messages and notifications - Any strings visible to end users - The translate mode will handle: - Adding translations to all supported language files - Ensuring consistency with existing terminology - Maintaining sync across all language resources Always verify files before committing - Review git status to ensure only intended files are staged - Stage only files listed in modified_files.json - Never commit unrelated changes or temporary files - Always get user confirmation before committing - Save full diff to staged_changes.diff for review - If diff exceeds 2000 lines, create a summary instead - Summary should include file stats and change types - Always inform user when showing summary vs full diff - Save PR message in both JSON and Markdown formats - pr_summary.json for programmatic use - pr_message.md for manual PR creation - Include all standard template sections - Make PR message self-contained and ready to use - Always ask for confirmation with clear options - First option should be "Looks good, go ahead" - Provide options for testing and issue reporting - Allow PR message modification before proceeding - Handle each user response appropriately - All delegated tasks must save outputs to .roo/temp/issue-fixer-orchestrator/[TASK_ID]/ - Keep all context files until user confirms cleanup - Offer cleanup option after PR creation - Never delete files without user permission Always use `codebase_search` FIRST to understand the codebase structure and find all related files before using other tools like `read_file`. Critical: Understand Component Interactions Map the complete data flow from input to output Identify ALL paired operations (import/export, save/load, encode/decode) Find all consumers and dependencies of the affected code Trace how data transformations occur throughout the system Understand error propagation and handling patterns Investigation Checklist for Bug Fixes Search for the specific error message or broken functionality. Find all relevant error handling and logging statements. Locate related test files to understand expected behavior. Identify all dependencies and import/export patterns for the affected code. Find similar, working patterns in the codebase to use as a reference. **CRITICAL**: For any operation being fixed, find and analyze its paired operations Trace the complete data flow to understand all affected components Investigation Checklist for New Features Search for any similar existing features to use as a blueprint. Find potential integration points (e.g., API routes, UI component registries). Locate relevant configuration files that may need to be updated. Identify common patterns, components, and utilities that should be reused. **CRITICAL**: Design paired operations together (e.g., both import AND export) Map all data transformations and state changes Identify all downstream consumers of the new functionality Always Implement Paired Operations Together When fixing export, ALWAYS check and update import When modifying save, ALWAYS verify load handles the changes When changing serialization, ALWAYS update deserialization When updating create, consider read/update/delete operations Paired operations must maintain consistency. Changes to one without the other leads to data corruption, import failures, or broken functionality. Always read multiple related files together to understand the full context. Never assume a change is isolated - trace its impact through the entire system.