
Pr Review Ci Fix
- 334 installs
- 15.6k repo stars
- Updated July 26, 2026
- composiohq/awesome-codex-skills
Review pull requests for regressions and style issues, then diagnose and patch failing CI checks before merge in active codebases.
About
The pr-review-ci-fix skill from composiohq/awesome-codex-skills combines pull request review with automated remediation of CI failures. It helps developers interpret diffs, comment constructively, trace pipeline errors, and apply targeted fixes so branches reach merge-ready status faster.
- Reads diffs and flags risky changes
- Maps CI failures to likely root causes
- Proposes minimal fixes for broken pipelines
- Checks test gaps and flaky-job patterns
- Prepares review comments and merge guidance
Pr Review Ci Fix by the numbers
- 334 all-time installs (skills.sh)
- Ranked #130 of 733 Git & Pull Requests skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/composiohq/awesome-codex-skills --skill pr-review-ci-fixAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 334 |
|---|---|
| repo stars | ★ 15.6k |
| Last updated | July 26, 2026 |
| Repository | composiohq/awesome-codex-skills ↗ |
What it does
Review pull requests for regressions and style issues, then diagnose and patch failing CI checks before merge in active codebases.
Files
PR Review + CI Auto-Fix
Drive GitHub/GitLab PR reviews and CI triage from the shell using the Composio CLI. No tab-switching between browser, terminal, and chat.
When to Use
- A PR needs a structured review (correctness, style, risks) with inline comments.
- CI is red and you want the agent to read the logs, patch the code, and recheck.
- You want a single command that cycles: fetch diff → critique → fix → push → rerun.
Prereqs
curl -fsSL https://composio.dev/install | bash
composio login
composio link github # or: composio link gitlabOptional env for non-interactive runs: COMPOSIO_API_KEY.
Core Toolkits
Discover slugs with search, then pin them for reuse:
composio search "list pull request files" --toolkits github
composio search "download workflow logs" --toolkits github
composio search "create pr comment" --toolkits gitlabCommon slugs you'll reuse:
GITHUB_GET_A_PULL_REQUESTGITHUB_LIST_PULL_REQUESTS_FILESGITHUB_CREATE_A_REVIEW_FOR_A_PULL_REQUESTGITHUB_LIST_WORKFLOW_RUNS_FOR_A_REPOSITORYGITHUB_DOWNLOAD_WORKFLOW_RUN_LOGSGITLAB_GET_SINGLE_MERGE_REQUESTGITLAB_LIST_MERGE_REQUEST_DISCUSSIONSGITLAB_CREATE_NEW_MERGE_REQUEST_NOTE
Always confirm via composio execute <SLUG> --get-schema before first use.
Review Workflow
1. Pull the PR metadata + diff:
composio execute GITHUB_GET_A_PULL_REQUEST \
-d '{"owner":"acme","repo":"app","pull_number":482}'
composio execute GITHUB_LIST_PULL_REQUESTS_FILES \
-d '{"owner":"acme","repo":"app","pull_number":482}'2. Summarize risk areas (auth, migrations, public APIs, tests) into a review body. 3. Post the review with inline comments:
composio execute GITHUB_CREATE_A_REVIEW_FOR_A_PULL_REQUEST -d '{
"owner":"acme","repo":"app","pull_number":482,
"event":"COMMENT",
"body":"Overall LGTM with 2 blocking notes.",
"comments":[
{"path":"src/auth.ts","line":42,"body":"Missing null check on session"},
{"path":"src/auth.ts","line":88,"body":"Token TTL is hardcoded; move to config"}
]
}'CI Auto-Fix Loop
1. Find the red run:
composio execute GITHUB_LIST_WORKFLOW_RUNS_FOR_A_REPOSITORY \
-d '{"owner":"acme","repo":"app","branch":"feat/billing","status":"failure"}'2. Pull logs:
composio execute GITHUB_DOWNLOAD_WORKFLOW_RUN_LOGS \
-d '{"owner":"acme","repo":"app","run_id":123456}'3. Parse failure → patch locally (the agent writes the fix into the working tree). 4. Commit + push via local git, then re-poll step 1 until conclusion=success. 5. Post a PR comment describing each fix commit so the human reviewer sees what changed.
One-Shot Workflow File
Save as scripts/review-and-fix.ts and run with composio run --file ./scripts/review-and-fix.ts -- --pr 482:
const pr = process.argv.includes("--pr")
? Number(process.argv[process.argv.indexOf("--pr") + 1])
: null;
const meta = await execute("GITHUB_GET_A_PULL_REQUEST", {
owner: "acme", repo: "app", pull_number: pr
});
const files = await execute("GITHUB_LIST_PULL_REQUESTS_FILES", {
owner: "acme", repo: "app", pull_number: pr
});
console.log(JSON.stringify({ meta, files }, null, 2));GitLab Variant
Swap slugs and param names:
composio execute GITLAB_GET_SINGLE_MERGE_REQUEST \
-d '{"id":"acme/app","merge_request_iid":482}'
composio execute GITLAB_CREATE_NEW_MERGE_REQUEST_NOTE \
-d '{"id":"acme/app","merge_request_iid":482,"body":"CI fix pushed as commit deadbeef"}'Troubleshooting
- `Connection required for github` →
composio link github - Unknown input shape →
composio execute <SLUG> --get-schema - Log download huge → stream via
composio proxyagainst the raw API andgreplocally - Rate limits → serialize calls or lower poll frequency; avoid
--parallelfor the same repo
Full CLI reference: docs.composio.dev/docs/cli