Files
TinyTorch/.cursor/rules/user-preferences.mdc
Vijay Janapa Reddi a7fb897eed Update documentation and cleanup rules
- Enhanced tensor module documentation with mathematical foundations
- Improved explanations for scalars, vectors, and matrices
- Added NBGrader workflow documentation to activations module
- Cleaned up .cursor/rules/ directory structure
- Updated user preferences for better development workflow

These changes improve the educational content and developer experience
while maintaining the core functionality of all modules.
2025-07-13 17:00:21 -04:00

87 lines
4.4 KiB
Plaintext

---
alwaysApply: false
---
# User Preferences and Conventions
## Development Preferences
- **Module naming**: Use `{module_name}_dev.py` for development files (e.g., `tensor_dev.py`)
- **Commit frequency**: Check code into repo at good milestone stages
- **README focus**: Keep main project README focused on overarching goals, not module details
- **Component terminology**: Call code components 'modules' instead of 'parts'
- **Testing framework**: Always use pytest for all tests - no manual testing or other frameworks
- **Brand formatting**: In headers and titles, use "Tiny🔥Torch" (with flame emoji after "Tiny"), not "🔥TinyTorch". In regular text, "TinyTorch" is acceptable
## Educational Workflow
- **Self-contained modules**: Each module under `modules/` should be self-contained
- **Local testing first**: Students run and pass all tests locally within the module before exporting
- **Progressive learning**: Start simple, build complexity gradually
- **Notebook conversion**: Prefer writing Python files with markdown syntax, convert to Jupyter afterwards
## File Organization
- **Source-first approach**: Start with Python source files, generate notebooks from them
- **Clean structure**: Remove experimental/temporary files before committing
- **Consistent patterns**: Follow established patterns across all modules
## NBDev Integration
- **Export workflow**: Use `#| export` directives to mark code for package export
- **Educational directives**: Use `#| hide` for instructor solutions, visible sections for student work
- **Package structure**: Code exports from `modules/` to `tinytorch/` package
## Testing Standards
- **pytest only**: All tests must use pytest framework with proper test classes
- **Comprehensive coverage**: Tests should cover functionality, edge cases, and integration
- **Professional structure**: Use test classes, fixtures, and descriptive test names
- **CLI integration**: Tests must be compatible with `tito module test --module {name}` (requires virtual environment activation)
- **Environment setup**: Always activate virtual environment with `source bin/activate-tinytorch.sh` before running commands
These preferences ensure consistency across the TinyTorch educational framework and smooth development workflow.
# User Preferences and Conventions
## Development Preferences
- **Module naming**: Use `{module_name}_dev.py` for development files (e.g., `tensor_dev.py`)
- **Commit frequency**: Check code into repo at good milestone stages
- **README focus**: Keep main project README focused on overarching goals, not module details
- **Component terminology**: Call code components 'modules' instead of 'parts'
- **Testing framework**: Always use pytest for all tests - no manual testing or other frameworks
- **Brand formatting**: In headers and titles, use "Tiny🔥Torch" (with flame emoji after "Tiny"), not "🔥TinyTorch". In regular text, "TinyTorch" is acceptable
## Educational Workflow
- **Self-contained modules**: Each module under `modules/` should be self-contained
- **Local testing first**: Students run and pass all tests locally within the module before exporting
- **Progressive learning**: Start simple, build complexity gradually
- **Notebook conversion**: Prefer writing Python files with markdown syntax, convert to Jupyter afterwards
## File Organization
- **Source-first approach**: Start with Python source files, generate notebooks from them
- **Clean structure**: Remove experimental/temporary files before committing
- **Consistent patterns**: Follow established patterns across all modules
## NBDev Integration
- **Export workflow**: Use `#| export` directives to mark code for package export
- **Educational directives**: Use `#| hide` for instructor solutions, visible sections for student work
- **Package structure**: Code exports from `modules/` to `tinytorch/` package
## Testing Standards
- **pytest only**: All tests must use pytest framework with proper test classes
- **Comprehensive coverage**: Tests should cover functionality, edge cases, and integration
- **Professional structure**: Use test classes, fixtures, and descriptive test names
- **CLI integration**: Tests must be compatible with `tito module test --module {name}` (requires virtual environment activation)
- **Environment setup**: Always activate virtual environment with `source bin/activate-tinytorch.sh` before running commands
These preferences ensure consistency across the TinyTorch educational framework and smooth development workflow.