80 lines
3.1 KiB
Markdown

---
name: deploy-gpu
description: Sync this repo's working tree to nik-gpu, where it runs directly out of the git checkout, 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.
disable-model-invocation: true
---
# /deploy-gpu
Deploys the current working tree to `nik-gpu`. 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
## The checkout IS the runtime
As of 2026-07-18, `ba_dailies.sh` runs directly out of the git checkout at
`nik-gpu:~/repo/ba-auto-daily/` — there is no separate flat-path copy
(`~/ba_dailies.sh`, `~/ba_daily.py`, `~/ba_auto/`, `~/ba_assets/`) for
`setup.sh` to keep in sync. If those flat paths turn up on nik-gpu, they're
stale leftovers from the pre-2026-07-18 model — don't assume anything reads
from them.
This means a plain rsync is normally enough on its own; `setup.sh` is no
longer a required second step for an ordinary code change.
## Steps
1. From the repo root, run:
```bash
rsync -av \
--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. Only run `setup.sh` if this deploy also needs it — a fresh/empty checkout,
a new Python dependency, a new host-level tool requirement (e.g. a
tesseract language pack), or the venv otherwise needs
installing/reinstalling. It's idempotent and safe to re-run, but it no
longer copies any files anywhere, so don't run it out of habit expecting
it to "finish" the deploy — step 1's rsync already did:
```bash
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, from the checkout path directly:
```bash
ssh nik-gpu "~/repo/ba-auto-daily/ba_dailies.sh <task>"
```
Do not invent a task to run if none was given — several tasks
(`story_sweep`, `story_sweep_hard`, `shop_common`, `shop_tactical`,
`lesson`, `arena`, `bounty`, `event_sweep`) spend real AP, credits,
tactical coin, lesson tickets, an arena ticket, or a bounty ticket, 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, whether `setup.sh` was
needed/run, and if a task was smoke-tested, what its log output actually
said.