RigelProductAutopilot

Rigel Autopilot

Auto-merge only what passes your gates.

Rigel supervises every pull request its agents open. It fixes what it can within a cap, merges only when the gates pass, and explains every green PR it holds.

  • Your agents' PRs (Claude Code, Cursor, Copilot): context over MCP and a risk score, today.
  • PRs from Rigel's own agents: gated auto-merge, today. Code changes need GitHub Copilot code review.
  • Supervising your agents' PRs: Coming soon, our next priority.

Rigel merges only inside your branch protection. Major upgrades, CI paths and PRs titled [needs-review] always wait for a person. GitHub today.

web-app #219 · dependency bumpIllustration
Rigel Supervisorheld · off course

CI is green, but this PR was not auto-merged.

✗Semver gate — react-router-dom 6.28.0 → 7.1.1 is an external major version
✓Path gate — package.json, package-lock.json only
✓CI — exists and green

A human needs to review and merge this PR.

Thread updated: Human action needed · semver gate

PR Supervisor

Gates set by where the PR came from.

A dependency bump, a docs refresh and a bug fix carry different risks. The supervisor knows which of Rigel's flows opened each PR and applies that origin's gates.

1
OpenPR opened

Slack thread root posted.

2
CIWaiting on CI

First check after 5 min, up to 45 min.

3
FixPR Fixer agent

Up to 4 iterations.

4
ReviewReviewer agent

Waits for a real re-review submission.

5
GatePolicy gates

By origin: semver, path, brake.

6
DecideDecision

Merge, or hold with a reason.

Supervisor log · PR #318

