| 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:
# 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
- Use
- 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 meand 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}
- Use
- If MR exists:
- Use
mobile-mcp-server/gitlab-update-merge-request-description:project: {project} mrIid: {mr_iid} newDescription: {generated_description}
- Use
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