skills/eliteforge-feature-oriented-release-flow/SKILL.md
Stateful release workflow controller for EliteForge Feature-Oriented Git projects. Use for workflow boundary actions such as initializing iteration branches, publishing dev, submitting or verifying QA, deploying QA, handling QA fixes, squashing a feature branch, merging release branches, deploying snapshot or formal versions, tagging a version, or merging a release back to master. Do not use for ordinary coding, local tests, formatting, simple commits, or unrelated Git inspection.
npx skillsauth add cloudsen/eliteforge-skills eliteforge-feature-oriented-release-flowInstall 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.
Advance one release workflow state at a time for the full EliteForge Feature-Oriented Git process. Keep the state machine strict at release boundaries, but leave normal development work outside this skill.
Always follow the EliteForge Git Feature-Oriented Spec. Use this skill only for workflow boundary actions:
nightly.qa/<version>.release/<version>.master.Do not use this skill for ordinary feature coding, routine commits, local tests, linting, formatting, dependency bumps, or generic Git questions.
version: required release version, for example 1.0.0.developer: required developer segment, for example clouds3n.taskName: required branch-safe task name, for example demo.taskId: optional task identifier, for example #123.multiAgent: optional mode. Use it only when the task has entered the EliteForge Git Feature-Oriented Spec multi-agent workflow.When taskId exists, derive non multi-agent branch feature/<version>/<developer>/<taskId>/<taskName> and state file docs/tasks/release-flow/<version>/<taskId>-<taskName>.json.
When taskId is absent, derive non multi-agent branch feature/<version>/<developer>/<taskName> and state file docs/tasks/release-flow/<version>/<taskName>.json.
When multiAgent is active, the release-flow feature_branch is the matching multi-agent base branch: feature/<version>/<developer>[/<taskId>]/<taskName>/base. Subagent branches must already be merged into this /base branch before release-flow promotion states run.
scripts/release_flow_state.sh --version <version> --developer <developer> --task-name <taskName> from the target repository; add --task-id <taskId> only when a task ID exists, and add --multi-agent only when the release-flow feature branch must be .../<taskName>/base.references/release-flow-state-machine.md when command details, transition guards, or failure handling are needed.docs/tasks/release-flow/<version>/<taskId>-<taskName>.json. This state file is required, not optional.taskId is optional. If taskId is absent, persist workflow state in docs/tasks/release-flow/<version>/<taskName>.json.taskId and taskName in the state file name. Do not strip # from task IDs such as #123; quote the path in shell commands. Do not add a leading hyphen when taskId is absent.version, taskId when present, or taskName contains /, because each value must remain one path segment./base for non multi-agent release flows. If a task starts non multi-agent and later enters multi-agent mode, rename the existing feature branch to the matching /base branch before creating or promoting subagent work.scripts/persist_release_flow_state.py for the write.git status --porcelain contains non-state-file changes before switching, merging, rebasing, tagging, deploying, or pushing, except when intentionally committing user changes.master and main as equivalent only for branch policy; follow the repository's actual default branch in commands. If this release flow names master, verify whether the repo uses master or main before executing.| State | Expected branch | Boundary action | Next |
| --- | --- | --- | --- |
| READY | any clean branch | Fetch, prune, verify default branch | INIT_BRANCHES |
| INIT_BRANCHES | default branch refs | Create feature, qa, and release from default | FEATURE_DEV |
| FEATURE_DEV | feature/... or feature/.../base | Commit normal feature or fix work | DEV_PUBLISH |
| DEV_PUBLISH | nightly, then feature | Merge feature into nightly, push, deploy dev, push feature | QA_MR |
| QA_MR | GitLab | Create or verify MR from feature to qa/<version> | QA_DEPLOY |
| QA_DEPLOY | qa/<version> | Pull QA, deploy VERSION=<version>-SNAPSHOT | FEATURE_FIX or SQUASH |
| FEATURE_FIX | feature/... or feature/.../base | Commit QA fix | DEV_PUBLISH |
| SQUASH | feature/... or feature/.../base | Interactive rebase from merge-base, force push feature | RELEASE_MERGE |
| RELEASE_MERGE | release/<version> | Merge approved squashed feature branches | RELEASE_REBASE |
| RELEASE_REBASE | release/<version> | Rebase onto default remote, force push release | SNAPSHOT_DEPLOY |
| SNAPSHOT_DEPLOY | release/<version> | Deploy VERSION=<version>-SNAPSHOT | TAG |
| TAG | release/<version> | Create and push tag <version> | PROD_DEPLOY |
| PROD_DEPLOY | release/<version> | Deploy VERSION=<version> | MASTER_BACKMERGE |
| MASTER_BACKMERGE | default branch | Fast-forward merge release/<version> or create protected-branch MR | DONE |
references/release-flow-state-machine.md: Complete state machine, command templates, guards, and blocked states.scripts/release_flow_state.sh: Read-only Git diagnostic helper for current branch, cleanliness, derived branches, state file path, upstreams, remote refs, local tag existence, optional remote tag existence, and state hints.scripts/persist_release_flow_state.py: Deterministically create or update the required state JSON after a successful state transition.testing
Rewrite human-facing prose using Strunk-style rules. Use for docs, README files, technical explanations, PR descriptions, commit messages, error messages, UI copy, reports, and summaries when the user asks to polish, shorten, clarify, de-duplicate, restructure, or normalize tone.
testing
Draft or refine a concise product requirements document from a rough product idea, then write a Typst source file and sibling PDF to a resolved output path.
research
产品经理竞品分析报告生成器。当用户提到竞品分析、竞品调研、竞品对比、竞争对手分析、市场竞争分析、行业竞品研究时触发。也适用于用户要求对比多个产品/平台/公司的功能、商业模式、市场定位等场景。即使用户只是说'帮我分析一下XX和YY'或'XX有哪些竞争对手',只要涉及产品/公司间的对比分析,都应该使用这个 skill。支持任意行业,支持快速分析和深度分析两种模式。
development
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.