Skip to content
AdStack Engineering Docs
Esc
navigateopen⌘Jpreview
On this page

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 to main without an explicit instruction.
  • Feature branches merge into staging through 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-verify without 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.

Last updated on July 30, 2026

Was this page helpful?