<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>K@claudecode on Martin Sukany</title><link>https://sukany.cz/tags/k@claudecode/</link><description>Recent content in K@claudecode on Martin Sukany</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 12 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://sukany.cz/tags/k@claudecode/index.xml" rel="self" type="application/rss+xml"/><item><title>Why I Use Two AI Assistants Instead of One</title><link>https://sukany.cz/blog/2026-03-12-two-ai-assistants/</link><pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate><guid>https://sukany.cz/blog/2026-03-12-two-ai-assistants/</guid><description>&lt;p&gt;I stopped asking my personal AI assistant to write code. That decision — more than any prompt engineering trick or model upgrade — improved the quality of what I get back. This post is about why, and what the setup actually looks like in practice.&lt;/p&gt;
&lt;h2 id="the-problem-with-asking-your-personal-assistant-to-write-code"&gt;The problem with asking your personal assistant to write code&lt;/h2&gt;
&lt;p&gt;My personal assistant, Daneel, knows a lot about me. It tracks my calendar, triages my email, controls my Home Assistant devices, remembers past conversations, and generates a morning briefing before I&amp;rsquo;ve had coffee. That rich context is exactly what makes it useful for life-admin. It&amp;rsquo;s also exactly what makes it a poor choice for writing code.&lt;/p&gt;
&lt;p&gt;When I asked Daneel to refactor a script in a session already loaded with calendar events, email threads, and device states, the suggestions came back hedged, occasionally irrelevant, and harder to trust. The model wasn&amp;rsquo;t broken — it was trying to reason across too many unrelated domains at once. Calendar management and Go module refactoring are not related problems, but they were sharing the same context window, and that matters.&lt;/p&gt;
&lt;p&gt;I think of it as desk space. A programmer works better with a clean desk focused on one problem than with every open project, email, and to-do list spread across the surface. A language model&amp;rsquo;s attention works the same way. Pack enough unrelated context into the window and the model starts making connections that aren&amp;rsquo;t there, hedging where it should be precise, or simply losing the thread.&lt;/p&gt;
&lt;h2 id="what-each-agent-actually-does"&gt;What each agent actually does&lt;/h2&gt;
&lt;p&gt;The split is clean by design. Daneel is the persistent layer — always on, full life context, memory across sessions, proactive. It handles the entire life-admin surface: heartbeats, email triage, Home Assistant automations, calendar nudges, morning briefings. It knows who I am and what I&amp;rsquo;m doing across every domain of my life. That&amp;rsquo;s its job.&lt;/p&gt;
&lt;p&gt;Claude Code is the specialist. It&amp;rsquo;s on-demand, scoped to a repository, and knows nothing about my calendar or email unless I explicitly tell it something. When it gets a task, it gets a working directory and a description. That&amp;rsquo;s the full context. Nothing else bleeds in.&lt;/p&gt;
&lt;p&gt;The analogy that fits best is a generalist doctor versus a surgeon. Your GP knows your full medical history — that breadth is valuable for holistic care. But when you need surgery, you want the surgeon focused on the procedure, not briefed on your tax situation. The surgeon&amp;rsquo;s narrow focus is a feature, not a limitation.&lt;/p&gt;
&lt;h2 id="why-narrow-context-produces-better-code"&gt;Why narrow context produces better code&lt;/h2&gt;
&lt;p&gt;The difference is observable before it&amp;rsquo;s explainable. When Claude Code gets a task with only the relevant repository in scope, the output is sharper. It references actual code, proposes concrete changes, and doesn&amp;rsquo;t pad responses with caveats about things it can&amp;rsquo;t see. When the same model does coding work inside a session loaded with unrelated context, the quality drops in ways that are subtle but consistent: more hedging, less precision, occasional suggestions that only make sense if you squint.&lt;/p&gt;
&lt;p&gt;I haven&amp;rsquo;t run controlled experiments. This is observational. But the pattern is consistent enough that I&amp;rsquo;ve made it a rule: coding tasks get their own context, every time.&lt;/p&gt;
&lt;p&gt;The mechanism matters too. Claude Code gets a specific working directory. It explores the repo, reads the relevant files, and builds its understanding from the code itself — not from my description of my life. That working-directory scoping is the primary context control, and it works.&lt;/p&gt;
&lt;h2 id="how-the-handoff-works"&gt;How the handoff works&lt;/h2&gt;
&lt;p&gt;From my perspective, the interaction is simple. I tell Daneel what I want done: &amp;ldquo;refactor the caldav script to handle token refresh.&amp;rdquo; Daneel constructs the task, points Claude Code at the relevant file and any context it needs, spawns it as a background process, and monitors for completion. When it&amp;rsquo;s done, the result arrives in Matrix. I haven&amp;rsquo;t switched tools or changed context myself.&lt;/p&gt;
&lt;p&gt;The handoff is where the quality of the split lives or dies. Daneel has to construct a precise task description — if it&amp;rsquo;s vague, Claude Code still gets a muddled context, and the problem just moves upstream. Writing a clear task handoff is a real skill, and I&amp;rsquo;ve had to tune it. But a well-constructed handoff is much easier to get right than expecting a single model to maintain useful quality across a large mixed-domain context.&lt;/p&gt;
&lt;p&gt;The user experience is a single conversation. The complexity — spawning, monitoring, result delivery — is hidden. That&amp;rsquo;s the point.&lt;/p&gt;
&lt;h2 id="the-trade-offs-i-live-with"&gt;The trade-offs I live with&lt;/h2&gt;
&lt;p&gt;This setup is not free. Two agents means two failure modes, two configurations, and a non-trivial orchestration layer. When something breaks, it&amp;rsquo;s not always obvious whether the problem is in the task description, the spawning mechanism, or Claude Code itself. Debugging the pipeline is its own skill.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s also latency. Spinning up a coding agent for every task has overhead. For a quick one-liner, it&amp;rsquo;s overkill. The split pays off for tasks with real scope — a refactor, a new feature, a bug that requires reading multiple files. For something trivial, I still just ask Daneel directly and accept the slightly lower quality.&lt;/p&gt;
&lt;p&gt;Maintenance is real. Two tools have separate update cycles, separate auth quirks, and separate failure modes. I&amp;rsquo;ve hit cases where an update changed the spawning interface, or where Claude Code&amp;rsquo;s behavior shifted between versions. Keeping both working smoothly is ongoing work, not a one-time setup.&lt;/p&gt;
&lt;p&gt;And this setup assumes comfort with CLI tooling and configuration files. It&amp;rsquo;s not plug-and-play for someone who wants a simpler life.&lt;/p&gt;
&lt;h2 id="what-i-d-do-differently"&gt;What I&amp;rsquo;d do differently&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;d set up the context separation earlier. For too long I tried to get Daneel to do everything, and I blamed the model when quality was inconsistent. The issue wasn&amp;rsquo;t the model — it was me asking it to be two things at once.&lt;/p&gt;
&lt;p&gt;If I were starting over, I&amp;rsquo;d also invest more upfront in the task handoff format. The quality of Claude Code&amp;rsquo;s output is almost entirely determined by the quality of the task description. Getting that right — concise, specific, with the right working directory and just enough background — is where the leverage is.&lt;/p&gt;
&lt;p&gt;Would I set this up again? Yes. The cognitive overhead of the orchestration is less than the cognitive overhead of getting mediocre code back and figuring out why.&lt;/p&gt;
&lt;p&gt;The principle here doesn&amp;rsquo;t require my specific tooling. If you&amp;rsquo;re using any combination of AI assistants — whether that&amp;rsquo;s two Claude sessions, a personal assistant alongside a coding agent, or even just separate chat threads — the same logic applies: don&amp;rsquo;t mix life-admin context with coding context. Keep them separate. The model on the other end will produce better output, even if it can&amp;rsquo;t tell you why.&lt;/p&gt;</description></item></channel></rss>