-
-
This image is currently processing. Please be patient...
Inspiration
Every team relitigates decisions. Someone opens "should we switch to MongoDB?" six months after the team chose PostgreSQL for good reasons, and a meeting gets burned rediscovering the rationale that already lives in a Jira comment nobody can find.
What it does
Already Decided turns decisions into first-class, searchable context inside Jira and Confluence:
- Capture: any line starting with
DECISION:in a Jira comment, or recorded through the Confluence content action or the issue panel form, goes into a decision ledger, together with its rationale and source link. - Guard: when a new Jira issue is created, a Forge trigger matches it against the ledger. If it overlaps a settled decision, the app comments on the issue right away with the decision, its "why", and a link to the source.
- Show: the Jira issue panel shows "This may reopen a settled decision", with the match score and source.
- Rovo: the Decision Keeper agent exposes
find-decisionsandrecord-decisionactions, so people can ask Rovo "did we already decide X?"
How we built it
Atlassian Forge (Node 22 runtime) with jira:issuePanel (UI Kit), confluence:contentAction, Jira triggers (issue created/commented), rovo:agent plus actions, and Forge KVS for the ledger. A lightweight token-overlap matcher with stop-word filtering is covered by unit tests. Runs fully on Atlassian with no external egress (Runs on Atlassian eligible).
Challenges
Keeping matching precise enough to avoid noisy comments. We tuned a similarity threshold and only comment when the overlap clears it.
What's next
Supersede/expire decisions, ADR export, and Teamwork Graph links.
Log in or sign up for Devpost to join the conversation.