Ship It
Deliver the current task without absorbing unrelated worktree changes.
- Confirm
ghauthentication and inspect the branch and worktree. Never commit onmain; create an appropriately prefixed branch frommainwhen needed. - Stage only files belonging to the task, then run
uv run poe check. Run any additional CI-equivalent checks required by the changed surfaces (Terraform, migrations, curriculum artifacts, or workflow commands). - Review the staged diff, following the
validateskill's unused-argument and unnecessary-async guidance. Trace changed signatures through callers and mocks; preserve dependency side effects and required callback interfaces. Ruff enforcesARG001andRUF029across all workspace packages; manually review new code in the documented callback-exception files for those rules. Commit with a conventional message plus required repository trailers. - Push without force. If histories diverge, stop rather than rebasing or rewriting history automatically.
- Open a PR to
mainand watch its checks.
Merging is a separate action requiring explicit user intent. If authorized, prefer squash merge and respect branch protection.
Deployment runs only after deploy-relevant changes merge to main. Find the
app-deploy.yml push run by merge SHA and watch it with
gh run watch --exit-status. Infrastructure changes run through the reusable
infra-deploy.yml job before application deployment. Verify /health and
/ready after success. A skills/docs-only merge may correctly trigger no
deployment.
Use debug-deploy for nontrivial failures. Never bypass a failed quality gate,
force-push, or silently include unrelated files.