<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vedant Mahajan</title>
    <description>The latest articles on DEV Community by Vedant Mahajan (@vedant817).</description>
    <link>https://dev.to/vedant817</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1027500%2Ff3c1d5d1-b328-4cf2-b297-37eeeb2ec1d3.jpeg</url>
      <title>DEV Community: Vedant Mahajan</title>
      <link>https://dev.to/vedant817</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vedant817"/>
    <language>en</language>
    <item>
      <title>PagePilot</title>
      <dc:creator>Vedant Mahajan</dc:creator>
      <pubDate>Sat, 06 Jun 2026 11:45:28 +0000</pubDate>
      <link>https://dev.to/vedant817/pagepilot-538c</link>
      <guid>https://dev.to/vedant817/pagepilot-538c</guid>
      <description>&lt;p&gt;This is a submission for the GitHub Finish-Up-A-Thon Challenge&lt;br&gt;
(&lt;a href="https://dev.to/challenges/github-2026-05-21"&gt;https://dev.to/challenges/github-2026-05-21&lt;/a&gt;)&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;What I Built&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I built PagerPilot, an AI-powered SRE incident investigator that helps on-call engineers move from noisy alerts to an actionable incident brief.&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;PagerPilot uses a multi-agent workflow:&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Router Agent&lt;/strong&gt; — identifies the affected service and decides which sources to check.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source Fetch Agent&lt;/strong&gt; — gathers signals from PagerDuty, Datadog, GitHub, and StatusGator.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyst Agent&lt;/strong&gt; — correlates incidents, metrics, alerts, deploys, commits, and third-party status signals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reporter Agent&lt;/strong&gt; — generates a structured incident brief with root-cause hypotheses, confidence scores, timeline, blast radius, and recommended actions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is simple: reduce the time engineers spend jumping between dashboards during an incident and give them one trusted starting point for triage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/Vedant817/PagerPilot" rel="noopener noreferrer"&gt;https://github.com/Vedant817/PagerPilot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You can run the project locally:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git clone https://github.com/Vedant817/PagerPilot.git
   &lt;span class="nb"&gt;cd &lt;/span&gt;PagerPilot
   pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
   python &lt;span class="nt"&gt;-m&lt;/span&gt; backend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Then open:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   http://localhost:8000/ui
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Useful endpoints:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   GET  /health
   GET  /api/v1/diagnostics
   GET  /api/v1/incidents
   POST /api/v1/investigate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;** Example investigation payload:**&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"incident_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"INC-001"&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;**&lt;/p&gt;

&lt;h2&gt;
  
  
  PagerPilot returns a full incident brief, including:
&lt;/h2&gt;

&lt;p&gt;**&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;executive summary&lt;/li&gt;
&lt;li&gt;evidence timeline&lt;/li&gt;
&lt;li&gt;ranked root-cause hypotheses&lt;/li&gt;
&lt;li&gt;confidence score&lt;/li&gt;
&lt;li&gt;recommended remediation steps&lt;/li&gt;
&lt;li&gt;service impact and blast radius&lt;/li&gt;
&lt;li&gt;session logs from the agent pipeline&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Comeback Story&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PagerPilot started as an unfinished incident-investigation prototype. The idea was strong, but the project needed extensive finishing work before it felt reliable.&lt;/p&gt;

&lt;p&gt;Before the final push, the app had several issues:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;missing runtime dependencies&lt;/li&gt;
&lt;li&gt;fragile environment parsing&lt;/li&gt;
&lt;li&gt;incomplete connector behaviour&lt;/li&gt;
&lt;li&gt;weak error handling&lt;/li&gt;
&lt;li&gt;frontend rendering bugs&lt;/li&gt;
&lt;li&gt;unsafe dynamic HTML rendering&lt;/li&gt;
&lt;li&gt;inconsistent investigation responses&lt;/li&gt;
&lt;li&gt;evaluation output that failed on some terminals&lt;/li&gt;
&lt;li&gt;runtime configuration that was not production-friendly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I brought the project into a finished state by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;hardening the FastAPI backend&lt;/li&gt;
&lt;li&gt;adding diagnostics for connector readiness&lt;/li&gt;
&lt;li&gt;improving session and failure responses&lt;/li&gt;
&lt;li&gt;making the analyst's logic more reliable&lt;/li&gt;
&lt;li&gt;improving timestamp handling and timeline sorting&lt;/li&gt;
&lt;li&gt;strengthening secret redaction&lt;/li&gt;
&lt;li&gt;fixing frontend failure states&lt;/li&gt;
&lt;li&gt;reducing unsafe DOM rendering patterns&lt;/li&gt;
&lt;li&gt;making the evaluation runner portable&lt;/li&gt;
&lt;li&gt;cleaning up config, Docker ignore rules, and runtime startup&lt;/li&gt;
&lt;li&gt;committing changes in separate logical commits instead of one large dump&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The final result is a working AI SRE investigator that can run locally, connect to real tools, and serve as a Practical Incident Briefing Assistant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My Experience with GitHub Copilot&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GitHub Copilot helped speed up the finish line by acting as a pair programmer while I cleaned up the project.&lt;/p&gt;

&lt;p&gt;It was especially useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;reasoning through backend failure cases&lt;/li&gt;
&lt;li&gt;improving FastAPI response models&lt;/li&gt;
&lt;li&gt;refactoring repeated config parsing logic&lt;/li&gt;
&lt;li&gt;tightening connector error handling&lt;/li&gt;
&lt;li&gt;improving frontend rendering safety&lt;/li&gt;
&lt;li&gt;writing cleaner validation and smoke-test flows&lt;/li&gt;
&lt;li&gt;organising fixes into focused commits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The biggest value was momentum. Instead of getting stuck on small implementation details, I could keep moving through the backlog: diagnose, patch, test, commit, and repeat.&lt;/p&gt;

&lt;p&gt;PagerPilot feels like the kind of project that benefits from AI assistance twice: first as a coding partner during development, and second as the actual product experience for engineers responding to incidents.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
    </item>
  </channel>
</rss>
