Reviewing gitlab mr comments
Skill yyykf/spellbook-skills/skills/reviewing-gitlab-mr-comments
Claude Code and Codex skills for daily engineering workflows: worktrees, merge requests, code review, YApi lookup, and Java DDD guidance.
npx -y skills add yyykf/spellbook-skills --skill reviewing-gitlab-mr-commentsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when reviewing GitLab merge request comments via glab in the current repo, including extracting line ranges and code snippets from inline discussions, then deciding next actions with a checklist or plan before execution
SKILL.md
4.4 KB, as published. Nobody here has run it
Reviewing GitLab MR Comments
Overview
Use glab to fetch MR comments in the current repository, summarize review feedback, confirm understanding, then propose either a simple action checklist or a full plan before executing changes. Prefer line_range for multi-line comments. Default output is comments + line ranges only (no code snippet).
Core principle: Read all comments → confirm understanding → choose checklist vs plan → get approval → execute.
Announce at start: "I'm using the reviewing-gitlab-mr-comments skill to review GitLab MR feedback."
Prerequisites
glabinstalled and authenticated.- Run from the local repository that owns the MR.
Optional checks:
glab auth status
Inputs
Accept either:
- MR IID (e.g.,
123) - MR URL (e.g.,
https://gitlab.com/group/project/-/merge_requests/123)
If not provided, ask for it.
Workflow
Step 1: Fetch MR and Comments
Prefer glab commands, using IID or URL:
glab mr view <mr> --comments
If you need to see the code under review:
glab mr diff <mr>
If you need to map comments to files/lines (and include multi-line ranges), query discussions:
project_id=$(glab repo view -F json | python3 - <<'PY'
import json,sys
print(json.load(sys.stdin)["id"])
PY
)
glab api "projects/${project_id}/merge_requests/<mr>/discussions"
Then format discussions into a readable list with ranges (comments + line numbers only):
glab api "projects/${project_id}/merge_requests/<mr>/discussions" | \
./scripts/mr_discussions_to_md.py
To include code snippets (with context lines) and still show comments:
glab api "projects/${project_id}/merge_requests/<mr>/discussions" | \
./scripts/mr_discussions_to_md.py --repo-root "$(pwd)" --context 3 --snippet
Notes:
- The formatter prefers
position.line_range.start/end. It falls back tonew_line/old_lineonly when no range exists. - If files are missing (e.g., deleted or not in the current checkout), the snippet will be marked unavailable.
- Use
--snippetto enable snippet output; default is no snippet.
Step 2: Summarize Feedback
Produce a structured summary:
- By thread or file
- Actionable requests vs questions
- Conflicts or ambiguity
Step 3: Confirm Understanding
Ask the user to confirm the summary or clarify any ambiguous items.
Step 4: Decide Checklist vs Plan
Use a simple action checklist when:
- Changes are localized
- No architectural changes
- 1–2 files, low risk
Use a plan when:
- Multiple files/modules
- Conflicting comments or tradeoffs
- Non-trivial refactor or behavior changes
Step 5: Propose Next Steps
Checklist output (simple cases):
- Bullet list of concrete actions
- Verification steps
Plan output (complex cases):
- Phased steps with file targets
- Risks and validations
Then ask for approval: "Do you want me to proceed?"
Step 6: Execute After Approval
Only implement after the user confirms.
Quick Reference
| Step | Action |
|---|---|
| Identify MR | Accept IID or URL; ask if missing |
| Fetch comments | glab mr view <mr> --comments |
| Fetch ranges | glab api ".../merge_requests/<mr>/discussions" |
| Format | ./scripts/mr_discussions_to_md.py --repo-root "$(pwd)" |
| Summarize | Group by thread/file; mark conflicts |
| Choose output | Checklist for simple; plan for complex |
| Execute | Only after approval |
Common Mistakes
Skipping understanding confirmation
- Problem: Misinterprets review intent
- Fix: Ask for confirmation before planning
Jumping to code changes
- Problem: Skips the plan/approval gate
- Fix: Always ask for approval
Using the wrong repository context
- Problem: Fetches the wrong MR
- Fix: Run in the repo that owns the MR
Only using single-line fields
- Problem: Inline comments are multi-line in GitLab but appear as a single line
- Fix: Prefer
position.line_range.start/endand only fall back tonew_line/old_line
Example
MR: 123
Summary:
- fileA.ts: fix null handling
- fileB.ts: add tests
This is small and localized.
Checklist:
1) Fix null handling in fileA.ts
2) Add tests in fileB.ts
3) Run build/compile
Proceed?