Loading...
Loading...
Create pull request from completed feature branch using GitHub-native stacked PRs. Use when the user says 'create PR', 'submit for review', 'synthesize', or runs /synthesize. Validates branch readiness, creates PR with structured description, and manages merge queue. Do NOT use before review phase completes. Not for draft PRs.
npx skill4agent add lvlup-sw/exarchos synthesiscreate_prmerge_prlist_prscheck_cighglabazNot to be confused with. This skill callsmerge_orchestrateto land a user-facing PR onmerge_prvia the VCS provider — a remote operation.main(merge_orchestrate) is the upstream sibling: a local@skills/merge-orchestrator/SKILL.mdof a subagent worktree branch onto the integration branch during thegit mergeHSM loop. Synthesize never invokesdelegate → merge-pending → delegate; merge-pending never invokesmerge_orchestrate.merge_pr
prepare_synthesis/reviewreviewoneshotplanimplementingrequest_synthesizefinalize_oneshotsynthesize@skills/oneshot-workflow/SKILL.mdsynthesisPolicy/synthesizesynthesizefinalize_oneshotRunbook: Follow the synthesis-flow runbook:If runbook unavailable, useexarchos_orchestrate({ action: "runbook", id: "synthesis-flow" })to retrieve action schemas:describeexarchos_orchestrate({ action: "describe", actions: ["prepare_synthesis"] })
prepare_synthesismcp__exarchos__exarchos_orchestrate({
action: "prepare_synthesis",
featureId: "<id>"
})npm run test:run && npm run typecheckstate.verification.hasBenchmarkscode_qualitygate.executedreferences/synthesis-steps.md/review/delegateconfidenceLevel: 'actionable'suggestedActionreferences/pr-descriptions.md.exarchos/pr-template.md<type>: <what>cat > /tmp/pr-body.md <<'EOF'
## Summary
[2-3 sentences: what changed, why it matters]
## Changes
- **Component** -- Description of change
## Test Plan
[Testing approach and coverage]
---
**Results:** Tests X pass · Build 0 errors
**Design:** [doc](path)
**Related:** #issue
EOFmcp__exarchos__exarchos_orchestrate({
action: "validate_pr_body",
bodyFile: "/tmp/pr-body.md"
})create_pr// Create PR via VCS MCP action
exarchos_orchestrate({
action: "create_pr",
base: "<parent-branch>",
head: "<branch>",
title: "<type>: <what>",
body: "<pr-body>"
})
// Enable auto-merge
exarchos_orchestrate({
action: "merge_pr",
prId: "<number>",
strategy: "squash"
})verification.hasBenchmarksgh pr edit <number> --add-label has-benchmarksexarchos_orchestrate({ action: "list_prs", state: "open" })mcp__exarchos__exarchos_workflow({
action: "set", featureId: "<id>", updates: {
"artifacts": { "pr": ["<url1>", "<url2>"] },
"synthesis": { "mergeOrder": ["<branch1>", ...], "prUrl": ["<url1>", ...], "prFeedback": [] }
}
})references/merge-ordering.md/cleanup/shepherd [PR_URL]/rehydratestack.submittedmcp__exarchos__exarchos_event({ action: "append", stream: "<featureId>", event: {
type: "stack.submitted",
data: {
branches: ["task-001-branch", "task-002-branch"],
prNumbers: [101, 102]
}
}})mcp__exarchos__exarchos_event({ action: "append", stream: "<featureId>", event: {
type: "shepherd.iteration",
data: {
iteration: 1,
prsAssessed: 2,
fixesApplied: 0,
status: "all-green"
}
}})check-event-emissionsmcp__exarchos__exarchos_workflow({
action: "cleanup", featureId: "<id>", mergeVerified: true,
prUrl: ["<url>", ...], mergedBranches: ["<branch>", ...]
})git fetch --prune| Don't | Do Instead |
|---|---|
| Skip review phase | Always run |
| Force push stack branches | Use normal push |
| Delete worktrees before merge | Wait for merge confirmation |
| Create PR with failing tests | Ensure review phase passes first |
| Run readiness scripts manually | Use |
references/troubleshooting.md@skills/workflow-state/references/phase-transitions.mdsynthesizecompletedpr-url-existssynthesis.prUrlartifacts.prsetphaseexarchos_workflow({ action: "describe", actions: ["set", "init"] })exarchos_workflow({ action: "describe", playbook: "feature" })exarchos_orchestrate({ action: "describe", actions: ["prepare_synthesis"] })prepare_synthesisreferences/pr-descriptions.md