<?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: erin</title>
    <description>The latest articles on DEV Community by erin (@erin-the-black).</description>
    <link>https://dev.to/erin-the-black</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%2F4126461%2Fb6dcb031-7496-4bf1-b9c0-2f358b5cea03.png</url>
      <title>DEV Community: erin</title>
      <link>https://dev.to/erin-the-black</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/erin-the-black"/>
    <language>en</language>
    <item>
      <title>Elves Work While I Sleep: A Night with GraphOps Autopilot</title>
      <dc:creator>erin</dc:creator>
      <pubDate>Mon, 05 Oct 2026 08:24:07 +0000</pubDate>
      <link>https://dev.to/erin-the-black/elves-work-while-i-sleep-a-night-with-graphops-autopilot-6j5</link>
      <guid>https://dev.to/erin-the-black/elves-work-while-i-sleep-a-night-with-graphops-autopilot-6j5</guid>
      <description>&lt;p&gt;There is a Grimm fairy tale called &lt;em&gt;The Elves and the Shoemaker&lt;/em&gt;. A poor shoemaker cuts his last piece of leather, leaves it on his workbench, and goes to bed. When he wakes up the next morning, a beautifully finished pair of shoes is waiting for him. During the night, a band of elves had crept in and quietly stitched them together.&lt;/p&gt;

&lt;p&gt;As a child, I thought it was just a fairy tale.&lt;/p&gt;

&lt;p&gt;Lately, though, I've started leaving a single ticket out before bed, typing this into my terminal, and going to sleep:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/graph-ops:autopilot-tree &amp;lt;ticketId&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When I wake up and glance at the screen, the work is done. A plan has been drawn up, the work has passed review after review from several different angles, the tests have been run, and a PR has been opened. Even the bugs found along the way have been filed as separate tickets, and those have been taken care of too.&lt;/p&gt;

&lt;p&gt;This article is a sequel to my earlier introduction, "&lt;a href="https://dev.to/erin-the-black/introducing-graphops-a-easy-to-use-graph-engineering-plugin-for-claude-code-2f1a"&gt;Introducing GraphOps: An Easy-to-Use Graph Engineering Plugin for Claude Code&lt;br&gt;
&lt;/a&gt;". That one covered how GraphOps works and how to use it. This time, I want to share what I learned from spending a few nights with the Autopilot feature that has since been added to GraphOps, letting the elves work while I sleep.&lt;/p&gt;




&lt;h2&gt;
  
  
  A Quick Recap
&lt;/h2&gt;

&lt;p&gt;GraphOps is a ticket management plugin for Claude Code. File a ticket and run &lt;code&gt;/graph-ops:process-ticket&lt;/code&gt;, and the work is assembled into an &lt;strong&gt;execution graph&lt;/strong&gt; and carried out step by step.&lt;/p&gt;

&lt;p&gt;When I wrote the previous article, a person still had to click an "Approve" button at every &lt;strong&gt;approval gate&lt;/strong&gt; along the graph. Is this plan good to go? Is it OK to release? And so on.&lt;/p&gt;

&lt;p&gt;The shoemaker still had to stay up at his workbench.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter the Elves
&lt;/h2&gt;

&lt;p&gt;Autopilot is a mechanism that drives a ticket all the way to the end on its own judgment, instead of waiting for a person at those approval gates. It comes in two modes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/graph-ops:autopilot-ticket &amp;lt;ticketId&amp;gt;&lt;/code&gt;: carries a single ticket through to the end&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/graph-ops:autopilot-tree &amp;lt;ticketId&amp;gt;&lt;/code&gt;: carries that ticket, plus every ticket derived from it, through to the end&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can of course also start it from the "Autopilot" button in the Web UI. The confirmation dialog lets you choose between "Tree (this ticket and its descendants)" and "This ticket only."&lt;/p&gt;

