<?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: Nachiket Joshi</title>
    <description>The latest articles on DEV Community by Nachiket Joshi (@joshinachiket).</description>
    <link>https://dev.to/joshinachiket</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4025297%2F979f55f3-9eb0-4f36-827e-081294fab02f.jpg</url>
      <title>DEV Community: Nachiket Joshi</title>
      <link>https://dev.to/joshinachiket</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/joshinachiket"/>
    <language>en</language>
    <item>
      <title>Agentic Engineering #0: Beyond Chat – The Foundation of Agentic Engineering</title>
      <dc:creator>Nachiket Joshi</dc:creator>
      <pubDate>Wed, 15 Jul 2026 01:11:11 +0000</pubDate>
      <link>https://dev.to/joshinachiket/agentic-engineering-0-beyond-chat-the-foundation-of-agentic-engineering-1704</link>
      <guid>https://dev.to/joshinachiket/agentic-engineering-0-beyond-chat-the-foundation-of-agentic-engineering-1704</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Welcome to Agentic Engineering — a series exploring how AI agents are transforming modern software engineering by automating repetitive workflows, orchestrating developer tools, and allowing engineers to focus on solving meaningful problems.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Why Another AI Series?
&lt;/h2&gt;

&lt;p&gt;Over the past few years, Artificial Intelligence has rapidly become part of every software engineer's daily workflow.&lt;/p&gt;

&lt;p&gt;We ask ChatGPT to explain unfamiliar code, rely on GitHub Copilot to autocomplete functions, generate unit tests with Claude, and summarize documentation using Gemini. These tools have fundamentally changed how we write software, and there's no doubt they have made us more productive.&lt;/p&gt;

&lt;p&gt;But after months of using these tools, I noticed something interesting.&lt;/p&gt;

&lt;p&gt;Most of my interactions still looked like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copy some code.&lt;/li&gt;
&lt;li&gt;Paste it into an LLM.&lt;/li&gt;
&lt;li&gt;Explain the repository.&lt;/li&gt;
&lt;li&gt;Provide business context.&lt;/li&gt;
&lt;li&gt;Ask a question.&lt;/li&gt;
&lt;li&gt;Copy the answer back into my IDE.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI wasn't doing my work.&lt;/p&gt;

&lt;p&gt;I was doing all the work required to let the AI help me.&lt;/p&gt;

&lt;p&gt;That realization led me to a much bigger question.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What if the AI could gather the context itself?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question became the starting point for this series.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is Agentic Engineering?
&lt;/h2&gt;

&lt;p&gt;Agentic Engineering is the practice of building intelligent software systems that can understand engineering workflows, gather their own context, interact with developer tools, make decisions, and execute meaningful tasks with minimal human intervention.&lt;/p&gt;

&lt;p&gt;Instead of asking an AI to answer isolated questions, we give it an objective.&lt;/p&gt;

&lt;p&gt;Rather than saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Review this pull request."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We simply say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Review every open pull request assigned to Team Alpha."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The agent figures out the rest.&lt;/p&gt;

&lt;p&gt;It discovers the pull requests, retrieves the code changes, understands the associated Jira stories, gathers the acceptance criteria, invokes the appropriate reasoning model, and produces a structured review.&lt;/p&gt;

&lt;p&gt;The engineer no longer acts as the bridge between every tool.&lt;/p&gt;

&lt;p&gt;The agent becomes that bridge.&lt;/p&gt;




&lt;h2&gt;
  
  
  Automation Has Been Around for Decades
&lt;/h2&gt;

&lt;p&gt;At this point, it's fair to ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"Haven't we been automating software engineering for years?"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Absolutely.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Software engineering has always relied on automation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Build servers compile our applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CI/CD pipelines deploy our services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GitHub Actions execute workflows.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scripts automate repetitive commands.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Infrastructure as Code provisions cloud environments.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So what makes AI agents different? The answer lies in &lt;strong&gt;how decisions are made.&lt;/strong&gt; Traditional automation follows predefined instructions.&lt;/p&gt;

&lt;p&gt;Agents pursue goals.&lt;/p&gt;




&lt;h2&gt;
  
  
  Understanding the Evolution of Automation
&lt;/h2&gt;

&lt;p&gt;Let's look at how software engineering automation has evolved.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scripts
&lt;/h3&gt;

&lt;p&gt;Scripts are the simplest form of automation.&lt;/p&gt;

&lt;p&gt;They execute a fixed sequence of commands.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Install dependencies

    ↓

Run tests

    ↓

Deploy application
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Scripts are fast and predictable, but they only perform exactly what the developer programmed them to do.&lt;/p&gt;

