$npx -y skills add HLND2T/CS2_VibeSignatures --skill init-gamebinInitialize this repository's local game binaries for an exact GAMEVER from download.yaml or its latest entry, delegate symbol YAML restoration to restore-from-snapshot, and optionally rename known functions in IDA databases. Use only when explicitly asked to initialize or restore
| 1 | # Initialize Game Binaries |
| 2 | |
| 3 | Use the bundled script as the only entry point for downloading, merging, and depot fallback. Never overwrite an existing |
| 4 | binary, substitute an unlisted version, or continue after a failed step. Delegate all symbol snapshot behavior to the |
| 5 | project-level `$restore-from-snapshot` skill; do not call `gamesymbol_snapshot.py` or restore YAML locally in this skill. |
| 6 | |
| 7 | ## Select GAMEVER |
| 8 | |
| 9 | 1. Extract an exact `GAMEVER` from the user's request. Resolve `latest` only when the user explicitly requests latest. |
| 10 | 2. If the user did not specify a version, run: |
| 11 | |
| 12 | ```powershell |
| 13 | uv run python .claude/skills/init-gamebin/scripts/init_gamebin.py versions |
| 14 | ``` |
| 15 | |
| 16 | Tell the user which entry is latest and ask: `Which GAMEVER do you want to initialize?` |
| 17 | Wait for an explicit version before continuing. |
| 18 | 3. Reject values absent from `download.yaml`; do not guess or silently use latest. |
| 19 | |
| 20 | ## Prepare Binaries |
| 21 | |
| 22 | Run from the owning repository root: |
| 23 | |
| 24 | ```powershell |
| 25 | uv run python .claude/skills/init-gamebin/scripts/init_gamebin.py prepare <GAMEVER-or-latest> |
| 26 | ``` |
| 27 | |
| 28 | The script checks existing binaries, downloads and non-overwritingly merges `gamebin-<GAMEVER>.7z` when needed, and uses |
| 29 | the Steam depot fallback only for a missing Release asset. |
| 30 | |
| 31 | If the command fails, stop immediately and report its exact error as: |
| 32 | |
| 33 | ```text |
| 34 | <skill_error>ERROR REASON</skill_error> |
| 35 | ``` |
| 36 | |
| 37 | Do not attempt an alternate download, edit `.env`, or proceed to symbol restoration or IDA renaming. |
| 38 | |
| 39 | ## Restore Symbol YAML |
| 40 | |
| 41 | After binary preparation succeeds, invoke the project-level `$restore-from-snapshot` skill with the selected GAMEVER. |
| 42 | Follow that skill's trusted restore, base-snapshot suggestion, explicit yes/no confirmation, and result handling exactly. |
| 43 | Do not duplicate its commands or safety rules here. |
| 44 | |
| 45 | ## Offer IDB Renaming |
| 46 | |
| 47 | After `$restore-from-snapshot` finishes, inspect its final result. If it reports |
| 48 | `Symbol snapshot: unavailable; no YAML restored`, report the selected GAMEVER and finish successfully. Do not ask about |
| 49 | IDB renaming or run IDB renaming for a GAMEVER without restored symbols. |
| 50 | |
| 51 | When either a trusted snapshot or a user-confirmed forced base snapshot was restored successfully, ask user: |
| 52 | `Need to sync existing symbols to idb?` |
| 53 | |
| 54 | - If the user declines, report the selected GAMEVER and finish. |
| 55 | - If the user confirms, search `bin/<GAMEVER>/*/*.id0`. If any lock file exists, stop, list every path, and tell the |
| 56 | user to close the corresponding IDA instances. |
| 57 | - Otherwise run the following command without a timeout, wait for its real exit status, and do not poll unnecessarily (the shell may take a very long time, typically 30 mins): |
| 58 | |
| 59 | ```bash |
| 60 | uv run ida_analyze_bin.py -gamever <GAMEVER> -configyaml configs/<GAMEVER>.yaml -debug -rename >> /tmp/bump_idb_output.log 2>&1 |
| 61 | ``` |
| 62 | |
| 63 | On success, report the summary from the final 20 log lines and the full log path. On failure, read the final 60 lines; |
| 64 | if needed, locate the last `Error`, `Failed`, or `Traceback` entries. Report the exit code and relevant excerpt inside |
| 65 | `<skill_error>...</skill_error>`, then stop without attempting repairs. |