<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[rluisr]]></title><description><![CDATA[rluisr]]></description><link>https://rluisr.hashnode.dev</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1593680282896/kNC7E8IR4.png</url><title>rluisr</title><link>https://rluisr.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 11:10:57 GMT</lastBuildDate><atom:link href="https://rluisr.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Stop Pasting Tickets Into Chat: maestro Turns GitHub & Linear Issues Into Reviewable PRs]]></title><description><![CDATA[The missing layer between "coding agents" and shipping work

Coding agents are excellent at writing code.
They're much worse at owning a ticket end-to-end:
scoping it, splitting it into the right unit]]></description><link>https://rluisr.hashnode.dev/stop-pasting-tickets-into-chat-maestro-turns-github-linear-issues-into-reviewable-prs</link><guid isPermaLink="true">https://rluisr.hashnode.dev/stop-pasting-tickets-into-chat-maestro-turns-github-linear-issues-into-reviewable-prs</guid><category><![CDATA[AI]]></category><category><![CDATA[Open Source]]></category><category><![CDATA[GitHub]]></category><category><![CDATA[devtools]]></category><category><![CDATA[claude]]></category><category><![CDATA[automation]]></category><category><![CDATA[Software Engineering]]></category><dc:creator><![CDATA[rluisr]]></dc:creator><pubDate>Thu, 23 Jul 2026 12:19:52 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6a62055c725b37fc2ecdcbd0/3ec2e221-5660-4023-91ad-80962574d091.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h1>The missing layer between "coding agents" and shipping work</h1>
<p><img src="https://raw.githubusercontent.com/ca-srg/maestro/main/docs/ogp.jpeg" alt="maestro — Decompose GitHub issues. Ship pull requests. Autonomously." /></p>
<p>Coding agents are excellent at <strong>writing code</strong>.</p>
<p>They're much worse at <strong>owning a ticket end-to-end</strong>:
scoping it, splitting it into the right units of work, implementing in parallel, opening one clean PR, and leaving a trail you can audit later.</p>
<p>That gap is expensive. Teams paste issues into a chat box, babysit with "please continue," and still get messy diffs that are hard to review.</p>
<p><strong><a href="https://github.com/ca-srg/maestro">maestro</a></strong> is the missing layer.</p>
<blockquote>
<p><strong>Paste a GitHub or Linear issue. Get a pull request.</strong></p>
</blockquote>
<p>It's an open-source multi-agent system built on <a href="https://docs.anthropic.com/">Claude Managed Agents</a> that turns issues into shipped, reviewable code — autonomously.</p>
<hr />
<h2>Why maestro exists</h2>
<table>
<thead>
<tr>
<th>You do</th>
<th>maestro does</th>
</tr>
</thead>
<tbody><tr>
<td>Open a <strong>GitHub</strong> or <strong>Linear</strong> issue</td>
<td>Ingest it as the parent task</td>
</tr>
<tr>
<td>Watch the WebUI</td>
<td><strong>Optimally decompose</strong> into focused sub-issues</td>
</tr>
<tr>
<td>Review <strong>one</strong> PR</td>
<td>Implementers ship code; work consolidates into a single PR</td>
</tr>
<tr>
<td>Ask "what did the agent do?"</td>
<td><strong>Audit logs + run events</strong> preserve every phase</td>
</tr>
</tbody></table>
<p>No chat babysitting. No "please continue."
<strong>Issue in → PR out</strong> — and a record of how you got there.</p>
<h3>The real problems with "just use an agent"</h3>
<ol>
<li><strong>Chat doesn't scale for tickets</strong> — long threads drift; context dies; nobody owns the outcome.</li>
<li><strong>One giant agent loop on a fat issue</strong> produces sprawling diffs and weak review boundaries.</li>
<li><strong>Trust requires receipts</strong> — teams need to know which tools ran, what changed, and why.</li>
</ol>
<p>maestro is designed around those three pain points.</p>
<hr />
<h2>See it in action</h2>
<h3>Start a run from the WebUI</h3>
<p>Pick a repo and issue, then hit run. No chat thread to babysit.</p>
<p><img src="https://raw.githubusercontent.com/ca-srg/maestro/main/docs/screenshots/run-new.png" alt="Start a new run" /></p>
<h3>Watch progress across the multi-agent pipeline</h3>
<p>Orchestrator decomposes work; implementers ship in parallel; everything consolidates into one PR.</p>
<p><img src="https://raw.githubusercontent.com/ca-srg/maestro/main/docs/screenshots/runs-list.png" alt="Runs list" /></p>
<h3>Manage connected repositories</h3>
<p>GitHub App auth per installation — no shared PAT sprawl.</p>
<p><img src="https://raw.githubusercontent.com/ca-srg/maestro/main/docs/screenshots/article-repositories.png" alt="Repositories" /></p>
<h3>MCP client settings</h3>
<p>GitHub MCP built in; plug in Figma, Linear, or your own stdio servers via the MCP Gateway.</p>
<p><img src="https://raw.githubusercontent.com/ca-srg/maestro/main/docs/screenshots/article-mcp-client-settings.png" alt="MCP client settings" /></p>
<h3>Prompt versioning &amp; diffs</h3>
<p>Tune system prompts from the UI without redeploying — and keep a trail of what changed.</p>
<p><img src="https://raw.githubusercontent.com/ca-srg/maestro/main/docs/screenshots/article-prompt-version-diff.png" alt="Prompt version diff" /></p>
<hr />
<h2>How it works</h2>
<ol>
<li><strong>Ingest</strong> a parent task from <strong>GitHub Issues</strong> or <strong>Linear</strong> (identifier or URL).</li>
<li><strong>Orchestrator</strong> plans and <strong>decomposes</strong> into the smallest set of independent, implementable sub-issues — boundaries chosen for parallel work and clean review, not arbitrary chunking.</li>
<li><strong>Implementers</strong> (Claude Managed Agents) pick up each sub-issue and write real code against your repo via <strong>GitHub MCP</strong>.</li>
<li><strong>Finalize</strong> merges the work into <strong>one pull request</strong> ready for human review.</li>
<li><strong>Audit</strong> — structured audit logs and per-run event history capture phases, agent/tool activity, and outcomes (WebUI + logs; OpenTelemetry optional).</li>
</ol>
<p>Trigger from the <strong>WebUI</strong>, the <strong>HTTP API</strong>, or a <strong>GitHub repo poller</strong> that watches labeled issues. Same pipeline for Linear origins.</p>
<hr />
<h2>What you get</h2>
<ul>
<li><strong>GitHub Issues and Linear</strong> — same orchestrate → implement → PR path</li>
<li><strong>Optimal task decomposition</strong> — focused, parallelizable sub-issues instead of one mega-loop</li>
<li><strong>Audit log retention</strong> — HTTP / session / tools events + durable run history in the WebUI</li>
<li><strong>Multi-agent by design</strong> — coordinator + implementer roster</li>
<li><strong>Real PRs, not sidebar diffs</strong> — branches, commits, reviewable pull requests on your GitHub</li>
<li><strong>GitHub App auth</strong> — installation tokens per repo (no shared PAT sprawl)</li>
<li><strong>MCP-native</strong> — GitHub MCP built in; Figma, Linear, or custom stdio servers via MCP Gateway</li>
<li><strong>Self-hosted sandboxes</strong> — keep execution on your infra with <code>ANTHROPIC_ENVIRONMENT_ID</code></li>
<li><strong>OpenTelemetry-ready</strong> — traces and metrics when you want them</li>
</ul>
<hr />
<h2>Stack</h2>
<ul>
<li><strong>Runtime:</strong> Bun + TypeScript</li>
<li><strong>Agents:</strong> Anthropic Claude Managed Agents (multi-agent coordinator)</li>
<li><strong>HTTP / UI:</strong> Hono SSR dashboard</li>
<li><strong>GitHub:</strong> GitHub App + official GitHub MCP</li>
<li><strong>Extensibility:</strong> MCP Gateway (stdio → remote MCP)</li>
</ul>
<hr />
<h2>Quick start</h2>
<pre><code class="language-bash">mise install
bun install
export ANTHROPIC_API_KEY=...
export GITHUB_APP_ID=...
export GITHUB_APP_PRIVATE_KEY_PATH=/path/to/github-app.pem
bun run start
# → http://127.0.0.1:3000
</code></pre>
<p>Open the dashboard, pick a repo + issue number, hit run.</p>
<p>Full setup (GitHub App, containers, MCP Gateway, self-hosted workers, GCP Terraform):
<strong><a href="https://github.com/ca-srg/maestro/wiki/Installation">Installation wiki</a></strong> · <strong><a href="https://github.com/ca-srg/maestro/wiki/Architecture">Architecture</a></strong> · <strong><a href="https://github.com/ca-srg/maestro">Repo</a></strong></p>
<hr />
<h2>Who should try this</h2>
<ul>
<li>Teams drowning in backlog tickets that are "agentable" but not chat-friendly</li>
<li>Orgs that want <strong>Issue → PR</strong> with human review still in the loop</li>
<li>Anyone who needs <strong>auditability</strong> for autonomous coding agents</li>
<li>Builders already on Claude / MCP who want orchestration, not another chatbot</li>
</ul>
<hr />
<h2>Bottom line</h2>
<p>Stop pasting tickets into a chat box.</p>
<p>Point <strong>maestro</strong> at a GitHub or Linear issue. Get an optimally decomposed plan, a real PR, and an audit trail of every step.</p>
<p>🔗 <strong><a href="https://github.com/ca-srg/maestro">https://github.com/ca-srg/maestro</a></strong></p>
]]></content:encoded></item></channel></rss>