&lt;p&gt;And there isn't just one elf at work here.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The master elf (orchestrator)&lt;/strong&gt;: This is the session where you typed the command. The master elf doesn't sew any shoes. It only plans out the work.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lead elves (child sessions)&lt;/strong&gt;: Independent Claude Code sessions that the master elf summons in separate terminals. Each elf takes charge of one ticket and, on a git worktree and branch dedicated to that ticket, handles everything from start to finish: refining the ticket, processing the execution graph, releasing, and deciding what to do with the carry-over items. When it's done, it sends the master elf nothing more than a short, one-to-three-line report.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Worker elves (subagents)&lt;/strong&gt;: Agents that a lead elf calls up for each node in the execution graph. One elf writes the plan, another implements, another reviews. During parallel reviews, many elves work at the same time.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The approval gates that used to wait for a person are now judged by the elves themselves. They check the deliverables against the ticket's completion criteria and &lt;strong&gt;approve unless they can name a concrete defect&lt;/strong&gt;. Each decision is saved as a deliverable along with its reasoning, so you can read it back in the Web UI once morning comes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Layer upon Layer of Review Gates
&lt;/h2&gt;

&lt;p&gt;Is it really safe to leave everything to the elves?&lt;/p&gt;

&lt;p&gt;That was my first thought, too. But as I watched the execution graphs, I noticed that the elves' work passes through &lt;strong&gt;layer upon layer of review gates&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The lineup of review gates is assembled per ticket. Starting from the plan and its plan review, the elves look at what the ticket involves and decide which reviews to include, whether to write tests, and whether to update documentation. There is no fixed template set in advance.&lt;/p&gt;

&lt;p&gt;For a ticket that involves implementation and tests, for example, the review gates line up like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A review of the plan, then approval of the plan&lt;/li&gt;
&lt;li&gt;A review of the test cases (the Gherkin test specification)&lt;/li&gt;
&lt;li&gt;Parallel reviews of the implementation, such as code, QA, security, and non-functional reviews (which perspectives are included depends on the ticket)&lt;/li&gt;
&lt;li&gt;A review of the test results&lt;/li&gt;
&lt;li&gt;If the ticket updates documentation, a review of that documentation&lt;/li&gt;
&lt;li&gt;If a report is written, a review of that report&lt;/li&gt;
&lt;li&gt;Finally, approval of the release&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The reviews don't just go around in circles forever. With each round, the tier is raised (Normal / Important / Final), and minor findings are passed along as "carry-over items" so the work can move on. Only newly introduced bugs and regressions, security problems, and serious findings that are still unfixed are never relaxed, no matter the tier. Each loop also has an iteration limit (3 by default), so it always ends eventually. If a ticket still hasn't passed after reaching the limit, it stops as "blocked" and waits for morning.&lt;/p&gt;

&lt;p&gt;The gatekeepers are all different elves, too. An elf that reads the code, an elf that hunts for gaps in the tests, an elf that eyes every input with an attacker's suspicion. Different elves look at the same deliverable at the same time. What one elf misses, the elf next to it picks up. The workshop is quiet at night, but on the workbench, a fairly strict inspection is going on.&lt;/p&gt;

&lt;p&gt;Even back when I was developing with the normal, pre-Autopilot flow, most of what I did at the approval gates was &lt;strong&gt;rubber-stamping&lt;/strong&gt;. I'd open a deliverable that had already made it through stage after stage of review, nod, and click Approve. I almost never sent anything back.&lt;/p&gt;

&lt;p&gt;With this many gates stacked up, there isn't much left for a person to catch at the final approval. Human judgment has become nearly unnecessary. That is my honest impression after using Autopilot.&lt;/p&gt;

&lt;p&gt;My job has shrunk to just this: looking at the PR in the morning and deciding whether to merge it. (You can also configure it to stop at creating a branch, or to go all the way and merge.)&lt;/p&gt;

&lt;h2&gt;
  
  
  The Elves File New Tickets
&lt;/h2&gt;

&lt;p&gt;Using tree mode (&lt;code&gt;/graph-ops:autopilot-tree&lt;/code&gt;) took the quality up another notch.&lt;/p&gt;

&lt;p&gt;While the elves are working, they sometimes find problems that are separate from the main task: a performance issue spotted by a review, a gap noticed during testing. These are the kinds of things a person would jot down as "I'll do it later" and then promptly forget.&lt;/p&gt;

