Manages human approval workflow before code execution. Use when code changes require approval, creating draft PRs, or waiting for stakeholder approval before proceeding.
No code execution without explicit human approval.
Executor MUST wait for approval before implementation when:
Planning creates PLAN.md
↓
Draft PR created (github-operations skill)
↓
Slack notification sent (slack-operations skill)
↓
WAIT for approval signal:
- GitHub PR comment: "@agent approve" or "LGTM"
- Slack button click
- Jira status transition
↓
On approval → Executor proceeds
On rejection → Brain re-delegates to planning
Use MCP tool github:create_pull_request with draft=true:
See github-operations/flow.md for complete workflow.
PR body must include:
Use MCP tool slack:post_message with approval blocks:
See slack-operations/flow.md for complete workflow.
Message includes:
Post comment with:
| Source | Approve | Reject |
|---|---|---|
| GitHub PR | @agent approve, LGTM, :+1: | @agent reject, :-1: |
| Slack | Approve button | Reject button |
| Jira | Status → "Approved" | Status → "Rejected" |
Before executor starts, verify:
# Check if approval exists
gh pr view $PR_NUMBER --json comments,reviews | \
jq '.reviews[].state == "APPROVED" or
(.comments[].body | contains("@agent approve") or contains("LGTM"))'
If no approval found:
BLOCKED: Awaiting human approval
Draft PR: https://github.com/org/repo/pull/123
Slack notification sent to: #channel
To approve:
- Comment "@agent approve" on PR
- Click Approve button in Slack
- Transition Jira to "Approved"
| Duration | Action |
|---|---|
| 4 hours | Send reminder notification |
| 24 hours | Escalate to team lead |
| 72 hours | Auto-close with "stale" label |