The full contribution cycle

1
Scaffold
plesty init device or plesty init experiment — generates project layout, schemas, tests, CI config, pre-push hook
2
Implement
Write connect, disconnect, _write_, _query_, check_errors, check_operatability. Define schemas.
3
Check
uv run plesty check — fix failures, re-run until all gates pass
4
Document
Update docs/index.md and CHANGELOG.md — required by Gate 5
5
Commit
Conventional commits: feat(scope): description. No Co-Authored-By trailers in PLESTY repos.
6
Push
Pre-push hook runs plesty check automatically. Every published module is the same: git push origin <branch>:exp. No merge request, and never straight to main.
7
CI
GitLab pipeline: check → security → deploy (docs) → release (on tag)
8
Field test
Run it on the instrument — host tier there, client tier from another machine. The gates prove the code; this proves the device. Commit reports/<MODEL>/field-test.json.
9
Publish
Merge the line into main, tag there, merge main back into exp. The tag triggers Gate 14: builds the wheel and publishes to PyPI.

Sections