&lt;p&gt;The elves don't let them slide. Once a ticket has been released, they gather up the reviews' carry-over items, the open issues from the report, and the follow-up notes from the implementation notes, and sort them one by one:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Skip&lt;/strong&gt;: Things outside the supported scope, harmless differences in wording, things that can't be verified without real hardware or an external environment, things that don't reproduce, and things already accepted in the plan or reviews. None of these become tickets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Child tickets&lt;/strong&gt;: Things that should be dealt with within the scope of this ticket. They are filed as new tickets with the current ticket as their parent. The master elf picks those tickets up as part of the same run, and elves in other terminals take care of them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backlog&lt;/strong&gt;: Pre-existing problems that aren't part of the main task are bundled into a single backlog ticket and filed as a ticket with no parent. The master elf does not work on it during the run. It's a little something the elves leave behind.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once an elf finishes a child ticket, it merges its branch into the parent's branch. Grandchildren's work goes into the child's branch, and the child's work goes into the parent's branch. Everything is merged from the bottom up, until it all comes together in the parent ticket's branch. The tickets in the tree are processed one at a time, in order.&lt;/p&gt;

&lt;p&gt;"I'll do it later" actually gets done later. That's why tree mode improves quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Record of One Day
&lt;/h2&gt;

&lt;p&gt;One day, I decided to add a batch of new commands to a VS Code extension that collects commands for transforming selected text. It already had around 800 commands, so this was an extension of an existing feature.&lt;/p&gt;

&lt;p&gt;That night, I filed the parent ticket and went to sleep with tree mode running. The ticket was to grow the 800 commands to 1,000.&lt;/p&gt;

&lt;p&gt;The first elf took stock of the existing commands, designed which commands to add, checked them from a security standpoint as well, and then split the work into several tickets, filing them with its own ticket as the parent.&lt;/p&gt;

&lt;p&gt;All through the night, terminals kept appearing on the screen, one after another. The master elf would pick up a ticket, hand the job to a lead elf, receive a short report, and reach for the next ticket. In a workshop with no one watching, that cycle went on all day long.&lt;/p&gt;

&lt;p&gt;The elves implemented the twenty-odd commands listed in each ticket, and every time, code, QA, security, and non-functional reviews ran in parallel, followed by the documentation review and the approval gates.&lt;/p&gt;

&lt;p&gt;The gates were doing their job. A process that took quadratic time. An expansion routine that could blow up explosively depending on the input. Tests that had been broken for a while. Everything the reviews found became grandchild tickets, and other elves fixed them. There were also problems caused by my local environment that weren't part of the main task, and those were left in the backlog as the elves' parting gift.&lt;/p&gt;

&lt;p&gt;After working through a double-digit number of tickets, the run finished almost a full day later. The extension now had more than 1,000 commands, with nearly 200 newly added.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bedtime Pays for the Time
&lt;/h2&gt;

&lt;p&gt;Autopilot does not make the work faster.&lt;/p&gt;

&lt;p&gt;Every gate it passes through triggers a review, and every rejection sends it around another loop. The more tickets are spun off, the more elves there are. It takes far longer than a person could sit there and watch.&lt;/p&gt;

&lt;p&gt;But all of that happens at night, while the person is asleep.&lt;/p&gt;

&lt;p&gt;By day, the shoemaker picks out the leather and decides what kind of shoes to make. In other words, he writes the ticket: what he wants to build, why he's building it, and what counts as done. As long as he writes that part carefully, the elves will work from that ticket through the night.&lt;/p&gt;

&lt;p&gt;The hours we spend asleep were never producing anything to begin with. For work done in those hours, how long it takes hardly matters. In fact, precisely because you don't have to worry about time, you can add one more gate, or turn every crack found in the code and elsewhere into a ticket. You can go all in on quality without holding back.&lt;/p&gt;

&lt;p&gt;Only one challenge remains: &lt;strong&gt;tokens&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The more gates and the more elves, the more tokens disappear. Just as the shoemaker had to pay for leather, the elves need to be fed. You'll have to decide how much to hand over based on your plan and your usage limits. This is the one cost that time can't cover for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;When I wake up and open the terminal, an execution summary put together by the master elf is waiting for me. Which tickets got done? Which ones became child tickets, and which went to the backlog? Where did the elves approve something, and on what grounds? All of that can be read back in the Web UI. If any tickets stopped partway through (failed or blocked), that's where the shoemaker's work for the day begins.&lt;/p&gt;

