Install
$ agentstack add skill-hlnd2t-cs2-vibesignatures-bump-idb ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Bump IDB to Latest Game Version
End-to-end workflow to advance the project to the newest download.yaml tag and re-analyze every binary against the freshly-loaded IDBs. This skill is purely mechanical — no judgment calls, do not skip steps, and abort immediately with a user-visible error if any step fails its precondition.
When to Use
- The user explicitly asks to "bump idb", "bump gamever", "update to latest
gamever", or similar.
- A new tag has been added to
download.yamland the project must be brought up
to it.
Inputs
None. Everything is read from the repo state:
download.yaml— lasttag:entry underdownloads:is the latest gamever..env— currentCS2VIBE_GAMEVER=line.bin/{LATEST_GAMEVER}/*/— used to detect open IDBs.
Steps
Step 1 — Determine LATEST_GAMEVER from download.yaml
Read every - tag: "" line under downloads: in download.yaml. The last one in document order is the latest. Strip the surrounding quotes.
LATEST_GAMEVER=$(grep -E '^\s*-\s+tag:' download.yaml | tail -1 | sed -E 's/.*tag:\s*"([^"]+)".*/\1/')
echo "LATEST_GAMEVER=$LATEST_GAMEVER"
If LATEST_GAMEVER is empty, abort and tell the user that download.yaml has no tag: entries.
Step 2 — Read current GAMEVER from .env
CURRENT_GAMEVER=$(grep -E '^CS2VIBE_GAMEVER=' .env | sed -E 's/^CS2VIBE_GAMEVER=//')
echo "CURRENT_GAMEVER=$CURRENT_GAMEVER"
If .env does not contain a CS2VIBE_GAMEVER= line, treat CURRENT_GAMEVER as empty and proceed to Step 3 (the bump will create the line).
Step 3 — Bump .env if needed
If CURRENT_GAMEVER == LATEST_GAMEVER, skip this step and report "GAMEVER already at latest (``)."
Otherwise, rewrite the CS2VIBE_GAMEVER= line in-place. Use the Edit tool with exact string match — do NOT use a global sed -i that could clobber other variables. If the line is missing entirely, append it.
Report the change to the user: Bumped CS2VIBE_GAMEVER: ->
Step 4 — Check for open IDBs (*.id0 files)
An *.id0 file inside bin/{LATEST_GAMEVER}// means IDA Pro currently has that IDB open. Bumping while an IDB is open will corrupt the database, so we refuse the bump in that case.
LOCK_FILES=$(ls bin/$LATEST_GAMEVER/*/*.id0 2>/dev/null)
If LOCK_FILES is non-empty, abort with a user-visible error like:
> Cannot bump IDB: detected open IDA instance(s) for gamever > `. The following *.id0 lock file(s) exist: > > - > - ` > > Close the IDA window(s) holding these IDBs and re-run the bump.
Do not continue to Step 5.
> Note: It is fine if bin/{LATEST_GAMEVER}/ does not exist yet — that just > means no IDBs have ever been opened for this gamever. The glob simply produces > no matches.
Step 5 — Run idaanalyzebin.py
Run the analyzer for the newly-bumped gamever, redirecting all output to a log file so the conversation isn't flooded:
uv run ida_analyze_bin.py -gamever $LATEST_GAMEVER -rename -debug >> /tmp/bump_idb_output.log 2>&1
Important:
- Always pass
-gamever $LATEST_GAMEVERexplicitly, never rely on env-var
resolution — at this point .env was just rewritten and the new value may not yet be exported in the current shell.
- The
>>(append) operator is intentional: it lets the user inspect prior runs.
If you want a fresh log, truncate the file first with : > /tmp/bump_idb_output.log.
- DO NOT set a timeout. This command routinely runs longer than 10 minutes
(the Bash tool's maximum timeout). Run it in the background with run_in_background: true and wait for the completion notification before proceeding to Step 6. Polling the log mid-run is unnecessary — the harness notifies you when the task finishes.
Step 6 — Report the outcome
On exit code 0:
Report success to the user, including the gamever and a one-line summary lifted from the end of /tmp/bump_idb_output.log (typically a Summary: Total=.., Passed=.., Failed=.. line):
tail -20 /tmp/bump_idb_output.log
Example success message:
> Bump complete: CS2VIBE_GAMEVER is now 14164. Analyzer finished with 0 > failures. Full log: /tmp/bump_idb_output.log.
On non-zero exit code:
Do NOT claim success. Read the tail of the log and surface the actual failure to the user:
tail -60 /tmp/bump_idb_output.log
If a meaningful error block isn't visible in the tail, grep for Error|Failed| Traceback to locate the failure:
grep -nE 'Error|Failed|Traceback' /tmp/bump_idb_output.log | tail -20
Present the relevant excerpt verbatim and tell the user where the full log lives (/tmp/bump_idb_output.log). Do not attempt to "fix" the failure inside this skill — that is out of scope. The user will decide how to proceed.
Checklist
- [ ]
LATEST_GAMEVERderived from the last- tag:entry in
download.yaml.
- [ ]
.envCS2VIBE_GAMEVER=line edited only if it differs from
LATEST_GAMEVER; other variables in .env left untouched.
- [ ]
bin/{LATEST_GAMEVER}/*/*.id0check performed AFTER the env bump (so the
user sees "bumped but blocked" rather than a silent no-op).
- [ ] If any
*.id0lock exists, skill aborts with the full list of lock paths
and does NOT run ida_analyze_bin.py.
- [ ]
ida_analyze_bin.pyinvoked with explicit `-gamever $LATEST_GAMEVER
-rename -debug and output appended to /tmp/bumpidboutput.log`.
- [ ] Exit code checked; success and failure paths produce distinct, accurate
user-facing reports.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: HLND2T
- Source: HLND2T/CS2_VibeSignatures
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.