Coding-agent skills for pull-request work and orchestration: an adversarial multi-pass PR reviewer, PR description and title writing, answering review comments, CI failure triage and PR nursing, a DAG orchestrator that delegates to cheaper subagents, and file-channel coordination between agents. Supports GitHub and GitLab.
95%
Does it follow best practices?
Impact
98%
1.88xAverage score across 10 eval scenarios
Low
Low-risk findings worth noting
Platform-specific commands for nursing merge requests on GitLab using glab.
The repository uses GitLab if git remote -v shows gitlab.com (or any self-managed GitLab) URLs.
glabglab api does not support --jq. Pipe to jq in the shell instead.:fullpath as the project identifier — glab auto-fills it from the current Git remote (e.g. glab api projects/:fullpath/...).glab mr subcommands resolve the current branch's MR when called with no argument.glab ci ≡ glab pipe ≡ glab pipeline.glab mr view --output jsonThe MR JSON mirrors the GitLab REST merge request object. Useful fields: iid, title, source_branch, target_branch, web_url, detailed_merge_status, has_conflicts.
The detailed_merge_status field (preferred since GitLab 15.6) returns:
mergeable — no conflicts, ready to mergeconflict — merge conflicts exist (also exposed as has_conflicts: true)checking / unchecked / preparing — GitLab is still computing (retry after a few seconds)ci_must_pass, discussions_not_resolved, draft_status, etc.) — see API docsThe legacy merge_status field uses can_be_merged / cannot_be_merged / checking / unchecked.
glab ci status --branch <head-branch> --output jsonJSON mode is incompatible with --live and --compact.
glab api projects/:fullpath/pipelines/<pipeline-id>/jobs \
| jq '[.[] | {id, name, stage, status}]'To filter to only failing jobs:
glab api projects/:fullpath/pipelines/<pipeline-id>/jobs \
| jq '[.[] | select(.status == "failed") | {id, name, stage}]'glab has no --log-failed shorthand. Trace each failing job individually by id or name:
glab ci trace <job-id-or-name>