/**
- Contributing guidelines */
We love contributions! Here's how to get started.
- Be respectful and inclusive
- No harassment or discrimination
- Welcome all experience levels
- Focus on the code, not the person
- Fork the repository
- Clone locally:
git clone https://github.com/YOUR_USERNAME/SheetBrain-AI.git - Create a feature branch:
git checkout -b feature/amazing-feature - Install dependencies:
npm install - Start development:
npm run dev
- Check existing issues to avoid duplicate work
- Discuss major changes in an issue first
- Ensure you have a Google account for Apps Script testing
-
Code Style
- Follow existing patterns in the codebase
- Use TypeScript strict mode
- Run
npm run lint --fixbefore committing - Run
npm run formatto format code
-
Commit Messages
- Use conventional commits:
feat:,fix:,docs:,test:,refactor: - Example:
feat: add formula complexity scoring - Be descriptive: explain the "why", not just the "what"
- Use conventional commits:
-
Testing
- Write tests for new features
- Run tests before pushing:
npm run test - Aim for >80% coverage on new code
-
Documentation
- Update README.md if needed
- Add JSDoc comments to functions
- Document environment variables in .env.example
- Push to your fork
- Create a Pull Request to
main - Fill out the PR template
- Address review comments
- Your PR will auto-deploy to a preview environment
PR Checklist:
- Code follows style guidelines
- Tests pass:
npm run test - Linting passes:
npm run lint - No console errors/warnings
- Documentation updated
- Changes described clearly in PR body
- Google Workspace Design System components
- Performance optimizations
- Security improvements
- Documentation
- Additional formula analysis rules
- UI/UX improvements
- Internationalization (i18n)
- Mobile responsiveness
- Nice-to-have features
- Code cleanup
- Example scripts
Found a bug? Please report it!
Before submitting:
- Check if issue already exists
- Collect error messages and logs
- Document reproduction steps
- Note your environment (OS, Node version, etc.)
Issue Template:
**Description**
Clear description of the problem
**Steps to Reproduce**
1. Do this
2. Then this
3. You see this error
**Expected Behavior**
What should happen
**Environment**
- OS: macOS/Windows/Linux
- Node version: 20.x
- Browser: Chrome/Firefox (if applicable)
**Error Logs**error message here
- Use strict mode
- Type all function parameters and returns
- Avoid
anytype - Use proper interfaces for data structures
- Keep commits focused and small
- One feature per commit if possible
- Easier to review and revert if needed
/**
* Analyzes a formula against company policies
* @param formula - The Google Sheets formula to audit
* @param context - Audit context with organization details
* @returns Audit result with issues and suggestions
*/
export async function auditFormula(
formula: string,
context: AuditContext
): Promise<AuditResult>- Project Board
- Development Guide
- API Documentation
- TypeScript Handbook
- Next.js Documentation
- Google Apps Script Guide
- Open a GitHub Discussion
- Check existing Issues
- Email: hello@sheetbrain.ai
- Discord: https://discord.gg/sheetbrain
Contributors will be:
- Added to the README.md
- Featured in release notes
- Thanked in the Discord community
Thank you for making SheetBrain AI better! 🎉