com um clique
trigger-prepare-release
// Trigger the prepare-release workflow on GitHub Actions. Supports optional arguments for version, bump type, and channel. Defaults to bump=patch, channel=stable.
// Trigger the prepare-release workflow on GitHub Actions. Supports optional arguments for version, bump type, and channel. Defaults to bump=patch, channel=stable.
| name | trigger-prepare-release |
| description | Trigger the prepare-release workflow on GitHub Actions. Supports optional arguments for version, bump type, and channel. Defaults to bump=patch, channel=stable. |
| metadata | {"author":"mark","version":"1.2.0"} |
| allowed-tools | Bash(gh:*), Bash(git:*) |
Trigger the prepare-release.yml workflow on GitHub Actions.
The workflow always runs against main (hardcoded inside the workflow) and produces a release/v<version> branch + PR.
All arguments are optional.
| Parameter | Default | Description |
|---|---|---|
version | (empty) | Exact semver, no v prefix. Include the channel suffix if you want one (e.g. 0.9.0-alpha.1). Overrides bump AND channel. |
bump | patch | Version bump type: patch, minor, major. Only used when version is empty. |
channel | stable | Release channel: stable, alpha, beta, rc. Only used when version is empty. |
version interacts with channelThe workflow's Determine version step is:
if [ -n "$version" ]; then
VERSION="$version" # used verbatim, channel ignored
else
VERSION=$(bump-version.js --type "$bump" --channel "$channel" --dry-run ...)
fi
So:
version=0.9.0-alpha.1 → release v0.9.0-alpha.1 (correct way to ship an alpha at an exact version)version=0.9.0 + channel=alpha → release v0.9.0 (channel silently ignored, this is the trap)bump=minor + channel=alpha → script computes next alpha (e.g. v0.9.0-alpha.1)Accept either key=value form (channel=beta bump=minor) or positional tokens (/trigger-prepare-release 0.9.0-alpha.1). For each positional token, classify by shape:
| Token shape | Classified as | Examples |
|---|---|---|
Looks like semver (digit-dot-digit, optional -suffix.N) | version | 0.9.0, 0.9.0-alpha.1, 1.2.3-rc.2 |
One of stable / alpha / beta / rc (bare word) | channel | alpha, rc |
One of patch / minor / major | bump | minor |
Ambiguity rule: if the user supplies a semver-shaped token AND a bare channel word (e.g. 0.9.0 alpha.1 or 0.9.0 alpha), do NOT split them across version/channel — that triggers the trap above. Instead, ask the user whether they meant:
version=0.9.0-alpha.1 (exact version with suffix), orbump=minor channel=alpha (let the script compute the next alpha)Display the resolved parameters and ask for confirmation before triggering:
Will trigger prepare-release with:
version: 0.9.0-alpha.1
bump: (ignored — version is set)
channel: (ignored — version is set)
Proceed? (y/n)
If version is empty, show resolved bump and channel instead.
gh workflow run prepare-release.yml \
--repo UniClipboard/UniClipboard \
--ref main \
-f version=<version> \
-f bump=<bump> \
-f channel=<channel>
Omit -f version= when version is empty. --ref is always main because the workflow checks out main internally regardless.
After triggering, wait a few seconds and show the latest run:
gh run list --repo UniClipboard/UniClipboard --workflow=prepare-release.yml --limit 1
Report the run URL so the user can monitor progress. The run's name (prepare-release-v<resolved-version>) is the easiest way to verify the version came out as expected — check it before walking away.
Inspect uniclipboard logs from BOTH the macOS host and the mounted Windows peer when debugging cross-platform sync, pairing, transfer, or daemon issues. Use whenever the user asks to "check logs", "see what's happening on both sides", or describes a symptom that involves the Windows peer (e.g. "Windows didn't receive...", "Mac sent but...", pairing/transfer/sync failures during dual-side dev).
Push the current branch and open a GitHub pull request against `main`. Use when the user says "create PR", "open PR", "make a PR", "提 PR", "开 PR", "打 PR", or otherwise asks to publish their committed work for review. Before pushing, the skill (1) verifies the current branch name actually reflects the change and proposes a rename if it doesn't, and (2) scans the PR's diff against `docs-site/` for docs that look stale and lists update candidates for the user to approve.
Push the macOS working-tree changes to the Windows peer's repo via rsync over SSH. Use when the user wants to "sync to win", "push my changes to windows", "mirror the working tree", or otherwise propagate uncommitted edits from this Mac to the paired Windows machine for cross-platform testing of uniclipboard. Replaces the older SMB-mount strategy.
TRIGGER when writing, modifying, or reviewing any Rust code that involves tracing, logging, spans, events,
Meta-skill for evolving other skills. Invoke after resolving a real-world issue to extract lessons and merge them into the referenced SKILL.md. Usage - /skill-evolve @path/to/SKILL.md
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes