- Add comprehensive testing framework with 67 test cases covering unit, integration, and functional testing - Create universal YAML validator supporting all activity types with validation for metadata operations, terminal steps, and Python syntax - Implement proper Makefile with venv management and test runners following unDRY principles for copy-paste engineering - Add requirements-test.txt for test dependencies separation - Configure pytest with conftest.py for proper environment variable management - Update CLAUDE.md with Makefile best practices - All 67 tests passing with proper mocking of external dependencies Testing coverage includes: • Unit tests (37): Core app functions, utilities, navigation, response handling • Integration tests (20): Complete activity workflows and error handling • Functional tests (9): Full battleship game scenarios and edge cases • YAML validator (17): Universal validation for all activity configurations
29 lines
1.2 KiB
Markdown
29 lines
1.2 KiB
Markdown
# Claude Instructions
|
|
|
|
## Commit Messages
|
|
- NEVER add Claude attributions like "🤖 Generated with Claude Code" to commit messages
|
|
- Keep commit messages focused on the actual changes and their purpose
|
|
- Use conventional commit format when appropriate
|
|
- Be concise but descriptive about what was changed and why
|
|
|
|
## Code Style
|
|
- Follow existing code conventions in the project
|
|
- Use appropriate linting tools (black, ruff, etc.) when available
|
|
- Maintain consistent naming and formatting
|
|
|
|
## Testing
|
|
- Run existing tests before committing when available
|
|
- Write tests for new functionality when appropriate
|
|
- Verify changes work as expected
|
|
|
|
## Documentation
|
|
- Update relevant documentation when making significant changes
|
|
- Keep README files current with new features or setup changes
|
|
- Document any new environment variables or configuration options
|
|
|
|
## Python/Matplotlib Best Practices
|
|
- Always add `matplotlib.use("Agg")` before importing matplotlib.pyplot to prevent runtime errors in headless environments
|
|
|
|
## Makefile Best Practices
|
|
- Avoid variable substitutions - don't be afraid to be unDRY in the Makefile so engineers can copy and paste
|
|
- Use tabs not spaces, and for fuck sake be happy about it
|