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.
View on GitHubdaispacy/py-claude-marketplace
py-plugin
py-plugin/skills/ios-mr-workflow/SKILL.md
January 20, 2026
Select agents to install to:
npx add-skill https://github.com/daispacy/py-claude-marketplace/blob/main/py-plugin/skills/ios-mr-workflow/SKILL.md -a claude-code --skill ios-mr-workflowInstallation paths:
.claude/skills/ios-mr-workflow/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
- Critic