Getting Started
Before contributing, please:- Read through the main README to understand the project
- Review the Agent System Documentation for architecture details
- Check existing issues and pull requests
Development Setup
Configure environment
Copy the example environment file and add your API keys:Required environment variables:
OPENAI_API_KEY- For embeddings and LLM featuresAPI_NINJAS_KEY- For earnings transcriptsCEREBRAS_API_KEY- For fast inference (optional)DATABASE_URL- PostgreSQL connection stringCLERK_SECRET_KEY/CLERK_PUBLISHABLE_KEY- For authentication (production)
.env.example for the complete list.Code Style Guidelines
Python Code Standards
Finance Agent follows these Python conventions:FastAPI Patterns
Follow these patterns for API endpoints:Security Best Practices
- Always use parameterized queries (never string concatenation)
- Validate and sanitize all user inputs
- Use appropriate HTTP status codes (400, 401, 403, 404, 500)
- Log errors with context but never log sensitive data
Project Structure
Understanding the codebase organization:Making Changes
Create a feature branch
feature/add-10q-supportfor new featuresfix/search-timeoutfor bug fixesrefactor/improve-cachingfor refactoring
Make your changes
- Follow the code style guidelines above
- Add docstrings to new functions and classes
- Update relevant documentation
- Keep commits focused and atomic
Test your changes
Pull Request Process
Open a pull request
Go to the repository and click New Pull Request.Your PR description should include:
- What: Summary of changes
- Why: Motivation and context
- How: Implementation approach
- Testing: How you tested the changes
- Screenshots: If UI changes are involved
Address review feedback
Maintainers will review your PR and may request changes. Please:
- Respond to feedback promptly
- Make requested changes in new commits
- Re-request review when ready
Contribution Guidelines
Documentation
Do create documentation when:
- Adding new major features requiring setup
- Creating public APIs for external developers
- User explicitly requests documentation
File Management
- Always prefer editing existing files over creating new ones
- Never create helper scripts or temporary files unless necessary
- Clean up temporary files immediately after use
- Ask for clarification if requirements are ambiguous
Code Quality
- Write clear, self-documenting code
- Add comments for complex logic
- Use existing helper functions and utilities
- Handle errors gracefully with appropriate logging
- Maintain backward compatibility when possible
Reporting Issues
Found a bug or have a feature request? Please open an issue. For bugs, include:- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Python version, etc.)
- Relevant logs or error messages
- Use case and motivation
- Proposed solution or approach
- Any alternatives considered
Community
Questions or need help?- Email: [email protected]
- Check existing issues
- Review the documentation