| name | release-manager |
| description | Automated release management skill for uiautomator2-mcp-server. Evaluates codebase status, runs checks, updates documentation, and manages the complete release workflow. |
| license | Apache-2.0 |
| compatibility | Requires Git repository with proper configuration, Python environment, and GitHub access |
| metadata | {"author":"uiautomator2-mcp-server team","version":"1.0.0","purpose":"project-specific release automation","category":"development-tool"} |
Release Manager Skill
⚠️ CRITICAL: Git Tag Timing & Branch Management
MOST IMPORTANT: Git tagging MUST happen at the EXACT LAST MOMENT before pushing to remote, on the main/master branch ONLY.
The Absolute Rule
Git tag creation is the FINAL step before pushing - nothing comes after it except git push.
Tag Timing Rules
❌ WRONG: Tag during development/testing phase
❌ WRONG: Tag before final validation
❌ WRONG: Tag before merging to main/master
❌ WRONG: Tag on develop branch
❌ WRONG: Tag → then discover uncommitted files
❌ WRONG: Tag → then realize tests need to run
✅ CORRECT: All work complete → Merged to main/master → Tag (FINAL STEP) → Push
Branch Management Rules
- Development happens on:
develop branch
- Release commits created on:
develop branch
- Merge direction:
develop → main (or master)
- Tag location:
main (or master) branch ONLY
- Push order: Push main branch, then push tag
Why this matters:
- Premature tagging creates broken releases where the tag points to incomplete/untested code
- Tags on wrong branches cause version confusion and deployment issues
- Proper branch isolation ensures clean release history
- Tagging as the final step guarantees the tagged commit is exactly what gets published
Goals
- Automate the complete release workflow from evaluation to publication
- Ensure code quality and documentation completeness before release
- Provide interactive release management with human oversight
- Support both standard and emergency release scenarios
- CRITICALLY: Enforce proper git tag timing to prevent broken releases
Prerequisites
- Git repository with proper remote configuration
- Python development environment with required tools installed
- GitHub account with repository access permissions
- Proper version control setup (main/develop branches)
- Pre-commit hooks configured and working
Release Workflow Phases
Phase 1: Codebase Evaluation
- Assess current Git status and branch position
- Review recent commits and changes since last release
- Check version numbers and changelog entries
- CRITICAL: Verify all untracked files are handled (committed or .gitignore'd)
- Verify working directory is clean (no uncommitted changes)
- Evaluate overall project health and readiness
⚠️ NO git operations in this phase
Phase 2: Quality Assurance
- Run comprehensive test suite
- Execute pre-commit checks and linting
- Validate documentation completeness
- Check for breaking changes and migration guides
⚠️ NO git operations in this phase
Phase 3: Preparation
- Update version numbers if needed
- Finalize CHANGELOG entries
- Update README and other documentation
- Prepare release notes and announcements
⚠️ Changes made but NOT tagged yet
Phase 4: Execution (Critical Timing Phase)
DEVELOPMENT BRANCH: develop
RELEASE BRANCH: main (or master)
- VERIFY all changes are committed (check
git status - clean working directory)
- CREATE FINAL RELEASE COMMIT on develop branch
- SWITCH to main/master branch:
git checkout main (or master)
- MERGE develop to main/master:
git merge develop
- VERIFY merge is clean (fast-forward preferred, or clean merge)
- VERIFY on correct branch (main/master)
- VERIFY working directory is still clean
- CREATE GIT TAG on main/master ← THE FINAL STEP
- This is the LAST action before pushing
- NOTHING should happen after tagging except push
- PUSH main/master branch to remote
- PUSH tag to remote
- Monitor CI/CD pipeline status
Phase 5: Verification
- Confirm successful GitHub release creation
- Verify PyPI package publication
- Check documentation deployment
- Send release notifications
Critical Git Tag Timing & Branch Rules
✅ CORRECT SEQUENCE:
1. Make all necessary code/documentation changes (on develop)
2. Verify git status - ensure ALL files are committed
3. Run complete tests and validation
4. Get final approval for release
5. Create final release commit on develop
6. Switch to main/master branch
7. Merge develop to main/master
8. Verify on correct branch (main/master)
9. Verify working directory is clean
10. CREATE GIT TAG on main/master (FINAL STEP - NOTHING AFTER THIS)
11. Push everything to remote
❌ INCORRECT SEQUENCES TO AVOID:
❌ Test → Tag → Fix issues → Push (Tag points to broken code)
❌ Develop → Tag → Test → Push (Tag created too early)
❌ Tag → Test → Fix → Push (Backwards workflow)
❌ Tag → Find uncommitted files → Commit → Tag wrong commit (Version confusion)
❌ Tag → Realize need to merge → Merge → Tag wrong commit (Wrong branch)
❌ Merge → Push → Remember to tag → Tag → Push tag (Tag missed the release)
Interactive Decision Points
The skill will pause at key decision points to allow human review:
- ✅ Pre-flight Check: Confirm release readiness assessment
- ✅ Quality Gate: Approve test results and code quality
- ✅ Final Approval: CRITICAL - Authorize git tag creation
- ✅ Post-release Verification: Confirm successful deployment
Error Handling & Rollback
Common Issues Handled:
- Tag created on wrong branch: Delete and recreate on correct branch
- Uncommitted changes discovered: Commit and restart tag process
- Test failures during QA phase: Fix and re-run tests before tagging
- Git conflicts during merge: Resolve and verify clean merge
- Version numbering inconsistencies: Validate across all files
- Documentation validation errors: Fix before proceeding
- CI/CD pipeline failures: Monitor and handle appropriately
Rollback Procedures:
- Automatic stash/unstash for failed operations
- Branch restoration from backup references
- Tag deletion for failed releases
- Commit reversion with explanatory messages
Configuration Options
Release Types:
- Standard Release: Full workflow with all checks
- Hotfix Release: Accelerated workflow for critical fixes
- Pre-release: Alpha/beta/rc versions with limited distribution
- Dry Run: Simulation mode without actual publishing
Safety Levels:
- Conservative: Strict checks, manual approvals at every step
- Balanced: Reasonable automation with key checkpoints
- Aggressive: Maximum automation, minimal human intervention
Success Criteria
A release is considered successful when:
- ✅ All tests pass consistently
- ✅ Pre-commit checks complete without errors
- ✅ Documentation is complete and accurate
- ✅ GIT TAG CREATED AT CORRECT MOMENT
- ✅ Version tags are properly pushed
- ✅ GitHub release is published successfully
- ✅ CI/CD pipelines complete successfully
- ✅ Package is available on PyPI
Emergency Procedures
For urgent releases:
- Fast-track critical fixes through abbreviated workflow
- Bypass non-essential checks with proper justification
- Coordinate with team for expedited review
- STILL FOLLOW PROPER TAG TIMING
- Document emergency release rationale
- Follow up with proper post-release validation
This skill ensures professional, reliable release management while maintaining flexibility for different scenarios and urgency levels.