&lt;p&gt;On the workbench, the finished shoes are lined up. He picks them up and decides whether to put them in the shop. That's all the shoemaker's job is now.&lt;/p&gt;

&lt;p&gt;Finally, let me sum up what I've covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Thanks to &lt;strong&gt;layer upon layer of review gates&lt;/strong&gt;, approval becomes mostly rubber-stamping, and human judgment is hardly needed anymore&lt;/li&gt;
&lt;li&gt;In &lt;strong&gt;tree mode&lt;/strong&gt;, cracks found along the way get fixed as child tickets, and anything outside the main task is left in the backlog. "I'll do it later" actually gets done&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It takes time, but bedtime pays for it.&lt;/strong&gt; That's why you can go all in on quality&lt;/li&gt;
&lt;li&gt;The only remaining challenge is &lt;strong&gt;token consumption&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GraphOps is available on GitHub. Why not leave a ticket on your workbench tonight?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/imahiro-t/graph-ops" rel="noopener noreferrer"&gt;https://github.com/imahiro-t/graph-ops&lt;/a&gt;&lt;/p&gt;

</description>
      <category>claudecode</category>
      <category>ai</category>
      <category>claude</category>
      <category>autopilot</category>
    </item>
    <item>
      <title>Introducing GraphOps: An Easy-to-Use Graph Engineering Plugin for Claude Code</title>
      <dc:creator>erin</dc:creator>
      <pubDate>Tue, 15 Sep 2026 14:38:01 +0000</pubDate>
      <link>https://dev.to/erin-the-black/introducing-graphops-a-easy-to-use-graph-engineering-plugin-for-claude-code-2f1a</link>
      <guid>https://dev.to/erin-the-black/introducing-graphops-a-easy-to-use-graph-engineering-plugin-for-claude-code-2f1a</guid>
      <description>&lt;p&gt;In my day-to-day engineering work, I've been driving development by combining ticket-driven development (using Jira) with &lt;strong&gt;Graph Engineering&lt;/strong&gt; (AI-driven development powered by execution graphs). While introducing graph engineering has significantly elevated the quality of our AI outputs, Jira itself can feel a bit heavy and over-engineered for solo developers or small, agile teams.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I wished there were an easier, more lightweight way to reap the benefits of graph engineering.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's why I created and open-sourced &lt;strong&gt;GraphOps&lt;/strong&gt;, a Claude Code plugin that combines &lt;strong&gt;lightweight ticket management with execution graphs (DAGs / parallel execution / loopbacks)&lt;/strong&gt;! It requires no local build setup—you can control everything directly via Claude Code slash commands and an intuitive Web UI.&lt;/p&gt;

&lt;p&gt;Far from being just another ticket-tracking tool, GraphOps' standout feature is how it structures a ticket's workflow into a &lt;strong&gt;dynamic execution graph&lt;/strong&gt; made of "nodes" and "edges." It orchestrates autonomous, parallel execution to maximize the performance of AI agents.&lt;/p&gt;

&lt;p&gt;In this article, I'll walk through the development experience GraphOps unlocks, the mechanics of how graph engineering elevates output quality, and how you can get started right away.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why "Graph Engineering"?
&lt;/h2&gt;

&lt;p&gt;When handing off a task to an AI coding assistant (like Claude Code) with a single, open-ended prompt like &lt;em&gt;"Please implement feature X,"&lt;/em&gt; developers commonly run into several pain points:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Misaligned Assumptions &amp;amp; Premise Drift&lt;/strong&gt;: The agent jumps straight into writing code without validating plans or architecture, only for fundamental design flaws to surface later.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overlooked Review Perspectives&lt;/strong&gt;: Beyond basic code syntax and cleanliness, critical multidimensional checks—such as security, QA edge cases, non-functional requirements (performance, logging, availability), and accessibility—are rarely handled thoroughly in one pass.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ambiguous Rework &amp;amp; Context Pollution&lt;/strong&gt;: When a test fails, the agent often attempts haphazard in-place fixes, leading to messy regressions, infinite loops, and token-heavy context pollution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Black-Box Execution&lt;/strong&gt;: It’s difficult for humans to see which stage the AI is currently in and why it made specific design decisions along the way.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Graph Engineering&lt;/strong&gt; is a proven paradigm designed to tackle these exact problems, and it served as the core motivation behind building GraphOps.&lt;/p&gt;

