# Contributing to SchoolMarm
Thank you for your interest in SchoolMarm!
## Open Source, Not Open Contribution
SchoolMarm is **open source** but **not open contribution**.
- The code is freely available under a permissive dual license (MIT OR Apache-2.0)
- You can fork, modify, use, and learn from it without restriction
- **Pull requests are not accepted by default**
- All architectural, roadmap, and merge decisions are made by the project maintainer
This model keeps the project coherent, maintains clear ownership, and ensures consistent quality. It's the same approach used by SQLite and many infrastructure projects.
## How to Contribute
If you believe you can contribute meaningfully to SchoolMarm:
1. **Email the maintainer first**: [michaelallenkuykendall@gmail.com](mailto:michaelallenkuykendall@gmail.com)
2. Describe your background and proposed contribution
3. If there is alignment, a scoped collaboration may be discussed privately
4. Only after discussion will PRs be considered
**Unsolicited PRs will be closed without merge.** This isn't personal — it's how this project operates.
## What We Welcome (via email first)
- Bug reports with detailed reproduction steps (Issues are fine)
- Security vulnerability reports (please email directly)
- Documentation improvements (discuss first)
- Compatibility fixes (discuss first)
## What We Handle Internally
- New features and architectural changes
- API design decisions
- Core grammar engine updates
- Performance optimizations
## Bug Reports
Bug reports via GitHub Issues are welcome! Please include:
- Rust version and SchoolMarm version
- OS and version
- Minimal reproduction case
- Expected vs actual behavior
- Grammar file used if relevant