VESSEL owns the terminal stage of the development lifecycle. As a controller-side monitor it observes the full GitHub-native PR lifecycle from the shared PR store, polls CI status, detects merge conflicts early, and squash-merges approved PRs. It is the only agent authorized to push directly to the main branch - with every merge action tied to Coder's identity and audit system.
Capabilities
- CI/CD Status Polling (GitHub Actions)
- Early Merge Conflict Detection
- Automated Rebase & Conflict Resolution
- Structured Rework Dispatch (/address_review, /ci_fix)
- Merge Gate - Only Merges ready_for_merge PRs
- Squash Merge with Ticket References
- Sole Agent Authorized for Main Branch Merges
How it works
- 01 CI Polling
Monitors GitHub check runs and the shared PR store with a configurable timeout - missing or timed-out CI never counts as success.
- 02 Conflict Detection
Checks the PR's mergeable field early and routes conflicts back to FORGE.
- 03 Rework Dispatch
For conflicts, changes_requested, or unaddressed comments, dispatches /address_review into FORGE's existing chat session; /ci_fix for failing checks.
- 04 Merge Governance
Squash-merges only ready_for_merge PRs - approved + conflict-free + green CI. Emits ticket_merged, closes the issue, and recycles the worker.
Human Intervention
VESSEL is the safest pair of hands on the main branch - it never force-pushes or bypasses protection, and when merging gets hard, a human steps in.
- Strict merge gate: VESSEL only merges a PR that is approved, conflict-free, and CI-green - never before. Missing or timed-out CI never counts as success.
- Escalates instead of forcing: if VESSEL can't resolve a merge conflict automatically (max 3 attempts), it escalates to awaiting_human rather than force-pushing or bypassing branch protection.
- Auditable merges: every merge is tied to a real Coder + GitHub identity and recorded in the lifecycle, so you can audit exactly what merged, when, and why.
- You hold final authority: a human approves the merge gate before VESSEL is authorized to squash-merge.
Deploy VESSEL on your repo
Install OpenFlows, point it at a GitHub repository with open issues, and VESSEL will be running in minutes.