Borrowing it
Nothing to install: this file belongs to zhu-xiaowei/Baton. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/zhu-xiaowei/Baton/main/.agents/skills/testflight/SKILL.mdgit clone --depth 1 https://github.com/zhu-xiaowei/BatonWrote 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/zhu-xiaowei/baton/testflight)<a href="https://agentmods.dev/skills/zhu-xiaowei/baton/testflight"><img src="https://agentmods.dev/badge/skills/zhu-xiaowei/baton/testflight/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/zhu-xiaowei/baton/testflight"><img src="https://agentmods.dev/badge/skills/zhu-xiaowei/baton/testflight.svg" alt="Reviewed on agentmods" width="80" 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.00061 | $0.00876 |
| Opus 5.5 | $0.00024 | $0.00350 |
| Sonnet 5.5 | $0.00012 | $0.00175 |
| Haiku 4.5 | $0.00006 | $0.00088 |
Grade A, and why
testflight 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 today.
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.
What it actually says
Baton TestFlight
Follow .claude/commands/testflight.md. A request to publish authorizes the
release's source commits, branch creation, pushes, build-number bump, cloud run,
TestFlight group assignment, the PR and merge after a successful release,
and deletion of the release branch after the merge is confirmed.
Perform these steps without asking for additional approval. Before publishing,
inspect git status --short, including untracked
files. Commit changes within the requested release scope automatically;
preserve unrelated work, using an isolated checkout when needed.
On macOS, run npm run release:ios.
On Linux, publish from the fixed, unprotected release/testflight branch,
not main:
- Reuse
release/testflightfor every release. Fetch and merge the latestorigin/maininto it while preserving its release commits. If it does not exist, create it from the prepared release commit or latestorigin/main. Do not create a new branch for each build number or force-push this branch. - Push the release source commit to Xcode Cloud's connected GitHub repository.
Run
node scripts/release-ios-cloud.mjs --dry-runas a preflight, then runnpm run release:ios:cloudon that same branch in the same invocation. The cloud script commits and pushes its build-number bump before starting Xcode Cloud; a protected branch would reject that push. - Finish and verify the release before the automatic PR workflow below. Preserve branch protection.
If a protected-branch push fails after the script creates its bump commit,
preserve that commit. Move it onto release/testflight automatically
and push the branch. Rerun the dry-run and release on
that branch; let the script decide whether the prepared build number is reusable
instead of manually bumping again. No cloud run starts when that push fails.
For readiness questions, only inspect state and use the dry-run on Linux. Report the final build number, cloud run ID, and upload status; include a PR URL only if one exists. The cloud script adds valid builds to the internal Test group; confirm that state before saying testers can install the build. If group assignment fails after upload, report the existing build instead of starting another release.
If creating an Xcode Cloud run returns an unexplained HTTP 500, first remind
the user to check for an updated Apple Developer Program License Agreement
awaiting acceptance. Follow the agreement check in
.claude/commands/testflight.md before further start attempts.
Wait until the TestFlight upload finishes, App Store Connect marks the build
VALID, and the internal Test group is IN_BETA_TESTING. Only then
automatically create or reuse a PR from the existing
release/testflight branch to main, including the build-number bump and
release changes. Do not create a temporary PR branch or ask for separate approval.
Wait for its required CI checks and repository review requirements, resolve
relevant failures within the release scope, and merge automatically when
allowed. Use the repository's supported merge method and never bypass branch
protection. Continue monitoring until the PR is actually merged and branch
cleanup below is complete; starting an upload, opening a PR, or enabling
auto-merge is not completion. Report the build number, upload and group status,
PR URL, and merge result. Do not merge a PR whose release failed.
After confirming the PR is merged, delete release/testflight remotely and
locally. If GitHub already deleted the remote branch, verify that it is gone.
Switch the working tree to main before deleting the local branch. Do not
restore the branch after merge; the next release recreates the same fixed
branch name from the latest origin/main. Keep the branch if publication or
merge fails so the release can be resumed.
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.
- today Changed · +5 lines 695a7bbe0fd3
- 14d ago Changed · +6 lines · +17 tokens per session 5231661ebb01
- 16d ago Changed · +7 lines b9d368898c3e
- 18d ago Changed · +14 lines · -2 tokens per session 485515962b2e
- 19d ago Changed · +15 lines · +6 tokens per session a08553ba1f68
- 21d ago First seen · 24 lines · 40 tokens per session scan A c340f628cd2d
testflight is a skill published in the GitHub repository zhu-xiaowei/Baton (14 stars, last pushed today), licensed MIT. It adds 61 tokens to every session and 876 once invoked, about $0.0002 per session on Opus 5.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-10-08.
Other skills, from other repositories
axiom-shipping
Use when preparing an app for App Store submission, handling rejections or appeals, managing App Store Connect and Xcode Cloud, or triaging TestFlight/Sentry crash corpora. Covers checklists, metadata, privacy manifests, age ratings, export compliance.
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).
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.
testflight-release
Ship a new TestFlight build of the iOS companion (TermioMobile) — resolve the next build number against App Store Connect, archive, sign, export, upload, write the What to Test notes, and distribute. Invoke when the user says 'ship a testflight build', 'update testflight', 'upload to testflight', 'new beta build'…
app-release
End-to-end pipeline for releasing an iOS / watchOS app to TestFlight and the App Store. Use when the user wants to publish, ship, or release an iOS/watchOS app, get a build onto TestFlight, archive and upload via xcodebuild, deploy a CloudKit schema to Production, set App Privacy or export compliance, mint a…
suede-play-release
Suede AI Google Play Release Skills. Google Play release delivery with AAB preflight, test-track upload, exact versionCode promotion, staged rollout, locale notes, and API readback. Use when asked "promote this Android build" or to diagnose Play publishing access and prove the served release. NOT FOR: app building or…