&lt;p&gt;There is no reasoning.&lt;/p&gt;




&lt;h3&gt;
  
  
  CI/CD Pipelines
&lt;/h3&gt;

&lt;p&gt;CI/CD systems extend this idea.&lt;/p&gt;

&lt;p&gt;They orchestrate multiple automation steps in response to predefined events.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Push Code

   ↓

Build

   ↓

Run Tests

   ↓

Deploy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pipelines automate delivery extremely well. However, every possible path must still be explicitly defined.&lt;/p&gt;

&lt;p&gt;The pipeline never asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Should I perform another security scan?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It simply follows instructions.&lt;/p&gt;




&lt;h3&gt;
  
  
  GitHub Actions
&lt;/h3&gt;

&lt;p&gt;GitHub Actions introduced event-driven automation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;A pull request opens.

      ↓

A workflow starts.

      ↓

Tests execute.

      ↓

Comments are posted.

      ↓

Artifacts are published.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Although tremendously powerful, GitHub Actions remain deterministic. Every workflow is authored in advance.&lt;/p&gt;

&lt;p&gt;If a new situation appears that wasn't anticipated, the workflow stops.&lt;/p&gt;




&lt;h3&gt;
  
  
  Robotic Process Automation (RPA)
&lt;/h3&gt;

&lt;p&gt;RPA brought automation into business processes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bots imitate human interactions.

      ↓

They click buttons.

      ↓

Fill forms.

      ↓

Move files.

      ↓

Read spreadsheets.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This eliminated countless repetitive business tasks. Yet the automation still followed carefully scripted behavior.&lt;/p&gt;

&lt;p&gt;If the screen changed unexpectedly, many bots simply failed.&lt;/p&gt;




&lt;h3&gt;
  
  
  LLM Assistants
&lt;/h3&gt;

&lt;p&gt;Large Language Models changed the conversation.&lt;/p&gt;

&lt;p&gt;Instead of executing predefined logic, they could reason about information.&lt;/p&gt;

&lt;p&gt;Developers suddenly had assistants capable of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explaining code&lt;/li&gt;
&lt;li&gt;Writing documentation&lt;/li&gt;
&lt;li&gt;Generating tests&lt;/li&gt;
&lt;li&gt;Refactoring functions&lt;/li&gt;
&lt;li&gt;Summarizing requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But there was still one limitation. The assistant depended entirely on the context supplied by the human.&lt;/p&gt;

&lt;p&gt;It couldn't fetch missing information on its own.&lt;/p&gt;




&lt;h2&gt;
  
  
  Agentic Workflows
&lt;/h2&gt;

&lt;p&gt;Agentic workflows represent the next step.&lt;/p&gt;

&lt;p&gt;Instead of giving an AI isolated pieces of information, we give it access to tools and a goal.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Review every pull request merged into the release branch today.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An agent might decide to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search GitHub for merged pull requests&lt;/li&gt;
&lt;li&gt;Retrieve each code diff&lt;/li&gt;
&lt;li&gt;Locate the associated Jira stories&lt;/li&gt;
&lt;li&gt;Read acceptance criteria&lt;/li&gt;
&lt;li&gt;Review implementation quality&lt;/li&gt;
&lt;li&gt;Identify testing gaps&lt;/li&gt;
&lt;li&gt;Generate release notes&lt;/li&gt;
&lt;li&gt;Publish a report&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Notice something important. The engineer never described &lt;em&gt;how&lt;/em&gt; to perform these steps. Only &lt;em&gt;what&lt;/em&gt; needed to be accomplished.&lt;/p&gt;

&lt;p&gt;That distinction is what makes agentic workflows fundamentally different from traditional automation.&lt;/p&gt;




&lt;h2&gt;
  
  
  So... What Exactly Is an AI Agent?
&lt;/h2&gt;

&lt;p&gt;The term "AI Agent" has become incredibly popular. Unfortunately, it has also become incredibly vague.&lt;/p&gt;

&lt;p&gt;Today, almost every application that calls an LLM markets itself as an AI agent.&lt;/p&gt;

&lt;p&gt;Personally, I think we need a higher standard. An engineering agent should possess several characteristics.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. It Has a Goal
&lt;/h3&gt;

&lt;p&gt;Agents work toward objectives.&lt;/p&gt;

&lt;p&gt;Not prompts.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. It Can Gather Context
&lt;/h3&gt;

&lt;p&gt;Agents retrieve information without requiring humans to manually assemble everything.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. It Uses Tools
&lt;/h3&gt;

