Skillware maintains high standards for code quality and reliability. Before submitting a Pull Request, please ensure your code passes all linting and testing checks.
Install all testing and linting dependencies in one go:
pip install -e .[dev]We use Black as our uncompromising code formatter. It ensures that all code looks the same, regardless of who wrote it, eliminating discussions about style.
pip install blackRun Black on the entire repository to automatically fix formatting issues:
python -m black .If your PR fails the CI check for formatting, running this command locally will resolve it.
We use Flake8 to catch logic errors, unused imports, and other code quality issues that Black does not handle.
pip install flake8Run Flake8 from the root of the repository:
python -m flake8 .Note: We aim for zero warnings/errors. Do not suppress errors with # noqa unless absolutely necessary and justified.
We use pytest for unit testing. All new features and bug fixes must be accompanied by relevant tests.
pip install pytestRun the full test suite:
python -m pytest tests/Every skill now comes with a test_skill.py boilerplate. You can run tests for a specific skill without running the entire suite:
python -m pytest skills/<category>/<skill_name>/test_skill.py- Global Tests: Place core framework tests in the
tests/directory. - Skill Tests: Place skill-specific logic tests in a
test_skill.pyfile within the skill's own directory. - Use
conftest.pyfor shared fixtures (e.g., mocking LLM clients).
Before pushing your code, run the following commands to ensure your changes are ready for review:
skillware list(Verify install and path resolution are working)python -m black .(Format code)python -m flake8 .(Check quality)python -m pytest tests/(Verify framework functionality)python -m pytest skills/(Verify all skills pass their local tests)