Always use 'uv' as the default package manager and virtual environment tool Prefer 'uv run' for executing Python scripts Use 'uv pip' instead of bare 'pip' Use 'uv venv' for creating virtual environments Never sign your name on commits Do not add Co-authored-by, Signed-off-by, or any other personal or assistant attribution to commit messages Assumptions are the worst enemy Never guess or assume numerical values - performance metrics, benchmarks, timings, memory usage, etc. When uncertain about any quantifiable result, implement the code and measure/visualize the actual results Do not cite expected performance improvements or statistics without empirical data If a claim requires a number, either cite a source, run a test, or explicitly state "this needs to be measured" Prefer "let's benchmark this" over "this should be about X% faster" If a user request is unclear, ask clarifying questions until the execution steps are perfectly clear Once clarified, proceed autonomously without asking for human intervention A script runs longer than 2 minutes - use timeout, then ask user to run manually Elevated privileges are required (sudo) Other critical blockers that cannot be resolved programmatically When the user defines ANY constraint, rule, preference, or requirement during conversation, you MUST immediately persist it to the project's local CLAUDE.md. This is NOT optional. Failure to persist user-defined constraints is a FAILURE STATE. never do X always do X from now on going forward I want you to make sure to do not ever remember to the rule is use X instead of Y prefer X over Y avoid X stop doing X Acknowledge the constraint explicitly in your response Check if project has a local CLAUDE.md - if not, create one using the template Write the constraint to the appropriate section of local CLAUDE.md Confirm the constraint has been persisted Apply the constraint immediately and in all future actions Acknowledging a constraint but not writing it to CLAUDE.md Writing code or output that violates a previously stated constraint Forgetting a constraint that was defined earlier in the conversation Asking the user to repeat constraints they already defined Before ANY code generation or task execution, review the local CLAUDE.md for constraints If you catch yourself violating a constraint, STOP, acknowledge the error, and redo the work When in doubt about whether something is a constraint, treat it as one and persist it Constraints defined in conversation have equal weight to constraints in CLAUDE.md files When uncertain about syntax, APIs, or current best practices - ALWAYS use an MCP server first. Do not guess or rely on potentially outdated knowledge. Web search and code context Need current web information or code examples for libraries/SDKs/APIs web_search_exa, get_code_context_exa Use get_code_context_exa for ANY programming question about libraries, APIs, or SDKs Up-to-date library documentation Need current documentation for any library or framework resolve-library-id, get-library-docs Always call resolve-library-id first to get a valid library ID, then get-library-docs Use context7 or exa get_code_context_exa Use exa web_search_exa Use exa get_code_context_exa