-
-
Installed Forge app in Jira: three decisions and four demonstration work items.
-
Live evidence: Jira analytics proposal beside its exact Confluence passage and registered source version.
-
Live Rule lab: 14-day retention yields no numeric rule flag against the 30-day decision.
-
Verified live Rovo action: source passage, registered version, owner and suggested EU alternative.
Inspiration
Teams record careful architecture decisions in Confluence, then create Jira work that can quietly contradict those agreements. The missing link is context at the moment a choice becomes implementation. DecisionGuard keeps the reason behind a decision attached to the work it should guide.
What it does
A project administrator registers an exact passage from Confluence, its source version, owner, project scope, and a structured rule. Rules can flag a forbidden phrase, require an approved phrase in relevant work, or check a stated numeric limit. For example, a 30-day retention decision catches proposed work that retains events for 2,160 hours. Missing numeric context is shown as missing evidence rather than a passing check.
Every finding places the work excerpt beside the registered decision. A reviewer can preview and post a Jira review comment or dismiss the finding with a reason. Project administrators can grant a bounded exception for 1–30 days. Reviews and exceptions are tied to the material work and decision snapshot, so changed work reopens the question. Changed source versions pause the related checks until an administrator explicitly refreshes approval.
Rule lab tests proposed wording without editing Jira. Impact & reports shows work covered by each registered rule and prepares fresh, permission-checked JSON and readable HTML evidence reports. A read-only Rovo agent calls the installed app’s review action to retrieve accessible current work and sources, explain findings with citations, and distinguish semantic suggestions from deterministic checks. Its live execution was verified in Jira.
How it is built
The source uses Forge-hosted functions and resolvers, Forge KVS, React Custom UI, user-scoped Jira and Confluence REST calls, a Jira global page and issue panel, a Confluence page action, and a rovo:agent module with a GET action. A Jira update trigger records a content-free change timestamp. The core rules and review service are shared with an explicitly labelled browser preview. Production uses the Forge bridge and never silently substitutes sample data.
What we learned
Source freshness is part of correctness: an old decision should not silently become current policy. Review reasons also need a precise scope. Binding dismissals and temporary exceptions to the material work and decision snapshot makes later changes reviewable.
Challenges
Required phrases need context so they do not flag unrelated work. Numeric rules need unit conversion, while missing quantities must remain unknown. Evidence exports must recheck source permissions and escape document content. The impact view follows registered application context; it is not a Teamwork Graph integration.
Watch the installed app
https://www.youtube.com/watch?v=AcVDPGV3HiQ
The English walkthrough shows actual installed Forge app screens with demonstration content, synthetic narration and subtitles.
Try the interactive demo
https://www.myvacation.co.il/DecisionGuard/
The browser demo uses sample data stored in each visitor's browser. It demonstrates the v3 workflows and does not connect to live Jira, Confluence or Rovo.
Validation and current status
The app is registered, deployed to production, and installed in Jira and Confluence on our isolated demo site. Live checks verified Confluence source registration; forbidden-phrase, required-phrase and numeric findings; Rule lab; seven-day administrator exception grant and revocation; fresh evidence snapshot preparation; the Jira issue panel; and source-version changes pausing checks until renewed approval. Rovo’s debug panel confirmed the DecisionGuard review action ran and its response cited the source passage, version and owner.
The implementation passes 49 behavior and SDK tests, the browser workflow suites, tested accessibility checks, frontend and backend compilation, and official Forge lint. The production Sharing installation link is enabled and verified. The browser automation could prepare the live evidence snapshot but did not capture its file download; actual JSON/HTML downloads are verified by the local browser suite. Restricted-user behavior is covered by automated tests; a separate restricted-user live session has not been completed.
The privacy update separates profile attribution from team records, reports stored account references and retrieval times to Atlassian, and provides an explicit attribution-removal confirmation. Privacy notice: https://www.myvacation.co.il/DecisionGuard/privacy.html
What is next
Pilot with a software team, complete a separate restricted-user live review, evaluate larger workspaces and batching, and add ownership transfer and richer rule types.
Built With
- atlassian-forge
- confluence
- javascript
- jira
- node.js
- react
- rovo