| name | use-makefile |
| description | Guidance on using the project Makefile as the primary development interface. USE FOR: running tests, linting, formatting, security scans, or Docker commands; understanding which make target to use for a task; replacing raw commands with their make equivalents. DO NOT USE FOR: understanding the deployment pipeline; adding dependencies; writing documentation. |
Using the Makefile
The Makefile is the primary development interface for this project.
Always prefer make <target> over running raw commands (pytest, ruff, python, docker, …) directly.
Run make help at any time to see the full, up-to-date list of targets.
Why use make?
- Targets activate the virtual environment automatically.
- Targets set the correct flags, paths, and environment for each task.
- Targets are the same commands the CI pipeline uses — no surprises.
Quick Reference
Getting started
make help
make setup-full
make setup
Day-to-day development cycle
make test-unit
make format
make lint
make lint-all
make check
Testing
make test
make test-unit
make test-integration
make test-coverage
Code quality & security
make lint-format
make lint-markdown
make security-scan
Docker
make docker-build
make docker-run
make docker-test
make docker-logs
make docker-clean
Running the application
make run
Cleanup
make clean
make clean-all
When a make target does not exist
If no target exists for what you need, run the raw command from within the activated virtual environment (see the python-venv skill).
Do not add a new target to the Makefile without checking that it does not duplicate an existing one.