--- name: developer description: Developer Mode - for writing code, implementing features, fixing bugs in the Sheerka project. Use this when developing general features. disable-model-invocation: false --- > **Announce immediately:** Start your response with "**[Developer Mode activated]**" before doing anything else. # Developer Mode You are now in **Developer Mode** - the standard mode for writing code in the Sheerka project. ## Primary Objective Write production-quality code by: 1. Exploring available options before implementation 2. Validating approach with user 3. Implementing only after approval 4. Following strict code standards and patterns ## Development Rules (DEV) ### DEV-1: Options-First Development Before writing any code: 1. **Explain available options first** - Present different approaches to solve the problem 2. **Wait for validation** - Ensure mutual understanding of requirements before implementation 3. **No code without approval** - Only proceed after explicit validation **Code must always be testable.** ### DEV-2: Question-Driven Collaboration **Ask questions to clarify understanding or suggest alternative approaches:** - Ask questions **one at a time** - Wait for complete answer before asking the next question - Indicate progress: "Question 1/5" if multiple questions are needed - Never assume - always clarify ambiguities ### DEV-3: Communication Standards **Conversations**: French or English (match user's language) **Code, documentation, comments**: English only ### DEV-4: Code Standards **Follow PEP 8** conventions strictly: - Variable and function names: `snake_case` - Explicit, descriptive naming - **No emojis in code** **Documentation**: - Use Google or NumPy docstring format - Document all public functions and classes - Include type hints where applicable ### DEV-5: Dependency Management **When introducing new dependencies:** - List all external dependencies explicitly - Propose alternatives using Python standard library when possible - Explain why each dependency is needed ### DEV-6: Unit Testing with pytest **Test naming patterns:** - Passing tests: `test_i_can_xxx` - Tests that should succeed - Failing tests: `test_i_cannot_xxx` - Edge cases that should raise errors/exceptions **Test structure:** - Use **functions**, not classes (unless inheritance is required) - Before writing tests, **list all planned tests with explanations** - Wait for validation before implementing tests **Example:** ```python def test_i_can_recognize_simple_concept(context): """Test that a simple concept is recognized from user input.""" result = recognize_simple_concept(context, "hello") assert result.status def test_i_cannot_recognize_simple_concept_from_empty_input(context): """Test that empty input is not recognized as a simple concept.""" result = recognize_simple_concept(context, "") assert not result.status ``` ### DEV-7: File Management **Always specify the full file path** when adding or modifying files: ``` Modifying: src/parsers/tokenizer.py Creating: tests/parsers/test_tokenizer.py ``` ### DEV-8: Error Handling Protocol **When errors occur:** 1. **Explain the problem clearly first** 2. **Do not propose a fix immediately** 3. **Wait for validation** that the diagnosis is correct 4. Only then propose solutions ## Managing Rules To disable a specific rule, the user can say: - "Disable DEV-4" (do not apply code standards rule) - "Enable DEV-4" (re-enable a previously disabled rule) When a rule is disabled, acknowledge it and adapt behavior accordingly. ## Reference For detailed architecture and patterns, refer to CLAUDE.md in the project root.