6 · Commit & freeze the vendor
Objective — earn the whole section: verify the frozen author/vX baseline from Create the project, push develop + the author branch + tag to the private remote, cut your working branch, and prove the seam is clean.
Background
Section titled “Background”Create the project already created the pristine vendor baseline — the immutable snapshot you diff against at every vendor update. This page pushes that baseline; it does not re-commit vendor source mixed with AI files.
flowchart TD V["verify author-vX tag<br/>+ author/vX branch"] -->|missing| L["legacy: run Create the project<br/>baseline commit"] V -->|present| P["push develop +<br/>author branch + tag"] P --> W["git checkout -b<br/>Setup/Initial-Launch"] W --> S["seam check<br/>.env + vendor/"]1. Verify the pristine baseline exists
Section titled “1. Verify the pristine baseline exists”-
Confirm the frozen branch, tag, and pristine import commit from AI System setup.
Terminal window git tag --list 'author-*'git branch --list 'author/*'git branch --show-current # expect develop (or your working branch after Verify & gate)git log develop --oneline -6 # expect C1…C6 (pristine + five AI commits)git log author/v${VERSION} -1 --oneline 2>/dev/null || git log -1 --oneline# Expected: author-vX.X.X tag + author/vX.X.X branch; log shows pristine import message- ✅
author-v${VERSION}tag andauthor/v${VERSION}branch exist locally.
- ✅
-
If either is missing — you skipped the baseline commit. Go back to Create the project · pristine baseline before continuing. Do not run a mixed
git add .import here.- ✅ Baseline present — continue. If missing — stop and create it on Create the project only.
2. Safety-check before pushing
Section titled “2. Safety-check before pushing”Never trust that .gitignore is perfect — prove it before anything hits the remote.
-
Scan the working tree for anything that must not be committed.
Terminal window git status | grep -E "vendor/|node_modules/|\.env$" && echo "STOP! Fix .gitignore!" || echo "Safe"git check-ignore -q _source/ && echo "_source ignored OK" || echo "FAIL: /_source/ must stay ignored"# Expected: "Safe" — no vendor/, node_modules/, or .env in the status- ✅ Prints
Safe. If it printsSTOP!, fix.gitignorebefore continuing.
- ✅ Prints
3. Push to the private remote
Section titled “3. Push to the private remote”-
Add the remote and push
develop, the author branch, and the tag.Terminal window git remote add origin "$GITHUB_REPO" 2>/dev/null || git remote set-url origin "$GITHUB_REPO"git push -u origin developgit push origin "author/v${VERSION}" "author-v${VERSION}"# Expected: develop, author/vX.X.X, and author-vX.X.X all pushed to origin- ✅ On GitHub, the branches dropdown shows
develop+author/vX.X.X, and Tags showsauthor-vX.X.X.
- ✅ On GitHub, the branches dropdown shows
-
Enable signed-commit protection on the active branches. In GitHub, add branch rules for
developandmain(or the eventual production branch) with Require signed commits enabled.- ✅
developis protected against unsigned authored commits before the setup branch starts. - ✅ When
mainexists, it gets the same rule before the first production merge.
- ✅
4. Cut your working branch
Section titled “4. Cut your working branch”With the baseline frozen and pushed, create the branch the rest of the playbook commits against (Option A; for Option B you’ll create a Setup/Phase-N-* branch per phase instead).
-
Branch off
developfor the working branch.Terminal window git checkout developgit checkout -b Setup/Initial-Launch# Expected: now on Setup/Initial-Launch, branched from develop- ✅
git branch --show-currentprints your working branch.
- ✅
5. Verify the seam
Section titled “5. Verify the seam”-
Prove secrets and installed vendor never entered history.
Terminal window git log --all --full-history -- .env # → nothinggit log --all --full-history -- vendor/ # → nothing# Expected: both commands print nothing- ✅ Both commands return empty — the seam is clean.
Checklist
Section titled “Checklist”Do not mark this step done until every box below is checked.
- 🤖 Baseline verified —
author/vX.X.X+author-vX.X.Xexist locally (created at Create the project). - 🤖
developpushed to the private remote (includes C1–C6 after Verify & gate). - 👤 Signed-commit protection enabled — GitHub requires signed commits on
developand latermain. - 🤖 Snapshot on remote —
author/vX.X.Xbranch andauthor-vX.X.Xtag pushed. - 🤖 Working branch checked out —
Setup/Initial-Launch(or your Option B branch). - 🤖 Seam clean —
git log --all -- .env vendor/returns nothing.