Inspiration

Go-live calls are made from memory in a meeting. A Highest bug with no owner hides inside a version, the release date passed last week and nobody moved it, and an AI summary that counts issues by itself can be confidently wrong. We wanted the same answer every time for the same issues.

What it does

Ask Rovo "Can our next release go live?" or "What is blocking version 1.0?". The Release Gate agent calls one action, check-release, which reads the version and its issues from Jira and runs six fixed checks: no open blockers (Highest/Blocker/Critical) and not overdue (NO-GO), no open bugs, open work has an owner, done issues have a resolution, the version has a release date (risks). The answer is GO, GO WITH RISKS or NO-GO, a table of failed checks with the issue keys as evidence, the smallest action that turns each check green, and totals (open, done, days left).

How we built it

Forge app with a rovo:agent module and a rovo action backed by a Forge function (Node). The function uses the Jira REST API through api.asUser() with only read:jira-work. The rules are a pure module with unit tests. The agent prompt forbids stating any count, key or date that is not in the action result, so the model explains and never computes.

Challenges we ran into

Status names are not portable: our demo site was created in Portuguese, so "Done" came back as "Concluído". The rules read the status category (new, indeterminate, done) instead of names, so they work on any workflow and language. "Overdue" also needed care: a passed release date only blocks while work is still open, and a test covers both sides.

Accomplishments that we're proud of

Same issues in, same verdict out. On the demo site, version 1.0 is GO WITH RISKS (SHOP-3 open bug, SHOP-4 without owner) and 1.1 is NO-GO (SHOP-5 Highest bug without owner, release date passed), and a test checks the seeded plan gives exactly those verdicts.

What we learned

Rovo agents are best when the action does the deciding and the model does the explaining.

What's next for Release Gate

Configurable rules per project, a Confluence release checklist page, and a Jira automation that posts the verdict to the version on demand.

Share this project:

Updates

Submission history