⚠️ Archived. This was the operator runbook used to push the initial public repo to GitHub on 2026-05-23. The push has long since happened; this file is retained for provenance only so the end-to-end record of how the submission was prepared stays in the repo. Nothing here is a current procedure.
Sid's directive: The GitHub repo name should be creative and involve all three concepts:
- Gemini Flash (the model family that powers fast generation)
- Managed Agents (the headline new Gemini capability)
- Heads-Up Display (HUD) (the Meta Ray-Ban Display surface we target)
Internal placeholder is GeminiDisplayKit. You decide the final name. Pick something memorable, short, pronounceable. The repo URL will be https://github.com/sidkandan/<YOUR-NAME>.
Brainstorming seeds (you can riff on these or invent fresh):
AgentLens·AgentHUD·AgentFlashFlashHUD·FlashLens·FlashGlassHUDFleet·HUDForge·HUDCanvasOmniLens·OmniHUD·OmniAgentBlinkAgent·Flicker·Glimpse- something using "Specs," "Frame," "Lens," "Eyeline," "Glint," "Aurora"
After choosing:
# Replace the URL in docs that reference the GitHub repo
NAME="<your-chosen-name>" # e.g., NAME="AgentLens"
cd $REPO_DIR
# Update README.md, SUBMISSION.md, SUBMISSION-FORM.md, package.json, PUSH-CHECKLIST.md
sed -i '' "s|sidkandan/GeminiDisplayKit|sidkandan/$NAME|g" \
README.md SUBMISSION.md SUBMISSION-FORM.md package.json PUSH-CHECKLIST.md \
examples/omni-odyssey/README.md examples/pulseblade/README.md \
templates/adventure/README.md examples/prompt-arena/README.md \
docs/*.md CONTRIBUTORS.md CONTRIBUTING.md
# Verify nothing missed
grep -rE 'GeminiDisplayKit' --exclude-dir=node_modules --exclude-dir=.git . | head
# Optional: also rename the npm package name (low-impact since we use it via file:// locally)
# Leave `gdk` as the CLI binary name regardless.
# Commit the rename
git add -A
git commit -m "chore: pick public repo name — $NAME"If you want to keep gemini-display-kit as the npm package name and just use the new name as the GitHub repo URL, that's also fine — the npm name doesn't have to match the GitHub repo.
- Local repo at
$REPO_DIR - 6+ commits on
main(check withgit log --oneline) - First commit
e7109b1is the bootstrap with everything; subsequent commits are doc updates + mini-sync + this rename BeatSaberDisplay.mp4(68 MB) is gitignored (*.mp4rule); stays on disk locally, not in the reponpm testpasses (10/10) —node scripts/smoke.mjsbash scripts/scrub-for-publish.shclean — no API keys, no/Users/*paths, no tracked.env
cd $REPO_DIR
# 1a — Confirm git state
git log --oneline
git status # MUST report "nothing to commit, working tree clean"
# 1b — Confirm scrub
bash scripts/scrub-for-publish.sh
# Expect: "✅ Repository is clean. Safe to push."
# 1c — Confirm smoke
node scripts/smoke.mjs
# Expect: "10 passed, 0 failed"
# 1d — Sanity: nothing sensitive
git ls-files | grep -iE '\.env$|node_modules|\.DS_Store|\.claude/|BeatSaberDisplay' && echo "✗ STOP — sensitive file tracked" || echo "✓ clean"If any of those fail, STOP and report to Sid before proceeding.
NAME="<your-chosen-name>" # the one from Step 0
gh repo create sidkandan/$NAME \
--public \
--description "A Gemini-powered SDK + CLI for building managed-agent games on Meta Ray-Ban Display HUDs. Built at the Google I/O Hackathon 2026-05-23." \
--homepage "https://youtube.com/shorts/6Gl1k9jtep4" \
--source . \
--remote origin \
--pushIf gh isn't authenticated, gh auth login first.
If the name is taken, pick the next-best one and update the docs sed pass.
# Should report "PUBLIC"
gh repo view sidkandan/$NAME --json visibility,url
# Open in browser and visually confirm:
# - README renders properly
# - YouTube link at the top works
# - PROVENANCE.md is at the root
# - SUBMISSION-FORM.md has the form-ready text
# - examples/ tree is visible
gh repo view sidkandan/$NAME --webTMPDIR=$(mktemp -d) && cd "$TMPDIR" && \
git clone https://github.com/sidkandan/$NAME.git && \
cd $NAME && \
ls -la && \
node bin/gdk.mjs --versionExpected:
- Clone succeeds
- All top-level docs visible
examples/containsomni-odyssey/,pulseblade/,prompt-arena/examples/prompt-arena/data/traces/contains the 3 captured trace JSON files (the managed-agents prize evidence)node bin/gdk.mjs --versionprints0.1.0
After the public repo is live and verified:
- Go to https://cerebralvalley.ai/e/google-io-hackathon/hackathon/submit
- Use the field-ready text in
SUBMISSION-FORM.md— copy-paste each section verbatim. - Project name: from your Step 0 choice
- Repository URL:
https://github.com/sidkandan/$NAME - Demo video URL:
https://youtube.com/shorts/6Gl1k9jtep4 - Team: Sid Kandan (solo)
- Categories: Best Use of Managed Agents (primary), Overall (secondary)
The submission form likely has fields for:
- Project name ← from your Step 0
- One-sentence pitch ←
SUBMISSION-FORM.md"One-sentence pitch" - Project description (short/long) ←
SUBMISSION-FORM.mdshort/long versions - "Does your project use managed agents?" ←
SUBMISSION-FORM.mdhas the full answer - "What did you build during the hackathon?" ←
SUBMISSION-FORM.mdhas it - Repo URL + demo video URL
Once pushed and submitted, send a reply via tmux-comm to whichever pane Sid is in, including:
- ✅ Repo created: https://github.com/sidkandan/<name>
- ✅ Public: confirmed via `gh repo view --json visibility`
- ✅ Clean clone test: passed
- ✅ Submitted at: <Cerebral Valley confirmation timestamp>
- 📺 Demo video link: https://youtube.com/shorts/6Gl1k9jtep4
- 🪪 First commit SHA: e7109b1 (timestamp 2026-05-23)
- 🎯 Chosen creative name: <NAME> — short rationale
- ❌ Do not amend or rewrite history before pushing — commit timestamps are the hackathon-rules provenance evidence
- ❌ Do not push
BeatSaberDisplay.mp4(it's gitignored — keep it that way) - ❌ Do not add anything from any
.env(no.envfiles should exist in the repo; only.env.example) - ❌ Do not set the repo to private — hackathon rules require public
- ❌ Do not push from a clean clone — push from the prepared local repo at
$REPO_DIR(it has the curated commits) - ❌ Do not skip the Step 0 rename — the URLs in the docs need to match the actual GitHub URL
Stop and report to Sid via tmux-comm. Don't try to "fix it forward" — the submission is high-stakes and a clean push from this prepared state is more important than speed.
Common failure modes:
gh repo createsays the name is taken → pick another, redo the sed renamegit pushis rejected because the remote already has commits → STOP, do not force-push- Smoke or scrub reports issues → STOP, surface to Sid
If you've time, one final commit with the canonical repo URL fully baked in:
git add -A && git commit -m "docs: lock in canonical repo URL post-push" --allow-empty
git push