59 lines
1.3 KiB
Markdown
59 lines
1.3 KiB
Markdown
# Contributing to ScreenJob
|
|
|
|
## Development Setup
|
|
|
|
1. Use Python 3.11+.
|
|
2. Install dependencies:
|
|
|
|
```powershell
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
3. Create `.env` with required keys:
|
|
- `OPENAI_API_KEY`
|
|
- `SCREENJOB_TOKEN`
|
|
|
|
## Branch and PR Workflow
|
|
|
|
1. Create a feature branch from `main`.
|
|
2. Keep changes focused and modular.
|
|
3. Add or update tests for behavior changes.
|
|
4. Run checks locally before opening a PR:
|
|
|
|
```powershell
|
|
pytest -q
|
|
```
|
|
|
|
5. Open a PR with:
|
|
- problem statement
|
|
- approach summary
|
|
- test evidence
|
|
|
|
## Code Guidelines
|
|
|
|
- Favor small, single-purpose functions.
|
|
- Keep runtime and API behavior deterministic where possible.
|
|
- Preserve backward compatibility for external API contracts unless explicitly changing versioned behavior.
|
|
- Use clear error messages and structured outputs.
|
|
- Do not commit secrets, API keys, or runtime artifacts.
|
|
|
|
## Testing Expectations
|
|
|
|
- Unit tests for new logic paths.
|
|
- API tests for request/response contract changes.
|
|
- Regression coverage for bug fixes.
|
|
|
|
## Security and Safety
|
|
|
|
- Treat safety checks as part of core behavior.
|
|
- Do not bypass auth/token requirements in server code.
|
|
- Restrict file access to intended directories (for artifacts/endpoints).
|
|
|
|
## Reporting Issues
|
|
|
|
Use issues for:
|
|
|
|
- reproducible bugs
|
|
- security concerns (with minimal sensitive detail)
|
|
- feature requests with concrete use cases
|