Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ofcskn/mobile-automation-plugin --skill managing-app-versionsgit clone --depth 1 https://github.com/ofcskn/mobile-automation-pluginWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ofcskn/mobile-automation-plugin/managing-app-versions)<a href="https://agentmods.dev/skills/ofcskn/mobile-automation-plugin/managing-app-versions"><img src="https://agentmods.dev/badge/skills/ofcskn/mobile-automation-plugin/managing-app-versions.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00095 | $0.00769 |
| Opus 5 | $0.00048 | $0.00385 |
| Sonnet 5 | $0.00019 | $0.00154 |
| Haiku 4.5 | $0.00010 | $0.00077 |
Grade A, and why
managing-app-versions scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Managing App Versions
When to use
| Request | Action |
|---|---|
| "bump version" / "patch release" | bump-version.js {appId} patch |
| "minor release" | bump-version.js {appId} minor |
| "major release" | bump-version.js {appId} major |
| "new build only" | bump-version.js {appId} build |
| "sync native files" | sync-build-numbers.js {appId} --project-root /path |
Steps
- Read
.msd/versions/{appId}/version.json— confirm current values - Run:
node skills/managing-app-versions/scripts/bump-version.js {appId} {type} - Run:
node skills/managing-app-versions/scripts/sync-build-numbers.js {appId} --project-root /path/to/app - Show the user the new version numbers
- Suggest commit message:
chore: bump version to {semver} (build {build})
Rules
- Android versionCode is monotonically increasing. Never decrement it. The script enforces this.
- iOS CFBundleVersion must increase per TestFlight upload. CFBundleShortVersionString can stay.
- Expo projects: sync-build-numbers.js writes ONLY to app.json. Do not touch native files.
- Bare RN: sync-build-numbers.js writes to ios/*/Info.plist and android/app/build.gradle.
- Always commit version.json and all platform files together in one atomic commit.
Per-platform versioning
iOS and Android can be bumped independently using an optional third argument:
node bump-version.js <appId> <patch|minor|major|build> [ios|android|both]
| Command | Effect |
|---|---|
bump-version.js {appId} patch |
bump both platforms (default) |
bump-version.js {appId} patch both |
explicit both — same as default |
bump-version.js {appId} patch ios |
bump iOS only; Android unchanged |
bump-version.js {appId} patch android |
bump Android only; iOS unchanged |
When platforms diverge, the top-level semver in version.json reflects the most recently bumped platform. Each platform block also carries its own semver field for independent tracking:
{
"semver": "1.0.1",
"ios": {
"semver": "1.0.1",
"CFBundleShortVersionString": "1.0.1",
"CFBundleVersion": "3"
},
"android": {
"semver": "1.0.0",
"versionName": "1.0.0",
"versionCode": 2
}
}
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 77 lines · 95 tokens per session scan A 46fb0b83138b
managing-app-versions is a skill published in the GitHub repository ofcskn/mobile-automation-plugin (2 stars, last pushed 2mo ago), licensed MIT. It adds 95 tokens to every session and 769 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
release-new-version
Use when the user wants to release a new Zafiro version — drafting bilingual release notes, deciding the next version number, bumping app/build.gradle.kts, tagging, and publishing to GitHub (main repo, optionally the Xposed repo).
flame-harness-submit
Phase 10 — upload store text metadata + categories via fastlane, then pause with exact manual steps for the final iOS review submission and Android production promotion.
kappmaker-publish
Build, sign and ship a KAppMaker app — Fastlane setup, signed Android AAB, keystore generation, and uploading to Google Play and the App Store. Use when the user asks to build a release, create a keystore, configure fastlane, ship, upload or publish the app. Building iOS without a Mac is kappmaker-ios-ci.
android-release-bump
Bump Android release versions in app/build.gradle.kts, generate localized Play release notes, run verification, optionally run headless emulator smoke validation, commit/tag/push, build a signed AAB, and optionally upload to Google Play Internal Testing. Use when asked to cut a release, bump major/minor/patch (or…
asc-ad-hoc-distribution
Prepare, publish, resume, and verify private iOS release-testing installs with asc distribute. Use when distributing an IPA to registered devices outside TestFlight, reconciling ad hoc profiles, publishing through caller-owned S3-compatible storage, or diagnosing a resumable private distribution run.
release-management
Automates GitHub releases with semantic versioning, changelog generation from merged PRs, and gh CLI integration. Supports draft, prerelease, and standard release workflows with task-tracked multi-phase execution. Use when creating releases, tagging versions, or publishing changelogs.