Claude-skill-registry ios-mr-workflow

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
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/ios-mr-workflow" ~/.claude/skills/majiayu000-claude-skill-registry-ios-mr-workflow && rm -rf "$T"
manifest: skills/data/ios-mr-workflow/SKILL.md
source content

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