Git, branches & deploys
We run two deploy models. Knowing which one you’re in prevents 90% of mistakes.
Changing a marketing website?
flowchart TD A1[Branches: main + staging ONLY] --> A2[Work on staging → verify the preview] A2 --> A3[Owner approval for customer-facing changes] A3 --> A4[Merge to main = PRODUCTION deploy]Changing the ops dashboard?
flowchart TD B1[Branch: master ONLY] --> B2[Commit + push = deploy] B2 --> B3[No approval gate — internal tool, always push live]The rules
Section titled “The rules”- Marketing sites: exactly two branches —
main+staging. Never create any other branch (no feature/fix/throwaway branches). They drift and cause mistakes; delete strays on sight.mainis the source of truth;stagingis always a clean copy of it. - Ops dashboard: exactly one branch —
master. Push to it and it deploys. Absolute rule, including for automated agents. - Pushing a marketing site’s
mainis a live production deploy — verify on the staging preview first, and get explicit approval for customer-facing changes. “Push to staging” never implies production. - The dashboard is the opposite — always push live, no review step. It’s internal.
- GitHub is the source of truth. All repos live under the
OwnerOperatedaccount. Local clones live underC:\Users\alexb\Glass projects\. - Local first — never edit production servers directly. Everything goes through git so the repo stays authoritative.
- Never commit build output — no
dist/, nonode_modules/. The platforms build from source.
Verb glossary
Section titled “Verb glossary”| Verb | Meaning |
|---|---|
| ”push” / “push live” | Commit, push, and deploy per that project’s rules |
| ”deploy” | Deploy only — the code is already pushed. If the environment is ambiguous, ask — never assume production. |
Working with Claude Code
Section titled “Working with Claude Code”- Open Claude in the specific repo’s folder so its rules file (
CLAUDE.md) auto-loads — never work from the home directory. - On launch, a sync-check reports whether the local clone is
[UP TO DATE]or[BEHIND]the remote — never work on a stale copy.