.agents/skills/biba-deployment/SKILL.md
Use when deploying or updating BiBa on the robot, especially when pulling the latest GHCR image and restarting the compose stack through the robot-side bbupdate workflow.
npx skillsauth add GOODWORKRINKZ/biba biba-deploymentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
BiBa must be updated from GitHub and GHCR through the robot-side update workflow.
Do not hand-edit the cloned repo on the robot and do not replace bbupdate with ad-hoc compose commands unless the user explicitly asks for low-level recovery.
Use the robot's own bbupdate workflow.
Before running bbupdate for a freshly pushed change, verify the relevant GitHub Actions build is green.
Prefer gh over web polling when the GitHub CLI is available.
Expected behavior of bbupdate:
git pull --ff-onlydocker compose pulldocker compose up -dThis preserves the intended deployment path: GitHub repo + GHCR image + robot-side update command.
If the deploy depends on a newly built GHCR image, wait for the GitHub Actions run to finish successfully before updating the robot.
Preferred commands with GitHub CLI:
run_id=$(gh workflow run <workflow> --repo GOODWORKRINKZ/biba --ref <ref> --json id --jq .id)
gh run watch "$run_id" --repo GOODWORKRINKZ/biba --exit-status
gh run view <run-id> --repo GOODWORKRINKZ/biba
gh run watch <run-id> --repo GOODWORKRINKZ/biba --exit-status
Recommended flow:
gh run watch "$run_id" --exit-status.If gh workflow run does not return the id directly in the current CLI version, discover it with gh run list or gh run view before waiting.
Prefer gh run watch as the default waiting mechanism when the terminal supports it.
Use polling or API-based fallbacks only when gh run watch output is unusable in the current session.
Useful fallback discovery commands:
gh run list --repo GOODWORKRINKZ/biba --limit 10
gh run view <run-id> --repo GOODWORKRINKZ/biba --json status,conclusion,jobs
Confirm before deploy:
Do not start bbupdate while the image build is still running unless the user explicitly asks to deploy a possibly stale image.
On BiBa, aliases from ~/biba/scripts/biba_aliases.sh require an interactive shell.
For remote execution over SSH, use:
sshpass -p 'open' ssh -tt -o StrictHostKeyChecking=no biba@<robot-ip> \
'bash -ic "source ~/biba/scripts/biba_aliases.sh; bbupdate"'
Why:
bash -lc may not expose the alias correctly in non-interactive executionbash -ic loads an interactive shell, so bbupdate and related aliases work as defined on the robot-tt ensures a tty is allocated, which avoids interactive-shell edge cases on the robotAfter bbupdate, verify all of the following:
sshpass -p 'open' ssh -tt -o StrictHostKeyChecking=no biba@<robot-ip> \
'bash -ic "source ~/biba/scripts/biba_aliases.sh; bbhealth"'
sshpass -p 'open' ssh -o StrictHostKeyChecking=no biba@<robot-ip> \
'git -C ~/biba rev-parse HEAD && git -C ~/biba log -1 --oneline'
sshpass -p 'open' ssh -o StrictHostKeyChecking=no biba@<robot-ip> \
'docker inspect biba-biba-controller-1 --format "{{range .Config.Env}}{{println .}}{{end}}" | sort | egrep "MOTOR_DRIVER_TYPE|LEFT_MOTOR|RIGHT_MOTOR"'
Confirm:
~/biba on the robot during normal deploymentdocker compose up -d as a substitute for bbupdate during routine updatesbash -lc; use the interactive-shell invocation abovetesting
Use when creating new skills, editing existing skills, or verifying skills work before deployment
development
Use when you have a spec or requirements for a multi-step task, before touching code
data-ai
Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always
tools
Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions