python-base ruff (lint) black (format) pyright (static check) pre-commit config todo validate editorconfig validate all files are compatible with editorconfig add actions for all validations in pre-commit