&lt;h3&gt;
  
  
  Solving Challenges with Execution Graphs (DAG + Loops + Parallelism)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="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%2Fqu2e9uzexn0a0rc1df0e.png" class="article-body-image-wrapper"&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%2Fqu2e9uzexn0a0rc1df0e.png" alt=" " width="800" height="925"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In GraphOps, every ticket's tasks are dynamically assembled into an &lt;strong&gt;execution graph&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Independent &amp;amp; Parallel Review Gates (&lt;code&gt;review_gate&lt;/code&gt;)&lt;/strong&gt;:
Multiple distinct perspectives—Code Quality, QA, Security (OWASP Top 10, etc.), Non-Functional Requirements (scalability/logging), and Accessibility (WCAG, etc. for UI changes)—are &lt;strong&gt;audited concurrently by independent subagents&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Loopback Structures for Automated Rework (&lt;code&gt;loop_back_to&lt;/code&gt;)&lt;/strong&gt;:
If a review gate fails or raises issues, the graph automatically loops back to the preceding implementation node. To prevent runaway infinite loops, built-in convergence controls relax criteria as iteration counts increase.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human-in-the-Loop Approval Gates (&lt;code&gt;approval_gate&lt;/code&gt;)&lt;/strong&gt;:
By default, human approval gates are placed after the planning phase (&lt;code&gt;plan_approval&lt;/code&gt;) and just before release (&lt;code&gt;release_approval&lt;/code&gt;). Even if automated plan reviews pass, implementation will not start until a human signs off. Approvals can be granted with a single click from the Web UI, and rejections require a reason (free text), allowing the AI to re-triage context and automatically redo only the necessary nodes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="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%2Fit03ar1863sc6e24rh2w.png" class="article-body-image-wrapper"&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%2Fit03ar1863sc6e24rh2w.png" alt=" " width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;💡 Token Consumption vs. Output Quality&lt;/strong&gt;&lt;br&gt;
By formalizing a graph structure with explicit stages (Planning → Review → Approval → Implementation → Multi-perspective Parallel Reviews → Testing → Reporting) executed by dedicated subagents, the context processed by the AI naturally increases. &lt;strong&gt;Token consumption and execution time will undoubtedly rise (higher cost).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;However, &lt;strong&gt;costly rework stemming from premise drift and missed requirements drops dramatically&lt;/strong&gt;. Because plans are scrutinized before code is touched and implementations are vetted from specialized review angles, hallucinations and omissions are curtailed, yielding high-precision deliverables on the first pass. Because deliverables and artifacts from every node are cleanly persisted in the database and visible in the Web UI, the overall boost to development efficiency and peace of mind is substantial!&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  3 Core Components of GraphOps
&lt;/h2&gt;