&lt;p&gt;GitHub.&lt;/p&gt;

&lt;p&gt;Jira.&lt;/p&gt;

&lt;p&gt;Slack.&lt;/p&gt;

&lt;p&gt;Docker.&lt;/p&gt;

&lt;p&gt;Kubernetes.&lt;/p&gt;

&lt;p&gt;Databases.&lt;/p&gt;

&lt;p&gt;REST APIs.&lt;/p&gt;

&lt;p&gt;The LLM is only one component.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. It Makes Decisions
&lt;/h3&gt;

&lt;p&gt;Rather than executing one fixed sequence, the agent chooses which tools to invoke and when.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. It Produces Useful Outcomes
&lt;/h3&gt;

&lt;p&gt;The goal isn't conversation.&lt;/p&gt;

&lt;p&gt;The goal is to accomplish work.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Philosophy Behind This Series
&lt;/h2&gt;

&lt;p&gt;Every article in this series follows one simple principle. We're not building chatbots. We're building engineering teammates.&lt;/p&gt;

&lt;p&gt;Each article explores a practical workflow that software engineers perform every day and asks a simple question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Can an AI agent take care of the repetitive parts while leaving the engineering decisions to humans?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reviewing pull requests&lt;/li&gt;
&lt;li&gt;Generating release notes&lt;/li&gt;
&lt;li&gt;Creating project scaffolding&lt;/li&gt;
&lt;li&gt;Automating developer onboarding&lt;/li&gt;
&lt;li&gt;Building engineering knowledge assistants&lt;/li&gt;
&lt;li&gt;Producing technical documentation&lt;/li&gt;
&lt;li&gt;Responding to production incidents&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each solution will be built using practical technologies that engineering teams already use every day, including GitHub, Jira, GitHub Copilot, REST APIs, Python, Docker, and cloud-native tooling.&lt;/p&gt;

&lt;p&gt;No proprietary frameworks. No magical abstractions.&lt;/p&gt;

&lt;p&gt;Just practical engineering. &lt;/p&gt;




&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;I don't believe AI will replace software engineers.&lt;/p&gt;

&lt;p&gt;I do believe it will replace a significant amount of repetitive engineering work.&lt;/p&gt;

&lt;p&gt;As software systems continue to grow in complexity, engineers spend an increasing amount of time gathering information rather than solving problems.&lt;/p&gt;

&lt;p&gt;Agentic Engineering isn't about removing humans from the software development lifecycle.&lt;/p&gt;

&lt;p&gt;It's about removing unnecessary friction.&lt;/p&gt;

&lt;p&gt;When agents handle repetitive work, engineers have more time to focus on architecture, system design, reliability, security, performance, and innovation.&lt;/p&gt;

&lt;p&gt;Those are the problems humans are exceptionally good at solving.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;In the next article, we'll build our first engineering agent—one that understands pull request workflows by combining GitHub CLI, Jira, and GitHub Copilot into a single autonomous review process.&lt;/p&gt;

&lt;p&gt;This isn't just another AI assistant.&lt;/p&gt;

&lt;p&gt;It's the beginning of a new way of thinking about software engineering.&lt;/p&gt;




&lt;h3&gt;
  
  
  About the Author
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="170"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq42p6hz0hnl4rrdsmh8z.jpeg" alt="Nachiket Joshi" width="800" height="1422"&gt;
&lt;/td&gt;
&lt;td&gt;
Hi, I'm &lt;strong&gt;Nachiket Joshi&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;

I'm a software engineer focused on AI systems, distributed platforms, and developer productivity workflows. I share practical implementations of AI-powered engineering systems.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>agents</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Agentic Engineering #2: Generating Release Notes Automatically with AI Agents</title>
      <dc:creator>Nachiket Joshi</dc:creator>
      <pubDate>Wed, 15 Jul 2026 00:45:34 +0000</pubDate>
      <link>https://dev.to/joshinachiket/agentic-engineering-2generating-release-notes-automatically-with-ai-agents-n6h</link>
      <guid>https://dev.to/joshinachiket/agentic-engineering-2generating-release-notes-automatically-with-ai-agents-n6h</guid>
      <description>&lt;h2&gt;
  
  
  Why Preparing Release Notes Still Is a Cumbersome Task?
&lt;/h2&gt;

&lt;p&gt;Every engineering team eventually reaches the same point before a release.&lt;/p&gt;

&lt;p&gt;Someone has to answer a seemingly simple question: &lt;strong&gt;"What changed?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, answering that question is rarely simple.&lt;/p&gt;

