skills/gitflow-release/SKILL.md
Git Flow release automation with idempotent step execution. This skill should be used when users want to release a version using git-flow, finish a feature and create a release tag, or resume a previously interrupted release process. Typical triggers include "发布版本", "release", "finish feature and release", "继续发布".
npx skillsauth add aitechwizard/skills gitflow-releaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automate the git-flow release process (feature finish → release branch → release finish → tag → push) with idempotent execution. Each step checks the current git state before acting, safely skipping completed steps so the process can resume from any interruption point.
The user provides two parameters:
feature/ prefix (e.g. 631_unread_stats)v prefix (e.g. 1.2.3 or v1.2.3)Before starting, verify all of the following. Report all failures at once rather than stopping at the first one:
git flow version to confirm git-flow is installedgit config --get gitflow.prefix.feature → FEATURE_PREFIXgit config --get gitflow.prefix.release → RELEASE_PREFIXgit config --get gitflow.branch.master → MASTER_BRANCHgit config --get gitflow.branch.develop → DEVELOP_BRANCHgit config --get gitflow.prefix.versiontag → VERSIONTAG_PREFIX (may be empty, that's OK)${VERSIONTAG_PREFIX}${VERSION} (strip leading v from user input first, e.g. v1.2.3 → 1.2.3)X.Y.Z or X.Y.Z-pre.Ngit diff --quiet && git diff --cached --quietgit fetch --tags to sync remote stateExecute steps 1–6 in order. Before each step, check the current state to determine if the step is already done. If done, report it as skipped and move to the next step.
State check: Run git show-ref --verify refs/heads/${FEATURE_PREFIX}${feature_name}. If the feature branch does NOT exist, it was already merged → skip this step.
Action: Run:
GIT_MERGE_AUTOEDIT=no git flow feature finish "${feature_name}"
On merge conflict: Stop execution, tell the user to resolve conflicts manually, then re-invoke this skill to continue.
State check: Run git show-ref --verify refs/heads/${RELEASE_PREFIX}${VERSION}. If the release branch already exists → switch to it with git checkout ${RELEASE_PREFIX}${VERSION} and skip creation.
Action: From the develop branch, run:
git checkout "${DEVELOP_BRANCH}"
git checkout -b "${RELEASE_PREFIX}${VERSION}"
State check: Two conditions indicate this step is done:
${RELEASE_PREFIX}${VERSION} no longer exists (deleted by release finish), AND${TAG} exists locally (git tag -l "${TAG}" returns non-empty)If both are true → skip this step.
Action: Run:
GIT_MERGE_AUTOEDIT=no git flow release finish -m "${TAG}" "${VERSION}"
Post-action verification: Confirm the tag exists: git tag -l "${TAG}". If missing, report the error and suggest the user check gitflow.prefix.versiontag config.
On merge conflict: Stop execution, tell the user to resolve conflicts manually, then re-invoke this skill to continue.
State check: Run git ls-remote --tags origin "refs/tags/${TAG}". If the tag already exists on remote → skip.
Action: Run:
git push origin "${TAG}"
State check: Run git fetch origin ${MASTER_BRANCH} then compare git rev-parse ${MASTER_BRANCH} with git rev-parse origin/${MASTER_BRANCH}. If they are equal → skip.
Action: Run:
git checkout "${MASTER_BRANCH}"
git push origin "${MASTER_BRANCH}"
State check: Run git fetch origin ${DEVELOP_BRANCH} then compare git rev-parse ${DEVELOP_BRANCH} with git rev-parse origin/${DEVELOP_BRANCH}. If they are equal → skip.
Action: Run:
git checkout "${DEVELOP_BRANCH}"
git push origin "${DEVELOP_BRANCH}"
For each step, report status clearly:
[Step N] ✓ 已跳过 — {reason} (e.g. "feature 分支已合并")[Step N] 正在执行 — {description}[Step N] ✓ 完成 — {description}[Step N] ✗ 失败 — {error}, then stop and report how to resumeAfter all 6 steps, print a final summary showing the tag name, current branch, and all steps' status.
When a step fails:
tools
Generate SEO-optimized, bilingual (English & Chinese) website copy for hero sections and branding descriptions. This skill should be used when users need to create compelling marketing content for new websites, especially tool-focused platforms, by providing just a theme or topic name.
development
Notion API for creating and managing pages, databases, and blocks.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------