&lt;p&gt;GraphOps is architected around Claude Code in a minimal yet robust manner:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Go Core Binary (&lt;code&gt;graph-engine&lt;/code&gt;)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;A single, CGO-free Go binary (utilizing a pure-Go SQLite driver) acting as both a CLI tool and a REST API server. Cross-compiles across macOS, Linux, and Windows.&lt;/li&gt;
&lt;li&gt;Manages persistence for tickets, nodes, edges, and deliverables (artifacts). Uses &lt;strong&gt;SQLite&lt;/strong&gt; by default with zero config, but supports switching to &lt;strong&gt;MySQL&lt;/strong&gt; for team collaboration.&lt;/li&gt;
&lt;li&gt;The engine handles graph expansion, DAG validation, convergence control, and artifact validation (such as HTML structural checks for reports).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code Plugin (&lt;code&gt;@graph-ops/plugin&lt;/code&gt;)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Exposes slash commands and skills (&lt;code&gt;/onboarding&lt;/code&gt;, &lt;code&gt;/create-ticket&lt;/code&gt;, &lt;code&gt;/refine-ticket&lt;/code&gt;, &lt;code&gt;/process-ticket&lt;/code&gt;, &lt;code&gt;/ui&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Dispatches dedicated &lt;code&gt;graph-node-agent&lt;/code&gt; subagents to perform work node-by-node, running parallelizable nodes concurrently in the background.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web UI Application (&lt;code&gt;@graph-ops/web&lt;/code&gt;)&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;A modern, responsive dashboard built with React, Tailwind CSS, and &lt;code&gt;@xyflow/react&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Features paginated/searchable ticket management with priority indicators, real-time interactive execution graph visualization, formatted artifact previews (Gherkin, Markdown, HTML), one-click approval/rejection for approval gates, and configuration editing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="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%2Fkuh8ewa1aycsv47hqtam.png" class="article-body-image-wrapper"&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%2Fkuh8ewa1aycsv47hqtam.png" alt=" " width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2F2d81puzz31i5ph1h73da.png" class="article-body-image-wrapper"&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%2F2d81puzz31i5ph1h73da.png" alt=" " width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Development Flow (The Practical Workflow)
&lt;/h2&gt;

&lt;p&gt;A typical workflow with GraphOps proceeds as follows:&lt;/p&gt;

&lt;h3&gt;
  
  
  Launching the Dashboard: &lt;code&gt;/ui&lt;/code&gt; (Web UI Visualization)
&lt;/h3&gt;

&lt;p&gt;Simply run &lt;code&gt;/ui&lt;/code&gt; in your project's working directory. It automatically spins up the background backend server if not already running, and opens your browser directly to the ticket list and execution graph for that project (or prompts a "New Project" modal if unregistered).&lt;/p&gt;

&lt;p&gt;Subsequent actions like creating tickets, refining them, or running them can be driven directly from Claude Code or &lt;strong&gt;with a single click from the Web UI&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;code&gt;/create-ticket&lt;/code&gt; (Interactive Ticket Drafting)
&lt;/h3&gt;

&lt;p&gt;When you submit a request, Claude Code doesn't just create a ticket blindly. It engages in a brief dialogue to clarify scope, edge cases, and impacted files before registering the ticket in the DB.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;code&gt;/refine-ticket&lt;/code&gt; (Articulating Acceptance Criteria &amp;amp; "Why")
&lt;/h3&gt;

&lt;p&gt;Collaborate with the AI to crystallize concrete acceptance criteria (Definition of Done) and the underlying "Why" (background and motivation), updating the ticket's description with sharp, actionable requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;code&gt;/process-ticket&lt;/code&gt; (Graph-Driven Execution)
&lt;/h3&gt;

&lt;p&gt;Now, autonomous graph execution takes over:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Seed Execution&lt;/strong&gt;: The "Plan Creation (&lt;code&gt;plan&lt;/code&gt;)" and "Plan Review (&lt;code&gt;plan_review&lt;/code&gt;)" seed nodes run first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dynamic Graph Assembly&lt;/strong&gt;: Once the plan passes review, the AI analyzes the nature of the ticket (investigation-only, standard feature, UI changes, etc.) and dynamically builds an execution graph patch tailored to the task (wiring up code, QA, security, accessibility review gates, and documentation steps).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Approval Gates &amp;amp; Parallel Execution&lt;/strong&gt;: A human approves the plan (&lt;code&gt;plan_approval&lt;/code&gt;). Then implementation kicks off, followed immediately by parallel review subagents auditing different facets simultaneously.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing &amp;amp; Fixed HTML Reporting&lt;/strong&gt;: Gherkin behavioral tests run, results are reviewed, and a structured HTML test report (with summary, checks, and captures) is generated and saved as an artifact.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Release Approval&lt;/strong&gt;: Finally, a human signs off on the release approval gate (&lt;code&gt;release_approval&lt;/code&gt;) to wrap up.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Key Highlights
&lt;/h2&gt;

&lt;p&gt;Here are some of the most compelling aspects of GraphOps:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Dynamic Graph Generation Tailored to Ticket Content
&lt;/h3&gt;

&lt;p&gt;Workflows aren't confined to a rigid, one-size-fits-all pipeline. For example, for a documentation-only ticket, heavy Gherkin tests are omitted; for tickets involving UI changes, an accessibility review gate is automatically injected. The AI constructs an optimal execution graph based on the approved plan.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Ffa9k6hnpqtwzulgqzumn.png" class="article-body-image-wrapper"&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%2Ffa9k6hnpqtwzulgqzumn.png" alt=" " width="799" height="276"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Fuebocz63gw3fqb2xd56y.png" class="article-body-image-wrapper"&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%2Fuebocz63gw3fqb2xd56y.png" alt=" " width="800" height="311"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Multi-Tiered Customization for Team Guidelines
&lt;/h3&gt;

&lt;p&gt;Configuration files merge hierarchically: &lt;strong&gt;Plugin Defaults → User Config (&lt;code&gt;~/.graph-ops/&lt;/code&gt;) → Project Config (&lt;code&gt;.graph-ops/&lt;/code&gt;)&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add or override team-specific review criteria (e.g., custom naming conventions, architectural rules).&lt;/li&gt;
&lt;li&gt;Define custom node types and prompt instructions in Markdown inside your repo.&lt;/li&gt;
&lt;li&gt;Customize skill behavior or swap the HTML report template for your organization's theme.
All of this is achievable without touching plugin source code—just add YAML or Markdown files, or edit them straight from the Web UI's Settings modal.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Launching Interactive Claude Code Terminals from the Web UI
&lt;/h3&gt;

&lt;p&gt;Clicking "Create", "Launch Claude", "Run", or "Refine" buttons in the Web UI immediately opens an external, interactive terminal (Terminal.app on macOS, tmux, iTerm2, etc.) running Claude Code. You can press &lt;code&gt;Cmd+Enter&lt;/code&gt; (Mac) or &lt;code&gt;Ctrl+Enter&lt;/code&gt; (Windows) to submit prompts without taking your hands off the keyboard, keeping full human control while enjoying the convenience of a browser dashboard.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Fnhfnh2hwrvtqifjal62i.png" class="article-body-image-wrapper"&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%2Fnhfnh2hwrvtqifjal62i.png" alt=" " width="799" height="267"&gt;&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;No local build or compilation is required. You can install GraphOps directly inside Claude Code using the marketplace commands:&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Add the Marketplace
&lt;/h4&gt;

&lt;p&gt;Run the following command inside Claude Code to register the GraphOps marketplace:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/plugin marketplace add imahiro-t/graph-ops
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Install the Plugin
&lt;/h4&gt;

&lt;p&gt;Next, install and enable the plugin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/plugin install graph-ops@graph-ops
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Automated Platform Binary Resolution&lt;/strong&gt;&lt;br&gt;
During the initial install, the precompiled Go binary (&lt;code&gt;graph-engine&lt;/code&gt;) matching your OS and architecture (macOS Apple Silicon / Intel, Linux, Windows) is automatically downloaded from GitHub Releases, verified via SHA256 checksums, and stored in a local cache. You don't even need a Go development environment installed on your machine.&lt;/p&gt;

&lt;p&gt;To update to future releases, simply run &lt;code&gt;claude plugin update graph-ops@graph-ops&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once installed, navigate to your target project folder and run &lt;code&gt;/ui&lt;/code&gt; to launch the dashboard and experience graph-engineered development firsthand!&lt;/p&gt;




&lt;h2&gt;
  
  
  Repository
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/imahiro-t/graph-ops" rel="noopener noreferrer"&gt;https://github.com/imahiro-t/graph-ops&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feedback and issues are warmly welcome!&lt;/p&gt;




&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lightweight Ticket Management + Graph Engineering&lt;/strong&gt;: Empowers solo developers and agile teams to execute high-caliber AI-driven development without heavy corporate tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Execution Graphs (DAG + Loopbacks + Parallelism)&lt;/strong&gt;: Formalizing plan, review, approval, implementation, parallel auditing, testing, and reporting eliminates misalignment and overlooked edge cases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Build Onboarding&lt;/strong&gt;: Get started immediately with just two commands (&lt;code&gt;/plugin marketplace add&lt;/code&gt; and &lt;code&gt;/plugin install&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seamless Synergy&lt;/strong&gt;: The blend of Claude Code skills, a standalone Go binary, and a React-powered Web UI offers a fast, fluid developer experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maximized ROI&lt;/strong&gt;: While token usage increases, the reduction in manual rework and the consistency of high-quality outputs deliver immense returns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you've ever felt that prompting alone yields unpredictable AI code or that missed reviews cause frustrating regressions, give &lt;strong&gt;GraphOps&lt;/strong&gt; a spin and experience graph-engineered development!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>graphengineering</category>
      <category>claude</category>
    </item>
  </channel>
</rss>
