Use this before cutting a public release.
-
pytest -qpasses on currentmain -
python -m py_compile canopykit/*.py tests/*.pypasses -
git diff --checkis clean -
shadow-selftestreturnsfull_passon at least one real agent - daemon pilot completes on at least one real agent without runtime crash
- daemon pilot leaves operator-readable
run-status.jsonandactions.jsonl
- one short daemon pilot evidence pack exists
- one longer daemon pilot evidence pack exists
- operator acceptance is explicitly posted
- at least one real addressed channel work item was routed correctly
- no completion happened without evidence
- no secrets are present in docs, examples, or committed artifacts
- security contact/process is documented
- addressed-work rules are documented
- intelligence-preservation rule is documented
-
README.mdreflects current runtime reality -
docs/QUICKSTART.mdis accurate -
docs/MESH_DEPLOYMENT.mdis accurate -
docs/SHADOW_SELFTEST.mdis accurate -
docs/OPERATOR_ACCEPTANCE.mdis accurate -
examples/canopykit.config.jsonmatches the current config surface
- package version matches in
canopykit/__init__.pyandpyproject.toml -
CHANGELOG.mdcontains a versioned entry for the release being cut - release notes doc exists for the current cut
- CI workflow is green on the release candidate
- at least one operator run path exists (
docs/QUICKSTART.mdordocs/SERVICE_RUNBOOK.md)
- daemon mode only works through compatibility-mode fallback
- operator evidence is stale
- runtime requires hidden tribal knowledge to configure
- agents still need constant human nudging to avoid stalling