Inspiration
Every engineering team knows the rule: "No PR without a Jira ticket." Yet in every engineering organization we've worked in, 20% to 30% of real engineering effort bypasses Jira entirely. When a production service crashes at 2 AM, when a senior engineer refactors a brittle auth module, or when a security patch needs to ship immediately, developers open a GitHub PR first and tell themselves they'll file the ticket later. They rarely do.
Existing Jira-GitHub integrations only work if a human manually puts PROJ-123 in the branch or PR title. We built GhostGeist to answer a simple question: What if Jira could proactively discover untracked engineering work on GitHub, understand the code diff in the context of your existing Jira backlog, and let you reconcile it with a single click—without ever spamming your board?
What It Does
GhostGeist is an Engineering Shadow Work Reconciliation Platform built natively on Atlassian Forge:
- Passive Untracked PR Discovery: Scans open GitHub Pull Requests and uses boundary-checked regex analysis alongside a Forge KVS reconciliation ledger to isolate PRs missing Jira issue keys.
- Context-Aware AI Triage (GitHub Diffs + Jira Project Context): Combines the PR's file patches from GitHub with live project metadata and recent issues from Jira REST API v3, using Google Gemini 3.8 Flash (with structured JSON schema enforcement and multi-model fallback) to synthesize:
- Standardized Jira summary and technical description
- Project-validated Issue Type (
Bug,Task,Story) - Fibonacci Story Point estimate (
1,2,3,5,8) with architectural rationale - Semantic duplicate detection (alerting the user if an existing open Jira issue already covers the PR)
- Interactive Jira Command Center (
@forge/reactUI Kit 2): Embeds a native project page in Jira with shadow capacity stat cards, auto-triage badges, and an editable review modal. - 1-Click Bi-Directional Reconciliation: Creates a strict Atlassian Document Format (ADF) Jira issue, attaches an official GitHub remote link to the Jira ticket, updates the GitHub PR with the new Jira key, and records the link in Forge KVS.
- Omnichannel Agent Execution (
rovo:mcp+rovo:agent+skill.md): Exposes three Forge action tools (get-untracked-prs,triage-pr-gemini,create-jira-ticket-from-pr) to both Atlassian Rovo Chat and external IDE agents (Cursor, Claude Desktop, Antigravity).
How Project Meets the Main Technology Requirement
GhostGeist is built 100% natively on Atlassian Forge (nodejs24.x runtime) and integrates deeply with Jira Cloud and Atlassian Rovo:
jira:projectPageModule: Renders a native UI Kit 2 (@forge/react) command center inside Jira Software projects.- Jira Cloud REST API v3 via
@forge/api: Usesapi.asUser().requestJira(...)andapi.asApp().requestJira(...)to query project issue-type schemes (/rest/api/3/project/{key}), search existing project issues (/rest/api/3/search/jql), create ADF-formatted issues (/rest/api/3/issue), and bind remote GitHub links (/rest/api/3/issue/{key}/remotelink). - Forge Key-Value Storage (
@forge/kvs): Persists encrypted API credentials and the reconciliation ledger server-side with zero secret exposure over@forge/bridge. - Atlassian Rovo (
rovo:mcp,rovo:agent, andactionModules): Exposes GhostGeist's capabilities both as an in-product Rovo Agent and as an external Model Context Protocol (MCP) server.
Bonus Prize Write-Ups
1. Best App with Atlassian MCP
GhostGeist implements the rovo:mcp module (ghostgeist-mcp) in ghostgeist/manifest.yml, exposing three structured action tools over Atlassian's managed MCP server:
get-untracked-prs: Audits open GitHub PRs and filters out tracked/reconciled work.triage-pr-gemini: Inspects code diffs alongside Jira project context to return a structured JSON ticket proposal.create-jira-ticket-from-pr: Creates the ADF Jira issue, attaches the GitHub remote link, and records the reconciliation. We also authored a comprehensive open-sourceskills/ghostgeist/skill.mdfile containing tool schemas, client configurations for Claude Desktop and Cursor (mcp-remote), sequence diagrams, and human-in-the-loop system prompt guardrails so any developer can reconcile shadow work directly from their IDE.
2. Best Agents — Rovo / Assignable Agents
GhostGeist declares a native rovo:agent module (ghostgeist-auditor-agent) paired with three reusable action modules in ghostgeist/manifest.yml. Once installed on a site, teams can immediately invoke the GhostGeist Shadow Work Auditor inside Rovo Chat to audit repositories, estimate unbudgeted engineering story points, and convert untracked PRs into linked Jira tickets conversationally.
3. Best Marketplace Published App
GhostGeist was engineered from day one to meet Atlassian Marketplace security, reliability, and UX standards:
- Zero External Backend Infrastructure: Runs entirely inside Atlassian's serverless Forge runtime.
- Zero Client Secret Leakage: API tokens are stored server-side in
@forge/kvsand masked as boolean flags on the frontend bridge. - Strict Egress Whitelisting: Outbound fetch calls are restricted solely to
api.github.comandgenerativelanguage.googleapis.com. - 100% UI Kit 2 Compliance: Uses native
@forge/reactprimitives with zero custom HTML/CSS injection and passesforge lintwith 0 errors and 0 warnings.
Atlassian Installation Link
Built With
- atlassian-document-format
- atlassian-forge
- atlassian-rovo
- claude-desktop
- cursor
- forge-kvs
- gemini-3.8-flash
- github-api
- google-gemini
- javascript
- jira-cloud
- jira-rest-api
- model-context-protocol
- node.js
- react
- ui-kit-2
Log in or sign up for Devpost to join the conversation.