# fix: skip invoices for paused members · origin=bug-triage · head=a7c91e2
t+0:00  event=pr/opened-by-agent pr=318 origin=bug-triage · idempotency=head_sha · slack.root=posted
t+0:05  step=wait-ci attempt=1 checks=0/2 → poll 90s
t+0:09  step=wait-ci checks=1/2 failure invoice.spec.ts › skips paused (2)
t+0:09  step=dispatch-fixer agent=pr-fixer iteration=1/4 budget=$1.00 sandbox=fresh
t+0:14  pr-fixer pushed a7c91e2→c41f0aa "handle null paused_until" · .github/** untouched
t+0:22  step=wait-ci head=c41f0aa checks=2/2 success
t+0:22  step=await-review requested=copilot poll=60s cap=300s
t+0:25  copilot review.submitted threads=1 "add a test for the resume date"
t+0:25  step=dispatch-fixer agent=pr-fixer iteration=2/4 target=review-threads
t+0:29  pr-fixer pushed 3be0d41 · replied + resolved 1/1 threads
t+0:33  copilot review.submitted commit=3be0d41 threads=0 · fresh review on head
t+0:33  policy=bug-triage · fixer loop + fresh review · pass · auto-merge=never
t+0:33  step=decide title∌[needs-review] · pr.state=open · human_merged=false
t+0:34  decision=ready · bug-triage PRs never auto-merge · slack=thread updated · a human merges

Illustration · replay of PRs opened by Rigel's own agents · timings compressed

Checks before a decision

✓CI green
✓Review threads resolved
✓Reviewer submitted on latest commit
✓Origin gates
✓No [needs-review] brake, no human takeover

decision=ready · a human merges

Pick an origin and see its gates

OriginPull request · IllustrationGates for this originOutcome
Dependency Upgrade Advisor
Patch bump
orders-api #431
chore(deps): bump zod 3.23.7 → 3.23.8
package.json · package-lock.json
✓ Not a draft · ✓ CI exists and is green · ✓ Semver gate (patch, re-derived from the manifest diff) · ✓ Path gate (manifests and lockfiles only) ✓ On course · merged
Dependency Upgrade Advisor
External major
web-app #219
chore(deps): bump react-router-dom 6.28.0 → 7.1.1
package.json · package-lock.json
✓ Not a draft · ✓ CI exists and is green · ✗ Semver gate (external major: held for a human) · ✓ Path gate Off course · held
Living Docs refresh
Docs refresh
orders-api #440
docs: refresh living docs (main)
generated doc paths only
✓ Not a draft · – PR Fixer (no fixer for docs) · – Review round-trip (not needed for docs) · ✓ Docs paths only (Repo Guard enforces it, if installed) · ✓ CI green, or no CI in repo (a real CI failure goes to a human) ✓ On course · merged
Jira bug triage
Bug-triage fix
orders-api #445
fix(orders): handle a null shipping address
src/orders/address.ts · 2 files
✓ Not a draft · ✓ CI exists (on a time budget) · ✓ PR Fixer (iteration 1 of 4 fixed a failing test) · ✓ Copilot re-review (requested and waited for on the new head) · ✓ Review threads resolved ◎ Ready · a human merges
  • Every lane
  • Not a draft
  • [needs-review] brake beats every gate
  • Humans win: merge or close mid-run and it stands down
  • Per-org merge policies Coming soon
What to know before you turn it on

Default posture

By default: Rigel doesn't add its own human-approval step, so your branch protection decides. Agents run in a sandbox with permission prompts off; the tool allowlist is the boundary. Major upgrades, CI paths and [needs-review] PRs always wait for a person. The optional "auto-merge on green" for dependency advisors skips the semver and path gates. Leave it off unless you mean it. See every default →

Prerequisite

Code-change auto-merge needs GitHub Copilot code review in your GitHub org, a separate GitHub licence. Without it, those PRs wait for a person. Dependency and docs PRs don't need it. Pluggable reviewer (any required GitHub review): Coming soon.

  • The supervisor acts on PRs Rigel's own agents open. PRs from Claude Code, Cursor, Copilot agent or other coding agents get Impact analysis and persona review when enabled for the repo, not supervisor gates.
  • Every external major is held. An internal-library major self-merges only if it's the sole change, isn't on the deny list and the title is marked [major].
  • Path gate: CI and infrastructure paths are always denied. If the file list can't be read, the gate fails closed.

Playbooks

Agents on a schedule, a budget and the record.

Playbooks are governed agent templates your operators switch on without writing code. Watch one work.

Dependency upgrade · sandbox · orders-api · Illustration

✓ read Dependabot alerts                 7 alerts
    + deep-analysis docs, code graph, release notes
✓ knip · find unused deps, safe to delete   2 removed
✓ npm audit fix · in-range transitive patches  3 fixed
✓ bump direct deps · alerts on what you import  2 bumped
✓ add overrides · for stubborn nested deps   1 override
✓ npx tsc --noEmit · type-check gate       pass
› commit, push, open one PR · with risk reasoning  → supervisor

Library publish Beta · Illustration

@your-org/lib-logger 2.4.0  published
consumers found across every onboarded repo, nested manifests included

orders-api              PR opened
  bump · lockfile · typecheck and tests · CHANGELOG fixes
billing / billing-worker  PR opened
  services/billing-worker/package.json
fulfillment             PR opened
  bump · lockfile · typecheck and tests

One PR per consumer, each through the supervisor. Illustration.

The sandbox the advisor runs in

First-token allowlist

Package managers, knip, git, node and read-only Unix tools. No bash, curl or sudo.

No shell

Commands run directly, so pipes, redirects and substitution aren't interpreted.

Lifecycle scripts off

16 KB output cap, 5-minute per-command cap, 200 commands per sandbox.

.github/** is off limits

Refused at write time, at push time and by a pre-push hook.

A guard-railed workspace on a fresh clone, not a hermetic one: it runs with the server's environment.

  • Trigger schedule, webhook or on demand
  • Budget cap per run
  • Tool allowlist declared ∩ allowed
  • Findings graded info to critical
  • Run record cost, tokens, tools, deliveries
PlaybookWhat it doesTriggerScope
Dependency Upgrade AdvisorReasons over Dependabot alerts, upgrades in a sandbox, opens one PRSchedule or on demandnpm ecosystem on GitHub
Coming soon Maven/Gradle, pip/Poetry, Go modules
Lib Version Bump AdvisorWhen an internal library publishes, opens an upgrade PR in every consumer repoOn package publishBeta
Jira Bug TriageInvestigates new bugs and opens a fix PR when investigators agreeJira webhookJira Cloud
Documentation Drift CheckDiffs the live API surface against the stored OpenAPI specSchedule or on demandAny onboarded repo
Daily Deploy Risk DigestGrades yesterday's merges across a constellation for blast radiusSchedule, e.g. weekdays 08:00Needs a GitHub MCP server
Chart HealthFlags stale snapshots, missing READMEs and absent OpenAPI specsSchedule or on demandAny onboarded repo
Release AnalyzerBuilds the CAB pack from production vs stagingOn demandAWS release pipelines
Staging Alarm TriageWalks alarms, correlates them with the code graph, proposes a root causeOn demand, or every 5–15 minAWS
Workflow failure triageTriages failed workflows and gates a fixer PRPollingTemporal · Beta

Jira bug triage

From new Jira bug to fix PR, before stand-up.

Two read-only investigators work in parallel, reading the chart and the code. A deterministic rule decides whether a fixer writes code.

1
IntakeJira bug

Screenshot attached.

2
Investigate · in parallelArchitect + QA investigators

Read-only · chart + code. Two independent reads.

3
DecideAgree?

3 checks: both recommend a fix, agree on the repo, average clears the threshold.

4
ReportOne Jira comment

Either way, Rigel posts one Jira comment.

Yes · investigators agree
Fixer opens a PR.

Supervisor: CI + fixer loop. Then → a human merges.

No
Comment-only finding.

No PR.

Confidence is each investigator's own estimate. It's model-reported, not calibrated. A fix PR opens only if both investigators recommend a fix, agree on the repo and their average clears your threshold (default 0.7). Bug-triage PRs never auto-merge.

One Jira comment, every time

Root cause, repo, confidence and the PR link. The fix PR opens ready for review by default, or as a draft. A Slack thread tracks it, and bug-triage PRs never auto-merge.

  • Jira Cloud · signed webhooks

Assessment mode

For production-support teams, triage can skip the fixer. A writer, critic and reviser produce a support write-up and post it to the ticket. No PR is opened.

Flight Log

Every agent PR, narrated in one thread.

A Tuesday in the Flight Log: two dependency PRs. One passes the gates and merges. One is held and waits for a person, who knows exactly why.

#platform-agents · in your Slack · Illustration

RigelPR opened by Dependency Upgrade Advisor · orders-api #431
  • ✓ CI passed
  • about to merge · semver patch/minor · paths ok
  • ✓ merged
RigelPR opened by Dependency Upgrade Advisor · web-app #219
  • ✓ CI passed
  • Human action needed · semver gate: external major
  • ✓ merged · by an engineer after reading the release notes

Nine lifecycle events

  • opened
  • CI passed
  • CI failed
  • Copilot comments resolved
  • fixer applied
  • about to merge
  • merged
  • human action needed
  • KB refreshed

One thread per PR. One global channel or per-playbook overrides, filtered by event or PR origin. One Slack workspace per deployment.

Guide a PR with one comment

@rigel keep the old endpoint for one release and mark it deprecated

Rigel 👀 On it. Running the fixer on 3f9c2e1…
✓ Pushed a7d40b9: restored GET /v1/orders/{id} with a deprecation header. Handing back to the supervisor.

On PRs Rigel opened. Org members only, up to 5 mentions per PR in 24 hours. The supervisor waits for review on the new head.

Repo Guard: a check agents can't edit

✓rigel-guard / dependency PR: no CI, infra or symlink paths
✗rigel-guard / docs PR: non-doc path changed · auto-merge blocked

Installed by a person in each repo (template and rollout script provided), because agents can't push to .github/**. Humans are never blocked. Check names illustrative.

Build your own

Describe the process. Test it. Ship it.

Rigel drafts the workflow from a chat, you test it without touching production, then it runs on a budget.

Workflow Builder

  • Agent steps, decision gates, fan-out and fan-in, waits and polls, chained workflows with a depth cap
  • Manual, schedule, event or secret-gated webhook triggers
  • Test streams live per-step status. Import and export as files.

v1 limit: wait steps can't sit inside fan-out regions.

Agent Builder

A chat that asks before it builds: identity, prompt, tools, data scope, budget, goal caps, success criteria and MCP servers.

  • ✓ prompt
  • ✓ tools
  • ✓ data scope
  • ✓ budget
  • ○ test run

Test it in the panel and check the readiness strip before you ship it.

A2A agents Beta

Expose an agent over the open Agent-to-Agent protocol, so other teams' agents can ask it questions under clear rules.

  • Data scopes: kb-only, readonly-mcp, or a self-hosted host next to a sensitive database
  • A fail-closed critic on every outbound message
  • Registry with liveness checks, depth-capped mesh, per-hop log of intent and verdict

Peer authentication uses shared secrets today.

Accountability

Every run, decision and merge, recorded.

Autonomy you can explain to an auditor, because every limit is in code and every outcome leaves a trace.

Budgets and turn caps

Every agent run has a USD budget and a turn cap. Fix loops stop at 4 iterations, in code.

Banned built-ins

Built-in edit, write, shell, web and sub-agent tools are banned for every playbook.

Tools: declared ∩ allowed

An agent gets only what its template declares and the operator allows.

Every run on file

Trigger, status, cost, tokens, tool calls, findings and deliveries.

Every held green PR

A decision comment that names the gate. A Slack alert with the reason.

Admin reads logged

Every admin read across users is recorded.

Change a prompt without a redeploy

Replace any prompt, or add a repo-scoped supplement, from Settings.

Exportable audit trail Coming soon

One unified, exportable trail.