&lt;p&gt;Developers begin searching merged pull requests. Someone opens Jira to understand the business context. Another engineer scans commit messages. Product managers ask for customer-friendly summaries. QA wants a technical changelog. Leadership wants release highlights.&lt;/p&gt;

&lt;p&gt;The information already exists—it is simply scattered across multiple systems. The result is a manual process that often takes hours before every release.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;A typical release note preparation looks something like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search merged Pull Requests&lt;/li&gt;
&lt;li&gt;Read every PR description&lt;/li&gt;
&lt;li&gt;Open corresponding Jira stories&lt;/li&gt;
&lt;li&gt;Understand business requirements&lt;/li&gt;
&lt;li&gt;Read commit history&lt;/li&gt;
&lt;li&gt;Group related features&lt;/li&gt;
&lt;li&gt;Rewrite technical language for business users&lt;/li&gt;
&lt;li&gt;Prepare release documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The larger the release, the longer this process becomes. Ironically, none of this work creates software. It is documentation built from information that already exists.&lt;/p&gt;




&lt;h2&gt;
  
  
  What If the Agent Did the Context Gathering?
&lt;/h2&gt;

&lt;p&gt;Instead of asking an engineer to manually assemble release notes, I wanted an AI agent that could automatically collect all the necessary context.&lt;/p&gt;

&lt;p&gt;The workflow becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Merged Pull Requests
        │
        ▼
GitHub CLI
        │
        ▼
Linked Jira Stories
        │
        ▼
Acceptance Criteria
        │
        ▼
AI Analysis
        │
        ▼
Customer Release Notes/ Engineering Changelog/ Internal Summary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The engineer simply specifies the release range. The agent performs the rest.&lt;/p&gt;




&lt;h2&gt;
  
  
  Building the AI Release Notes Agent
&lt;/h2&gt;

&lt;p&gt;The implementation follows the same design philosophy introduced in the previous article. I highly recommend looking up the &lt;a href="https://dev.to/joshinachiket/beyond-chat-building-an-ai-agent-that-understands-your-entire-development-workflow-1n4e"&gt;article&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Instead of creating custom integrations everywhere, the agent orchestrates existing developer tools.&lt;/p&gt;

&lt;p&gt;Current implementation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub CLI&lt;/li&gt;
&lt;li&gt;GitHub Copilot CLI&lt;/li&gt;
&lt;li&gt;Jira REST API&lt;/li&gt;
&lt;li&gt;Python 3.11+&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  High-Level Architecture And Design
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                Engineer

                    │

                    ▼

          Release Notes Agent

        ┌───────────┼──────────────┐
        │           │              │
        ▼           ▼              ▼

 GitHub CLI     Jira REST API   Copilot CLI

        │           │              │
        └───────────┼──────────────┘
                    │

                    ▼

        Customer Release Notes

        Engineering Changelog

        Internal Release Summary
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  What Information Does the Agent Collect?
&lt;/h2&gt;

&lt;p&gt;Unlike a traditional script that simply concatenates commit messages, the agent gathers context from multiple sources.&lt;/p&gt;

&lt;p&gt;From GitHub:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pull Requests&lt;/li&gt;
&lt;li&gt;Merge commits&lt;/li&gt;
&lt;li&gt;Changed files&lt;/li&gt;
&lt;li&gt;Authors&lt;/li&gt;
&lt;li&gt;Labels&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;From Jira:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Story descriptions&lt;/li&gt;
&lt;li&gt;Acceptance criteria&lt;/li&gt;
&lt;li&gt;Business requirements&lt;/li&gt;
&lt;li&gt;Epic information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This richer context allows the generated release notes to describe &lt;strong&gt;why&lt;/strong&gt; features were implemented rather than simply &lt;strong&gt;what&lt;/strong&gt; files changed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Leveraging GitHub CLI
&lt;/h2&gt;

&lt;p&gt;The implementation relies heavily on GitHub CLI.&lt;/p&gt;

&lt;p&gt;For example,&lt;/p&gt;

&lt;p&gt;Retrieve merged pull requests:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gh search prs &lt;span class="nt"&gt;--state&lt;/span&gt; merged
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Retrieve PR information:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gh &lt;span class="nb"&gt;pr &lt;/span&gt;view
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Retrieve commits:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gh &lt;span class="nb"&gt;pr &lt;/span&gt;view &lt;span class="nt"&gt;--json&lt;/span&gt; commits
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GitHub CLI handles authentication and repository context, allowing the Python code to remain focused on orchestration.&lt;/p&gt;




&lt;h2&gt;
  
  
  Agent Workflows
&lt;/h2&gt;

