Operations
How work moves from a local change to running staging code, and the checks that stop drift.
Development happens on staging. Production is deployed but dormant by design and is not used until staging is launch-ready.
Git workflow
- All pull requests and pushes target
staging. Never merge or push tomainwithout an explicit instruction. - Feature branches merge into
stagingthrough PRs. Config changes, docs, and single-file fixes included. No exceptions. - Semantic commit prefixes on commits, semantic messages as PR titles.
- Never bypass hooks. No
--no-verifywithout explicit permission.
Before you commit
bun run check # typecheck + lint + check:truth
bun run test
Pre-commit hooks run lint-staged. Pre-push runs typecheck. Neither runs the test suite, which is why the CI job matters.
Session hygiene
Every completion summary states delivery status explicitly: committed or not, pushed or not, deployed to staging or not. “Done” without that is not done.
If a change touches cloudflare-agents/ or workers/, merging is not deploying. Those Workers are deployed manually.