Skill: Git Onboarding (cinef.skill.git_onboard)
Purpose
Help a new user set up git, create a GitHub account, initialize a repository, and learn the core workflow: branch, stage, commit, push, pull request. This skill teaches by DOING — every step is executed in the context of the user's actual Cinef project, not abstract examples.
When to Use
- User says "I've never used git" or "how do I push this"
- New team member joining the project
- Setting up a fresh Cinef show on a new machine
Concepts Explained Through the Pipeline
What is Git?
Git tracks every change you make to your files — like "undo" but for your entire project, forever. In Cinef, every AI override layer, every QC report, every skill update is a tracked change. You can always go back.
What is GitHub?
GitHub is where your git repository lives online so others can see it, contribute to it, and review changes. Think of it as the shared drive for your show — but with full version history.
What is a Branch?
A branch is your personal workspace. The main branch is the "canon" —
the official version. Your branch (e.g., lee) is where you experiment.
This maps directly to USD philosophy: the root stage is immutable,
your override layers are your "branch" of creative intent.
main (canon) ← the official show
└── lee (your branch) ← your AI experiments
├── focus_pull_v001.usda
├── relight_v001.usda
└── mask_v001.usda
What is Staging?
Staging means "marking which files you want to include in your next save point." Not every changed file needs to go — you pick the ones that are ready.
In Cinef terms: you stage the override layer AND its QC report together, because they belong to the same skill execution.
What is a Commit?
A commit is a save point with a message explaining what changed and why. In Cinef, the commit message includes provenance — which skill ran, which AI model, what prompt triggered it.
What is a Push?
Push sends your local commits to GitHub so others can see them. Your files don't leave your machine until you push.
What is a Pull Request (PR)?
A PR says "I've made changes on my branch — please review and merge them into the canon." In film terms: "Here are my AI lighting overrides for shot_010 — director, please approve."
Execution Steps
Step 1: Check if git is installed
git --version
# If not installed:
# macOS: xcode-select --install
# Linux: sudo apt install git
# Windows: download from https://git-scm.com
Step 2: Configure git identity
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
Step 3: Initialize the repository
cd /path/to/your/cinef/project
git init
git checkout -b main
Step 4: Create .gitignore
Ensure heavy media files don't get committed:
*.exr
*.hdr
*.mov
*.mp4
*.wav
__pycache__/
.DS_Store
Step 5: First commit — the base show
git add show/show.usda
git add show/shots/*/base.usda
git add show/assets/
git add show/skills/
git add cinef.py
git add CLAUDE.md README.md WALKTHROUGH.md .gitignore
git commit -m "Initial show setup — base stages, skills, and pipeline"
Step 6: Create a GitHub repository
- Go to https://github.com and sign up (or sign in)
- Click the "+" menu → "New repository"
- Name it (e.g., "my-cinef-show")
- Keep it Private (your show, your IP)
- Do NOT initialize with README (you already have one)
- Copy the URL it gives you
Or use the GitHub CLI:
# Install: https://cli.github.com
gh auth login
gh repo create my-cinef-show --private --source=. --push
Step 7: Connect local repo to GitHub
git remote add origin https://github.com/YOUR_USERNAME/my-cinef-show.git
git push -u origin main
Step 8: Create your working branch
git checkout -b your-name
# Now you're on your own branch — experiment freely
Step 9: The daily workflow
After running AI skills that generate override layers:
# See what changed
git status
# Stage specific files (never git add . blindly)
git add show/shots/shot_010/ai/focus_pull_v001.usda
git add show/shots/shot_010/qc/focus_pull_qc.json
# Commit with a meaningful message
git commit -m "Add AI focus pull for shot_010 — tracks protagonist wide to close"
# Push to GitHub
git push -u origin your-name
Step 10: Create a Pull Request
# Using GitHub CLI
gh pr create --title "AI focus pull for shot_010" --body "
## Summary
- Generated focus pull override tracking protagonist
- QC passed: focus_accuracy 0.993 > 0.98
- Skill: cinef.skill.focus_pull v1.0.0
## Review
Please check the focus curve smoothness in the override layer.
"
Or on GitHub.com:
- Go to your repository
- Click "Compare & pull request" (GitHub shows this when you push a branch)
- Write a title and description
- Click "Create pull request"
- Ask your director/lead to review
Common Situations
"I made a mistake in my last commit"
# Fix the file, then:
git add the-fixed-file.usda
git commit -m "Fix focus curve smoothness in shot_010"
# Don't amend — make a new commit so history is preserved
"I want to see what changed"
git diff # Unstaged changes
git diff --staged # Staged changes
git log --oneline -10 # Last 10 commits
git log --oneline show/shots/ # History of shots directory
"I want to undo changes to a file"
git checkout -- show/shots/shot_010/ai/relight_v001.usda
# This discards your local changes and restores the last committed version
"Someone else made changes I need"
git fetch origin
git merge origin/main
# Or if you want to rebase:
git pull --rebase origin main
Constraints
- NEVER commit files containing API keys, passwords, or credentials
- NEVER force-push to main — always use a branch + PR
- Stage specific files by name, not
git add .(avoids committing media) - Heavy media (EXR, HDR, MOV, WAV) should be in .gitignore
- Commit messages should include skill provenance when committing AI output