Thank you for your interest in contributing! structkit is a YAML-first project scaffolding tool for platform engineering teams, and community contributions are what make it better.
- Report bugs — open a bug report
- Request features — open a feature request
- Share your templates — post in GitHub Discussions
- Fix bugs or implement features — see the workflow below
- Improve docs — typos, examples, tutorials all welcome
# Clone the repo
git clone https://github.com/httpdss/structkit.git
cd structkit
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # or .venv\Scripts\activate on Windows
# Install in editable mode with dev dependencies
pip install -e ".[dev]"
# Install pre-commit hooks
pre-commit installpytestTo run a specific test file:
pytest tests/test_generate.py -v- Fork the repo and create a branch from
main - Make your changes — keep PRs focused; one feature or fix per PR
- Add tests — new behavior should have test coverage
- Run pre-commit —
pre-commit run --all-files - Open a PR — describe what you changed and why
PR title format: type: short description (e.g. feat: add remote template caching, fix: handle empty YAML files)
Have a useful structkit template? The best place to share it is GitHub Discussions → Show your structkit templates. If it's broadly useful, we may feature it in the docs.
- Python 3.9+
- Black formatting (enforced by pre-commit)
- Type hints encouraged for new code
- Docstrings for public functions
Open a GitHub Discussion — we're happy to help.