Set up the GitHub mirror
For Brady — one-time setup. Claude Code has already run
git initinsidecompany-os/and written.gitignore. Your working tree is clean and committable. The remaining steps create the GitHub repo and push.
Prerequisites
- GitHub account with the email on the Cloudflare Access allow-list
ghCLI installed (brew install gh) and authenticated (gh auth login)- You’re in the OS folder:
cd ~/Library/Mobile\ Documents/com~apple~CloudDocs/company-os
Step 1 — Create the private repo
gh repo create bradyshearer/company-os \
--private \
--description "Pro Church Tools — Company OS (source for pctos.com)" \
--source=. \
--remote=origin \
--push=false--push=false because we’ll do the first commit + push manually so you can verify what’s getting committed.
If you prefer the dashboard: github.com/new → Name: company-os → Private → Create repository (no README, no .gitignore, no license — we already have those locally) → then run:
git remote add origin git@github.com:bradyshearer/company-os.gitStep 2 — Verify the working tree before the first commit
git statusExpected:
- Untracked: all OS files (AGENTS.md, INDEX.md, context/, methodology/, etc.)
- Ignored (won’t show by default; check with
git status --ignored):.fuse_hidden*,.DS_Store,.claude/,.quartz/node_modules/,.quartz/public/
If anything looks off — e.g., node_modules/ is showing as untracked — fix .gitignore first.
Step 3 — Stage and commit
git add -A
git status --short # one more eyeball pass before committing
git commit -m "Initial Company OS commit + Quartz publishing pipeline"The commit message can be whatever — this is the seed commit.
Step 4 — Push to GitHub
git push -u origin mainIf your local branch is master instead of main, either rename (git branch -M main) or push to master and update Cloudflare Pages’ production branch in setup-cloudflare.
Step 5 — Verify on GitHub
gh repo view bradyshearer/company-os --webConfirm:
- The repo is private (top of page should show a 🔒)
- The file count is reasonable (~70 .md files + .gitignore + .quartz/)
.quartz/node_modules/is NOT in the repo (this would be a multi-MB mistake)context/10-year-plan.mdIS in the repo (it’s mirrored to GitHub even though it’s not published to pctos.com —publish: falsefilters at build time, not at git time)
Step 6 — Hand off to Cloudflare
Continue with setup-cloudflare to wire the repo to Cloudflare Pages and configure Access.
What the launchd job will do later
Once Cloudflare Pages is live, the hourly launchd job at ~/Library/LaunchAgents/com.bradyshearer.company-os-sync.plist will:
git add -A- If there’s a diff:
git commit -m "Auto-sync ..."andgit push origin main - Cloudflare Pages picks up the push, runs Quartz, deploys
You can install the plist any time after the repo exists (see runbook → “How to (re)install the sync job”).
Related
- README — pipeline architecture
- setup-cloudflare — next step
- runbook — when something goes wrong