<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Spec-Driven-Development on Armstrong Yan</title><link>https://yanqian.github.io/tags/spec-driven-development/</link><description>Recent content in Spec-Driven-Development on Armstrong Yan</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 24 May 2026 16:12:12 +0800</lastBuildDate><atom:link href="https://yanqian.github.io/tags/spec-driven-development/index.xml" rel="self" type="application/rss+xml"/><item><title>Remote Agent Workflow, Part 4: In the Repository, Not in the Chat</title><link>https://yanqian.github.io/posts/publish/in-the-repository-not-in-the-chat/</link><pubDate>Sun, 24 May 2026 16:12:12 +0800</pubDate><guid>https://yanqian.github.io/posts/publish/in-the-repository-not-in-the-chat/</guid><description>&lt;p>This is Part 4 of the Remote Agent Workflow series.&lt;/p>
&lt;p>The first layer of my remote AI development setup was connectivity.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">Phone -&amp;gt; Tailscale -&amp;gt; SSH -&amp;gt; Mac -&amp;gt; tmux -&amp;gt; Codex
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>That let me reach my Mac from a phone and keep long-running local tasks alive.&lt;/p>
&lt;p>The second layer was control.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">Phone -&amp;gt; Telegram Bot -&amp;gt; local Codex runtime -&amp;gt; selected repository
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>That made the phone a control surface instead of a tiny terminal.&lt;/p></description></item></channel></rss>