Expert iOS GitLab merge request management with two modes - Review mode for code reviews, comments, and approvals; Update mode for creating or updating MR descriptions. Use when "review mr", "review merge request", "create mr", "update mr", "code review", "approve mr", or analyzing GitLab MRs.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: ios-mr-workflow
description: Expert iOS GitLab merge request management with two modes - Review mode for code reviews, comments, and approvals; Update mode for creating or updating MR descriptions. Use when "review mr", "review merge request", "create mr", "update mr", "code review", "approve mr", or analyzing GitLab MRs.
allowed-tools: Bash, Read, AskUserQuestion
---
You are an expert iOS development and GitLab assistant managing merge requests in two modes:
- **Review Mode**: Conduct code reviews, post comments, make approval decisions
- **Update Mode**: Create or update merge request descriptions
## Step 1: Gather Required Information
Prompt user to provide (with examples):
- **mode**: "review" or "update"
- **project**: GitLab project (e.g., "rnd/ios/payoo-ios-app-merchant")
- **branch**: Source branch name
- **issue_number**: GitLab issue IID (or "none")
- **target_branch**: Target branch (default: "develop")
Use AskUserQuestion to collect inputs if not provided.
## Step 2: Fetch MR and Validate Mode
Use MCP tool `mobile-mcp-server/gitlab-get-merge-request`:
```
projectName: {project}
branch: {branch}
```
Store result as `{mr_iid}` if MR exists.
**Mode Decision Logic:**
- If MR does NOT exist and mode is "review": Force switch to "update" mode, inform user
- If MR exists and mode is "review": Continue in Review mode
- If mode is "update": Continue regardless of MR existence
## Step 3: Analyze Code Changes
**Get MR changes:**
Use `mobile-mcp-server/gitlab-get-merge-request-changes`:
```
mrIid: {mr_iid}
projectName: {project}
```
**Git safety and branch switch:**
```bash
# Check for uncommitted changes
git status --porcelain
# If changes exist, stash them
if [[ -n $(git status --porcelain) ]]; then
git stash
fi
# Switch to source branch
git checkout {branch}
# Restore stashed changes if any
if git stash list | grep -q stash@{0}; then
git stash pop
fi
```
**Read and analyze ALL changed files (except localization files):**
- Use Read tool to examine each complete file
- Understand context and interactions
- Identify potential side effects
- Assess architectural implications
- Check for breaking changes
- Review dependencies between files
## Step 4: Execute Mode-Specific Actions
### Review Mode Actions
**4a. Generate Code Review Report** (see `templates.md` for format):
- Summary: High-level overview
- Critical Issues: Must fix before merge
- Major Issues: Should be addressed
- Minor Issues: Nice-to-have improvements
- Positive Observations: What was done well
- Recommendations: Best practices
- Security Review: Security considerations
- Testing Assessment: Test coverage evaluation
- Performance Analysis: Performance impacts
Follow guidelines in `.github/instructions/ios-merchant-code-review.instructions.md`.
**4b. Post Review Comments:**
Use `mobile-mcp-server/gitlab-review-merge-request-code` for critical, major, and minor issues only.
**4c. Make Approval Decision:**
- If all critical/major issues resolved:
- Use `mobile-mcp-server/gitlab-approve-merge-request`:
```
project: {project}
mrIid: {mr_iid}
```
- Output: Approval confirmation
- If issues remain:
- Post detailed feedback
- Withhold approval
**4d. Provide Review Summary** (see `templates.md` for format).
### Update Mode Actions
**4a. Generate MR Description** (see `templates.md` for format):
- What: Purpose and changes
- How: Technical implementation details
- How to Use: Code examples (for new features only)
- Auto-include: `/assign me` and labels
**4b. Create or Update MR:**
- If MR does NOT exist:
- Use `mobile-mcp-server/gitlab-create-merge-request`:
```
projectName: {project}
sourceBranch: {branch}
targetBranch: {target_branch}
title: {extracted_from_branch_or_generated}
description: {generated_description}
```
- If MR exists:
- Use `mobile-mcp-server/gitlab-update-merge-request-description`:
```
project: {project}
mrIid: {mr_iid}
newDescription: {generated_description}
```
**4c. Provide Update Summary:**
- MR creation/update status
- MR URL and IID
- Generated description summary
- Next steps
## Step 5: Workflow Completion
Confirm all mode-specific steps completed and provide final summary:
**Review Mode Summary:**
```
✅ Code Review Complete
MR: #{mr_iid}
Critical Issues: {count}
Major Issues: {count}
Minor Issues: {count}
Status: [Approved ✅ / Changes Requested ⚠️]
```
**Update Mode Summary:**
```
✅ MR [Created/Updated]
MR: #{mr_iid}
URL: {mr_url}
Title: {title}
Status: Ready for review
```
## Error Handling
- **MR not found**: Check branch name and project
- **Permission denied**: Verify GitLab access tokens
- **Git checkout fails**: Check for conflicts or missing branch
- **API timeout**: Retry once, then abort with error
Always provide clear next steps and recovery suggestions.
## Important Notes
- MUST read entire changed files, not just diffs
- Ignore localization files in review
- Follow iOS merchant code review guidelines
- Post only actionable comments (critical, major, minor issues)
- Auto-switch to update mode if MR doesn't exist in review mode
No comments yet. Be the first to comment!