Claude Code Plugins

Community-maintained marketplace

Feedback

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.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

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
  • 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