Bundle release workflow — checkout, prepare, pr, diff-check, audit, publish, sync.
60
72%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.skillshare/skills/1k-bundle-release/SKILL.mdManages the bundle release workflow: developers branch from release/*, PRs target release/* directly, and after publishing, changes sync back to x via rebase.
OneKey ships periodic App Shell releases (tagged v{X.Y.Z} on the x branch). After each App Shell release, a release branch (release/v{X.Y.Z}) is created from the tag. Bundle release features are developed directly on this branch — PRs target release/*, not x. After bundle publishing, changes are synced back to x via rebase.
Release branch auto-detection: All subcommands use the shared detection logic below to determine the release branch. On a release/v* branch it's used directly; otherwise the latest release branch is discovered from the remote.
All subcommands MUST use this logic instead of reading .env.version directly. The reason: .env.version on x contains the next version (e.g., 6.2.0), while the release branch uses the current version (e.g., release/v6.1.0). Reading .env.version from x produces the wrong branch name.
current_branch=$(git branch --show-current)
if [[ "$current_branch" == release/v* ]]; then
# Already on a release branch — use it directly
RELEASE_BRANCH="$current_branch"
else
# Not on a release branch — find the latest one from remote
git fetch origin
RELEASE_BRANCH=$(git branch -r \
| grep 'origin/release/v' \
| grep -v mock \
| sed 's|origin/||' \
| sort -V \
| tail -1 \
| tr -d ' ')
fi
if [[ -z "$RELEASE_BRANCH" ]]; then
echo "No release branch found on origin."
exit 1
fiAfter detection, confirm with the user:
"Detected release branch:
$RELEASE_BRANCH. Proceed? (y/n)"
If the user wants a different branch, let them specify it manually.
| No. | Subcommand | When to use | Guide |
|---|---|---|---|
1 | checkout | Start working on a bundle release feature | checkout.md |
2 | prepare | Set BUILD_NUMBER before triggering CI | prepare.md |
3 | pr | Create a PR from the current branch to release/* | pr.md |
4 | diff-check | Before publishing — quick changeset review | diff-check.md |
5 | audit | Before publishing — full security & supply-chain audit | audit.md |
6 | publish | Diff check passed — record release | publish.md |
7 | sync | After publishing — rebase to x | sync.md |
Parse the argument passed to this skill:
checkout [branch-name] or 1 [branch-name] → Read and follow checkout.mdprepare or 2 → Read and follow prepare.mdpr or 3 → Read and follow pr.mddiff-check or 4 → Read and follow diff-check.mdaudit or 5 → Read and follow audit.mdpublish or 6 → Read and follow publish.mdsync or 7 → Read and follow sync.md/1k-bundle-release checkout feat/my-fix ← Branch from release/* to start work
... develop ...
/1k-bundle-release prepare ← Set BUILD_NUMBER
/1k-bundle-release pr ← Create PR targeting release/*
... QA verifies, merge ...
/1k-bundle-release diff-check ← Quick changeset review
/1k-bundle-release audit ← Full security audit (optional, recommended)
/1k-bundle-release publish ← Record release in RELEASES.json (via PR)
/1k-bundle-release sync ← Rebase changes to xThese steps are designed to run in sequence, but each can also run independently.
| File | Location | Purpose |
|---|---|---|
| Version source | Auto-detected from current branch or remote release/v* branches | Determines release branch name |
| Release tracking | RELEASES.json (release branch root) | Each entry: seq, commit SHA, date, PR list, notes |
/1k-dev-commands — Branch naming, commit conventions/commit — Create commitsd71e6b7
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.