&lt;p&gt;I designed the agent to generate multiple types of Release Notes.&lt;/p&gt;

&lt;p&gt;One of the biggest advantages of using AI is that the agent can produce multiple outputs tailored to different audiences in the same release.&lt;/p&gt;

&lt;h3&gt;
  
  
  Customer Release Notes
&lt;/h3&gt;

&lt;p&gt;Designed for end users.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Added support for configurable notification preferences.

Improved dashboard performance for large datasets.

Resolved intermittent login issues affecting SSO users.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Engineering Changelog
&lt;/h3&gt;

&lt;p&gt;Designed for developers.&lt;/p&gt;

&lt;p&gt;Includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PR numbers&lt;/li&gt;
&lt;li&gt;Technical implementation&lt;/li&gt;
&lt;li&gt;Breaking changes&lt;/li&gt;
&lt;li&gt;Dependency updates&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Internal Management Summary
&lt;/h3&gt;

&lt;p&gt;Focused on delivery.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;24 Pull Requests merged&lt;/li&gt;
&lt;li&gt;18 Jira stories completed&lt;/li&gt;
&lt;li&gt;2 Bug fixes&lt;/li&gt;
&lt;li&gt;4 Enhancements&lt;/li&gt;
&lt;li&gt;No breaking changes&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Expected Output Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Executive Summary

New Features

Enhancements

Bug Fixes

Performance Improvements

Breaking Changes

Known Limitations

Deployment Notes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Why This Is Better Than Commit Messages
&lt;/h2&gt;

&lt;p&gt;Commit messages are written for developers. Release notes are written for people. Those are fundamentally different audiences. Instead of exposing implementation details, AI can rewrite technical work into language that customers, product managers, QA teams, and leadership can immediately understand.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why I Consider This an Agent
&lt;/h2&gt;

&lt;p&gt;Today, many applications wrap an LLM and call it an "AI Agent." I think the definition should be a little stricter.&lt;/p&gt;

&lt;p&gt;A useful engineering agent should be able to:&lt;/p&gt;

&lt;p&gt;Gather information independently&lt;br&gt;
Invoke external tools&lt;br&gt;
Combine information from multiple systems&lt;br&gt;
Make workflow decisions&lt;br&gt;
Produce meaningful outputs without requiring constant human guidance&lt;br&gt;
This project isn't just sending prompts to an LLM. It's orchestrating GitHub, Jira, and Copilot into a workflow that removes repetitive engineering work.&lt;/p&gt;

&lt;p&gt;That, to me, is where agents become genuinely useful.&lt;/p&gt;




&lt;h2&gt;
  
  
  Security Considerations
&lt;/h2&gt;

&lt;p&gt;The current implementation follows the same guardrails as the Pull Request Review Agent.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Read-only GitHub operations&lt;/li&gt;
&lt;li&gt;Read-only Jira queries&lt;/li&gt;
&lt;li&gt;No automatic repository writes&lt;/li&gt;
&lt;li&gt;Temporary file cleanup&lt;/li&gt;
&lt;li&gt;Explicit report generation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent never modifies source code or deployment artifacts.&lt;/p&gt;




&lt;h2&gt;
  
  
  Future Enhancements
&lt;/h2&gt;

&lt;p&gt;This is only the first iteration.&lt;/p&gt;

&lt;p&gt;Future improvements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automatic release detection&lt;/li&gt;
&lt;li&gt;Slack announcements&lt;/li&gt;
&lt;li&gt;Confluence publishing&lt;/li&gt;
&lt;li&gt;Markdown generation&lt;/li&gt;
&lt;li&gt;PDF release reports&lt;/li&gt;
&lt;li&gt;Email distribution&lt;/li&gt;
&lt;li&gt;Semantic grouping of related features&lt;/li&gt;
&lt;li&gt;Multi-repository release aggregation&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;Over the next several articles in this series, we'll continue building practical engineering agents to automate other parts of the software development lifecycle, including:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;From Jira Story to the First Pull Request&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The goal isn't to replace engineers. It's to eliminate repetitive work so engineers can spend more time solving meaningful problems.&lt;/p&gt;

&lt;p&gt;If you're building similar workflows—or have ideas for engineering tasks that could be automated—I'd love to hear about them in the comments.&lt;/p&gt;




&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="170"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq42p6hz0hnl4rrdsmh8z.jpeg" alt="Nachiket Joshi" width="150"&gt;
&lt;/td&gt;
&lt;td&gt;
Hi, I'm &lt;strong&gt;Nachiket Joshi&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;

