What you’ll build
Outcome: Reviewers see a structured summary in Command Center, edit or reject it, and only approved text is published as a GitHub comment.Prerequisites
- project_contributor access
- GitHub personal access token with
reposcope on target repositories - LLM provider configured in Providers
- Optional: inbound webhook from GitHub (
pull_requestevents) or manual runs withowner,repo,pr_number
Connectors to install
| Adapter | Purpose |
|---|---|
| github | Read PR, list files, post comment |
Build the workflow
LLM review
llm_call with PR title, body, and file list in the prompt. Ask for risks, test gaps, and a suggested comment body.
Human approval
human_task with
task_type: "approval" showing the draft comment. See Human tasks.Post comment
mcp_call →
add_issue_comment using the LLM draft text, gated by {{steps.approve-review.result.approved}}.Trigger
Start runs manually, via API, or wire a GitHub webhook to an inbound subscription that maps
pull_request.number to pr_number.Validate input
Fetch PR
List changed files
LLM review
Human approval
Post comment
Command Approve only sets
approved: true on the human task step — it does not copy draft_body into the result. Reference the LLM step for comment text, or complete the task via API with a custom result object. See Human tasks.Full workflow graph (copy-paste)
Replacetenant_id, workflow_id, and bind your github MCP instance on each mcp_call step in Workflow Studio (instance picker sets server_url at publish time).
Test run
Start a manual run:Variations
- Add
compare_commitsfor larger diff context before the LLM step. - Route low-confidence reviews: Lua checks for “BLOCK” in LLM output → always require human task.
- On approval, call
merge_pull_requestinstead of commenting (separate workflow with stricter gates).