<- Back to index

Overview

Deputy is a local daemon that watches a tracker for ready work and resolves each item autonomously. It creates an isolated git worktree, runs the agent, pushes a branch, opens a draft PR, and keeps the case journaled so it can survive restarts or pauses without losing context. The tracker layer is pluggable and the agent command is swappable, so the workflow can adapt to Jira, GitHub Issues, Claude, or another backend without being rewritten.

The current system is built around real operational states, not just happy-path automation: it can stack dependent tickets, run sibling work in parallel, surface review comments, let it pause when it needs your call, and recover failed or stopped cases from the dashboard.

Why it matters

It turns ready-to-work tickets into actual pull requests without requiring copy-paste prompts into a chat window.
It can turn a whole epic into a chain of stacked PRs, then keep the children moving in parallel as dependencies land.
Trackers and agent runners are pluggable, so the same workflow can adapt to Jira, GitHub Issues, Claude, or another command.
Each case runs in an isolated worktree, or resumes an existing branch when one already exists, so the main repo stays clean.
It surfaces unresolved review comments, asks for help when it needs a decision, and keeps those states visible instead of burying them in logs.
It can recover from failing CI and preserve failed or stopped cases as retryable dashboard cards instead of dropping them on the floor.

Dashboard, review, and recovery

Deputy dashboard

The dashboard shows each deputy, its active cases, and the current status of the autonomous work being performed.

Live chat with a deputy

The case view keeps the conversation and context attached to the live run so you can steer implementation without leaving the dashboard.

Review comments surfaced on the case

Review feedback is shown on the case itself, so Deputy can react to comments without replying directly on the pull request.

Needs your call state

When the agent hits a decision point it cannot safely guess, it pauses and asks for a human answer in the same thread.

Failed case kept for retry

Broken runs are preserved as failed cards with their error context, which keeps them visible and easy to rerun later.

Stack

Node.jsTypeScriptGitHub APIJiraClaude Agent SDK

Why it belongs here

This project sits squarely in the middle of product thinking and system design: it is not only an agent script, but a workflow that turns backlog items into working software with observability, isolation, review handling, human intervention, and retryable failure states. That makes it a strong example of practical automation in a portfolio.