I'm a software engineer focused on AI systems, distributed platforms, and developer productivity workflows. I share practical implementations of AI-powered engineering systems.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>agents</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Agentic Engineering #1: Building an AI Agent That Understands Your Pull Request Workflow</title>
      <dc:creator>Nachiket Joshi</dc:creator>
      <pubDate>Tue, 14 Jul 2026 01:50:59 +0000</pubDate>
      <link>https://dev.to/joshinachiket/beyond-chat-building-an-ai-agent-that-understands-your-entire-development-workflow-1n4e</link>
      <guid>https://dev.to/joshinachiket/beyond-chat-building-an-ai-agent-that-understands-your-entire-development-workflow-1n4e</guid>
      <description>&lt;h2&gt;
  
  
  Why Reviewing PRs is Still A Cumbersome Task
&lt;/h2&gt;

&lt;p&gt;Artificial Intelligence has quickly become an integral part of a software engineer's toolkit.&lt;/p&gt;

&lt;p&gt;We ask ChatGPT to explain unfamiliar code, use GitHub Copilot to autocomplete functions, and occasionally paste a pull request into an LLM for feedback. These tools undoubtedly improve productivity, but they still depend heavily on one thing: us.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We gather the pull request.&lt;/li&gt;
&lt;li&gt;We search for the Jira story.&lt;/li&gt;
&lt;li&gt;We copy the acceptance criteria.&lt;/li&gt;
&lt;li&gt;We summarize the business requirements.&lt;/li&gt;
&lt;li&gt;We explain the repository structure.&lt;/li&gt;
&lt;li&gt;Only then do we ask the AI to help.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That isn't automation. It's simply moving manual work into a chat window.&lt;/p&gt;

&lt;p&gt;Over the past few months, I've become increasingly interested in a different approach—building &lt;strong&gt;AI agents&lt;/strong&gt; that can understand engineering workflows, gather their own context, interact with developer tools, and complete meaningful tasks with minimal human intervention.&lt;/p&gt;

&lt;p&gt;This article marks the beginning of a new series called &lt;strong&gt;Agentic Engineering&lt;/strong&gt;, where I'll share practical implementations of AI-powered workflows that automate repetitive engineering tasks across the software development lifecycle.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Let's look at a typical pull request review. A reviewer usually needs to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open the Pull Request&lt;/li&gt;
&lt;li&gt;Read the code changes&lt;/li&gt;
&lt;li&gt;Find the corresponding Jira story&lt;/li&gt;
&lt;li&gt;Understand the business requirements&lt;/li&gt;
&lt;li&gt;Read the acceptance criteria&lt;/li&gt;
&lt;li&gt;Compare implementation against requirements&lt;/li&gt;
&lt;li&gt;Check coding standards&lt;/li&gt;
&lt;li&gt;Leave review comments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Depending on the complexity of the change, simply gathering context can consume 15–30 minutes before any real technical review even begins. As repositories grow larger and development teams become more distributed, this overhead becomes increasingly expensive.&lt;/p&gt;




&lt;h2&gt;
  
  
  What If the Agent Did the Context Gathering?
&lt;/h2&gt;

&lt;p&gt;Instead of asking an AI:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Review this pull request.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I wanted to build an agent that already knows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which repository to inspect&lt;/li&gt;
&lt;li&gt;Which Pull Request to analyze&lt;/li&gt;
&lt;li&gt;Which Jira story is associated with the PR&lt;/li&gt;
&lt;li&gt;What are the acceptance criteria&lt;/li&gt;
&lt;li&gt;What files changed&lt;/li&gt;
&lt;li&gt;How to generate a structured review&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The objective isn't to replace software engineers. It's to eliminate repetitive work so reviewers can focus on architecture, business logic, security, and edge cases.&lt;/p&gt;




&lt;h2&gt;
  
  
  Building My First AI Productivity Agent
&lt;/h2&gt;

&lt;p&gt;To explore this idea, I built a simple command-line agent that orchestrates multiple developer tools into a single workflow.&lt;/p&gt;

