Thanks for your interest in contributing. This document covers how to set up a development environment, coding standards, and how to submit a pull request.
git clone https://github.com/imohitseth/AST-Healer.git
cd AST-Healer
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\Activate.ps1
pip install -r requirements.txt
pip install ruff # linter used in CI
cp .env.example .env # add your GEMINI_API_KEYPYTHONPATH=. pytest tests/ -vThe mock tests in tests/ do not require a live API key — they operate on the bundled mock_code.py and mock_run.py targets. Tests that invoke the Gemini agent are skipped automatically when GEMINI_API_KEY is not set.
- Python 3.11+ — use
asyncio,ast, and standard library features where possible before reaching for third-party packages. - Linting — run
ruff check . --select E,W,F --ignore E501before pushing. CI will fail on lint errors. - Type hints — add type annotations to all new functions and method signatures.
- Docstrings — one-line summary for simple functions; full Args/Returns for anything public-facing.
- No new dependencies should be added to
requirements.txtwithout discussion in an issue first.
- Fork the repo and create a branch from
main:git checkout -b feat/your-feature-name - Make your changes. Add or update tests as needed.
- Run
ruff check .andpytest tests/ -vlocally — both must pass. - Open a PR against
mainwith a clear description of what changed and why. - Reference any related issues with
Closes #N.
Open a GitHub Issue with:
- Python version and OS
- Steps to reproduce
- Full traceback output
- The target file that caused the failure (if shareable)
Open an issue with the enhancement label. Describe the use case, not just the implementation — it's easier to discuss tradeoffs that way.