Thank you for your interest in contributing to SkopaqTrader! This document provides guidelines for contributing to the project.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/<your-username>/skopaqtrader.git cd skopaqtrader
- Set up the development environment:
python -m venv .venv source .venv/bin/activate pip install -e ".[dev]"
- Create a branch for your changes:
git checkout -b feature/my-feature
- We use Ruff for linting and formatting
- Line length: 100 characters
- Target Python version: 3.11+
- Run the linter before committing:
ruff check . ruff format .
skopaq/— All new SkopaqTrader code goes heretradingagents/— Vendored upstream code. Modify only when necessary, and document every change inUPSTREAM_CHANGES.mdtests/unit/— Unit tests (no external API calls)tests/integration/— Integration tests (require API keys, marked with@pytest.mark.integration)
The tradingagents/ directory is vendored from TradingAgents v0.2.0. Changes to this directory must:
- Be minimal and surgical — prefer wrapping over modifying
- Be backward compatible — upstream behavior unchanged when Skopaq extensions are absent
- Be documented in
UPSTREAM_CHANGES.mdwith: what changed, why, and backward compatibility status
- Write tests for all new functionality
- Unit tests should not require API keys or external services
- Use
unittest.mockandrespxfor mocking HTTP calls
# Run unit tests
python -m pytest tests/unit/ -v
# Run integration tests (requires .env with API keys)
python -m pytest tests/integration/ -v -m integrationUse clear, descriptive commit messages:
feat: add multi-model scanner engine
fix: handle Gemini 3 list content format
docs: update UPSTREAM_CHANGES with setup.py modification
test: add unit tests for safety checker
- Ensure all unit tests pass
- Update documentation if your change affects public APIs
- Update
UPSTREAM_CHANGES.mdif you modify vendored code - Write a clear PR description explaining the change and motivation
- PRs require review before merging
- Use GitHub Issues for bug reports and feature requests
- Include steps to reproduce for bugs
- Include your Python version and relevant API provider
Be respectful, constructive, and inclusive. We're building something together.
This project builds on the TradingAgents framework by TauricResearch. If your contribution relates to the upstream framework, consider also contributing there.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.