&lt;p&gt;The implementation currently uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub CLI (&lt;code&gt;gh&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;GitHub Copilot CLI&lt;/li&gt;
&lt;li&gt;Jira REST API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Rather than treating these as independent tools, the agent combines them into a single engineering workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;p&gt;The agent is intentionally lightweight and relies on existing developer tooling rather than custom integrations.&lt;/p&gt;

&lt;h4&gt;
  
  
  Python
&lt;/h4&gt;

&lt;p&gt;Python &lt;strong&gt;3.11+&lt;/strong&gt; is recommended.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;--version&lt;/span&gt;
Python 3.13.3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Python Packages
&lt;/h4&gt;

&lt;p&gt;Install the required dependencies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python-dotenv jira urllib3
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  GitHub Copilot CLI
&lt;/h4&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gh copilot &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"what is 2+2"&lt;/span&gt;
4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  GitHub CLI
&lt;/h4&gt;

&lt;p&gt;Install GitHub CLI from:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cli.github.com" rel="noopener noreferrer"&gt;https://cli.github.com&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gh &lt;span class="nt"&gt;--version&lt;/span&gt;
gh version 2.95.0 &lt;span class="o"&gt;(&lt;/span&gt;2026-06-17&lt;span class="o"&gt;)&lt;/span&gt;
https://github.com/cli/cli/releases/tag/v2.95.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Authenticate with GitHub
&lt;/h4&gt;

&lt;p&gt;Log in using &lt;code&gt;gh&lt;/code&gt;. This step will be one-time only.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gh auth login
gh auth status
github.com
✓ Logged &lt;span class="k"&gt;in &lt;/span&gt;to github.com account johndoe
✓ Git operations &lt;span class="k"&gt;for &lt;/span&gt;github.com configured to use https
✓ Token: &lt;span class="k"&gt;****************&lt;/span&gt;
✓ Token scopes:
  - repo
  - &lt;span class="nb"&gt;read&lt;/span&gt;:org
  - gist
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Architecture And Design
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Leveraging GitHub CLI
&lt;/h3&gt;

&lt;p&gt;One design decision I made was to avoid writing custom GitHub API wrappers wherever possible. Instead, the agent delegates repository operations to GitHub CLI.&lt;/p&gt;

&lt;h4&gt;
  
  
  Search Pull Requests
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gh search prs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Used by:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;get_prs&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Retrieve Pull Request Diff
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gh &lt;span class="nb"&gt;pr &lt;/span&gt;diff
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Used by:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;get_diff&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GitHub CLI handles authentication, repository context, pagination, and formatting, allowing the Python code to remain focused on orchestration rather than API plumbing.&lt;/p&gt;

&lt;h3&gt;
  
  
  High-Level Architecture
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  Developer

                     |
                     v

             Agent Orchestrator

        +------------+-------------+
        |            |             |
        v            v             v

    GitHub CLI    Jira API    Copilot CLI

        |
        v

 Context Builder

        |
        v

 Review Decision Engine

        |
        v

 Structured Report
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent collects information from GitHub and Jira, builds the necessary context, and asks Copilot CLI to perform a structured review. Instead of manually assembling prompts, the engineer simply invokes the workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Code Design Overview
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;run()
│
├── Wrapper around subprocess.run()

get_prs()
│
└── Executes:
    gh search prs

get_diff()
│
└── Retrieves PR diff

write_temp_diff()
│
└── Creates a temporary .diff file

review_with_copilot()
│
└── Invokes GitHub Copilot CLI

get_jira_client()
│
└── Creates an authenticated Jira client

post_jira_comment()
│
└── Posts review back to Jira

write_report()
│
└── Generates Markdown report

review_pr()
│
└── Main orchestration method
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Agent Workflows And Expected Output
&lt;/h2&gt;

&lt;p&gt;The current version exposes three workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  List Pull Requests
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agent &lt;span class="nt"&gt;--list&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Displays pull requests that are available for review.&lt;/p&gt;

&lt;h3&gt;
  
  
  Review All Pull Requests
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agent &lt;span class="nt"&gt;--review-all&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reviews every eligible pull request automatically.&lt;/p&gt;

&lt;p&gt;This is useful before a release or during periods when multiple PRs are waiting for review.&lt;/p&gt;

&lt;h3&gt;
  
  
  Review a Single Pull Request
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;agent review-pr &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--repo&lt;/span&gt; engineering-service &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--pr&lt;/span&gt; 248 &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--jira&lt;/span&gt; ENG-542
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The agent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Retrieves PR details from GitHub&lt;/li&gt;
&lt;li&gt;Retrieves the Jira story&lt;/li&gt;
&lt;li&gt;Reads acceptance criteria&lt;/li&gt;
&lt;li&gt;Collects changed files&lt;/li&gt;
&lt;li&gt;Sends the complete context to Copilot CLI&lt;/li&gt;
&lt;li&gt;Produces a structured review&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The engineer no longer needs to gather all of this information manually.&lt;/p&gt;

&lt;h3&gt;
  
  
  PR Review Report
&lt;/h3&gt;

&lt;p&gt;The generated review follows a consistent structure.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Summary

High Severity Findings

Medium Severity Findings

Low Severity Findings

Testing Gaps

Suggestions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This predictable format makes reviews easier to consume and simplifies future automation.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why These Technologies
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why GitHub CLI?
&lt;/h3&gt;

&lt;p&gt;GitHub CLI already solves authentication and repository access elegantly. Instead of writing custom integrations for every GitHub API endpoint, I can retrieve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pull Request metadata&lt;/li&gt;
&lt;li&gt;Changed files&lt;/li&gt;
&lt;li&gt;Commit history&lt;/li&gt;
&lt;li&gt;Repository information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;with simple CLI commands.&lt;/p&gt;

&lt;p&gt;This keeps the implementation lightweight while still providing everything the agent needs. Moreover, &lt;strong&gt;no more token handling&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Jira?
&lt;/h3&gt;

&lt;p&gt;Git tells us &lt;strong&gt;what changed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Jira tells us &lt;strong&gt;why it changed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Without the Jira story, an AI review can evaluate syntax, formatting, and code quality—but it cannot determine whether the implementation actually satisfies the original business requirements.&lt;/p&gt;

&lt;p&gt;Retrieving the Jira story and its acceptance criteria makes the review much more meaningful.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why Copilot CLI?
&lt;/h3&gt;

&lt;p&gt;Copilot CLI acts as the reasoning engine.&lt;/p&gt;

&lt;p&gt;Instead of manually crafting prompts, the agent prepares all of the required context and delegates the analysis to Copilot.&lt;/p&gt;

&lt;p&gt;The result is a review that's aware of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code changes&lt;/li&gt;
&lt;li&gt;Business requirements&lt;/li&gt;
&lt;li&gt;Acceptance criteria&lt;/li&gt;
&lt;li&gt;Repository context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;rather than just isolated code snippets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Consider This an Agent
&lt;/h2&gt;

&lt;p&gt;Today, many applications wrap an LLM and call it an "AI Agent." I think the definition should be a little stricter.&lt;/p&gt;

&lt;p&gt;A useful engineering agent should be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Gather information independently&lt;/li&gt;
&lt;li&gt;Invoke external tools&lt;/li&gt;
&lt;li&gt;Combine information from multiple systems&lt;/li&gt;
&lt;li&gt;Make workflow decisions&lt;/li&gt;
&lt;li&gt;Produce meaningful outputs without requiring constant human guidance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This project isn't just sending prompts to an LLM. It's orchestrating GitHub, Jira, and Copilot into a workflow that removes repetitive engineering work.&lt;/p&gt;

&lt;p&gt;That, to me, is where agents become genuinely useful.&lt;/p&gt;




&lt;h2&gt;
  
  
  Security Considerations
&lt;/h2&gt;

&lt;p&gt;Since the agent interacts with production engineering systems, a few guardrails were built into the design.&lt;/p&gt;

&lt;h3&gt;
  
  
  Read-only GitHub Operations
&lt;/h3&gt;

&lt;p&gt;The current implementation never performs GitHub write operations. It only retrieves repository information and pull request data.&lt;/p&gt;

&lt;h3&gt;
  
  
  Temporary File Cleanup
&lt;/h3&gt;

&lt;p&gt;Pull request diffs are written to temporary files before analysis. These files are automatically deleted after the review completes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Explicit Jira Updates
&lt;/h3&gt;

&lt;p&gt;Review results are only posted back to Jira when explicitly requested. The agent never modifies tickets automatically.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;Pull request reviews are only the beginning.&lt;/p&gt;

&lt;p&gt;Over the next several articles in this series, we'll continue building practical engineering agents to automate other parts of the software development lifecycle, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/joshinachiket/agentic-engineering-2generating-release-notes-automatically-with-ai-agents-n6h"&gt;Agentic Engineering #2: Generating Release Notes Automatically with AI Agents&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal isn't to replace engineers. It's to eliminate repetitive work so engineers can spend more time solving meaningful problems.&lt;/p&gt;

&lt;p&gt;If you're building similar workflows—or have ideas for engineering tasks that could be automated—I'd love to hear about them in the comments.&lt;/p&gt;




&lt;h2&gt;
  
  
  About the Author
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="170"&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq42p6hz0hnl4rrdsmh8z.jpeg" alt="Nachiket Joshi" width="800" height="1422"&gt;
&lt;/td&gt;
&lt;td&gt;
Hi, I'm &lt;strong&gt;Nachiket Joshi&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;

I'm a software engineer focused on AI systems, distributed platforms, and developer productivity workflows. I share practical implementations of AI-powered engineering systems.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>automation</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
