2.4 KiB

name, description, disable-model-invocation
name description disable-model-invocation
deploy-gpu Sync this repo's working tree to nik-gpu, refresh the flat runtime paths via setup.sh, and optionally smoke-test one task against the live game. Use when the user asks to deploy, push, sync, or ship code to nik-gpu, or wants to try a task live after an edit. true

/deploy-gpu

Deploys the current working tree to nik-gpu and refreshes the runtime paths ~/ba_dailies.sh actually executes from. See README.md's "Deploying your changes" section and CLAUDE.md's "Deployment model" for the source of truth this skill wraps — if either has changed, follow the doc over this file.

Optional task argument (smoke test): $ARGUMENTS

Why two steps, not just rsync

rsync only updates the git checkout at nik-gpu:~/repo/ba-auto-daily/. The launcher itself runs from separate flat paths (~/ba_dailies.sh, ~/ba_daily.py, ~/ba_auto/, ~/ba_assets/) that only setup.sh copies into. Skipping the setup.sh step means nik-gpu keeps executing old code even though the rsync "succeeded".

Steps

  1. From the repo root, run:

    rsync -av --delete \
      --exclude='.git/' \
      --exclude='__pycache__/' \
      --exclude='*.pyc' \
      --exclude='.claude/settings.local.json' \
      --exclude='graphify-out/' \
      --exclude='screenshots/' \
      --exclude='scratchpad/' \
      ./ nik-gpu:~/repo/ba-auto-daily/
    
  2. Run:

    ssh nik-gpu "cd ~/repo/ba-auto-daily && ./setup.sh"
    

    Report any failure here directly (missing host tool, venv/pip error, missing tesseract) rather than treating the deploy as done.

  3. Only if a task name was given in $ARGUMENTS (e.g. /deploy-gpu cafe), run it live as a smoke test:

    ssh nik-gpu "~/ba_dailies.sh <task>"
    

    Do not invent a task to run if none was given — several tasks (story_sweep, shop_common, shop_tactical, lesson) spend real AP, credits, tactical coin, or lesson tickets, and running one without the user asking for that specific task would be an unrequested spend.

    Exit code 0 only means the script ran without a Python exception, not that the in-game action succeeded — surface the task's own log lines (e.g. claiming all, nothing to claim, patted N sparkle(s)) to the user, not just the exit code.

  4. Summarize what happened: deploy succeeded/failed, and if a task was smoke-tested, what its log output actually said.