<?xml version="1.0" encoding="utf-8"?>
<!-- GENERATED by build.mjs from blog/<slug>/index.html — do not hand-edit. -->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Project 4 Blog</title>
    <link>https://project4.co/blog/</link>
    <description>Articles on engineering, design, and building with AI agents, by Chris Tagliaferro.</description>
    <language>en-us</language>
    <atom:link href="https://project4.co/blog/feed.xml" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Mon, 10 Aug 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>Physical AI: When the Failure Mode Has Mass</title>
      <link>https://project4.co/blog/physical-ai/</link>
      <guid isPermaLink="true">https://project4.co/blog/physical-ai/</guid>
      <pubDate>Mon, 10 Aug 2026 00:00:00 GMT</pubDate>
      <category>industry</category>
      <description>What happens when a model gets a body. The two shifts that made physical AI real, why the reality gap between simulation and the world is the whole job, why a 99 percent success rate counts as a failure, and why robotics needs a safe-stop that is not the learned policy.</description>
    </item>
    <item>
      <title>Prompt Injection Awareness</title>
      <link>https://project4.co/blog/prompt-injection-awareness/</link>
      <guid isPermaLink="true">https://project4.co/blog/prompt-injection-awareness/</guid>
      <pubDate>Sun, 02 Aug 2026 00:00:00 GMT</pubDate>
      <category>security</category>
      <description>A language model cannot reliably separate your instructions from instructions hidden in the content it reads. Why prompt injection matters most for local coding agents, and the architecture that actually contains it.</description>
    </item>
    <item>
      <title>Stop Shipping AI-Looking Websites: A Field Guide to Directing Claude Code</title>
      <link>https://project4.co/blog/stop-claude-code-generic-design/</link>
      <guid isPermaLink="true">https://project4.co/blog/stop-claude-code-generic-design/</guid>
      <pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate>
      <category>design</category>
      <description>Generic AI web design is a directing problem, not a tooling one. A field guide to getting distinctive, subject-driven front-end out of Claude Code.</description>
    </item>
    <item>
      <title>Five Ways to Keep Your AI Agent From Shipping Insecure Code</title>
      <link>https://project4.co/blog/securing-ai-written-code/</link>
      <guid isPermaLink="true">https://project4.co/blog/securing-ai-written-code/</guid>
      <pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate>
      <category>security</category>
      <description>AI agents write code fast, and they write insecure code with exactly the same confidence as secure code. Here are five practices that raise the floor.</description>
    </item>
    <item>
      <title>A Bigger Context Window Won't Save You</title>
      <link>https://project4.co/blog/a-bigger-context-window-wont-save-you/</link>
      <guid isPermaLink="true">https://project4.co/blog/a-bigger-context-window-wont-save-you/</guid>
      <pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate>
      <category>context</category>
      <description>The fix for an AI agent that keeps getting your codebase wrong is rarely a smarter model or a longer context window. It's deciding, deliberately, what the model gets to see.</description>
    </item>
    <item>
      <title>Your AI Coding Agent Doesn't Need a Better Prompt</title>
      <link>https://project4.co/blog/your-ai-agent-doesnt-need-a-better-prompt/</link>
      <guid isPermaLink="true">https://project4.co/blog/your-ai-agent-doesnt-need-a-better-prompt/</guid>
      <pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate>
      <category>context</category>
      <description>The honeymoon with</description>
    </item>
    <item>
      <title>Ten Things I Wish I Knew When I Started Coding With Agents</title>
      <link>https://project4.co/blog/ten-things-agentic-coding/</link>
      <guid isPermaLink="true">https://project4.co/blog/ten-things-agentic-coding/</guid>
      <pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate>
      <category>agents</category>
      <description>Ten lessons from coding with AI agents: why prompts were never the bottleneck, why a working demo proves little, and why judgment became the scarce skill.</description>
    </item>
    <item>
      <title>Have a Working Knowledge of Everything You Throw at the AI</title>
      <link>https://project4.co/blog/working-knowledge-fundamentals/</link>
      <guid isPermaLink="true">https://project4.co/blog/working-knowledge-fundamentals/</guid>
      <pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate>
      <category>industry</category>
      <description>One rule for working with AI: never hand it a task you could not do or check yourself. Why fundamentals are the error-correction layer no abstraction has replaced, why AI is not the next compiler, and what that means for what you learn and who you hire.</description>
    </item>
    <item>
      <title>Loop Engineering: When You Stop Prompting and Start Building the Loop That Prompts</title>
      <link>https://project4.co/blog/loop-engineering/</link>
      <guid isPermaLink="true">https://project4.co/blog/loop-engineering/</guid>
      <pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate>
      <category>agents</category>
      <description>Loop engineering: designing the system that prompts, checks, remembers, and re-runs an AI agent instead of you typing every next instruction.</description>
    </item>
    <item>
      <title>The AI Bottleneck Moved From Chips to Power</title>
      <link>https://project4.co/blog/ai-energy-bottleneck/</link>
      <guid isPermaLink="true">https://project4.co/blog/ai-energy-bottleneck/</guid>
      <pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
      <category>industry</category>
      <description>For two years silicon was the scarce thing. Now it is electricity: data-center power demand is set to double by 2030, projects are being canceled for lack of it, and it reaches all the way down to your cloud bill and your architecture.</description>
    </item>
    <item>
      <title>Why Vibe Designing Will Outlast Vibe Coding</title>
      <link>https://project4.co/blog/vibe-designing/</link>
      <guid isPermaLink="true">https://project4.co/blog/vibe-designing/</guid>
      <pubDate>Sat, 27 Jun 2026 00:00:00 GMT</pubDate>
      <category>design</category>
      <description>Why vibe designing outlasts unguided vibe coding: a faster first loop that lets taste lead, plus the structure that makes any generation trustworthy. And what 'looks right' still cannot verify.</description>
    </item>
    <item>
      <title>Build a Team of Specialists: Subagents in Claude Code</title>
      <link>https://project4.co/blog/claude-code-subagents/</link>
      <guid isPermaLink="true">https://project4.co/blog/claude-code-subagents/</guid>
      <pubDate>Thu, 25 Jun 2026 00:00:00 GMT</pubDate>
      <category>agents</category>
      <description>Subagents give a side task its own context window, tools, and model, then return only the result. How to build narrow specialists in Claude Code, four to steal, and why the idea ports to Codex.</description>
    </item>
    <item>
      <title>Running a Team of Agents Without the Chaos</title>
      <link>https://project4.co/blog/orchestrating-ai-agents/</link>
      <guid isPermaLink="true">https://project4.co/blog/orchestrating-ai-agents/</guid>
      <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
      <category>agents</category>
      <description>Running parallel AI coding agents without the chaos: git worktrees, the coordinator/specialist/verifier split, and scoping work so agents don't collide.</description>
    </item>
    <item>
      <title>The AI Code Review Gauntlet: Catching What the Model Ships Broken</title>
      <link>https://project4.co/blog/reviewing-ai-generated-code/</link>
      <guid isPermaLink="true">https://project4.co/blog/reviewing-ai-generated-code/</guid>
      <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
      <category>review</category>
      <description>AI-generated code fails in predictable ways. A review gauntlet for catching SSRF, broken access control, injection, slopsquatting, and hollow tests fast.</description>
    </item>
    <item>
      <title>How CSS Specificity and the Cascade Work</title>
      <link>https://project4.co/blog/cascade-and-specificity/</link>
      <guid isPermaLink="true">https://project4.co/blog/cascade-and-specificity/</guid>
      <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
      <category>frontend</category>
      <description>Specificity is not the first thing the browser checks, or even a single score. How the CSS cascade actually picks a winner, and why :where() and @layer end the !important arms race.</description>
    </item>
    <item>
      <title>Semantic HTML and Focus Order for Keyboard Accessibility</title>
      <link>https://project4.co/blog/semantic-html-focus-order/</link>
      <guid isPermaLink="true">https://project4.co/blog/semantic-html-focus-order/</guid>
      <pubDate>Mon, 01 Jun 2026 00:00:00 GMT</pubDate>
      <category>frontend</category>
      <description>Automated checkers miss half of real accessibility problems. The tab key finds the rest in thirty seconds: the div that should be a button, the removed focus ring, and tab order that fights the markup.</description>
    </item>
    <item>
      <title>How to Choose Between Flex or Grid</title>
      <link>https://project4.co/blog/flex-vs-grid/</link>
      <guid isPermaLink="true">https://project4.co/blog/flex-vs-grid/</guid>
      <pubDate>Fri, 29 May 2026 00:00:00 GMT</pubDate>
      <category>frontend</category>
      <description>Forget one dimension versus two. The question that actually decides flexbox or grid is who sizes the items, plus the five gotchas agents get wrong most.</description>
    </item>
  </channel>
</rss>