Inspiration
In Formula 1, a race is often won or lost in the pit lane. A perfectly coordinated 2-second stop can gain a position, while a minor wheel nut failure can retire the car.
We realized that modern software development faces the exact same challenge. A single "wheel nut" (a dependency update) might seem minor, but if it breaks a contract, it causes a chain reaction that halts the entire engineering "race."
Currently, managing a breaking dependency change is slow and bureaucratic. It takes hours of manual coordination: creating Jira tickets for affected teams, writing migration guides in Confluence, posting Slack warnings, and gating builds in Bitbucket.
We asked ourselves: "What if we could bring F1 pit-crew precision to this chaos? What if an AI agent could execute that entire 4-hour bureaucratic workflow in 8 seconds?"
That was the birth of the Graph-Aware Dependency Agent (Williams Racing Edition).
What it does
Our agent demonstrates True Agency. It doesn't just scan code and warn you (like a spectator); it acts (like a pit crew).
When a developer submits a Pull Request with a breaking change (e.g., modifying a core utility function):
- Detects: The Brain (Person C) analyzes the dependency graph to find exactly who is affected.
- Orchestrates: The Action Layer (Person A) wakes up.
- Confluence: Instantly types out a "Migration Guide" with before/after code examples.
- Jira: Creates tasks for the exact teams (e.g., "Payments Team", "Analytics Team") that import the broken function.
- Slack: Pages those teams with a link to the fix.
- Bitbucket: Gates the PR, preventing the merge until the safety plan is live.
- Visualizes: The Eyes (Person B) show the "Effect Radius" on a live dashboard.
The Result: A process that used to take 2-4 hours of human coordination now happens in 8 seconds.
How we built it
We architected the solution as a "Three-Person" squad living inside Atlassian Forge:
- Person A (The Hands - Forge App): Built with Node.js on the Forge Runtime. It handles the heavy lifting of cross-product automation. We used the restricted
asApp()authentication to allow the bot to act autonomously across Jira, Confluence, and Bitbucket boundaries. - Person B (The Eyes - React Frontend): A Custom UI built with React and Cytoscape.js. It visualizes the invisible web of dependencies, turning a flat list of files into an interactive "Blast Radius" graph.
- Person C (The Brain - Analysis Engine): A sophisticated graph traversal algorithm that parses code signatures (AST analysis) to understand not just file dependencies, but symbol dependencies (e.g., "Who uses
AuthService.loginspecifically?").
Challenges we ran into
- The "Thunder Herd" of Webhooks: Getting Jira, Confluence, and Slack to accept simultaneous API calls without triggering rate limits (HTTP 429) was tough. We had to implement an intelligent "Outbox Pattern" with exponential backoff to smooth out the burst of activity—orchestrating the chaos just like a race strategist.
- Idempotency is Hard: If a webhook fires twice (which happens in distributed systems), we didn't want to create duplicate variables or spam Slack. We built a robust idempotency layer using Forge Storage to ensure every action happens exactly once.
- Visualizing Complexity: Rendering a dependency graph with hundreds of nodes without making the UI laggy required optimizing our React rendering cycle and using efficient graph data structures.
Accomplishments that we're proud of
- The 8-Second Benchmark: We hit our target. We can go from "PR Created" to "Full Migration Plan Distributed" in under 10 seconds.
- Autonomous Coordination: Seeing the bot successfully login to Confluence to write a page, then switch to Jira to assign tasks, all without human intervention, felt like magic.
- Production Readiness: We didn't just build a hack; we added health checks (
/health-check), structured audit logs, and security sanitization. It's built to run in a real enterprise environment.
What we learned
We learned the immense power of the Atlassian Forge platform. The ability to have a single app that has permissions across the entire suite (Jira, Confluence, Bitbucket) is a game-changer for developer productivity tools. We also learned that "Agency" is the future of DevOps—tools that do work, rather than just reporting on it.
What's next for Graph-Aware Dependency Agent
- Rovo Agents Integration: We want to plug into Atlassian Rovo to not only assign the fix tasks but to write the code fixes automatically using Generative AI.
- Predictive Analysis: Using historical data to predict which modules are "fragile" and likely to break, warning teams before they even start coding.
Built With
- atlassian-forge
- bitbucket
- confluence-cloud
- cytoscape.js
- jira-cloud
- node.js
- react
- slack-api
- tailwind-css
- typescript
Log in or sign up for Devpost to join the conversation.