<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>WithAgents — Agentic Development</title>
    <description>Writing on building production software with AI agents. The WithAgents field journal — patterns, tools, and field notes from the practice.</description>
    <link>https://withagents.dev</link>
    <atom:link href="https://withagents.dev/feed.xml" rel="self" type="application/rss+xml"/>
    <language>en-us</language>
    <lastBuildDate>Sat, 27 Jun 2026 10:09:58 GMT</lastBuildDate>
    <item>
      <title><![CDATA[23,479 Sessions: What Works in Agentic Dev]]></title>
      <description><![CDATA[What 11.6GB of session data across 27 projects reveals about building production software with AI agents]]></description>
      <link>https://withagents.dev/posts/post-01-series-launch</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-01-series-launch</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[3 Agents Found the Bug 1 Agent Missed]]></title>
      <description><![CDATA[Why multi-agent consensus catches what solo review cannot]]></description>
      <link>https://withagents.dev/posts/post-02-multi-agent-consensus</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-02-multi-agent-consensus</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[I Banned Unit Tests and Shipped Faster]]></title>
      <description><![CDATA[Why functional validation replaced testing when AI writes the code]]></description>
      <link>https://withagents.dev/posts/post-03-functional-validation</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-03-functional-validation</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[The 7-Layer Prompt Engineering Stack]]></title>
      <description><![CDATA[How layered enforcement turned written rules into mechanical discipline across 23,479 AI coding sessions]]></description>
      <link>https://withagents.dev/posts/post-07-prompt-engineering-stack</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-07-prompt-engineering-stack</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[194 Parallel Agents, Zero Merge Conflicts]]></title>
      <description><![CDATA[Git worktrees give each AI agent its own filesystem — a five-stage pipeline makes sure they all come back together]]></description>
      <link>https://withagents.dev/posts/post-06-parallel-worktrees</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-06-parallel-worktrees</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[35 Worktrees, 12 Agents, Zero Merge Conflicts]]></title>
      <description><![CDATA[Parallelism gets agents working at the same time. Choreography is what keeps their work from eating itself alive when they finish.]]></description>
      <link>https://withagents.dev/posts/post-14-multi-agent-merge</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-14-multi-agent-merge</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Spec-Driven Development: Why YAML Beats Verbal Instructions for AI Agents]]></title>
      <description><![CDATA[A single YAML file replaces meetings, tickets, and Slack threads — agents read it, build in parallel, and ship without asking clarifying questions]]></description>
      <link>https://withagents.dev/posts/post-11-spec-driven-development</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-11-spec-driven-development</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[The Designer-Less Design Workflow: Stitch MCP and the Death of Figma Handoffs]]></title>
      <description><![CDATA[269 AI-generated screens, zero Figma files, and the branding bug that taught me to treat prompts as build artifacts]]></description>
      <link>https://withagents.dev/posts/post-10-stitch-design-to-code</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-10-stitch-design-to-code</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Teaching AI to Remember: Cross-Session Memory]]></title>
      <description><![CDATA[A SQLite observation store and MCP memory server that turns 23,479 sessions of amnesia into searchable institutional knowledge]]></description>
      <link>https://withagents.dev/posts/post-12-cross-session-memory</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-12-cross-session-memory</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[84 Thinking Steps to Find a One-Line Bug]]></title>
      <description><![CDATA[How structured hypothesis-test-revise chains solve bugs that brute force debugging never will]]></description>
      <link>https://withagents.dev/posts/post-13-sequential-thinking-debugging</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-13-sequential-thinking-debugging</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[The Anatomy of a Claude Code Skill]]></title>
      <description><![CDATA[How SKILL.md files turn repeatable workflows into invocable prompt programs — and the factory that generates them]]></description>
      <link>https://withagents.dev/posts/post-15-skills-anatomy</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-15-skills-anatomy</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Building Claude Code Plugins That Actually Work]]></title>
      <description><![CDATA[Hooks, skills, and the enforcement layer that turns agent suggestions into hard stops across 23,479 sessions]]></description>
      <link>https://withagents.dev/posts/post-16-claude-code-plugins</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-16-claude-code-plugins</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[iOS Patterns from 4,597 Agent Sessions]]></title>
      <description><![CDATA[What 4,597 sessions taught me about SwiftUI, state, and survival — five patterns from three iOS apps that earned their keep or crashed.]]></description>
      <link>https://withagents.dev/posts/post-05-ios-patterns</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-05-ios-patterns</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[SDK vs CLI: The Decision Framework That Took 23,479 Sessions to Learn]]></title>
      <description><![CDATA[When to call the API directly, when to use Claude Code CLI, and when you need both — a practical decision framework from across the series]]></description>
      <link>https://withagents.dev/posts/post-18-sdk-vs-cli</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-18-sdk-vs-cli</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[The Five-Layer Streaming Bridge]]></title>
      <description><![CDATA[Token-by-token Claude streaming on iOS — after four failed architectures]]></description>
      <link>https://withagents.dev/posts/post-04-ios-streaming-bridge</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-04-ios-streaming-bridge</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Ralph: The Self-Correcting Hat-Based Loop]]></title>
      <description><![CDATA[One hat per session, one event per hat, and the 1:47 AM guidance command that finished 28 tasks by morning]]></description>
      <link>https://withagents.dev/posts/post-08-ralph-orchestrator</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-08-ralph-orchestrator</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Mining 23,479 Sessions: What 3.4 Million Lines of AI Logs Actually Reveal]]></title>
      <description><![CDATA[Building a pipeline to extract patterns from 11.6GB of Claude Code session data — and discovering the series was using the wrong numbers]]></description>
      <link>https://withagents.dev/posts/post-09-code-tales</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-09-code-tales</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[The Claude Code Builder (CCB) Evolution: From Bash Script to Autonomous Builder]]></title>
      <description><![CDATA[Four generations of Claude Code builders — each one a lesson that cost real money and real patience to learn]]></description>
      <link>https://withagents.dev/posts/post-17-ccb-evolution</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-17-ccb-evolution</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Anneal: Three Planning Variants for Agentic Development]]></title>
      <description><![CDATA[Linear, tournament, and convergence pipelines that turn rough ideas into executable plans]]></description>
      <link>https://withagents.dev/posts/post-19-anneal</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-19-anneal</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Crucible: Refusal-Driven Verification for Claude Code]]></title>
      <description><![CDATA[The gate between 'I did the work' and 'the work is done' — 10 phases, 3 reviewers, 3 oracles, zero override flags.]]></description>
      <link>https://withagents.dev/posts/post-20-crucible</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-20-crucible</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[The Economics of a Session]]></title>
      <description><![CDATA[Token spend per task complexity, when Opus actually pays back over Sonnet, and the cost-of-defect curve that makes "use the cheap model" the most expensive choice you can make]]></description>
      <link>https://withagents.dev/posts/post-21-economics-of-a-session</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-21-economics-of-a-session</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Hooks as a Control Plane]]></title>
      <description><![CDATA[Four hook events form the entire governance surface of Claude Code — refuse tools, gate commits, block deploys, enforce evidence. Once you see it as a control plane, the whole agent stack changes shape.]]></description>
      <link>https://withagents.dev/posts/post-22-hook-control-plane</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-22-hook-control-plane</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Prompt Caching Economics]]></title>
      <description><![CDATA[Cache reads cost a tenth what cache writes cost, and most agents leave that 90% discount on the table because nobody structures their system prompt for hits. Here's how to order your messages so the cache pays you back.]]></description>
      <link>https://withagents.dev/posts/post-23-prompt-caching-economics</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-23-prompt-caching-economics</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Custom MCP Servers]]></title>
      <description><![CDATA[When the prebuilt MCP servers run out of road, you write your own. The protocol is a four-method handshake, the transport is stdio or HTTP, and the whole thing fits in 200 lines of TypeScript.]]></description>
      <link>https://withagents.dev/posts/post-24-custom-mcp-servers</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-24-custom-mcp-servers</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Docs When Readers Aren't Human]]></title>
      <description><![CDATA[AGENTS.md, SKILL.md, CLAUDE.md — three doc formats nobody asked for, written for an audience that doesn't read narrative. The 95:5 ratio between human-targeted and agent-targeted docs is about to flip.]]></description>
      <link>https://withagents.dev/posts/post-25-docs-for-non-human-readers</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-25-docs-for-non-human-readers</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Giving Agents Secrets Without Giving Agents Secrets]]></title>
      <description><![CDATA[The pattern: secrets enter the agent's environment at the tool boundary, not in the prompt. Vault-injected env. 1Password op-run envelopes. Hooks that scrub before write. Your session JSONL gets archived; nothing in there should be sensitive.]]></description>
      <link>https://withagents.dev/posts/post-26-secrets-without-secrets</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-26-secrets-without-secrets</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[The Session Is the Artifact]]></title>
      <description><![CDATA[The JSONL session file is the primary deliverable, not the resulting code. Replayable, line-addressable, auditable — 11.6 GB across 538 directories of permanent record telling you exactly how every commit got written.]]></description>
      <link>https://withagents.dev/posts/post-27-session-as-artifact</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-27-session-as-artifact</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[The AI-Pattern Detector That Ships This Series]]></title>
      <description><![CDATA[Six banned phrases, three syntactic patterns, one cosine-similarity fingerprint, and a humanize loop that rewrites flagged passages until the voice matches. The gate every post in this series passes through.]]></description>
      <link>https://withagents.dev/posts/post-28-ai-pattern-detector</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-28-ai-pattern-detector</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[The Skill Marketplace Problem]]></title>
      <description><![CDATA[Seventy-one marketplaces subscribed. One hundred thirty-two plugins installed. Twenty-six marketplaces installed-but-unused. The discovery overhead is the bottleneck — and it's getting worse.]]></description>
      <link>https://withagents.dev/posts/post-29-skill-marketplace-problem</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-29-skill-marketplace-problem</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Notification Architecture for Async Agents]]></title>
      <description><![CDATA[Agents finish at three in the morning. Severity model, channel routing, the exhausted-state-fires-alert pattern. The notification layer that lets you sleep while your work runs.]]></description>
      <link>https://withagents.dev/posts/post-30-notification-architecture</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-30-notification-architecture</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Drift Detection]]></title>
      <description><![CDATA[Specs and code diverge silently. The 60-day audit pattern, the four-class taxonomy (dead, drifted, lying, fine), and what I do every quarter to make sure my docs still describe what my code actually does.]]></description>
      <link>https://withagents.dev/posts/post-31-drift-detection</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-31-drift-detection</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[The 529 Cascade]]></title>
      <description><![CDATA[Anthropic returns 529 (overload) intermittently. Naive retries themselves consume the bucket and storm the API a hundred times over. The retry policy that costs less, not more.]]></description>
      <link>https://withagents.dev/posts/post-32-the-529-cascade</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-32-the-529-cascade</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Orbit: Find Drift Between What You Asked and What Actually Shipped]]></title>
      <description><![CDATA[Plans are evidence, not history. Mining the JSONL session transcripts you already have on disk to compare intent against claim against codebase truth.]]></description>
      <link>https://withagents.dev/posts/post-33-orbit</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-33-orbit</guid>
      <pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[When Your Drafter Doubles the Body: Building the WithAgents Content Plugin]]></title>
      <description><![CDATA[The clear step in our LinkedIn drafter never actually cleared. The new body pasted on top of the old one, the editor doubled, and the bug only showed up on the 34th run. Here is what we shipped instead.]]></description>
      <link>https://withagents.dev/posts/post-34-withagents-plugin</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-34-withagents-plugin</guid>
      <pubDate>Tue, 26 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Auditing the Agent: Mining My Own Sessions to Catch 27 Mistakes]]></title>
      <description><![CDATA[The agent's session transcripts are a labeled record of every time it diverged from what I asked. So I mined them — and made it grade its own work.]]></description>
      <link>https://withagents.dev/posts/post-38-auditing-the-agent</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-38-auditing-the-agent</guid>
      <pubDate>Sat, 20 Jun 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[The Machine That Writes These Posts]]></title>
      <description><![CDATA[A content pipeline of 24 commands and 11 skills mines my sessions, drafts the post, and refuses to let any machine click Publish. This one was made by it.]]></description>
      <link>https://withagents.dev/posts/post-39-the-content-machine</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-39-the-content-machine</guid>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Shipping awesome.video: 2,365 Resources, Built Mostly by Agents]]></title>
      <description><![CDATA[A curated directory of video-development resources is now live. It took 1,185 commits and thirteen months, and coding agents wrote or drove most of them. Here is the honest recap.]]></description>
      <link>https://withagents.dev/posts/post-40-shipping-awesome-video</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-40-shipping-awesome-video</guid>
      <pubDate>Fri, 26 Jun 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Sublimate: Three Tiers for Distilling Workflows From Your Own Sessions]]></title>
      <description><![CDATA[Anthropic shipped Dynamic Workflows in Claude Code this week. The harder question is which of your hand-rolled patterns belongs as a Workflow, which belongs as a Skill, and which belongs as a Subagent.]]></description>
      <link>https://withagents.dev/posts/post-35-sublimate</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-35-sublimate</guid>
      <pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[Shannon v1.2.0: Multi-Stage Agentic Work as a Sequence of Provable Steps]]></title>
      <description><![CDATA[A Claude Code plugin that refuses to say 'done' until the evidence is on disk. 36 skills, 11 agents, 22 commands, 7 hooks — and a doctor that reads its own contract.]]></description>
      <link>https://withagents.dev/posts/post-36-shannon</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-36-shannon</guid>
      <pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
    <item>
      <title><![CDATA[LinkedIn Has No Pulse API: Designing a Pipeline Around a Manual Gate]]></title>
      <description><![CDATA[The publisher fires LinkedIn feed posts on its own. It cannot create a Pulse article. So I built the whole content OS around one irreducible human paste.]]></description>
      <link>https://withagents.dev/posts/post-37-no-pulse-api</link>
      <guid isPermaLink="true">https://withagents.dev/posts/post-37-no-pulse-api</guid>
      <pubDate>Tue, 16 Jun 2026 00:00:00 GMT</pubDate>
      <author>Nick Krzemienski</author>
    </item>
  </channel>
</rss>